XML-схема (XSD) - если один элемент имеет конкретное значение, тогда должен присутствовать другой элемент и наоборот
Можно ли выразить это в XSD?
Например:
Один элемент - это необходимый элемент bool с именем EmployedMoreThanThirteenWeeks, и если для значения установлено значение false, я хочу, чтобы схема требовала существования другого элемента с именем EmploymentDate. И наоборот, если значение истинно, то в идеале элемент EmploymentDate должен быть отклонен, но я могу принять его как необязательный.
Ответы
Ответ 1
Нет. XSD определяет структуру и типы данных, а не отношения. Можно добавить ключевую ссылку между элементами, но это не предотвратит недопустимые узлы, просто недопустимые значения.
Вы можете создать XSLT файл (XML-таблицу стилей), который будет проверять XML файл для вас и, таким образом, генерировать отчет об ошибках.
Ответ 2
Я думаю, что XSD CANT делает это, потому что схемы проверяют только СТРУКТУРА (дерево), а не VALUES (хотя вы можете проверить формат значения).
Вы должны рассмотреть другие способы проверки.