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] Ne pas interpréter les namespaces du XML généré ?


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [XSLT] Ne pas interpréter les namespaces du XML généré ?
    Salut à tous,

    Voici mon soucis. Je dois générer via XSLT un fichier XML (en fait, il s'agit de MCML, utilisé par Vista MCE). Ce MCML possède une structure bien particulière, déjà définie (le fichier généré devant au final constituer la partie "interface" d'une application pour Vista Media Center).

    Dans ce MCML, j'ai besoin d'utiliser un namespace (référence vers un assembly C#), certaines de mes balises devront donc être de la forme "<a:myBool Name="..." />" par exemple. Seulement voilà, lorsque j'utilise XSLT pour générer un élément de ce style, j'obtiens une erreur, car apparemment XSLT essaie d'interpréter ce namespace.


    > Dans ce cas là, je n'ai aucune sortie...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="//Piece">
    	<xsl:element name="a:myBool">
    		<xsl:attribute name="Name">Test</xsl:attribute>
    	</xsl:element>
    </xsl:for-each>
    > Et dans ce cas là, j'obtiens une erreur relative au namespace a : (Erreur d'analyse XML : préfixe non limité à un espace de noms)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:for-each select="//Piece">
    	<a:myBool Name="Test" />
    </xsl:for-each>
    En fait, je voudrais simplement pouvoir balancer dans mon fichier en sortie des éléments préfixés d'un namespace, sans que XSLT n'essaie d'interpréter ou de rechercher ces namespaces... Mais je n'y parviens pas Auriez-vous une solution à me proposer ?

    Merci de votre aide,
    Cordialement,


    PierreAd

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,
    Citation Envoyé par PierreAd Voir le message
    SAuriez-vous une solution à me proposer ?
    Non, pas d'autre solution que de spécifier au processeur XSLT à quel espace de nom appartient un élément ou un attribut en sortie, et cet espace de noms va apparaître dans le document XML généré. C'est d'ailleurs sage, car sinon comment voudrais-tu que l'application cliente qui va traiter ton MCML puisse s'assurer autrement que le préfixe a se rapporte au bon espace de noms ?

    Soit tu le fais lors de la création de l'élément/attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="//Piece">
      <xsl:element name="myBool" namespace="...ton_uri...">
         ...
      </xsl:element>
    </xsl:for-each>
    Soit tu passes par un préfixe déclaré en tête de ta feuille de style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:stylesheet ... xmlns:a="...ton_uri...">
    ...
    <xsl:for-each select="//Piece">
    	<a:myBool Name="Test" />
    </xsl:for-each>
    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
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GrandFather Voir le message
    Bonjour,

    Non, pas d'autre solution que de spécifier au processeur XSLT à quel espace de nom appartient un élément ou un attribut en sortie, et cet espace de noms va apparaître dans le document XML généré. C'est d'ailleurs sage, car sinon comment voudrais-tu que l'application cliente qui va traiter ton MCML puisse s'assurer autrement que le préfixe a se rapporte au bon espace de noms ?
    En fait, mon XSLT va générer l'entête de mon MCML, (il s'agit d'un entête similaire aux entêtes de fichier XML, avec déclaration des namespace utilisés notamment), de ce type là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Mcml xmlns="http://schemas.microsoft.com/2006/mcml"
          xmlns:a="assembly://MaquetteMCE/MaquetteMCE"
    	  xmlns:static="resx://MaquetteMCE/MaquetteMCE.Resources/staticUIs"
          xmlns:cor="assembly://MsCorLib/System" 
    	  xmlns:me="Me">

    Citation Envoyé par GrandFather Voir le message
    Soit tu le fais lors de la création de l'élément/attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="//Piece">
      <xsl:element name="myBool" namespace="...ton_uri...">
         ...
      </xsl:element>
    </xsl:for-each>
    Soit tu passes par un préfixe déclaré en tête de ta feuille de style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:stylesheet ... xmlns:a="...ton_uri...">
    ...
    <xsl:for-each select="//Piece">
    	<a:myBool Name="Test" />
    </xsl:for-each>
    Le problème c'est que ces deux méthodes me génèrent quelque chose de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <myBool xmlns="a" Name="Piece"/>
    <myBool xmlns="a" Name="Piece2"/>
    Or ceci ne sera pas interprété correctement par l'application qui va traiter le MCML... N'y a-t-il pas de possibilité pour que les balises produites soient de la forme <namespace:balise /> ?

    Merci de ton aide en tout cas..!

Discussions similaires

  1. ne pas interpréter les "<" et ">" dans fichier xml
    Par Kirua76 dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 13/07/2011, 15h03
  2. Ne pas interpréter les fichiers PHP
    Par pmithrandir dans le forum Apache
    Réponses: 5
    Dernier message: 12/02/2008, 17h57
  3. [XSLT] modification d'un préfixe namespace XML
    Par abertaud dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 07/05/2007, 16h32
  4. [Applet][XML] Ne pas interpréter les caractères spéciaux
    Par leminipouce dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 28/07/2005, 16h15
  5. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

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