<xsl:key> |
現在のドキュメントに対するインデックスを定義します。この要素は、name (このインデックスの名前を指定)、match (インデックスが作成されるノードを定義する XPath 式)、および use (インデックスの作成に使用するプロパティを定義する XPath 式) の 3 つの属性を使用して定義します。
カテゴリ
トップレベル要素
必須の属性
name このキーの名前を定義します。 match このキーによってインデックスを作成するノードを定義する XPath 式を指定します。 use インデックスからノードを取得するために使用する、インデックスが作成されたノードのプロパティを定義する XPath 式を指定します。
省略可能な属性
なし。
コンテンツ
なし。<xsl:key> は空の要素です。
指定先
<xsl:key> は、トップレベル要素であり、<xsl:stylesheet> の子としてのみ使用できます。
定義先
XSLT 12.2 節「キー」
例
次のスタイルシートでは、XML ドキュメントに対する 2 つの <xsl:key> の関係を定義しています。
    <?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>
このスタイルシートでの <xsl:key> の関係の使用方法に関する詳細については、第 5 章 5.2.3 節を参照してください。