Можем ли мы сделать элемент необязательным или обязательным в зависимости от значения любого другого элемента в XSD - PullRequest
4 голосов
/ 25 июля 2011

В XSD у меня есть один элемент x, который принимает значения (a, b)

Есть еще один элемент y

Есть ли способ использовать XSD, чтобы я мог сделать y обязательным, когдазначение x равно b и необязательно, если значение x равно

1 Ответ

1 голос
/ 25 июля 2011

Взгляните на XML-схема, часть 0: учебник для начинающих, второе издание , раздел 2.2.1 Ограничения вхождения .

В нем говорится:

Как правило, элемент должен появляться, когда значение minOccurs равно 1 или более.Максимальное количество раз, которое элемент может появляться, определяется значением атрибута maxOccurs в его объявлении.Это значение может быть положительным целым числом, таким как 41, или неограниченным термином, чтобы указать, что не существует максимального числа вхождений.Значение по умолчанию для атрибутов minOccurs и maxOccurs равно 1.

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

(Я не знаю, сможет ли Relax NG сделать это, но вы можете выяснить, поддерживает ли он такие контент-зависимые определения.)

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