<xsl:include> 要素
他の XSLT ファイルをインクルードします。
<xsl:include
href = "uri-reference"/>
属性
- href
必須。 インクルードされる XSLT ファイルを識別する URI (Uniform Resource Identifier) 参照。
要素情報
出現回数 |
無制限 |
親要素 |
|
子要素 |
(子要素はありません) |
解説
XSLT ファイルは、<xsl:include>
要素を使って他の XSLT ファイルをインクルードできます。 href
属性値は、インクルードされるファイルを識別する URI 参照です。 相対 URI は、<xsl:include>
要素の base URI との関係によって解決されます。
<xsl:include>
要素は、<xsl:stylesheet>
要素の子要素としてのみ使用できます。
インクルードは、ツリー レベルで行われるときと同様に、Microsoft® XML コア サービス (MSXML) で処理されます。 これは、XML ツリーのドキュメント オブジェクト モデル (DOM) ビューとは異なります。 href
属性値によって検索されたリソースは、XML ドキュメントとして解析され、そのドキュメントの <xsl:stylesheet>
要素の子要素によって、インクルードする側のドキュメントの <xsl:include>
要素が置き換えられます。 <xsl:import>
の場合と異なり、インクルードされるテンプレート規則のインポート優先順位は、インクルードする側のスタイル シートのテンプレート規則のインポート優先順位と同じになります。 したがって、1 つの要素に対応するテンプレート規則が、インクルードする側のスタイル シートにもインクルードされるスタイル シートにも含まれている場合は、ドキュメント順に従ってどちらかのテンプレートが呼び出されます。 インクルードする側のスタイル シートのテンプレートが、インクルードされるテンプレートの後にあれば、前者が呼び出されます。 それ以外の場合は、後者が呼び出されます。
XSLT ファイルが自身を直接または間接的にインクルードすると、エラーが発生します。
XSLT ファイルを複数回インクルードすると、定義が重複するため、エラーが発生することがあります。 インクルードが間接的に行われると、このような複数回のインクルードがわかりにくくなります。 たとえば、A、B、C、D がすべて XSLT ファイルであるとします。 次のように、ファイル B、C、D に他の XSLT ファイルをインクルードします。
B は A をインクルードします。
C は A をインクルードします。
D は B と C の両方をインクルードします。
この結果、XSLT ファイル D は、間接的に XSLT ファイル A を 2 回インクルードすることになります。 このエラーを回避するには、(A のインクルードを除く) B 内のすべてを別の XSLT ファイル B1 に移し、B1 と A がインクルードされるように B を変更します。 さらに、同様の方法で C を変更し、最後に、A、B1、C1 がインクルードされるように D を変更します。
例
次のトピックでは、<xsl:include>
の使用例を紹介します。