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

XSL/XSLT/XPATH XML Discussion :

[XSLT][XSD>XML]transformer xsd en xml avec xslt


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut [XSLT][XSD>XML]transformer xsd en xml avec xslt
    bonjour,
    suite à vos conseils, je me suis documenté sur les transformations xsl, et j'arrive à faire à peu pret ce que je veut (i.e générer un canevas xml à partir d'un xsd)
    mon seul problème est que Xpath ne reconnait pas les xsd:schema.
    par exemple
    <xsl: template match="/xsd:schema">
    est refusé. par contre si j'enlève tous les "xsd:" du schema xml et que j'utilise la transformation:
    <xsl: template match="/schema">
    ça marche comme je le souhaite.
    avez vous une explication? une feinte?

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    As-tu déclaré le namespace xsd en haut de ton document car si tu ne l'a pas fait ca ne marcheras pas!
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    non, je ne l'ai pas fait.
    merci pour l'info, je vais voir ce que ça donne.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai déclaré un noeud
    <xsl:namespace name="xsd" select="..."/>
    ca ne marche pas.
    est un namespace alias qu'il faut declarer?
    je ne comprends pas la différence entre les deux.
    Si quelqu'un peut m'éclairer, il est le bienvenu.

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    ok !

    dans ton noeud xsl:stylsheet déclare:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns&#58;xsd="http&#58;//www.w3.org/2001/XMLSchema"
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    bonjour,
    j'ai ajouté ce que tu m'a dit et mon code est valide par contre aucune transformation n'est effectuée. voici un exemple de xsd que je veux transformer:
    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
     
    <?xml version="1.0"?>
    <xsd&#58;schema xmlns&#58;xsd="http&#58;//www.w3.org/2001/XMLSchema">
    <xsd&#58;element name="package" type="type_package"/>
    <xsd&#58;complexType name="type_package">
    <xsd&#58;sequence>
    <xsd&#58;element name="class1" type="type_class1"/>
    <xsd&#58;element name="class2" type="type_class2"/>
    </xsd&#58;sequence>
    </xsd&#58;complexType>
    <xsd&#58;complexType name="type_class1">
    <xsd&#58;sequence>
    <xsd&#58;element name="att1" type="xsd&#58;string"/>
    <xsd&#58;element name="att2" type="xsd&#58;string"/>
    </xsd&#58;sequence>
    </xsd&#58;complexType>
    <xsd&#58;complexType name="type_class2">
    <xsd&#58;sequence>
    <xsd&#58;element name="att1" type="xsd&#58;string"/>
    <xsd&#58;element name="att2" type="xsd&#58;string"/>
    <xsd&#58;element name="att3" type="xsd&#58;string"/>
    </xsd&#58;sequence>
    </xsd&#58;complexType>
    </xsd&#58;schema>
    et voici mon fichier xslt
    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="UTF-8"?>
    <xsl&#58;stylesheet version="1.0"
    xmlns&#58;xsl="http&#58;//www.w3.org/1999/XSL/Transform"
    xmlns&#58;xsd="http&#58;//www.w3c.org/2001/XMLSchema">
    <xsl&#58;output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl&#58;template match="/xsd&#58;schema">
    <xsl&#58;apply-templates select="xsd&#58;element&#91;1&#93;"/>
    </xsl&#58;template>
     
    <xsl&#58;template match="xsd&#58;element&#91;@name and @type&#93;">
    <xsl&#58;element name="&#123;@name&#125;">
    <xsl&#58;apply-templates
    select="/xsd&#58;complexType&#91;@name=current&#40;&#41;/@type&#93;"/>
    </xsl&#58;element>
    </xsl&#58;template>
     
    <xsl&#58;template match="xsd&#58;complexType">
    <xsl&#58;apply-templates select="/xsd&#58;sequence/xsd&#58;element"/>
    </xsl&#58;template>
    </xsl&#58;stylesheet>
    as tu une idée de ce qu'il me manque?
    merci

  7. #7
    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,

    les namespaces ne concordent pas.

    Dans ton XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns&#58;xsd="http&#58;//www.w3.org/2001/XMLSchema">
    Dans ton XSLT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns&#58;xsd="http&#58;//www.w3c.org/2001/XMLSchema">
    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

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    merci bien, je n'avais même pas remarqué. j'aurais pu chercher longtemps.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/04/2007, 15h14
  2. [XSLT]transformer un fichier XML en en fichier XML
    Par alexandra dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 16/08/2006, 15h26
  3. [XML] Transformer un fichier xml
    Par Laure888 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 16/03/2006, 18h39
  4. [XSL] Comment transformer un fichier XML en un autre XML
    Par elzedo dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/01/2006, 11h51
  5. [WORD-->XML]Transformation .doc en .xml
    Par Hoegaarden dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 30/08/2005, 13h05

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