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 :

probleme de namespaces [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut probleme de namespaces
    Bonjour,

    j'ai realise une feuille de style pour extraire des balises d'un fichier xml.
    le soucis est que lorsque je lance mon xslt mon processeur que ce soit xsltproc ou saxon me donne un message d'erreur avec le namespace.
    comment je peux resoudre ce soucis??

    voici un bout de mon fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    I declare resumed the session of the European <Organization gate:gateId="4782867" rule1="GazOrganization" orgType="government" rule2="OrgFinal">Parliament</Organization> adjourned on Friday 17 December 1999, and I would like once again to wish you a happy new year in the hope that you enjoyed a pleasant festive period.
    Although, as you will have seen, the dreaded &apos;millennium bug&apos; failed to materialise, still the people in a number of countries suffered a series of natural disasters that truly were dreadful.
    You have requested a debate on this subject in the course of the next few days, during this part-session.
    le soucis est avec le merci

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

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par knebhi Voir le message
    j'ai realise une feuille de style pour extraire des balises d'un fichier xml.
    le soucis est que lorsque je lance mon xslt mon processeur que ce soit xsltproc ou saxon me donne un message d'erreur avec le namespace.
    comment je peux resoudre ce soucis??

    voici un bout de mon fichier xml :
    Et ça ne te semblait pas intéressant de nous donner
    - quelques exemples de message d'erreur
    - le code XSLT utilisé et ce qu'il essaie de faire exactement
    - le code encadrant ce XML à extraire (comme par exemple, où est déclaré ce foutu xmlns:gate)
    ?

    Eh bien, tu avais tort aux trois.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    désolé pour les imprecision :
    le xslt c'est :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="1.0">
     
        <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
     
     
     
     
    <xsl:template match="/">
    <NE>
      <xsl:copy-of select="//Organization"/>
      <xsl:copy-of select="//Location"/>
      <xsl:copy-of select="//Person"/>
    </NE>
    </xsl:template>
     
     
     
    </xsl:stylesheet>
    et le message d'erreur est :
    namespace error : namespace prefix gate for gateId on Person is not defined
    ce message defile pour toute les ligne et pratiquement toutes les balise.

    merci

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Est-ce que xmlns:gate est bien défini quelque part ? Et est-ce que ce quelque part englobe bien les endroits où tu t'en sers ?

    S'il n'est pas défini, ta feuille XSLT n'y peut rien. C'est ton document XML source qui n'est pas compatible avec les namespaces, et dans ces cas-là il n'est pas compatible avec XSLT non plus.
    Je trouve étrange que tes processeurs XSLT acceptent de remonter l'erreur à chaque fois qu'elle arrive, car les miens se contentent de planter sur la première. Mais nous n'utilisons peut-être pas les mêmes (moi celui intégré à Java, ainsi que xsltproc de shell tools online.)


    Si c'est bien défini quelque part, peux-tu nous donner un exemple court de fichier XML entier, entier mais court, qui déclare bien le xmlns:gate mais pose le problème dont tu nous parles ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    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
    Citation Envoyé par thelvin Voir le message

    S'il n'est pas défini, ta feuille XSLT n'y peut rien. C'est ton document XML source qui n'est pas compatible avec les namespaces, et dans ces cas-là il n'est pas compatible avec XSLT non plus.?
    De toute façon son namespace n'est pas définis dans son XSLT, hors on ne peut utiliser un XSLT sur un XML avec namespace sans l'y déclarer comme je l'ai déjà mis dans mon premier lien.

    Après que son XML est un souci c'est possible, mais corrigeons déjà les fautes identifiables

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Erwy Voir le message
    De toute façon son namespace n'est pas définis dans son XSLT, hors on ne peut utiliser un XSLT sur un XML avec namespace sans l'y déclarer comme je l'ai déjà mis dans mon premier lien.
    Sauf que les éléments qu'il cherche à adresser ne sont pas dans un namespace, il n'a donc pas besoin de déclarer de namespace pour les adresser.

    Ce sont des éléments contenus dans ce qu'il essaie de copier, qui ont des namespaces, et ça, <xsl:copy-of> est censé s'en occuper tout seul, sans aucune déclaration dans le XSLT (ça marche d'ailleurs très bien chez moi.)

    (Edit : ceci étant dit, déclarer le namespace à la racine de la XSLT permet d'éviter qu'il soit répété dans le document produit à chaque fois qu'un élément est copié. Il se retrouvera dans la racine du document produit et seulement là, ce qui est quand même bien plus élégant, il faut le reconnaître.)

    Quant aux raisons pour lesquelles il y a encore une erreur, c'est que //Organization:gate ne veut rien dire.
    Juste //Organization c'était très bien. C'est le XML source qui a un problème, avec des namespaces non déclarés. Quand on le déclare, avec xmlns:gate="http://toto.fr" par exemple, tout marche impec'. (En tout cas chez moi, et c'est censé marcher.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Est-ce que xmlns:gate est bien défini quelque part ? Et est-ce que ce quelque part englobe bien les endroits où tu t'en sers ?

    S'il n'est pas défini, ta feuille XSLT n'y peut rien. C'est ton document XML source qui n'est pas compatible avec les namespaces, et dans ces cas-là il n'est pas compatible avec XSLT non plus.
    Je trouve étrange que tes processeurs XSLT acceptent de remonter l'erreur à chaque fois qu'elle arrive, car les miens se contentent de planter sur la première. Mais nous n'utilisons peut-être pas les mêmes (moi celui intégré à Java, ainsi que xsltproc de shell tools online.)


    Si c'est bien défini quelque part, peux-tu nous donner un exemple court de fichier XML entier, entier mais court, qui déclare bien le xmlns:gate mais pose le problème dont tu nous parles ?

    voila un bout de fichier entier et court du 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
    <NE>
    Resumption of the session
    I declare resumed the session of the European <Organization gate:gateId="4782867" rule1="GazOrganization" orgType="government" rule2="OrgFinal">Parliament</Organization> adjourned on Friday 17 December 1999, and I would like once again to wish you a happy new year in the hope that you enjoyed a pleasant festive period.
    Although, as you will have seen, the dreaded &apos;millennium bug&apos; failed to materialise, still the people in a number of countries suffered a series of natural disasters that truly were dreadful.
    You have requested a debate on this subject in the course of the next few days, during this part-session.
    In the meantime, I should like to observe a minute&apos; s silence, as a number of Members have requested, on behalf of all the victims concerned, particularly those of the terrible storms, in the various countries of the <Organization gate:gateId="4782869" rule1="GazOrganization" rule2="OrgFinal">European Union</Organization>.
    Please rise, then, for this minute&apos; s silence.
    (The <Organization gate:gateId="4782870" rule1="GazOrganization" orgType="government" rule2="OrgFinal">House</Organization> rose and observed a minute&apos; s silence)
    <Person gate:gateId="4782871" rule1="PersonTitle" gender="female" rule="PersonFinal">Madam President</Person>, on a point of order.
    You will be aware from the press and television that there have been a number of bomb explosions and killings in <Location gate:gateId="4782872" rule1="InLoc1" locType="country" rule2="LocFinal">Sri Lanka</Location>.
    One of the people assassinated very recently in <Location gate:gateId="4782873" rule1="InLoc1" locType="country" rule2="LocFinal">Sri Lanka</Location> was <Person gate:gateId="4782874" rule1="PersonTitle" gender="male" rule="PersonFinal">Mr Kumar Ponnambalam</Person>, who had visited the European <Organization gate:gateId="4782875" rule1="GazOrganization" orgType="government" rule2="OrgFinal">Parliament</Organization> just a few months ago.
    Would it be appropriate for you, <Person gate:gateId="4782876" rule1="PersonTitle" gender="female" rule="PersonFinal">Madam President</Person>, to write a letter to the Sri Lankan President expressing <Organization gate:gateId="4782877" rule1="GazOrganization" orgType="government" rule2="OrgFinal">Parliament</Organization>&apos;s regret at his and the other violent deaths in <Location gate:gateId="4782878" rule1="InLoc1" locType="country" rule2="LocFinal">Sri Lanka</Location> and urging her to do everything she possibly can to seek a peaceful reconciliation to a very difficult situation?
    Yes, <Person gate:gateId="4782879" rule1="PersonTitle" gender="male" rule="PersonFinal">Mr Evans</Person>, I feel an initiative of the type you have just suggested would be entirely appropriate.
    If the <Organization gate:gateId="4782880" rule1="GazOrganization" orgType="government" rule2="OrgFinal">House</Organization> agrees, I shall do as <Person gate:gateId="4782881" rule1="PersonTitle" gender="male" rule="PersonFinal">Mr Evans</Person> has suggested.
    <Person gate:gateId="4782882" rule1="PersonTitle" gender="female" rule="PersonFinal">Madam President</Person>, on a point of order.
    I would like your advice about Rule 143 concerning inadmissibility.</NE>
    Je ne sais pas trop comment definir le namespace, j'ai tenter comme ça mais ça me renvoi la meme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <NE xmlns:gate="http://www.toto.fr">
     
    <!-- BLABLA-->
    </NE>
    Dans mon xslt j'ai fait ça :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:gate="http://www.gate.fr">
     
        <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
     
     
     
     
    <xsl:template match="/">
    <NE>
      <xsl:copy-of select="//Organization:gate"/>
      <xsl:copy-of select="//Location:gate"/>
      <xsl:copy-of select="//Person:gate"/>
    </NE>
    </xsl:template>
     
     
    </xsl:stylesheet>
    jutilise le xsltproc présent dans cygwin.


    [/CODE]

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    j'ai l'impression que ces namespace ne sont juste qu'une partie du probleme.

    en effet, sur ce bout de fichier mon traitement fonctionne malgré les message d'erreur sur les namespaces. alors que sur la totalité malgré les message d'erreur je n'ai rien comme sortie.

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

Discussions similaires

  1. [Batik][PocketPc] Probleme de NameSpace ?
    Par Tarteens dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 13/07/2007, 09h55
  2. [debutant]probleme de namespace
    Par Knightrider76 dans le forum C#
    Réponses: 8
    Dernier message: 15/06/2007, 14h05
  3. probleme de namespace
    Par dietrich dans le forum C++
    Réponses: 4
    Dernier message: 12/01/2007, 19h03
  4. Probleme de namespace
    Par ujoodha dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 13/04/2006, 19h23
  5. probleme de namespace
    Par bross dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 09/03/2006, 14h48

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