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 validation/compréhension xml/xsd PHP


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut [XSD] Problème validation/compréhension xml/xsd PHP
    Bonjour,

    Je ne parviens pas à comprendre un message d'erreur retourné par la validation d'un xml par un xsd.

    Pour info c'est la première fois que je fais de la validation XML (et ça doit fonctionner depuis il y a un mois pour le client ...j'ai trouvé de la documentation mais côté PHP c'est pas très riche...j'ai peu de temps pour me documenter).

    Voici une maquette épurée du XSD de mon client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    	<xs:element name="test">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element ref="nom"/>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>
    Une maquette du XML associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version='1.0' encoding='UTF-8'?>
    <test>
    	<nom>COUCOU_COUCOU</nom>
    </test>
    Le code que j'ai écris pour valider le XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    	header("Content-type: text/xml");
    	$xml = new DOMDocument(); 
    	$xml->load($chemin_vers_mon_xml); 
    	if ($xml->schemaValidate("http://www.chemin.com/vers_mon_xsd.xsd")) { 
    		 echo "OK"; 
    	} else { 
    		 echo "Erreur !"; 
    	} 
    ?>
    L'erreur retournée que je ne comprends pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <b>Warning</b>:  DOMDocument::schemaValidate() [<a href='function.DOMDocument-schemaValidate'>function.DOMDocument-schemaValidate</a>]: Element 'nom': [facet 'enumeration'] The value 'COUCOU_COUCOU' is not an element of the set {'coucou_coucou'}. in <b>/home/www/chemin_vers_mon_script.php</b> on line <b>xx</b><br />
     
    //la ligne d'erreur est la suivante :
    if ($xml->schemaValidate("http://www.chemin_xsd.com")) {
    Si je traduis intuitivement je comprends ça :
    La valeur de la balise "nom" n'est pas un élément connu de la liste {'coucou_coucou'}. (??)
    Serait-ce un problème de casse...

    Merci pour votre coup de main !

  2. #2
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    Ce sont bien les majuscules...le xml se valide quand la valeur est écrite en minuscule.

    Comme je recevrai tout en majuscule, je laisse le post ouvert jusqu'à ce que je trouve comment autoriser les majuscules à la validation.

    Et comme je suis pressé, si vous avez la réponse...je suis tout ouïe !

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    tu as essayé en typant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:element ref="nom" type="xs:string"/>

  4. #4
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    Ah j'ai zappé de mettre résolu...
    Je te remercie mais ça venait d'un problème d'énumération en fait et qui n'acceptait QUE les minuscules. Mon exemple est incomplet, j'aurai du mettre une définition qui se trouvait ailleurs dans le XSD et que je n'avais pas remarquée.

    Merci a+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2009, 18h27
  2. [XSD] Problème validation xml avec schema
    Par Loki13 dans le forum Valider
    Réponses: 1
    Dernier message: 24/10/2008, 20h19
  3. [XSD][Java]Valider un XML par rapport a un XSD
    Par sikapoch dans le forum Valider
    Réponses: 11
    Dernier message: 08/11/2005, 15h21
  4. [XSD][JAVA] Valider un XML avec un XSD schéma
    Par vad dans le forum Valider
    Réponses: 1
    Dernier message: 17/08/2005, 11h47
  5. Réponses: 3
    Dernier message: 27/01/2004, 16h15

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