Bonjour à tous,

Voici mon problème :
Je souhaite créer le XSD permettant de valider les XML suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<empty x="0" y="7">
	<lantern lighting="0" />
</empty>
OU

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<empty x="0" y="7">
	<ball />
</empty>
OU

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
<empty x="0" y="7">
</empty>
mais surtout pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<empty x="0" y="7">
	<lantern lighting="0" />
	<ball />
</empty>
ni

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<empty x="0" y="7">
	<lantern lighting="0" />
	<lantern lighting="1" />
</empty>
ni

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<empty x="0" y="7">
	<ball />
	<ball />
</empty>
En fait je souhaite avoir, soit un seul des deux (ball ou lantern), soit aucun.

Pour cela, j'ai essayé avec un comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<xs:element name="empty">
	<xs:complexType>
		<xs:choice minOccurs="0" maxOccurs="1">
			<xs:element ref="lantern" />
			<xs:element ref="ball" />
		</xs:choice>
	</xs:complexType>
	<xs:attribute ref="x" use="required"/>
	<xs:attribute ref="y" use="required"/>
</xs:element>
 
<xs:element name="lantern">
	<xs:complexType>
		<xs:attribute ref="lighting" use="required"/>
	</xs:complexType>
</xs:element>
mais cela n'invalide pas lorsque je met plusieurs balises.

Auriez vous une idée ?
Merci beaucoup