2010-08-02 12 views

risposta

23

Qualcosa del genere dovrebbe funzionare:

<xs:element name="books" maxOccurs="unbounded"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="book" maxOccurs="unbounded"> 
      <xs:complexType> 
       <xs:attribute name="isbn" type="xs:string"/> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    <xs:unique name="unique-isbn"> 
     <xs:selector xpath="book"/> 
     <xs:field xpath="@isbn"/> 
    </xs:unique> 
</xs:element> 

In sostanza, è possibile definire un vincolo di "unicità" si utilizza un elemento <xs:unique> e definire che cosa XPath questa unicità dovrebbe applicarsi a.

Vedere W3Schools 'entry on <xs:unique> per ulteriori informazioni.

0

Nota: Questo non funziona se si dispone di spazi dei nomi diversi. Allora avete bisogno l'espressione XPath completo:

Questo potrebbe essere come:

<xs:unique name="unique-isbn"> 
     <xs:selector xpath="theOtherNamespace:book"/> 
     <xs:field xpath="@isbn"/> 
</xs:unique> 
Problemi correlati