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

Bibliothèques et frameworks PHP Discussion :

[XML] Parsing d'un fichier XML grâce à un fichier XSD


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Points : 32
    Points
    32
    Par défaut [XML] Parsing d'un fichier XML grâce à un fichier XSD
    Bonjour,

    Je reçoit un fichier XML d'un partenaire lors d'une requete, celui-ci me donne donc le xsd.
    Jusque là, tout va bien.

    Maintenant je voudrais parser mon fichier XML grâce au fichier XSD.
    (Pour info, je n'ai pas de fichier XSL fourni).

    Le fichier XML qui m'est renvoyé ne contient pas toutes les valeurs car certaines sont optionnelles et suivant la requête ne sont pas nécessaire avec des listes d'attributs, etc, etc

    Est ce qu'il existe un moyen de parser mon fichier XML grâce au XSD ou est ce que je dois faire un moteur qui parse le XSD pour me transformer le XML soit sous forme de tableau ou en HTML...


    Michael.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par oxomichael Voir le message
    Je reçoit un fichier XML d'un partenaire lors d'une requete, celui-ci me donne donc le xsd.
    Je ne vois pas l'évidence

    Maintenant je voudrais parser mon fichier XML grâce au fichier XSD.
    (Pour info, je n'ai pas de fichier XSL fourni).
    Pourquoi devrais-tu avoir un XSL fourni ??

    Le fichier XML qui m'est renvoyé ne contient pas toutes les valeurs car certaines sont optionnelles et suivant la requête ne sont pas nécessaire avec des listes d'attributs, etc, etc
    OK.

    Est ce qu'il existe un moyen de parser mon fichier XML grâce au XSD
    XSD ne sert pas à parser un fichier XML mais à le valider, un peu comme une DTD avec HTML.

    ou est ce que je dois faire un moteur qui parse le XSD pour me transformer le XML soit sous forme de tableau ou en HTML...
    Hum, je ne comprends pas ton problème.

    Peux-tu nous donner un exemple *simple* des fichiers dont tu disposes et de ce que tu souhaiterais obtenir ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Fichiers joint :un exemple de fichier xml

    Voici par exemple un morceau du 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
     
    <xs:element name="Address">
    		<xs:annotation>
    			<xs:documentation>Global; Address</xs:documentation>
    		</xs:annotation>
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name="EntireAddress" type="xs:string"/>
    				<xs:element ref="Building" minOccurs="0"/>
    				<xs:element ref="Street" minOccurs="0"/>
    				<xs:element ref="Town" minOccurs="0"/>
    				<xs:element ref="City" minOccurs="0"/>
    				<xs:element ref="County" minOccurs="0"/>
    				<xs:element ref="PostCode" minOccurs="0"/>
    				<xs:element ref="Country" minOccurs="0"/>
    			</xs:sequence>
    			<xs:attribute name="Type" use="optional">
    				<xs:simpleType>
    					<xs:restriction base="xs:string">
    						<xs:enumeration value="Associate"/>
    						<xs:enumeration value="Bank"/>
    						<xs:enumeration value="Branch"/>
    						<xs:enumeration value="Home"/>
    						<xs:enumeration value="Main"/>
    						<xs:enumeration value="Previous Trading"/>
    						<xs:enumeration value="Registered"/>
    						<xs:enumeration value="Trading"/>
    						<xs:enumeration value="Enquiry"/>
    					</xs:restriction>
    				</xs:simpleType>
    			</xs:attribute>
    		</xs:complexType>
    	</xs:element>
    Je vois bien que ce fichier peut m'aider à parser mon XML.
    Mais je dois m'embrouiller quelque part pour ne pas voir ce qu'il faut faire...
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Le XSD te donne les spécifications du XML, rien d'autre. En fait il est surtout utile si tu veux créer un XML se conformant à celui que tu reçois.
    Bon, on a les données (le XML) mais on n'a pas d'aperçu de ce que tu veux en faire
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Voilà un exemple en concordance avec l'element du XSD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Address Type="Trading"> <EntireAddress>2 RUE LOUIS LEPINE, MARTIGUES, 13500. </EntireAddress> <Street>2 RUE LOUIS LEPINE </Street> <City>MARTIGUES </City> <PostCode>13500 </PostCode> <Country ISOCode="FR">France </Country> </Address>
    J'ai donc tiré ces élements du XML et je veut savoir (suivant la définition du XSD) quel information je peut retirer

    On peut voir dans le XSD que je peut avoir un Tag "Town" mais que pour la requête que j'ai fait, il n'y en a pas.

    Et le même problème se pose pour tout les tags de tous niveau
    <Address Type="Trading"> ou <Address Type="Registered">, etc...


    Pour résumé, le XSD me montre toutes les possibilités et est ce que je peut faire une détection des éléments réels que j'ai dans le XML.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par oxomichael Voir le message
    Pour résumé, le XSD me montre toutes les possibilités
    Oui.

    et est ce que je peut faire une détection des éléments réels que j'ai dans le XML.
    Oui, il suffit de parcourir ton XML.
    A cette fin il existe des API telles SimpleXML http://fr.php.net/simplexml ou DOM http://fr.php.net/dom
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 84
    Points : 48
    Points
    48
    Par défaut
    Bonjour, je me permet d'intervenir sur ce topic car le sujet se rapproche de ce que je cherche a faire en php.

    Voila, moi aussi j'ai un fichier xml, un fichier xsd et même un xsl.
    Ce que je cherche a faire, c'est construire a partir du xml une page web avec un formulaire me permettant de modifier les données du xml après submit du formulaire.

    Jusque là pas de problème, mon xsl se charge de lire le xml et me produit un page html avec toutes mes données. La validation des données transmises sera faite par une page php dans un second temps.

    Mon but est que la page du formulaire présente les imput en fonction du type des données défini dans la xsd : string->imput text, choice-> combo etc ....
    Ensuite je voudrais pouvoir ajouter ou supprimer des éléments dans le formulaire via Jquery mais c'est l'étape suivante.

    J'ai trouvé sur le net un site qui présente exactement ce que je veut faire mais en perl : http://www.datamech.com/XMLForm/formGenerator5.html

    Et bien ça je vois pas du tout comment le faire. Je ne vois pas comment mon xsl peut "intégrer" le xsd. Peut être d'ailleurs que ce n'est pas possible et que le xsd n'est là que pour la validation du xml. Bref je ne sais pas ou prendre le problème.

    Merci de vos conseils

    oxomichael> as tu réussi à faire que que tu voulais ? si oui comment t'y est tu pris

Discussions similaires

  1. Parsing d'un fichier xsd
    Par super_baltazar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/02/2014, 08h27
  2. parsing d'un fichier xsd avec java
    Par 080983 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 14/01/2008, 17h02
  3. Erreur d'évaluation (parse) dans le fichier web.xml de l'application
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 15/05/2006, 15h38
  4. Réponses: 3
    Dernier message: 16/02/2006, 18h38
  5. [DOM] Erreur lors du parsing d'un fichier XML par l'API DOM
    Par patricetoan dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 26/09/2005, 12h43

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