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