bonjour a tous.
Je suis entrain de bosser sur un Schéma XML ou il y a des éléments ayant comme valeur un decimal, un attribut date, et un attribut type.
Les attributs sont bien validé comme il faut, tout mon problème se situe sur la valeur décimal.
Mon XML est valide tant que mon tag contient une valeur.
Voici un extrait de mon fichier XML:
Pour valider cette liste de noeux, j'ai écrit ca dans le Schéma XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <gebuehren> <ausgabeaufschlag date="19.01.2008" type="G">0.01</ausgabeaufschlag> <maxausgabeaufschlag date="19.01.2008" type="G">0.04</maxausgabeaufschlag> <verwaltungsverguetung date="19.01.2008" type="G">0.38</verwaltungsverguetung> <maxverwaltungsverguetung date="19.01.2008" type="G">0.02</maxverwaltungsverguetung> <depotbankgebuehr date="19.01.2008" type="G">0.1</depotbankgebuehr> <maxdepotbankgebuehr date="19.01.2008" type="G">0.7</maxdepotbankgebuehr> <ruecknahmegebuehr date="19.01.2008" type="G">0</ruecknahmegebuehr> <maxruecknahmegebuehr date="19.01.2008" type="G">0</maxruecknahmegebuehr> <performancegebuehr date="19.01.2008" type="G">0</performancegebuehr> <performancegebuehrinfo date="19.01.2008"/> <ter date="19.05.2008" type="F">0</ter> </gebuehren>
( Pour le moment je gère la date en string car il aime pas trop les points comme séparateurs ).
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148 <xs:element name="gebuehren"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" ref="ausgabeaufschlag"/> <xs:element minOccurs="0" maxOccurs="1" ref="maxausgabeaufschlag"/> <xs:element minOccurs="0" maxOccurs="1" ref="verwaltungsverguetung"/> <xs:element minOccurs="0" maxOccurs="1" ref="maxverwaltungsverguetung"/> <xs:element minOccurs="0" maxOccurs="1" ref="depotbankgebuehr"/> <xs:element minOccurs="0" maxOccurs="1" ref="maxdepotbankgebuehr"/> <xs:element minOccurs="0" maxOccurs="1" ref="ruecknahmegebuehr"/> <xs:element minOccurs="0" maxOccurs="1" ref="maxruecknahmegebuehr"/> <xs:element minOccurs="0" maxOccurs="1" ref="performancegebuehr"/> <xs:element minOccurs="0" maxOccurs="1" ref="performancegebuehrinfo"/> <xs:element minOccurs="0" maxOccurs="1" ref="ter"/> </xs:sequence> </xs:complexType> </xs:element> <!-- Description of the <ausgabeaufschlag/> --> <xs:element name="ausgabeaufschlag"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <maxausgabeaufschlag/> --> <xs:element name="maxausgabeaufschlag"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <verwaltungsverguetung/> --> <xs:element name="verwaltungsverguetung"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <maxverwaltungsverguetung/> --> <xs:element name="maxverwaltungsverguetung"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <depotbankgebuehr/> --> <xs:element name="depotbankgebuehr"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <maxdepotbankgebuehr/> --> <xs:element name="maxdepotbankgebuehr"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <ruecknahmegebuehr/> --> <xs:element name="ruecknahmegebuehr"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <maxruecknahmegebuehr/> --> <xs:element name="maxruecknahmegebuehr"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <performancegebuehr/> --> <xs:element name="performancegebuehr"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <performancegebuehrinfo/> --> <xs:element name="performancegebuehrinfo"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <!-- Description of the <ter/> --> <xs:element name="ter"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="date" use="required" type="xs:string"/> <xs:attribute name="type" use="required" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element>
Avec ce schéma, je valide tout si tout les éléments contiennent une valeur.
Parcontre, si il y a un élément sans valeur, j'ai cette erreur :
actxml.xml:57,56: Datatype error: Type:NumberFormatException, Message: Empty string encountered..
J'avais tenté de déclarer un simple type trouvé sur le net permettant d'avoir un decimal pouvant être vide ... qui contenait string-empty dans le type et le validateur rale sur le string-empty.
Bref, si vous pouvez éclairer ma lanterne ... ca serai super cool !!
Partager