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

XML/XSL et SOAP Discussion :

Balise de tête générée par XSL


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut Balise de tête générée par XSL
    Bonjour,

    J'essaye de transformer un fichier XML en un autre fichier XML par une transformation XSL mais je me heurte à quelques difficultés.

    J'ai un exemple simple qui fonctionne mais pas ma transformation proche de mon résultat final attendu.

    Dans le cas simple, j'ai bien l'en-tête XML alors que dans l'autre cas, elle n'est pas générée. Dans les 2 cas, j'ai cette en-tête pour le XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    	<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"
    		indent="yes" omit-xml-declaration="no" />
     
    	<xsl:template match="RPT">
    ...
    Ce qui est aussi ennuyeux c'est que le code généré n'est pas directement exploitable en tant que XML car les caractères spéciaux sont automatiquement convertis en codes html (ex: é devient &eacute; dans le résultat généré par Eclipse avec jdk1.6.0_21 => ne le fait pas avec l'exemple simple !!).
    C'est sans doute lié au fait que l'en-tête XML n'est pas générée lors de la transformation (ma première remarque).

    Donc la question est : qu'est-ce qui peut gêner le processeur de transformation XSL au point de me donner du HTML au lieu du XML dans un fichier XML finalement ??

    Merci pour votre attention.

    Cdlt,
    Annabelle

  2. #2
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Bonjour,
    Je ne connais pas bien ISO-8859-1 mail as-tu essayé

  3. #3
    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
    Citation Envoyé par bulmananabelle Voir le message
    Donc la question est : qu'est-ce qui peut gêner le processeur de transformation XSL au point de me donner du HTML au lieu du XML dans un fichier XML finalement ??
    Le suspect numéro 1 est bien entendu disable-output-escaping="yes" qui, par définition, est bien obligé de modifier le modèle de données employé pour la transformation, et ce d'une manière pas très claire et prévisible.
    Mais il peut y avoir tout un ensemble de causes qui seraient plus des limitation du processeur XSLT utilisé.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Le suspect numéro 1 est bien entendu disable-output-escaping="yes" qui, par définition, est bien obligé de modifier le modèle de données employé pour la transformation, et ce d'une manière pas très claire et prévisible.
    Mais il peut y avoir tout un ensemble de causes qui seraient plus des limitation du processeur XSLT utilisé.
    J'avais ajouté ça parce que justement je n'avais pas d'en-tête de générée :-( (<= là je parle à tort de l'option omit-xml-declaration="no" dans l'en-tête <xsl:output /> contrairement à thelvin qui parle de l'option disable-output-escaping="yes" au milieu du code XSL)

  5. #5
    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
    ..... Je ne vois aucun disable-output-escaping. L'idée n'était-elle pas de prouver que ça ne dérange pas dans le cas simple ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par thelvin Voir le message
    ..... Je ne vois aucun disable-output-escaping. L'idée n'était-elle pas de prouver que ça ne dérange pas dans le cas simple ?
    non ça ne change rien, j'ai juste pris en compte le nouveau code suite à ta remarque de l'autre discussion ;-)

    je vais tenter une transfo avec xsltproc sous linux pour voir si même soucis, et j'ai enlevé une partie de l'arbre XML (ElementsDePaie, etc.)

  7. #7
    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
    ... Si tu le dis... Bon, en fait non, même si tu le dis je ne te crois pas, mais là n'est pas la question : ça sert à quoi de nous montrer ton exemple simple s'il contient ni le problème ni un suspect du problème ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut Test avec xsltproc OK
    Bon peu importe, j'ai testé avec xsltproc et ça marche, j'ai l'en-tête XML et plus de problème d'encodage HTML.

    Et je crois que le coupable est Eclipse qui me fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    14:33:41,955 INFO  [main] Main  - javax.xml.transform.TransformerFactory=null
    14:33:41,955 INFO  [main] Main  - java.endorsed.dirs=D:\dev\Outils\jdk1.6.0_21\jre\lib\endorsed
    14:33:41,955 INFO  [main] Main  - launchFile: T:\Annabelle\WorkspaceSID-H76041\.metadata\.plugins\org.eclipse.wst.xsl.jaxp.launching\launch\launch.xml
    14:33:42,080 INFO  [main] JAXPSAXProcessorInvoker  - Setting properties: method=html 
    14:33:42,080 INFO  [main] JAXPSAXProcessorInvoker  - Transforming...
    14:33:42,189 INFO  [main] JAXPSAXProcessorInvoker  - Done.
    il me sort du HTML par défaut alors que j'ai demandé du XML !!

    enfin, je vais refaire un test avec le fichier complet...

  9. #9
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut disable-output-escaping: il ne pose pas de pb
    Citation Envoyé par thelvin Voir le message
    ... Si tu le dis... Bon, en fait non, même si tu le dis je ne te crois pas, mais là n'est pas la question : ça sert à quoi de nous montrer ton exemple simple s'il contient ni le problème ni un suspect du problème ?
    J'avais bien fait le test de comparaison des deux xsl avec le même type de code avec le disable-output-escaping mais ça n'est pas ça qui pose problème et qui m'empêche d'avoir l'en-tête XML en sortie...

    La différence entre l'exemple simple et le compliqué c'est le début de l'arbre qui comporte 5 "level" avant d'avoir les infos à traiter :-) le reste est à peu près identique (en tout cas le traitement des balises à transcoder). J'ai corrigé le code initial ;-)

  10. #10
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut c'était un pb de config Eclipse
    Citation Envoyé par bulmananabelle Voir le message
    Bon peu importe, j'ai testé avec xsltproc et ça marche, j'ai l'en-tête XML et plus de problème d'encodage HTML.

    Et je crois que le coupable est Eclipse qui me fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    14:33:41,955 INFO  [main] Main  - javax.xml.transform.TransformerFactory=null
    14:33:41,955 INFO  [main] Main  - java.endorsed.dirs=D:\dev\Outils\jdk1.6.0_21\jre\lib\endorsed
    14:33:41,955 INFO  [main] Main  - launchFile: T:\Annabelle\WorkspaceSID-H76041\.metadata\.plugins\org.eclipse.wst.xsl.jaxp.launching\launch\launch.xml
    14:33:42,080 INFO  [main] JAXPSAXProcessorInvoker  - Setting properties: method=html 
    14:33:42,080 INFO  [main] JAXPSAXProcessorInvoker  - Transforming...
    14:33:42,189 INFO  [main] JAXPSAXProcessorInvoker  - Done.
    il me sort du HTML par défaut alors que j'ai demandé du XML !!

    enfin, je vais refaire un test avec le fichier complet...
    C'est bon j'ai trouvé ! c'était la config Eclipse (Run Configurations... XSL, onglet Processor, Output Properties, il y avait "method=html") sans doute un reste de mon premier test fait en html :-(

    Merci pour la piste du test avec une autre processor :-D

  11. #11
    Membre à l'essai
    Femme Profil pro
    Consultant E-Business
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Le suspect numéro 1 est bien entendu disable-output-escaping="yes" qui, par définition, est bien obligé de modifier le modèle de données employé pour la transformation, et ce d'une manière pas très claire et prévisible.
    Mais il peut y avoir tout un ensemble de causes qui seraient plus des limitation du processeur XSLT utilisé.
    Autant pour moi, j'ai répondu à côté de la plaque à ce sujet :-( je croyais que tu parlais du omit-xml-declaration="no" dans l'en-tête <xsl:output />... Désolée :-/ Quelle embrouille, je comprend mieux ta réaction !

    En fait, j'ai éliminé le suspect n°1 dès mon 2ème test ;-) le problème venait donc bien d'ailleurs et c'était bien la config du processor mise à tort avec une sortie html...

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

Discussions similaires

  1. Intégrer balise H1 ,H2, H3 dans le code source génére par Webaccapela
    Par radmax dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/06/2011, 10h54
  2. [GD] Enregistrer une image générée par PHP sur disque dur
    Par Alex01 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/05/2006, 11h16
  3. Compter nombre lignes générées par GROUP BY
    Par Trunks dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2006, 16h52
  4. [XSL][PHP] Attribut généré par xsl:attrbute
    Par mamat- dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/07/2005, 11h08
  5. Réponses: 2
    Dernier message: 01/06/2004, 15h08

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