Numérotation

Dans l'arbre de resultat, on assigne des séquences aux noeuds grâce à l'élément <xsl:number>. On peut, de telle manière, numéroter les chapitres, les paragraphes ou de simples éléments. Il est aussi possible de créer différents niveaux de numérotation, et de définir le formatage de sortie. On peut générer, à l'aide de l'attribut format, une numérotation avec des chiffres arabes ou romains ou bien encore avec des lettres.

Dans la pratique, l'élément <xsl:number> possède trois attributs couramment utilisés: count, level et format. L'attribut count détermine quels noeuds doivent être comptés, level définit la façon de compter et format définit, comme son nom l'indique, le format de l'affichage.

La feuille de style:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output encoding="iso-8859-1" version="1.0"/>
   <xsl:template match="recueilPoemes">
      <html>
         <body>
            <xsl:apply-templates/>
         </body>
      </html>
   </xsl:template>
   <xsl:template match="auteur">
      <br/>
      <h4>
         <xsl:apply-templates/>
      </h4>
   </xsl:template>
   <xsl:template match="prenom">
      <xsl:apply-templates/>
      <xsl:text> </xsl:text>
   </xsl:template>
   <xsl:template match="nomFamille">
      <xsl:apply-templates/>
   </xsl:template>
   <xsl:template match="titre">
      <h2>
         <xsl:number format="I" level="any"/>     (1)
         <xsl:text> </xsl:text>                   (2)
         <xsl:apply-templates/>
      </h2>
   </xsl:template>
   <xsl:template match="strophe">
      <p>
         <b>Strophe <xsl:number/></b>
         <br/>
         <xsl:apply-templates/>
      </p>
   </xsl:template>
   <xsl:template match="vers">
      <b>Vers <xsl:number level="multiple" count="//strophe | //strophe/vers" format="1.1"/></b> (3)
      <br/>
      <xsl:apply-templates/>
      <br/>
   </xsl:template>
   <xsl:template match="poeme">
      <br/>
      <xsl:apply-templates/>
   </xsl:template>
</xsl:stylesheet>

(1) Dans ce template, on utilise l'élément <xsl:number> afin de numéroter le poème. Selon le paramètrage de base de l'attribut format, la numérotation s'effectue en chiffres arabes. La valeur I permet une numérotation en chiffres romains. 

Tous les éléments poeme, sont comptés à tous les niveaux, parce que l'attribut level, avec la valeur any, ne prend pas en compte la structure. 

(2) L'élément <xsl:text> permet de copier des textes dans le document cible. À ce stade, ceci est tout à fait possible sans cet élément, toutefois, ce dernier est très souvent utilisé en relation avec XSL-FO, en ce qu'il permet, par exemple, de contrôler précisément les caractères espaces, en tant que composants du texte à émettre.

(3) L'élément <xsl:number> est ici utilisé avec les trois attributs les plus importants. L'attribut level indique lequel des comptages doit être appliqué: single, c.-à-d. simple, ou multiple, c.-à-d. sous la forme (1., 1.1, 1.2, ...). L'attribut format détermine le formatage. Les valeurs qui peuvent être combinées sont 1, a, A, i et I. Chaque niveau est séparé grâce à un caractère. Dans notre exemple, nous utilisons le caractère "point", mais d'autres séparateurs peuvent être employés. L'attribut count détermine, à quel niveau, tel élément doit être compté. On utilise le caractère | en tant que séparateur de niveau.

Vue du browser du document cible:

vue du browser: exemple - numérotation

Exercice 6

a) Veuillez compléter l'exemple, de telle manière, que dans les vers, la numérotation romaine du poème apparaisse, par exemple: Vers I.3.4.

b) Réécrivez la feuille de style, afin qu'apparaisse une numérotation continue du nombre de ligne. Le dénombrememt doit comprendre tous les textes qui sont affichés.

> > aux solutions du exercice 6

   

<< précédent suivant >>

 


Copyright © dpunkt.verlag GmbH 2004
Vous pouvez imprimer cette version en ligne pour un usage privé. Par ailleurs, ce chapitre du livre "XSL-FO in der Praxis" est soumis aux mêmes clauses prévues pour la version papier: L'intégralité de l'œuvre est protégée par les droits d'auteurs. Tous droits réservés y compris la copie, la traduction, la reproduction sur microfilm, tout comme l'enregistrement et le traitement dans des systèmes électroniques.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, téléphone +49 (0)6221-14830, fax +49 (0)6221-148399, hallo(at)dpunkt.de