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 :

tranformation xml xksfo fop embarqué


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut tranformation xml xksfo fop embarqué
    Bonjour,

    j’essaie de transformer un fichier xml en pdf avec fop dans une application java dans Eclipse
    j'ai installé dans éclipse le plugin depuis cette adresse
    Exported Repository - http://fappel.github.io/FOP Apache FOP and Dependencies 1.0.0.201501151016
    avec les dépendances prises dans le répertoire lib de FOP 2.0
    Nom : plugin fop dépendnce.png
Affichages : 125
Taille : 49,1 Ko
    1er problème
    quand je mets ces dépendances dans dans le même workspace que la transformation xsl simple j'obtiens un fichier fo incorrect
    alors que quand je les mets les transformations dans 2 workspace distinct cela fonctionne
    2eime probleme
    quand je veux faire faire la transformation xml pdf avec le même fichier xsl par le plugin j'obtiens un document vide avec l'information que le fichier xsl est peut être incorrect

    ma configuration
    windows 10
    éclipse photon
    java 1.8


    merci pour votre aide et pour vos réponses
    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    je viens de m'apercevoir que je reproduit le problème en utilisant la transformation xslt de fop en ligne de commande
    ma feuille de style est incorrect,
    je ne m'en étais jamais rendu compte

    merci pour votre aide et vos réponse

    cordialement,
    Gilbert Pêche

  3. #3
    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
    Effectivement la feuille xslt est incorrecte. Avant de sauter aux conclusions sur Eclipse, plug-in, programme java, il faut la corriger, et c'est logique.

    Les éléments pages, page, nomCours, annee, jour, jour/nom etc sont tous vécus dans le namespace http://www.exampe.org/listeCours. Dans le document xslt, effectivement, on a déclaré un préfixe tns pour ça et dans le xml cours. Même tns et cours sont différents, ce n'est pas génant et c'est normal parce que le préfixe n'est pas générique, le uri du namespace est.

    Il faut, donc, réécrire toutes ces lignes, prenant des examples (pas exhaustives):
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!--
    <xsl:template match="/pages">
    -->
    <xsl:template match="/tns:pages">
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!--
    <xsl:for-each select="page">
    -->
    <xsl:for-each select="tns:page">
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!--
    <xsl:for-each select="dates">
    -->
    <xsl:for-each select="tns:dates">
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!--
    <xsl:value-of select="concat(jour/nom, ' ' , jour/numero, ' ', mois, ' ',  annee)"/>
    -->
    <xsl:value-of select="concat(tns:jour/tns:nom, ' ' , tns:jour/tns:numero, ' ', tns:mois, ' ',  tns:annee)"/>
    etc. Voilà !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    merci pour votre réponse

    j'ai corrigé ma feuille de style et la transformation xml pdf fonctionne

    par contre j'ai toujours mes problèmes avec éclipse

    cordialement,
    Gilbert Pêche

  5. #5
    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
    Merci pour informer le forum et aussi pour soulever la question - je garde un intérêt sur l'approche de la fonctionnalité. Il vaut mieux, bien entendu, de poser la question à l'auteur membre de Github. Je vais y regarder aussi un peu plus mais ça prendrait du temps par la nature de technicité. Pourtant, je m'interesse que vous faites état des questions:
    1er problème
    quand je mets ces dépendances dans dans le même workspace que la transformation xsl simple j'obtiens un fichier fo incorrect
    alors que quand je les mets les transformations dans 2 workspace distinct cela fonctionne
    Est-ce que fo devient correct après le xslt corrigé ? et est-ce que quand vous dites "cela fonctionne" fonctionne pleinment fo et pdf, après ? ou même avant comme dit, vraiment ?

    2eime probleme
    quand je veux faire faire la transformation xml pdf avec le même fichier xsl par le plugin j'obtiens un document vide avec l'information que le fichier xsl est peut être incorrect
    Est-ce que le document (fo? ou pdf?) est encore vide après le xslt corrigé ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    je vous remercie pour votre réponse

    jusqu'à présent j'utilisais la transformation xslt fourni avec le jdk 1.6 pour transformer le fichier xml en fichier FO avec des feuilles de style sans namespace et cela fonctionnait
    ensuite je transformais le fichier FO en PDF par un appel à FOP.BAT par un proscess runtime
    depuis le jdk 1.8 certaines transformation ne fonctionnent plus et produisent un fichier FO corrompu (voir ci dessous) : il n'y a plus que les données xml dans le fichier fo tout le formatage FO a disparu

    pour corriger le problème j'ai entrepris d'appeler le plugin éclipse FOP en lui fournissant le fichier XML et la feuille de style avec le namespace et cela fonctionne


    je crois que je vais en rester là et mettre le problème résolu

    Cordialement,
    Gilbert Pêche

    PS toutefois voici le contenu du fichier fo obtenu (je n'arrive pas à le mettre en pièces jointe) en utilisant la transformation xslt fourni avec le jdk (javax.xml.transform.Transformer)


    <?xml version="1.0" encoding="UTF-8"?>

    Mercredi Semaine 1
    après-midi
    mercredi
    14h-16h


    1


    mercredi
    4

    octobre
    2017



    mercredi
    1

    novembre
    2017



    mercredi
    6

    décembre
    2017

  7. #7
    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
    Cela m'étonnerait si le code java utilisant api's javax.xml.tranform... résulte un document fo comme montré dans le PS - c'est typique que la transformation ait raté. Avec jdk1.6 ou 1.8, le même, il ne faut pas faire confiance aux xerces et xalan qui viennent avec; il faut _toujours_ appeler aux xerces et xalan à jour qui soient d'Apache ou d'autres réputés. Et c'est fait aussi de l'approche modulaire que vous référez et aussi le plugin d'équinox. On devrait obtenir quelque chose du genre:
    Code xml : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?xml version="1.0" encoding="utf-8"?>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:tns="http://www.example.org/listeCours">
      <fo:layout-master-set>
        <fo:simple-page-master margin-right="5mm" margin-left="5mm" margin-bottom="5mm" margin-top="5mm" page-height="210mm" page-width="297mm" master-name="A4">
          <fo:region-body margin="0cm"/>
          <fo:region-before extent="0cm"/>
          <fo:region-after extent="0cm"/>
          <fo:region-start extent="0cm"/>
          <fo:region-end extent="0cm"/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="A4">
        <fo:flow flow-name="xsl-region-body">
          <fo:block border="0.5pt solid #CCCCCC" space-after="0mm" space-before="0cm" color="black" font-family="Verdana" font-size="24pt">
            <fo:external-graphic src="file:///Users/Gilbert/Documents/Atelier%20Myosotis/Images/myosotis2012.jpg"/>
            <fo:external-graphic src="file:///Users/Gilbert/Documents/Atelier%20Myosotis/Images/atelier_myosotis_banniere.jpg"/>
          </fo:block>
          <fo:block text-align="center" space-after="10mm" space-before="5mm" color="black" font-family="Verdana" font-size="24pt">Mercredi Semaine 1 - après-midi - le mercredi à 14h-16h</fo:block>
          <fo:block space-after="0mm" space-before="0cm" color="black" font-family="Verdana" font-size="24pt"/>
          <fo:block border="0.5pt solid #CCCCCC" space-after="0mm" space-before="20mm" color="black" font-family="Verdana" font-size="16pt">
            <fo:table width="100%" table-layout="fixed">
              <fo:table-column column-width="33%"/>
              <fo:table-column column-width="33%"/>
              <fo:table-column column-width="33%"/>
              <fo:table-body>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 4 octobre 2017</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 1 novembre 2017</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 6 décembre 2017</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 3 janvier 2018</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 7 février 2018</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 7 mars 2018</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 4 avril 2018</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 9 mai 2018</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block space-after="0mm" space-before="0mm" color="black" font-family="verdana" font-size="11pt">mercredi 6 juin 2018</fo:block>
                  </fo:table-cell>
                </fo:table-row>
              </fo:table-body>
            </fo:table>
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
      <fo:page-sequence master-reference="A4">
        <!-- deuxième page tout à fait similaire -->
      </fo:page-sequence>
    </fo:root>
    Et puis le rendement pdf s'est fait avec org.apache.fop.apps... ne devrait pas poser problème pour le fo comme ça sans attributs qui supportent mal en fop 2+ d'Apache. Je fais une vérification rapide et voici ce qui ressemble la première page sans graphiques.
    Nom : pdf_p1_sans_graphique.png
Affichages : 102
Taille : 14,2 Ko
    Il ne faut pas croire jdk1.8 soit particulièrement problématique à cet égard : il faut dire que jdk's soient problématiques depuis presque toujours en xerces et xalan. Il faut appeler aux fournisseurs tiers comme Apache. Voilà ce que je pense.

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

Discussions similaires

  1. [XML] tranformation xml en html XML READER
    Par knebhi dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 16/02/2010, 12h54
  2. probleme avec le trio xml/xsl/fop
    Par snetechen dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 30/04/2007, 08h37
  3. Création d'un pdf avec xml et fop
    Par gwendo dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 31/07/2006, 10h19
  4. [FOP] Transformation XML to PDF par FOP
    Par JustAGphy dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 12/05/2004, 16h19
  5. [XML][XSL][FOP] transformation xml avec fop
    Par Le Marlou dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 05/12/2003, 17h58

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