<xsl:param> |
Définit le nom et la valeur d'un paramètre qui doit être utilisé par un modèle. Cet élément peut apparaître comme un élément de niveau supérieur ou dans l'élément <xsl:template>. Si l'élément <xsl:param> apparaît comme élément de niveau supérieur, il s'agit d'un paramètre global visible dans toutes les zones de la feuille de style. La valeur de ce paramètre peut être définie de l'une des deux manières suivantes : spécifiée dans l'attribut select, ou bien définie dans un modèle XSLT dans l'élément <xsl:param> lui-même.
Catégorie
Instruction
Attributs obligatoires
name Définit le nom de ce paramètre.
Attributs facultatifs
select Contient une expression XPath qui définit la valeur de ce paramètre.
Contenu
Si l'attribut select est utilisé, <xsl:param> doit être vide. Sinon, il contient un modèle XSLT.
Apparaît dans
<xsl:stylesheet> et <xsl:template>. Si un élément <xsl:param> apparaît comme un enfant de l'élément <xsl:stylesheet>, il s'agit alors d'un paramètre global visible dans toute la feuille de style. XSLT ne définit pas la manière dont les paramètres globaux sont transmis au processeur XSLT, par conséquent, consultez la documentation pour connaître la procédure à suivre par votre processeur. (voir Section 4.4.3 duchapitre 4 pour découvrir comment transmettre des paramètres aux processeurs XSLT les plus courants).
Défini dans
XSLT section 11, Variables et paramètres.
Exemple
La feuille de style suivante définit plusieurs éléments <xsl:param>, aussi bien locaux que globaux. L'un des paramètres est un ensemble de nœuds ; les paramètres peuvent être de tout type de données XPath ou XSLT :
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:param name="favoriteNumber" select="23"/>
      <xsl:param name="favoriteColor"/>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:value-of select="list/title"/>
        <xsl:value-of select="$newline"/>
        <xsl:variable name="listitems" select="list/listitem"/>
        <xsl:call-template name="processListitems">
          <xsl:with-param name="items" select="$listitems"/>
          <xsl:with-param name="color" select="'yellow'"/>
          <xsl:with-param name="number" select="$favoriteNumber"/>
        </xsl:call-template>
      </xsl:template>

      <xsl:template name="processListitems">
        <xsl:param name="items"/>
        <xsl:param name="color" select="'blue'"/>

        <xsl:for-each select="$items">
          <xsl:value-of select="position()"/>
          <xsl:text>.  </xsl:text>
          <xsl:value-of select="."/>
          <xsl:value-of select="$newline"/>
        </xsl:for-each>

        <xsl:value-of select="$newline"/>

        <xsl:text>Your favorite color is </xsl:text>
        <xsl:value-of select="$favoriteColor"/>
        <xsl:text>.</xsl:text>
        <xsl:value-of select="$newline"/>
        <xsl:text>The color passed to this template is </xsl:text>
        <xsl:value-of select="$color"/>
        <xsl:text>.</xsl:text>
        <xsl:value-of select="$newline"/>
      </xsl:template>

    </xsl:stylesheet>
La feuille de style est utilisée pour transformer le document suivant :
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Les résultats sont les suivants :
    A few of my favorite albums
    1.  A Love Supreme
    2.  Beat Crazy
    3.  Here Come the Warm Jets
    4.  Kind of Blue
    5.  London Calling
    6.  Remain in Light
    7.  The Joshua Tree
    8.  The Indestructible Beat of Soweto

    Your favorite color is purple.
    The color passed to this template is yellow.
Pour générer ces résultats, la valeur purple a été transmise au processeur XSLT. Avec Xalan, la méthode de transmission de la valeur est la suivante :
    java org.apache.xalan.xslt.Process -in test4.xml -xsl param.xsl
      -param favoriteColor purple
(la commande doit tenir sur une seule ligne.) VoirSection 4.4.3 duchapitre 4 pour des informations plus détaillées sur les paramètres globaux et leur méthode de définition pour de nombreux processeurs XSLT.