<xsl:key>  
Diese Anweisung definiert einen Index zu dem aktuellen Dokument. Das Element wird durch drei Attribute definiert: ein name, der den Index benennt; der XPath-Ausdruck match, der die zu indizierenden Knoten beschreibt, und der XPath-Ausdruck use, der die zum Erstellen des Index verwendete Eigenschaft definiert.
 
Kategorie

Element der obersten Ebene

 
Obligatorische Attribute
name
Dieses Attribut definiert einen Namen für diesen Schlüssel.

match
Dieses Attribut repräsentiert einen XPath-Ausdruck, der die Knoten definiert, die von diesem Schlüssel indiziert werden sollen.

use
Dieses Attribut repräsentiert einen XPath-Ausdruck, der die Eigenschaft des indizierten Knoten definiert, die zum Abrufen der Knoten aus dem Index verwendet wird.

 
Optionale Attribute

Keine

 
Inhalt

Keiner. <xsl:key> ist ein leeres Element.

 
Übergeordnetes Element

<xsl:key> ist ein Element der obersten Ebene und kann nur dem Element <xsl:stylesheet> untergeordnet werden.

 
Definition

XSLT-Abschnitt 12.2, Schlüssel

 
Beispiel

Hier ein Stylesheet, das zwei <xsl:key>-Relationion zu einem XML-Dokument definiert:

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