[XSD] Attribut unique pour un block
Bonjour,
Cette question a déjà du être posée, néanmoins les réponses trouvées ne me conviennent pas.
Comment faire en sorte qu'une xsd valide l'xml suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<AAA>
<BBB>
<CCC att=1/>
<CCC att=2/>
</BBB>
<BBB>
<CCC att=1/>
<CCC att=2/>
</BBB>
</AAA> |
Mais pas celui-ci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<AAA>
<BBB>
<CCC att=1/>
<CCC att=2/>
</BBB>
<BBB>
<CCC att=1/>
<CCC att=2/>
<CCC att=2/>
</BBB>
</AAA> |
Je veux donc pour un block <BBB> donné, tous les éléments <CCC > aient des attributs att différents. Par contre, deux bloques BBB peuvent avoir des éléments CCC ayant le même attribut att.
Je pense que cela doit marcher avec la balise <unique>, mais je ne comprend pas bien comment l'utiliser, je fais la syntaxe suivante :
Code:
1 2 3 4 5 6
|
<xsd:element name="AAA" type="aaa">
<xsd:unique name="attUnique">
<xsd:selector xpath="BBB"></xsd:selector>
<xsd:field xpath="att"></xsd:field>
</xsd:unique></xsd:element> |
Mais, ce schéma valide quand même le 2eme exemple.