Поделиться через


Элемент <xsd:unique>

Указывает, что значение атрибута или элемента (либо сочетание значений атрибутов или элементов) должно быть уникально в данной области видимости. Значение должно быть уникальным или равняться nil.

<unique
  id = ID 
  name = NCName 
  {any attributes with non-schema Namespace}...>
Content: (annotation?, (selector, field+))
</unique>

Атрибуты

  • id
    Идентификатор данного элемента. Значение id должно иметь тип ID и быть уникальным в пределах документа, содержащего этот элемент.

    Необязательно.

  • имя
    Имя элемента unique. Имя не должно содержать двоеточий (NCName), как определено в спецификации пространств имен XML.

    Имя должно быть уникальным в области действия ограничения IDENTITY.

    Обязательный.

Сведения об элементе

Количество вхождений

Однократно

Родительские элементы

элемент

Описание

annotation, field, selector

Примечания

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

selector

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

Элемент selector должен существовать в единственном экземпляре.

поле

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

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

Допускается существование одного или более элементов selector.

Пример

В следующем примере определяется схема с корневым элементом ordersByCustomer, который может содержать неограниченную последовательность элементов customerOrders. В элементе ordersByCustomer элемент unique указывает на то, что атрибут customerID должен быть уникальным во всех элементах customerOrders.

<xs:schema targetNamespace="http://tempuri.org/myschema/unique" elementFormDefault="qualified"
 xmlns="http://tempuri.org/myschema/unique"
 xmlns:mstns="http://tempuri.org/myschema/unique"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="customerOrderType">
 <xs:sequence>
  <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
    <xs:attribute name="itemID" type="xs:string"/>
    </xs:complexType>
  </xs:element>
 </xs:sequence>
 <xs:attribute name="CustomerID" type="xs:string"/>
</xs:complexType>

<xs:element name="ordersByCustomer">
 <xs:complexType>
    <xs:sequence>
     <xs:element name="customerOrders" type="customerOrderType" 
       minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
 </xs:complexType>
 <xs:unique name="oneCustomerOrdersforEachCustomerID">
  <xs:selector xpath="mstns:customerOrders"/>
  <xs:field xpath="@CustomerID"/>
 </xs:unique>
</xs:element>
</xs:schema>

Другие ресурсы

Дополнительные сведения см. в документе «Рекомендация W3C по схемам XML, часть 1: структуры» по адресу www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all.

См. также

Ссылки

Справочник по XML-схемам (XSD)

Элементы XML-схемы