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] et validation XSD, balise fermante


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 78
    Points : 62
    Points
    62
    Par défaut [XSLT] et validation XSD, balise fermante
    Bonjour,

    Je génère un fichier XML avec une feuille XSLT, j'applique ensuite une validation XSD. Mon problème est que cette validation refuse la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <xxx:yyyy ffff="coucou"/>
    Par contre si je modifie à la main pour avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      <xxx:yyyy ffff="coucou">
      </xxx:yyy>
    la validation est ok.

    Je cherche donc à modifier ma feuille XSLT de façon à générer la seconde version du XML avec explicitement un tag ouvrant et un fermant et ma question est là : comment peut-on faire cela ?

    Merci d'avance pour vos réponses.

    PS : Mon code XSLT actuel est le suivant (environnement Cocoon):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <xxx:yyy>
        <xsl:attribute name="fff">
          <xsl:value-of select="composant/valeur"/>
        </xsl:attribute>
      </xxx:yyyy>

  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,

    il est normal que l'une des ligne passe et pas l'autre : elles ne correspondent pas du tout au même schéma de validation, de la même façon qu'une chaine vide est sémantiquement différente de NULL en SQL.

    Si tu n'as pas la possibilité d'intervenir sur le XSD, tu peux tenter cette bidouille pour forcer le processeur à introduire un contenu dans l'élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xxx:yyy>
      <xsl:attribute name="fff">
        <xsl:value-of select="composant/valeur"/>
      </xsl:attribute>
      <xsl:text> </xsl:text>
    </xxx:yyyy>
    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
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 78
    Points : 62
    Points
    62
    Par défaut
    Ta solution fonctionne, merci.

    Je venais de trouver une solution équivalente avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="' '"/>
    Merci encore.

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

Discussions similaires

  1. [XSD] [Xpath]Récupérer le Xpath d'une balise durant une validation XSD
    Par Amidal dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 19/03/2010, 22h51
  2. [XSLT] Unable to locate a reference to a valid XSD
    Par scout dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/02/2007, 15h17
  3. [XSLT] Xml validé XSD puis transformé via XSLT
    Par cash3000 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/06/2006, 12h09
  4. [xslt][php] exclure une balise
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2006, 09h38

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