Je possède ce fichier Xml:xsd: unique avec option attributs
<objects>
<object name="ID1" />
<object name="ID2" />
<object name="ID2" color="green" />
<object name="ID3" color="green" />
<objects>
Je voudrais valider ce rapport à un schéma XSD, de sorte que la combinaison entre name
et color
sont uniques dans le document.
Le problème est que, si je l'utilise:
<xs:unique name="UniqueObjectNameColor">
<xs:selector xpath="./object" />
<xs:field xpath="@name" />
<xs:field xpath="@color" />
</xs:unique>
... la règle ignorera object
éléments sans l'attribut color
en option. Ce qui suit valide correctement alors qu'il ne devrait pas.
<object name="ID2" />
<object name="ID2" />
Pouvez-vous me dire comment puis-je spécifier une règle qui impose name
uniques et color
combinaisons et, lorsque l'attribut color
n'est pas présent dans l'élément object
, il vérifie la name
?
Je voudrais savoir la même chose. La forme de réponse micfra ne le coupe pas tout à fait. –
Il peut casser votre schéma, mais en définissant une valeur par défaut pour l'attribut de couleur help? par exemple. –
@MattyK qui a résolu ce problème pour moi. Merci beaucoup! – RichardTowers