Bonjour,

j'ai le schéma ci-dessous dans lequel j'ai quelques règles d'unicité. Comme dans l'exemple que je donne ci-dessous, j'ai à chaque fois positionné la balise <xs:unique> un niveau supérieur au dessus des objets dont une propriété doit être unique. Je pense que c'est possible de placer ces balises au niveau de l'objet lui-même, mais n'étant pas doué avec les chemins xpath je n'y suis pas arrivé.


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
18
19
20
21
22
23
24
25
26
27
28
29
<xs:complexType name="TOTO">
	<xs:annotation>
		<xs:documentation xml:lang="fr">toto</xs:documentation>
	</xs:annotation>
	<xs:sequence>
                        .....
		<xs:element name="portoir" type="Portoir" minOccurs="0" maxOccurs="unbounded">
			<xs:unique name="unique-LignePortoir">
				<xs:selector xpath="ligne"/>
				<xs:field xpath="@nom"/>
			</xs:unique>
		</xs:element>
                          ......
		<xs:element name="bidon" type="Consommable" minOccurs="0" maxOccurs="4"/>
	</xs:sequence>
</xs:complexType>
 
<!-- RACINE -->
 
<xs:element name="toto" type="TOTO">
	<xs:unique name="key-CAB">
		<xs:selector xpath=".//*"/>
		<xs:field xpath="CAB"/>
	</xs:unique>
	<xs:unique name="unique-EmplacementBidons">
		<xs:selector xpath="bidon"/>
		<xs:field xpath="@emplacement"/>
	</xs:unique>
</xs:element>
En deux mots, j'aimerais que la clé d'unicité pour les emplacements de bidon par exemple soit indiquée dans le type Consommable, et non au niveau de l'élément racine.

Merci d'avance