IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

[XSD] Problème lors de la validation d'un xml


Sujet :

Valider XML

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Points : 11
    Points
    11
    Par défaut [XSD] Problème lors de la validation d'un xml
    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

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Avez-vous trouver une solution à ce problème car j'ai pour ma part le même problème.

    La validation ne remonte pas d'erreur lorsque qu'un élément nillable=false est rencontré et que celui-ci est vide.

    Merci pour votre réponse.

    Alain.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    nillable ne s'utilise pas comme ça. (Si on me demande, je dirais que nillable ne sert à rien dans le cas général.)

    Il ne veut pas dire que l'élément ne peut pas être vide, mais que l'élément ne peut pas avoir xsi:nil="true".

    Pour interdire l'élément vide, il faut lui imposer un contenu. Genre une restriction sur xs:string, avec un pattern d'au moins un caractère.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Problème lors de la validation
    Par mer26 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/05/2012, 19h20
  2. [JAXB] Problème lors de la validation des éléments importés
    Par l'index dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 11/05/2012, 16h37
  3. [2.x] [Validation] Problème lors de la validation d'un formulaire
    Par loon93 dans le forum Symfony
    Réponses: 3
    Dernier message: 22/08/2011, 20h34
  4. [XSD] problème : le document est valide!
    Par olivier57b dans le forum Valider
    Réponses: 4
    Dernier message: 24/12/2006, 11h40
  5. [JAXB][XSD] Problème lors de la génération des classes
    Par charlot44 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/06/2005, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo