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 :
Mais pas celui-ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Mais, ce schéma valide quand même le 2eme exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager