La contrainte Unique dans le Schéma XML
Disons que j'ai des fichier XML suivant:
<authors>
<author>a1</author>
<author>a2</author>
<lastmodified>2010</lastmodified>
</authors>
et un schéma XML fragment:
<xs:element name="authors" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="author" maxOccurs="unbounded" type="xs:string"> </xs:element>
<xs:element name="lastmodified" type="xs:date" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueAuthor">
<xs:selector xpath="."/>
<xs:field xpath="author"/>
</xs:unique>
</xs:element>
Ce que je veux, c'est faire une contrainte qui ne permettra pas deux identiques auteur valeurs, mais celui ci-dessus ne fonctionne pas de cette façon. Ce que je fais mal?
OriginalL'auteur BartoszCichecki | 2011-10-10
Vous devez vous connecter pour publier un commentaire.
La
selector
XPath sélectionne les noeuds qui doit être unique (dans ce cas, il faut sélectionner l'auteur de nœuds).La
field
XPath sélectionne ce qui est "uniques" (dans ce cas, à l'aide de.
sera la cause de leur valeur typée, dans ce cas, le texte entre les balises, traitée comme une chaîne, pour être utilisé).Le document
doit être valide par rapport au schéma suivant:
tandis que celui-ci ne doit pas:
OriginalL'auteur Ghislain Fourny
Vous pouvez utiliser type="xs:ID" sur l'auteur de l'élément. Il est également de type IDREF pour faire référence à un ID.
xs:ID
, voir xml.com/pub/a/2002/11/20/schemas.html#identity_constraintsOriginalL'auteur Dabbler