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 :
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>
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
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>
Ce dernier n'est pas entier, je rencontre divers problèmes donc je commence par celui des balises vides.
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