<xsl:key> |
Définit un index dans le document actif. L'élément est défini avec trois attributs : un attribut name indiquant un nom pour cet index ; un attribut match représentant une expression XPath qui décrit les nœuds à indexer et un attribut use représentant une expression XPath qui définit la propriété utilisée pour créer l'index.
Catégorie
Elément de niveau supérieur
Attributs obligatoires
name Définit un nom pour cette clé. match Représente une expression XPath qui définit les nœuds à indexer pour cette clé. use Représente une expression XPath qui définit la propriété des nœuds indexés à utiliser pour récupérer des nœuds de l'index.
Attributs facultatifs
Aucun.
Contenu
Aucun. <xsl:key> est un élément vide.
Apparaît dans
L'élément <xsl:key> est un élément de niveau supérieur qui ne peut apparaître que sous forme d'enfant de l'élément <xsl:stylesheet>.
Défini dans
XSLT section 12.2, Clés.
Exemple
La feuille de style suivante définit deux relations <xsl:key> dans un document XML :
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" indent="yes"/>
    <xsl:strip-space elements="*"/>

      <xsl:key name="language-index" match="defn" use="@language"/>
      <xsl:key name="term-ids"       match="term" use="@id"/>

      <xsl:param name="targetLanguage"/>

      <xsl:template match="/">
        <xsl:apply-templates select="glossary"/>
      </xsl:template>

      <xsl:template match="glossary">
        <html>
          <head>
            <title>
              <xsl:text>Glossary Listing: </xsl:text>
              <xsl:value-of select="key('language-index',
            $targetLanguage)[1]/preceding-sibling::term"/>
              <xsl:text> - </xsl:text>
              <xsl:value-of select="key('language-index',
            $targetLanguage)[last()]/preceding-sibling::term"/>
            </title>
          </head>
          <body>
            <h1>
              <xsl:text>Glossary Listing: </xsl:text>
              <xsl:value-of select="key('language-index',
            $targetLanguage)[1]/ancestor::glentry/term"/>
              <xsl:text> - </xsl:text>
              <xsl:value-of select="key('language-index',
            $targetLanguage)[last()]/ancestor::glentry/term"/>
            </h1>
            <xsl:for-each select="key('language-index', $targetLanguage)">
              <xsl:apply-templates select="ancestor::glentry"/>
            </xsl:for-each>
          </body>
        </html>
      </xsl:template>

      ...

    </xsl:stylesheet>
Pour obtenir des informations complètes sur la manière dont cette feuille de style utilise les relations <xsl:key>, voir la Section 5.2.3 duchapitre 5.