appel d'un template xsl-fo !

appel d'un template xsl-fo ! - XML/XSL - Programmation

Marsh Posté le 18-08-2008 à 15:08:50    

bonjour...
je cherche comment appeler le templates suivant dans un endroit precis :
 

Citation :

<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
    <xsl:template match="/">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
            <fo:layout-master-set>
                 <fo:simple-page-master master-name="default-page" page-height="11in" page-width="8.5in" margin-left="0.1in" margin-right="0.013in" margin-top="0.01in" margin-bottom="0.1in">
                    <fo:region-body/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="default-page">
                <fo:flow flow-name="xsl-region-body">
                  "je voudrais appeler ce templates dans cet endroit"
                    <fo:block>
                        <fo:block>
                            <fo:block>
                                <fo:inline font-size="16pt" font-weight="bold">
                                    <xsl:text>Liste des clients :</xsl:text>
                                </fo:inline>
                            </fo:block>
                            <fo:block>
                                <xsl:text> </xsl:text>
                            </fo:block>
                            <fo:block>
                                <xsl:for-each select="/file/personne[NATURE=4]">
                                                    <xsl:value-of select="PERS_LIB"/>
                                </xsl:for-each>
        <fo:block>
                                <xsl:text> </xsl:text>
                            </fo:block>
                            </fo:block>
                        </fo:block>
                    </fo:block>
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>
</xsl:stylesheet>


 
le but et de concevoir plusieurs feuilles de styles pour par la suite les assembler dans une seule feuille de style.
merci bien.

Reply

Marsh Posté le 18-08-2008 à 15:08:50   

Reply

Marsh Posté le 23-08-2008 à 10:46:06    

J'avoue que je comprends pas trop ce que tu veux faire... ceci dit j'ai fait pas mal de xsl:fo...
 
Il faut pas essayer de tout goupiller dans un template qui va rapidement devenir monstrueux. Il faut par contre bien maîtriser les transformations xslt avant de s'attaquer à xslfo...  :whistle:  
 


  <xsl:template match="/">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
         
          <!-- ici on décrit la structure du document et des pages ( entête, corps, pied de page)-->  
 
      </fo:layout-master-set>
 
      <xsl:apply-templates select="paragraph"/><!-- sélectionner la partie du xml qu'on veux transformer -->
    </fo:root>
  </xsl:template>


 
Le template racine ( "/" ) est idéal pour déclarer la mise-en-page comme tu l'as fait également. Après la déclaration on amorce la transformation en sélectionnant un élément de l'xml. Dans le template de l'élément on peut ensuite détailler...
 


  <xsl:template match="paragraph">
    <fo:block xsl:use-attribute-sets="bl.basics">
      <xsl:apply-templates /><!-- transforme les enfants de paragraph -->
    </fo:block>
  </xsl:template>
 
  <xsl:template match="sup">
    <fo:inline baseline-shift="super"><xsl:apply-templates/></fo:inline>
  </xsl:template>
 
  <xsl:template match="sub">
    <fo:inline baseline-shift="sub"><xsl:apply-templates/></fo:inline>
  </xsl:template>
 
  <xsl:template match="b">
    <fo:inline font-weight="bold"><xsl:apply-templates/></fo:inline></xsl:template>
 
  <xsl:template match="i">
    <fo:inline font-style="italic"><xsl:apply-templates/></fo:inline></xsl:template>
 
  <xsl:template match="u">
    <fo:inline text-decoration="underline"><xsl:apply-templates/></fo:inline></xsl:template>
 


 
Pour bien saisir la philosophie fo il ne faut pas hésiter à consulter les nombreux exemples disponible sur le net et de commencer avec des transformations simples. La syntaxe fo est assez obscure et 'verbeuse' ce qui la rend moins évidente à maîtriser.
 
Je t'apprends sans doute rien en disant qu'il est possible de convertir ensuite le fichier fo en pdf avec FOP...


Message édité par avander le 23-08-2008 à 10:53:49
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed