Схема XML (XSD) - если один элемент имеет определенное значение, тогда должен присутствовать другой элемент и наоборот - PullRequest
13 голосов
/ 10 сентября 2009

Могу ли я выразить это в XSD?

Например: Один элемент является обязательным элементом bool с именем EmployedMoreThanThirteenWeeks, и если для него установлено значение false, я хочу, чтобы схема требовала существования другого элемента с именем EmploymentDate. И наоборот, если значение равно true, в идеале элемент EmploymentDate должен быть запрещен, но я могу принять его как необязательный.

Ответы [ 2 ]

7 голосов
/ 10 сентября 2009

Нет. XSD просто определяет структуру и типы данных, а не отношения. Можно добавить ключевую ссылку между элементами, но это не предотвратит недействительные узлы, только недопустимые значения.

Вы можете создать файл XSLT (таблицу стилей XML), который будет проверять файл XML для вас и, таким образом, создавать отчет об ошибках.

0 голосов
/ 10 сентября 2009

Я думаю, что XSD CANT делает это, потому что схемы проверяют только СТРУКТУРУ (дерево), а не ЗНАЧЕНИЯ (хотя вы можете проверить формат значения). Вы должны рассмотреть другие способы проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...