![]() |
|
Модераторы: diadiavova |
![]()
|
|
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Имеется такой код:
Я ожидаю, что значения элементов core и year будут уникальны в рамках одного элемента acadItems. Но этого не происходит. Где ошибка? |
|||
|
||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Я попробовал и такой вариант:
тоже не пашет. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Да вообще-то первый вариант должен работать
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
можешь пояснить по поводу использования xs:selector и xs:field? Насколько я понял - xs:selector выбирает элемент, в котором нужно выбирать уникальные элементы. А элемент(ы) xs:field указывают дочерние элементы или атрибуты, значения которых должны быть уникальны. Если указано несколько xs:field, то уникальной должна быть указанная комбинация. Я верно понял? Если да, то тогда верным скорее должен был бы быть второй вариант кода... |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Compositum, посмотрел твой пример более внимательно, поначалу не совсем понял проблему. Селектор определяет набор элементов внутри которых значение должно быть уникальным, а поле - сами уникальные поля.
Для твоего случая действительно надо использовать второй вариант. Но опять-таки, если ты не используешь префиксы пространств имен в xpath-выражениях, то это как раз и может быть проблемой. Добавлено через 3 минуты и 2 секунды Вот посмотри, я в твой старый пример вставил ту часть схемы, что ты выложил, внес изменения и вроде работает как надо
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
| Compositum |
|
||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Вот полный вариант моего XML файла (комментами пометил идентичные записи):
Полный вариант схемы для файла таков:
Однако Visual Studio не кашляет на предмет нарушения схемы... 2 diadiavova Твой вариант работает, но я не понял, почему не работает мой... :( Как XML файл находит соответствующий ему XSD? Ведь в каталоге может быть несколько XSD... Просто у меня по факту XSD файл хранится совсем в др. каталоге. Это я для примера показываю код так, как будто в том же. Оригинальная шапка в моём XML файле такая:
Это сообщение отредактировал(а) Compositum - 20.4.2012, 20:41 |
||||||
|
|||||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Ну я же сказал уже, что проблема в пространствах имен в xpath-выражениях. Добавлено через 4 минуты и 13 секунд -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Вот почитай как студия находит схемы
http://msdn.microsoft.com/ru-ru/library/ms...28VS.90%29.aspx Плюс схемы проекта учитываются -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Compositum |
|
||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Но ведь я использую пространство имён по умолчанию, и IDE корректно подсказывает, какие элементы я должен создавать. почему в xpath не работает?
я не так выразился. этот вопрос снят |
||||
|
|||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Этого я не знаю. Видимо он использует пространство имен контекста, то есть в каком элементе ты пишешь выражение, такое пространство и и спользуется, а поскольку это пространство схемы, то и надо указывать другое. В гибридных хмл-документах вообще с элементами без префиксов надо быть осторожным по этой причине. В конце концов тебя ведь не удивляет, что для атрибутов ты не указываешь пространство имен, но оно понимается правильно, то есть таким же как и для элемента, в котором определен атрибут. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Я прописал во всём XML документе нэймспейсы, но всё равно unique не работает... В первых двух записях оба вложенных значения совпадает. IDE не кашляет на эту тему.
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Compositum, ну так ты выложи свою схему, чтобы можно было запустить и посмотреть. Или как?
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |