<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> 要素を使用して正しい名前空間の値が自動的に宣言されます。