unique

Specifica che il valore di un attributo o di un elemento, o una combinazione dei valori di attributo ed elemento, deve essere univoco all'interno dell'ambito specificato. Il valore deve essere univoco o null.

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

Attributi

  • id
    ID dell'elemento. Il valore di id deve essere di tipo ID ed essere univoco all'interno del documento che contiene l'elemento.

    Facoltativo.

  • name
    Nome dell'elemento unique. Il nome deve essere un NCName (No-Colon-Name), come indicato nella specifica relativa agli spazi dei nomi XML.

    Il nome deve essere univoco all'interno di un insieme di vincoli di identità.

    Obbligatorio.

Informazioni sull'elemento

Numero di occorrenze Una volta
Elementi padre element
Contenuto annotation, field, selector

Osservazioni

È necessario che l'elemento unique contenga gli elementi che seguono, nell'ordine in cui sono indicati.

selector L'elemento selector contiene un'espressione XPath (XML Path Language) che specifica l'insieme di elementi nell'ambito del quale i valori specificati dagli elementi field devono risultare univoci.

Deve essere presente un solo elemento selector.

field Ciascun elemento field contiene un'espressione XPath che specifica i valori (valori di attributi o elementi) che devono essere univoci all'interno dell'insieme di elementi specificato dall'elemento selector.

Se è presente più di un elemento field, la combinazione degli elementi field deve essere univoca. In questo caso, i valori di un singolo elemento field possono essere univoci o non univoci negli insiemi di elementi selezionati, ma la combinazione di tutti gli elementi field deve essere univoca.

È necessario che siano presenti uno o più elementi field.

Esempio

Nell'esempio che segue viene definito uno schema con l'elemento principale ordersByCustomer, che può contenere una sequenza illimitata di elementi customerOrders. Nell'elemento ordersByCustomer, l'elemento unique specifica che l'attributo customerID deve essere univoco in tutti gli elementi 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>

Vedere anche

Informazioni di riferimento sullo schema XML (XSD) | Elementi di uno schema XML

Per ulteriori informazioni, vedere il documento del W3C dal titolo XML Schema Part 1: Structures Recommendation all'indirizzo http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-unique/ (informazioni in lingua inglese).