Bonjour à tous,
Voici mon schéma xsd
Je n'arrive pas à définir les xs:unique. J'ai essayé pas mal de combinaison. J'ai parcouru le web. Apparement ce que j'avais fait été correct. Mais dans mon fichier xml lorsque je mets 2 rank à la même valeur, le fichier xml est toujours valide. Alors qu'il ne le devrait pas.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vs="http://PreferenceSettings.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://PreferenceSettings.xsd"> <!--L'énumération des type de favoris--> <xs:simpleType name="FavoriteTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="Bank"/> <xs:enumeration value="Payment"/> </xs:restriction> </xs:simpleType> <!--L'énumération des colonnes de recherche--> <xs:simpleType name="SeekInvoiceNumberIn"> <xs:restriction base="xs:string"> <xs:enumeration value="no_facture"/> <xs:enumeration value="ref_piece"/> <xs:enumeration value="intitule_ecriture"/> <xs:enumeration value="no_piece"/> </xs:restriction> </xs:simpleType> <!--La structure des favoris--> <xs:complexType name="FavoritesType"> <xs:sequence> <xs:element maxOccurs="unbounded" name="FavoritesOfType"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Identifiant" type="xs:int" /> </xs:sequence> <xs:attribute name="Type" type="vs:FavoriteTypeEnum" use="required" /> </xs:complexType> <xs:unique name="oneFavoriteTypeByAttributeValue"> <xs:selector xpath="vs:FavoritesOfType"/> <xs:field xpath="@Type"/> </xs:unique> </xs:element> </xs:sequence> </xs:complexType> <!--La structure des champs de recherche--> <xs:complexType name="FieldsType"> <xs:sequence> <xs:element maxOccurs="unbounded" name="FieldSeek"> <xs:complexType> <xs:simpleContent> <xs:extension base="vs:SeekInvoiceNumberIn"> <xs:attribute name="Rank" type="xs:int" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:unique name="uniqueFieldRank"> <xs:selector xpath=".//FieldSeek"/> <xs:field xpath="vs:FieldsType/@Rank"/> </xs:unique> <xs:unique name="uniqueField"> <xs:selector xpath="vs:Fields"/> <xs:field xpath="FieldSeek"/> </xs:unique> </xs:element> </xs:sequence> </xs:complexType> <!--L'élément Root--> <xsd:element name="PreferenceSettings"> <xsd:complexType> <xsd:sequence> <xsd:element name="Favorites" type="vs:FavoritesType"/> <xsd:element name="Fields" type="vs:FieldsType"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xs:schema>
Quelqu'un pourrait-il m'éclairer? Dois-je mettre mes unique dans mon bloc root?
Merci d'avance
Partager