Variables et paramètres

On définit les variables à l'aide de l'élément <xsl:variable>. Lorsque celui-ci est utilisé en tant qu'élément de haut niveau (top-level), alors son domaine de validité est global. Cependant, si la variable se situe au sein d'un template, alors il s'agit d'une variable locale. Les variables globales sont valables même si elles sont importées dans une autre feuille de style. On peut assigner aux variables une valeur voulue (cependant celle-ci doit être un string), soit grâce à l'attribut select ou soit grâce au contenu de l'élément. L'appel de la valeur s'effectue grâce au caractère $, qui doit être mis devant le nom de la variable.

Le concept des variables est particulièrement important pour la partie pratique du travail avec XSLT. Et ce, à cause de la multitude d'informations contenues dans les feuilles de style et qui, de cette manière, peuvent être gérées centralement. On peut citer, ici, comme exemple la police de caractères. D'une manière générale, la signification de telles variables augmente avec la taille des feuilles de style. L'utilisation de l'élément <xsl:param> correspond, pour l'essentiel, à celle de <xsl:variable>. Les attributs à utiliser sont identiques dans les deux éléments. Nous ne nous attarderons pas, ici, sur les petites différences de fonction des deux éléments.

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:variable name="annonce-poeme"><b>Poème</b></xsl:variable>   (1)
   <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:apply-templates/>
      </h2>
   </xsl:template>
   <xsl:template match="strophe">
      <p>
         <xsl:apply-templates/>
      </p>
   </xsl:template>
   <xsl:template match="vers">
      <xsl:apply-templates/>
      <br/>
   </xsl:template>
   <xsl:template match="poeme">
   <xsl:variable name="annee">
      <xsl:value-of select="@anneeParution"/>                     (2)
   </xsl:variable>
   <br/>
      <xsl:copy-of select="$annonce-poeme"/> de l'année           (3)
      <xsl:value-of select="$annee"/>
         <xsl:apply-templates/>
   </xsl:template>
</xsl:stylesheet>

(1) L'élément <xsl:variable> possède un attribut obligatoire name, qui a le nom des variables en tant que valeur. Ce nom peut être appelé aussi souvent que désiré. Il s'agit, ici, d'une variable globale, valable dans l'ensemble de la feuille de style, puisque que <xsl:variable> est ici un élément top-level, c'est-à-dire un élément enfant de l'élément <xsl:stylesheet>. Le contenu de la variable – dans ce cas, la structure HTML – peut être copié à n'importe quelle place par l'appel.

(2) Il s'agit ici d'une variable locale, valable seulement au sein du template dans lequel elle est définie. Puisque la variable contient select, la valeur de cet attribut sera utilisée comme texte de remplacement, ce qui siginifie que la valeur de l'attribut select fixe le contenu de la variable. Puisque le contenu de la variable annee est purement textuel – ici le contenu de l'attribut anneeParution – et il ne s'agit pas d'une structure, l'appel s'effectue grâce à l'élément <xsl:value-of>. Le caractère $ doit ici également être mis devant le nom de la variable. 

(3) L'élément <xsl:copy-of> permet de copier des structures profondes dans l'arbre de résultat. Au contraire, l'élément <xsl:copy> est utilisé pour copier des structures planes. Ces éléments sont souvent importants pour les feuilles de style XSLT. Le caractère est indispensable devant le nom de la variable, parce que c'est ainsi que le processeur reconnaît qu'il s'agit d'une variable et non d'un élément.

Vue du browser du document cible:

vue du browser: exemple - variables

Exercice 7

Utilisez le concept des variables pour vérifier des strings.

L'ensemble du poème doit être sorti en out-put avec un fond rouge, lorsque le premier caractère de l'attribut anneeParution est un "-".

Remarques:

La fonction starts-with() vérifie si la chaîne de caractères du premier argument commence avec la chaîne de caractère du second argument.
Syntaxe: boolean starts-with (string, string).

L'élément <xsl:attribute> insère un attribut dans le document cible. On définit le nom de l'attribut grâce à l'attribut name. La valeur de l'attribut est le contenu de <xsl:attribute>. Il est le plus souvent utilisé lors de la création d'attributs durant le temps d'exécution. Les valeurs d'attribut sont détectées et insérées à l'aide de l'élément <xsl:value-of>.
Attributs: name, namespace.

> > à solution du exercice 7

   

<< 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