<xsl:namespace-alias> |
名前空間を直接使用すると処理が複雑になる場合に、名前空間のエイリアスを定義できます。この使用頻度が低い要素を使用すると、別のスタイルシートを生成するスタイルシートを最も簡単に作成できます。
カテゴリ
トップレベル要素
必須の属性
stylesheet-prefix 名前空間を参照するスタイルシートで使用される接頭辞を定義します。 result-prefix エイリアスで参照される名前空間の接頭辞を定義します。この接頭辞は、スタイルシートの要素で使用されているかどうかに関係なく、スタイルシートで宣言する必要があります。
省略可能な属性
なし。
コンテンツ
なし。<xsl:namespace-alias> は空の要素です。
指定先
<xsl:stylesheet>。<xsl:namespace-alias> は、トップレベル要素であり、<xsl:stylesheet> の子としてのみ使用できます。
定義先
XSLT 7.1.1 節「リテラル結果要素」
例
この要素の使用頻度は高くありませんが、別の XSLT スタイルシートを生成する XSLT スタイルシートが複雑な場合に使用します。このテストケースでは、ID 変換を生成するスタイルシートが作成されます。このスタイルシートは、単に結果ツリーに入力ドキュメントをコピーします。名前空間エイリアスを使用する元のスタイルシートを次に示します。
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:xslout="(the namespace URI doesn't matter here)">

      <xsl:output method="xml" indent="yes"/>

      <xsl:namespace-alias stylesheet-prefix="xslout"
        result-prefix="xsl"/>

      <xsl:template match="/">
        <xslout:stylesheet version="1.0">
          <xslout:output method="xml"/>
          <xslout:template match="/">
            <xslout:copy-of select="."/>
          </xslout:template>
        </xslout:stylesheet>
      </xsl:template>

    </xsl:stylesheet>
このスタイルシートを XML ドキュメントに適用すると、新しいスタイルシートが作成されます。
    <?xml version="1.0" encoding="UTF-8"?>
    <xslout:stylesheet xmlns:xslout="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
    <xslout:output method="xml"/>
    <xslout:template match="/">
    <xslout:copy-of select="."/>
    </xslout:template>
    </xslout:stylesheet>
この生成したスタイルシートを使用して XML ドキュメントをコピーできます。元のスタイルシートでは、処理する XSLT 要素と、出力に渡すリテラルとして処理する XSLT 要素を XSLT プロセッサで識別する方法が他にないため <xsl:namespace-alias> を使用しています。名前空間エイリアスを使用すると、出力で必要な XSLT 要素を生成できます。結果ドキュメントでは、<xslout:stylesheet> 要素を使用して正しい名前空間の値が自動的に宣言されます。