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 :

Validation de mon XSD [XSD]


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Validation de mon XSD
    Bonjour,

    Je suis complètement novice dans le XML et la validation par le XSD et après avoir passer en revue tout un tas de cours en ligne, je ne me sens pas du tout à niveau. Votre aide me sera très précieuse:

    J'ai un fichier XML et on m'a aussi fourni le XSD de validation. Mon problème c'est que ce XSD n'est pas assez détaillé et il le faut que je le détaille moi même. Sauf que je ne pas sûre d'avoir compris comment imbriquer les <xs:element> <xs: complexType> ou <xs:sequence>

    Voici mon une partie de mon XML et le XSD corrigé:

    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
      <?xml version="1.0" encoding="ISO-8859-1" ?> 
    - <lot>
      <idLot>15135_13_116_CE_1639_00002</idLot> 
      <emplacementImage>./15135_13_116_CE_1639_00002</emplacementImage> 
      <propriete id="dateFlux" type="Date">26/04/2013 16:04:21</propriete> 
      <propriete id="siteNumerisation" type="String">15135</propriete> 
      <propriete id="codePartenaire" type="String">CE</propriete> 
      <propriete id="natureLot" type="String">A</propriete> 
    - <affaire>
      <idAffaire>15135_13_116_CE_1639_00002_1</idAffaire> 
    - <variableAffaire>
      <propriete id="NumVersionContexteAff" type="String">1.0</propriete> 
      <propriete id="typeAffaire" type="String">BD</propriete> 
      <propriete id="typeAffaireDetaille" type="String" /> 
      <propriete id="typeReference" type="String">BEN</propriete> 
      <propriete id="referenceAffaire" type="String">AFFAIRE 2</propriete> 
      <propriete id="typeReferenceAuxiliaire" type="String">DEC</propriete> 
      <propriete id="referenceAffaireAuxiliaire" type="String">AFFAIRE 2 COUGAR</propriete> 
      <propriete id="codeProduit" type="String" /> 
      <propriete id="posteComptable" type="String">949100</propriete> 
      </variableAffaire>
    - <document>
      <idDocument>15135_13_116_CE_1639_00002_1_1</idDocument> 
      <propriete id="dateNumerisation" type="Date">12/03/2007 00:03:00</propriete> 
      <propriete id="position" type="Integer">1</propriete> 
    - <variablesDocument>
      <propriete id="dateReception" type="Date">21/03/2013 07:23:05</propriete> 
      <propriete id="NumVersionContexteDoc" type="String">1.0</propriete> 
      <propriete id="idDemat" type="String">8D123456789</propriete> 
      <propriete id="idPièceExterne" type="String">DOC3</propriete> 
      <propriete id="NaturePièce" type="String">12</propriete> 
      </variablesDocument>
    - <image>
      <idImage>15135_13_116_CE_1639_00002_1_1_1</idImage> 
      <nomFichier taille="51357">15135_13_116_CE_1639_00002_1_1_1.pdf</nomFichier> 
      </image>
      </document>
    - <document>
      <idDocument>15135_13_116_CE_1639_00002_1_2</idDocument> 
      <propriete id="dateNumerisation" type="Date">04/03/2011 00:03:00</propriete> 
      <propriete id="position" type="Integer">2</propriete> 
    - <variablesDocument>
      <propriete id="dateReception" type="Date">21/03/2013 07:23:05</propriete> 
      <propriete id="NumVersionContexteDoc" type="String">1.0</propriete> 
      <propriete id="idDemat" type="String">8D123456789</propriete> 
      <propriete id="idPièceExterne" type="String">DOC4</propriete> 
      <propriete id="NaturePièce" type="String">12</propriete> 
      </variablesDocument>
    Ma question est, est-ce que mon XSD est correct??
    Merci pour votre correction
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Le plus simple, pour répondre à cette question-là, n'est-il pas de le tester ?

    Le principe d'un XSD est d'être utilisé par un validateur pour vérifier si un XML respecte bien certaines règles.
    Tu n'as qu'à te servir d'un validateur de ce genre.

    Si tu as des questions auxquelles une machine ne peut pas répondre, n'hésite pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Validation de mon XSD
    Merci pour votre retour,

    En fait, j'ai testé mon XSD sur http://www.utilities-online.info/xsd.../#.UdKKhW3k35N et il semble que cela soit correct.
    En revanche, quand je souhaite vérifier le XML, le vérificateur indique le message suivant: "Not well formed: The processing instruction target matching "[xX][mM][lL]" is not allowed"
    Sauf que ce XML est fourni par le client et qu'il nous sert à recetter, il est donc quasi improbable qu'il ne soit pas correct.
    J'en conclu qu'il n'est donc pas valide compte tenu du XSD; et comme j'ai modifié le XSD initialement aussi transmis par le client, c'est mon XSD qui n'est pas conforme même si sa "construction" est juste.

    J'espère que je suis claire, en fait je prends le problème à l'envers, je valide mon XSD par rapport au XML mais je le fais car le client ne peut le faire lui même bien que ce soit lui qui fournit ces XML et XSD pour recetter.

  4. #4
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Validation de mon XSD
    J'ai trouvé mon erreur: en fait j'avais ce message d'erreur car il y avait un espace sur la ligne d'en tête.
    Maintenant j'ai d'autres erreurs qui sont affichées mais je peux essayer de les corriger seules si vous pouvez me donner la différences entre attributs et élements. J'aimerai savoir aussi comment un xsd doit être hiérarchisé s'il vous plait. J'ai lu et relu des tuto mais...pas je n'ai pas trouvé ce que je cherche

    Merci par avance pour votre aide

    Morji2810

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Morji2810 Voir le message
    Maintenant j'ai d'autres erreurs qui sont affichées mais je peux essayer de les corriger seules si vous pouvez me donner la différences entre attributs et élements.
    Un attribut c'est quelque chose comme ça :

    alors qu'un élément c'est des trucs comme ça :

    ou

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <truc id="chose" machin="chouette">
    etc.

    Autrement dit, un élément peut contenir des attributs. Et peut aussi ne pas en contenir.


    Citation Envoyé par Morji2810 Voir le message
    J'aimerai savoir aussi comment un xsd doit être hiérarchisé s'il vous plait.
    Comme ça t'arrange. Tu fais ce qui te plaît tant que ça marche.
    Tu as sans doute remarqué deux "façons." Les deux marchent, c'est une question de style. Ou plus exactement d'utiliser la plus pratique, ce qui vient avec l'expérience.

    Citation Envoyé par Morji2810 Voir le message
    J'ai lu et relu des tuto mais...pas je n'ai pas trouvé ce que je cherche
    On ne lit pas un tuto, on le "fait." On prend l'exemple, on le teste sous toutes les coutures, on le change, l'étend, on programme avec. Et après avoir bien compris tout ça, on s'intéresse à la suite.
    Consulter un tutoriel est un procédé très actif qui n'a rien à voir avec lire.

    En principe il n'y a rien que tu doives "chercher" dans un tutoriel. Un tutoriel t'apporte une nouvelle connaissance. Tu n'es pas censé y chercher la réponse à une question.
    Ça c'est plutôt notre domaine, mais tu es trop vague. Tu dois dire concrètement ce qui te gêne.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour,

    Merci pour le retour d'hier. En fait je consultais le tuto pour vraiment me "former" sur les xsd car je n'y connaissais rien. Depuis, j'ai refais tous le xsd en délaissant celui fournit pas le client (cf PJ)

    Ce qui me gène c'est que j'ai des séquences d'éléments avec un name identique pour tous (name=propriete) mais de type différents (ex: type=propDateNum).
    L'erreur indiqué est "Le type propDateNum n'est pas déclaré".
    Question 1: comment le déclarer ?
    Question 2 : est-ce que je ne ferai pas mieux de mettre des attributs.

    Si besoin est voici le xml correspondant (je n'indique que les premières lignes)
    suivi d'une partie du xsd

    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
     <?xml version="1.0" encoding="ISO-8859-1" ?> 
    - <lot>
      <idLot>15135_13_116_CE_1639_00002</idLot> 
      <emplacementImage>./15135_13_116_CE_1639_00002</emplacementImage> 
      <propriete id="dateNum" type="Date">26/04/2013 16:04:21</propriete>
      <propriete id="siteNumerisation" type="String">15135</propriete> 
      <propriete id="codePartenaire" type="String">CE</propriete> 
      <propriete id="natureLot" type="String">A</propriete> 
    - <affaire>
      <idAffaire>15135_13_116_CE_1639_00002_1</idAffaire> 
    - <variableAffaire>
      <propriete id="NumVersionContexteAff" type="String">1.0</propriete> 
      <propriete id="typeAffaire" type="String">BD</propriete> 
      <propriete id="typeAffaireDetaille" type="String" /> 
      <propriete id="typeReference" type="String">BEN</propriete> 
      <propriete id="referenceAffaire" type="String">AFFAIRE 2</propriete> 
      <propriete id="typeReferenceAuxiliaire" type="String">DEC</propriete> 
      <propriete id="referenceAffaireAuxiliaire" type="String">AFFAIRE 2 COUG</propriete> 
      <propriete id="codeProduit" type="String" /> 
      <propriete id="posteComptable" type="String">949100</propriete> 
      </variableAffaire>
    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
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      <xs:element name="lot">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="idLot"/>
            <xs:element name="emplacementImage"/> <!--A COMPLETER PAR LES PROPRIETE ID-->
            <xs:element name="propriete" type="propDateNum"/>
            <xs:element name="propriete" type="propSiteNum"/>
            <xs:element name="propriete" type="propCodePart"/>
            <xs:element name="propriete" type="propNatureLot"/>
            <xs:element name="affaire">
              <xs:complexType><!--DEB AFFAIRE-->
                <xs:sequence><!--DEB AFFAIRE-->
                  <xs:element name="idAffaire"/>
                  <xs:element name="variableAffaire">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="propriete" type="NumVersionContexteAff"/> 
                        <xs:element name="propriete" type="typeAffaire"/>
                        <xs:element name="propriete" type="typeAffaireDetaille"/>
                        <xs:element name="propriete" type="typeReference"/>
                        <xs:element name="propriete" type="referenceAffaire"/>
                        <xs:element name="propriete" type="typeReferenceAuxiliaire"/>
                        <xs:element name="propriete" type="codeProduit"/>
                        <xs:element name="propriete" type="posteComptable"/>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
    Merci par avance!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SAX] Validation XML par XSD
    Par KernelControl dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 21/01/2009, 14h46
  2. Valider XML avec XSD
    Par neilbgr dans le forum Langage
    Réponses: 10
    Dernier message: 26/03/2008, 16h01
  3. [XSD] Problème de XML validation par fichier XSD:org.xml.sax.SAXNotRecognizedException
    Par bareillesj dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/04/2007, 14h39
  4. [XSD] validation xml via xsd
    Par florentB dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 18/01/2007, 15h19
  5. [XSD] XSD pour validation d'un XSD
    Par moritan dans le forum Valider
    Réponses: 7
    Dernier message: 21/07/2006, 16h48

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