У меня есть уже существующий XML, для которого я пишу XSD. Соответствующий раздел в основном:
<color a='1' default='true'>Red</foo>
<color a='2'>Yellow</foo>
<color a='3'>Blue</foo>
Я хочу проверить, что только один из foo
элементов имеет атрибут default='true'
. Обратите внимание, что другие элементы могут иметь либо default='false'
, либо не иметь его вообще (в этом случае значение по умолчанию равно false
).
Я пытался использовать ключ, но он не работает в приведенном выше примере поскольку существует несколько default='false'
значений, которые не являются уникальными.
Можно ли выполнить такую проверку с помощью XSD 1.0?
(я не могу изменить формат XML, к сожалению.)