xsd: unique с дополнительными атрибутами

У меня есть этот файл 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>

... правило будет игнорировать элементы объекта без необязательного атрибута color . Следующее проверяется правильно, а не должно.

  <object name="ID2" />
  <object name="ID2" />

Не могли бы вы сказать мне, как я могу указать правило, которое обеспечивает выполнение уникальных комбинаций имени и цвета и, когда цвет Атрибут отсутствует в элементе объект , он проверяет имя ?

6
задан Steven Jeuris 14 May 2013 в 11:50
поделиться