XML-схема (XSD) - если один элемент имеет конкретное значение, тогда должен присутствовать другой элемент и наоборот

Можно ли выразить это в XSD?

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

Ответы

Ответ 1

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

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

Ответ 2

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