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).