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 FOP


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Probleme FOP
    J'utilise FOP (sous Cocoon) pour transformer des pages XML en pages PDF à l'aide d'une feuille de style XSL(-FO).
    J'ai un problème récurrent lors de la transformation de certaines pages alors que d'autres pages s'affichent sans probleme en utilisant la meme feuille de style.
    J'ai le message suivant :

    java.lang.RuntimeException: org.apache.fop.apps.FOPException: inline formatting objects cannot be directly under flow

    Je ne comprends pas du tout ce charabiat. Quelqu'un peut m'aider à dechiffrer l'erreur?

    Voici un exemple de page qui "foire" :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
      <?xml version="1.0" encoding="ISO-8859-1" ?> 
    - <page id="telecom">
      <title>Réseaux et télécoms</title> 
    - <actions>
      <print /> 
      <xml /> 
      <pdf /> 
      </actions>
    - <content>
      <subtitle>Des idées pour communiquer !</subtitle> 
    - <para>
      <et>eTransparence</et> 
      effectue une étude des besoins du client en matière de transfert d'information. 
      </para>
    - <para>
      Les techniciens d' 
      <et>eTransparence</et> 
      réalisent sur chantier des systèmes de liaison (câble Cuivre, câble Fibre Optique, Liaison Radio, Liaison Laser,...) : 
      </para>
    - <ul>
    - <li>
      Réalisation des 
      <b>câblages</b> 
      en catégorie 5+, 6 et 7. 
      </li>
    - <li>
      Câblage des centraux, 
      <b>PABX</b> 
      (centraux téléphoniques privés). 
      </li>
      <li>Câblage d'armoire et d'équipement pour des systèmes très basse tension.</li> 
      </ul>
    - <para>
      <et>eTransparence</et> 
      sélectionne les équipements nécessaires au transport de l'information sur les supports physiques précités. Les informations peuvent être de type IP, téléphoniques, vidéos ou de commande. 
      </para>
      <subtitle>Envie de prendre l'air ?</subtitle> 
      <para>Maximisez votre mobilité grâce aux réseaux sans fil.</para> 
      <img src="images/wireless.gif" alt="eTransparence Wireless" /> 
    - <ul>
    - <li>
      Réalisation de 
      <link type="external" href="http://www.lesite.net/wireless/wlintro.php3">WLAN</link> 
      (Wireless Local Area Network). 
      </li>
      <li>Vente de solutions Wireless.</li> 
      <li>Sécurisation.</li> 
      </ul>
    - <para>
      Exemple d'un réseau regroupant diverses technologies réseaux, réalisé par 
      <et>eTransparence</et> 
      : 
      </para>
      <img src="images/mini_infratel.gif" href="images/infratel.gif" alt="Cliquez sur l'image miniature pour plus de détails..." /> 
      <para>Le schéma ci-dessus regroupe trois sites reliés par des moyens "privés" WaveLan et Ligne Louée véhiculant le trafic voix et data (un seul canal par lequel toutes les informations circulent).</para> 
      <para>Au niveau de la téléphonie, la téléphonie digitale est utilisée au sein d'un même site, la téléphonie sur IP est quant à elle utilisée pour relier les communications téléphoniques entre sites (il n'existe aucun coût de communication entre les sites).</para> 
      <para>Internet et les communications téléphoniques sont joignables via le site 1 auquel sont connectés les autres sites.</para> 
      </content>
      </page>
    et voici ma feuille de style tout ce qu'il y a de plus simple :

    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
    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
    68
    69
    70
    71
    72
    73
    74
    <?xml version="1.0"?>
     
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:fo="http://www.w3.org/1999/XSL/Format">
     
      <xsl:template match="/">
       <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
     
        <fo:layout-master-set>
         <fo:simple-page-master master-name="page"
                      page-height="29.7cm" 
                      page-width="21cm"
                      margin-top="1cm" 
                      margin-bottom="2cm" 
                      margin-left="2.5cm" 
                      margin-right="2.5cm">
           <fo:region-before extent="3cm"/>
           <fo:region-body margin-top="3cm"/>
         </fo:simple-page-master>
     
         <fo:page-sequence-master master-name="all">
           <fo:repeatable-page-master-alternatives>
    	 <fo:conditional-page-master-reference master-reference="page" page-position="first"/>
           </fo:repeatable-page-master-alternatives>
         </fo:page-sequence-master>
        </fo:layout-master-set>
     
        <fo:page-sequence master-reference="all">
          <fo:flow flow-name="xsl-region-body">
            <xsl:apply-templates/>
          </fo:flow>
        </fo:page-sequence>
       </fo:root>
      </xsl:template>
     
      <xsl:template match="title">
        <fo:block font-size="36pt" text-align="center"><xsl:value-of select="."/></fo:block>
      </xsl:template>
     
      <xsl:template match="subtitle">
        <fo:block font-size="20pt" space-before.optimum="12pt" text-align="left"><xsl:value-of select="."/></fo:block>
      </xsl:template>
     
      <xsl:template match="para">
        <fo:block font-size="12pt" space-before.optimum="12pt" text-align="left"><xsl:apply-templates/></fo:block>
      </xsl:template>
     
       <xsl:template match="b">
        <fo:inline font-weight="bold"><xsl:value-of select="."/></fo:inline>
      </xsl:template>
     
      <xsl:template match="et">
        <fo:inline font-weight="bold" color="maroon"><xsl:value-of select="."/></fo:inline>
      </xsl:template>
     
     <xsl:template match="link[@type='external']">
       <fo:basic-link text-decoration="underline" color="#213B58">
        <xsl:attribute name="external-destination">
     		<xsl:value-of select="@href"/>
        </xsl:attribute>
        <xsl:value-of select="."/>
      </fo:basic-link>
     </xsl:template>
     
      <xsl:template match="img|ico">
       <fo:external-graphic>
        <xsl:attribute name="src">
         <xsl:value-of select="@src"/>
        </xsl:attribute>
       </fo:external-graphic>
      </xsl:template>
     
    </xsl:stylesheet>
    Merci
    ^^^:::VINCH:::^^^
    http://www.vimadesign.net

  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,

    je ne vois pas dans ta feuille de style les templates gérant les listes (<ul>) et leurs éléments (<li>). La conséquence est que leur contenu doit être restitué tel quel dans le flux, avec éventuellements des balises inline (<b>), d'où protestation de FOP.
    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 à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Exactement, je me suis rendu compte de ça.
    fo:inline doit se trouver dans un bloc.
    A présent j'ai géré les listes et tout est rentré dans l'ordre
    ^^^:::VINCH:::^^^
    http://www.vimadesign.net

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

Discussions similaires

  1. [XSL-FO]Probleme avec FOP
    Par clairepar dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 26/02/2008, 21h54
  2. Probleme avec fop 0.93
    Par saidino dans le forum Documents
    Réponses: 1
    Dernier message: 21/07/2007, 09h23
  3. 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, 07h37
  4. [FOP] probleme java.lang.OutOfMemoryError
    Par Méta dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 27/11/2006, 15h59
  5. [FOP] Probleme config avec cooktop
    Par jaktok dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 31/08/2006, 23h09

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