Элемент XML Schema unique

Определение и использование

Элемент unique определяет, что значение атрибута или значения элемента (или комбинацию атрибута и значения элемента) в заданном диапазоне должно быть уникальным. Это значение должно быть уникальным или равным нулю.

Элемент unique должен включать в себя в порядке следования следующие элементы:

элемент selector

Элемент selector содержит XPath-выражение, которое указывает на набор элементов, в котором значения, указанные элементом field, должны быть уникальными.

Необходимо иметь один и только один элемент selector.

элемент field

Каждый элемент field содержит XPath-выражение, которое указывает уникальное значение (атрибут или значение элемента) для элементного набора, указанного элементом selector.

Если есть несколько элементов field, то комбинация этих элементов должна быть уникальной. В этом случае, значение одного элемента field не обязательно уникально для выбранного элемента, но комбинация всех полей должна быть уникальной.

Необходимо иметь один или несколько элементов field.

Информация о элементе

количество出现 один раз
Родительский элемент element
Содержимое annotation, field, selector

Грамматика

<unique
id=ID
name=NCName
любые атрибуты
>
(annotation?,(selector,field+))
</unique>

(? Знак ? используется в уникальном элементе, чтобы указать, что элемент может出现在 zero или one раз.)

Атрибуты Описание
id Опционально. Определяет уникальный ID для этого элемента.
имя Обязательно. Определяет имя для этого элемента.
любые атрибуты Опционально. Определяет любые другие атрибуты с non-schema命名空间.

Пример

Пример 1

Этот пример представляет собой простую тип, объединяющий два простых типа:

<xs:element name="jeans_size">
  <xs:simpleType>
    <xs:union memberTypes="sizebyno sizebystring" />
  </xs:simpleType>
</xs:element>
<xs:simpleType name="sizebyno">
  <xs:restriction base="xs:positiveInteger">
    <xs:maxInclusive value="42"/>
  </xs:restriction>
</xs:simpleType>
<xs:simpleType name="sizebystring">
  <xs:restriction base="xs:string">
    <xs:enumeration value="small"/>
    <xs:enumeration value="medium"/>
    <xs:enumeration value="large"/>
  </xs:restriction>
</xs:simpleType>