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] php 5 - XML [Débutant(e)]


Sujet :

Valider XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut [XSD] php 5 - XML
    Bonjour

    Me lançant dans l'apprentissage de XML, je fais des tests avec un tutoriel d'un bouquin que j'ai chez moi...

    Malheureusement, je tourne en rond depuis un bon moment, avec des Warning plein l'écran

    Voici le fichier .php

    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
     
    <?php 
     
    $dom = new domDocument();
    $dom->load("news.xml");
     
    if(!$dom->schemaValidate("news.xsd"))
    	print("Le fichier Newsxml n'est pas valide !");
    else
     	{
     	$xsl = new domDocument();
    	$xsl->load("news.xsl");
     
     
    	$proc = new xsltProcessor();
    	$proc->importStylesheet($xsl);
     
    	// paramètre du nom de page
    	$proc->setParameter("", "titre", "Titre de la page");
    	$string = $proc->transformToXml( $dom );
     
    	print($string);
    	}
     
    ?>
    ainsi que le 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
     
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <news>
    	<info date="Le 25/01/2004 à 14:36:23">
    		<auteur>Nom de l'auteur</auteur>
    		<titre>Titre de l'info</titre>
    		<texte>Texte de l'info</texte>
    	</info>
     
    	<info date="Le 20/01/2004 à 14h35:10">
    		<auteur>Nom de l'auteur</auteur>
    		<titre>Titre de l'info 2 </titre>
    		<texte>Texte de l'info 2</texte>
    	</info>
    </news>
    et enfin, le 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="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
     
    <xs:element name="news">
    	<xs:complexType>
    		<xs:sequence>
    			<xs:element maxOccurs="unbounded" ref="info"/>
    		</xs:sequence>
    	</xs:complexType>
    </xs:element>
     
    <xs:element name="info">
    	<xs:complexType>
    		<xs:sequence>
    			<xs:element ref="auteur" minOccurs="1" maxOccurs="1" />
    			<xs:element ref="titre" minOccurs="1" maxOccurs="1" />
    			<xs:element ref="texte" minOccurs="1" maxOccurs="1" />
    		</xs:sequence>
     
    		<xs:attribute ref="date" use="required" />
    	</xs:complexType>
    </xs:element>
     
    <xs:element name="titre" type="xs:string" />
    <xs:element name="auteur" type="xs:string" />
    <xs:element name="texte" type="xs:string" />
    <xs:element name="date" type="xs:string" />
     
    </xs:schema>
    Et à l'écran, et bien j'obtiens çA :

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: /home/bikenjoy/public_html/giantvalais/news/news.xsd:12: parser error : Opening and ending tag mismatch: schema line 2 and element in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: </xs:element> in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: ^ in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: /home/bikenjoy/public_html/giantvalais/news/news.xsd:14: parser error : Extra content at the end of the document in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: <xs:element name="info" /> in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: ^ in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: Failed to parse the XML resource '/home/bikenjoy/public_html/giantvalais/news/news.xsd'. in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11

    Warning: DOMDocument::schemaValidate() [function.DOMDocument-schemaValidate]: Invalid Schema in /home/bikenjoy/public_html/giantvalais/news/news.php on line 11
    Le fichier Newsxml n'est pas valide !

    Si quelqu'un aurait le coeur de m'aider, ce serait chouette
    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    tu t'es assuré qu'il n'y avait pas d'espaces inutiles au début de chacun de tes fichiers ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Hello !

    Quel genre d'espace inutile ? Les espace sont "comptés" avec le .xml / .xsd ? En tout cas, il n'y a aucun espace vide avec les premières ligne...

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Les espaces avant le prologue XML (<?xml ...?>) sont généralement mal acceptés par les parseurs XML respectant les spécifications.

    Mais il y a autre choser ; remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:element name="date" type="xs:string" />
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:attribute name="date" type="xs:string" />
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    J'ai ôté tous les espaces dans mes fichiers.
    Et en effet, j'ai commis une erreur pour cette ligne. Mais j'ai corrigé et l'erreur n'a pas changé

    Est-ce possible qu'il y ait un problème de paramètrage à quelque part ?

    Merci pour ton aide en tout cas

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Le support des W3C XML Schemas est encore en alpha dans PHP. Je me demande si les références d'élément sont supportées ; réécris ton schéma en supprimant les références, à tout hasard...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    C'est à nouveau moi

    Ca progresse gentiment. Il y avait apparemment un problème avec les namespace. J'ai tout supprimé, et les warning bizarres ont disparu.

    Toutefois, il y a un bug au moment de la création de la classe XSLTProcessor :

    Fatal error: Class 'XSLTProcessor' not found in /home/bikenjoy/public_html/giantvalais/news/news.php on line 9
    peut-il s'agir d'un problème de paramétrage ?

    Merci d'avance

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Il n'y avait pas de namespace dans l'exemple que tu as donné...

    Pour XSLTProcessor, a priori l'extension n'a pas été activée dans PHP (--with-xsl dans le configure).
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Il n'y avait pas de namespace dans l'exemple que tu as donné...
    lol j'avais prévenu que je débutais

    pour le configure, j'ai la liste là lorsque je fais phpinfo();

    './configure' '--with-apxs=/usr/local/apache/bin/apxs' '--prefix=/usr/local' '--with-xml' '--enable-bcmath' '--enable-calendar' '--with-dom' '--with-dom-xslt' '--with-dom-exslt' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with-png-dir=/usr' '--with-xpm-dir=/usr/X11R6' '--with-imap=/usr/local/imap-2004g' '--enable-magic-quotes' '--with-mysqli' '--with-mysql=/usr' '--enable-discard-path' '--with-pear' '--enable-sockets' '--enable-track-vars' '--with-zlib'
    il me semble voir la ligne with-xml et with-dom-xslt, est-ce que ça ne correspond pas à ce que tu penses ?

  10. #10
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par nihlstroem
    il me semble voir la ligne with-xml et with-dom-xslt, est-ce que ça ne correspond pas à ce que tu penses ?
    Non, cela correspond à l'activation des extensions XSLT des fonctions DOM de PHP4... Tu es sûr que c'est bien PHP5 qui est installé ? En tout cas, tu ne peux pas utiliser XSLTProcessor avec cette configuration.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  11. #11
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Oui, il s'agit de PHP 5.1.4.

    Bon, apparemment, le reste du problème provient de mon hébergeur, je vais tenter de régler ça.

    Et nul doute qu'après ces modifs, ça va fonctionner !!

    Merci beaucoup pour ton aide. Je repasserai si je rencontre un autre problème dans cet univers fabuleux du XML.

    ++

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/02/2010, 11h08
  2. [XSD] Problème validation/compréhension xml/xsd PHP
    Par speedev dans le forum Valider
    Réponses: 3
    Dernier message: 03/12/2008, 14h02
  3. [Wamp] Cherche plateforme pour développer en php, mysql, xml, xsl
    Par ibtisss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 18/10/2005, 17h31
  4. [XSD][xerces] validation xml avec un xsd
    Par chand_bing dans le forum Valider
    Réponses: 2
    Dernier message: 05/02/2004, 20h21
  5. PHP dans XML ou XSL
    Par mathieu dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/08/2003, 21h07

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