У меня есть этот XML-файл:
<objects>
<object name="ID1" />
<object name="ID2" />
<object name="ID2" color="green" />
<object name="ID3" color="green" />
<objects>
Я хотел бы проверить это по схеме XSD, чтобы комбинация между name
и color
была уникальной в документе.
Проблема в том, что если я использую:
<xs:unique name="UniqueObjectNameColor">
<xs:selector xpath="./object" />
<xs:field xpath="@name" />
<xs:field xpath="@color" />
</xs:unique>
... правило будет игнорировать элементы object
без необязательного атрибута color
. Следующее правильно проверяет, пока не должно.
<object name="ID2" />
<object name="ID2" />
Можете ли вы сказать мне, как я могу указать правило, обеспечивающее применение уникальных комбинаций name
и color
и, когда атрибут color
отсутствует в элементе object
, он проверяет name
?