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