Bonjour à tous,
Je rencontre de grosses difficultées pour la validation d'un fichier XML à l'aide d'un schéma XSD
Tout d'abord mon fichier XML :
Suivi du fichier XSD :
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 <?xml version="1.0" encoding="ISO-8859-15"?> <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <flux> <name>XXXX</name> <mode>put</mode> <dir_in></dir_in> <dir_out>/OUT</dir_out> <file>*.txt</file> <host>555.5.55.555</host> <login>jean</login> <pwd>paul</pwd> <port></port> <compress>1</compress> <fcontrol>1</fcontrol> </flux> <flux> <name>YYYYYY</name> <mode>put</mode> <dir_in>/IN</dir_in> <dir_out>/OUT</dir_out> <file>*.txt</file> <host>555.5.55.555</host> <login>luc</login> <pwd>jacques</pwd> <port>0</port> <compress></compress> <fcontrol></fcontrol> </flux> </configuration>
Ce dernier n'est pas entier, je rencontre divers problèmes donc je commence par celui des balises vides.
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 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" elementFormDefault = "qualified"> <xs:element name="configuration"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="flux"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="flux"> <xs:complexType> <xs:sequence> <xs:element ref="name"/> <xs:element ref="mode"/> <xs:element ref="dir_in"/> <xs:element ref="dir_out"/> <xs:element ref="file"/> <xs:element ref="host"/> <xs:element ref="login"/> <xs:element ref="pwd"/> <xs:element ref="port"/> <xs:element ref="compress"/> <xs:element ref="fcontrol"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="name" nillable="false"/> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLenght value="5"/> </xs:restriction> </xs:simpleType> <xs:element name="mode" type="xs:string"/> <xs:element name="dir_in" type="xs:string"/> <xs:element name="dir_out" type="xs:string"/> <xs:element name="file" type="xs:string" /> <xs:element name="host" type="xs:string" /> <xs:element name="login" type="xs:string"/> <xs:element name="pwd" type="xs:string"/> <xs:element name="port" nillable="false"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:minInclusive value="1"/> <xs:maxInclusive value="65536"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="compress" type="xs:string" nillable="true"/> <xs:element name="fcontrol" type="xs:string" nillable="true"/> </xs:schema>
La balise <port> pour le premier flux est vide et celle du deuxieme flux est egale à 0 les deux cas devrait engendrer un rejet du fichier XML. Pour le port sa doit etre rejeté quand la balise est vide ou valeur non comprise entre 1 et 65356. Hors le fichier est considéré comme valide (dans le validateur sur Internet lien plus bas mais également dans Talend).
Ensuite une erreur me parlant de contexte apparait apparament à cause la restriction minLenght (maxLenght ne passe pas non plus).
J'utilise le validateur à l'adresse suivante : http://www.xmlme.com/Validator.aspx?mid=83
Merci d'avance
Partager