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 :

Définition de format de sortie XML [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Septembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 26
    Points : 25
    Points
    25
    Par défaut Définition de format de sortie XML
    Bonjour,

    Je suis confronté à un problème lié à l'entête de mon fichier XSL.

    Mon parseur m'indique le message suivant : Requested output format xml has not been defined.

    Voilà le code:

    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
    34
    35
    36
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
        <xsl:output method="xml" indent="yes" />
     
        <xsl:template match="/">
     
                <xsl:for-each select="//c[@level = 'item']">
                    <xsl:variable name="filename"
                        select="concat('output1/',@run,'.xml')" />
                    <xsl:value-of select="$filename" />  <!-- Creation  -->
                    <xsl:result-document href="{$filename}" format="xml">
     
                    <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
                        xmlns:qdc="http://dublincore.org/documents/dcmi-terms"
                        xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/">
                    <dc:identifier>
                        <xsl:value-of select="did/unitid[@label = 'Cotes extrêmes']"/>
                    </dc:identifier>
                    <dc:title xml:lang="fr">
                        <xsl:value-of select="did/unitdate"/>
                    </dc:title>
                        <dc:creator></dc:creator>
                        <dc:rights></dc:rights>
                        <dc:subject></dc:subject>
                        <dc:relation xml:lang="fr">
                            <xsl:for-each select="ancestor::did/c[contains(@id,'tt')]">
                           <xsl:value-of select="unittitle"/>
                       </xsl:for-each>
                        </dc:relation>
                    </oai_dc:dc>
                    </xsl:result-document>
     
                </xsl:for-each>
     
        </xsl:template>
    </xsl:stylesheet>
    Pourriez-vous m'indiquer ce qu'il manque? J'avoue être perturbé par le fait que j'ai d'autres XSL qui comportent le même entête mais pour lesquels je n'ai pas ce message d'erreur.

    Par avance merci

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    [0] D'abord xsl:result-document est de xslt v2.0+, donc il vaut mieux indiquer version="2.0" dans l'élément xsl:stylesheet. Mais, ce n'est pas trop grave puisque une fois l'engin xslt supporte v2.0, il puis s'accommoder.

    [1] L'issue principal est que vous utilisez l'attribut format="xml". Cet attribut en fait prend référence à une xsl:output qui est nommé "xml". On peut évidemment nommer "xyz" ce qu'on veut, mais la nature référentielle revient la même. Pour faire correctement, il vaut mieux ajouter une xsl:output pour cette fin.
    Code xsl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <xsl:output method="xml" indent="yes" />
        <xsl:output method="xml" indent="yes" name="xml" />
    C'est comme ça qu'on peut faire. Si il ne trouve pas une xsl:output de ce nom, le comportement dépend de l'engin. Il se peut utiliser la xsl:output sans nom (ou anonyme) - ça dépend. Dans le cas présent, l'engin refuse tout court.

    [2] On peut faire autrement aussi par utiliser l'attribut @method (method="xml") au lieu de @format comme quoi il peut marcher tout seul.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Septembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 26
    Points : 25
    Points
    25
    Par défaut
    Merci pour votre aide, cela fonctionne.

    Je pense avoir compris, néanmoins je m'interroge sur le fait que cette façon de faire n'était pas problématique dans d'autres fichiers xsl.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Tu as parlé d'en-têtes.

    Tes autres fichiers XSLT utilisaient-ils <xsl:result-document> et si oui, utilisaient-ils l'attribut "format" ?
    C'est là que se situe le problème si le "format" n'est pas un nom défini. La plupart du temps result-document produira le même format que la feuille de style dans son ensemble et préciser un format différent n'est pas utile, d'où problématique peu rencontrée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Format de sortie xml dans un servlet
    Par tamildark dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/02/2011, 13h07
  2. [MagicDraw UML 16] Format de sortie XML
    Par samalairbien dans le forum Autres
    Réponses: 0
    Dernier message: 10/03/2009, 12h16
  3. Réponses: 21
    Dernier message: 09/08/2007, 11h46
  4. format de sortie commande \pset
    Par Alesk dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/01/2006, 14h48
  5. [logging] Modifier les balises de sortie XML de Java ?
    Par MiJack dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/12/2005, 13h20

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