<xsl:import> 要素
他の XSLT ファイルをインポートします。
<xsl:import
href = "uri-reference" />
属性
- href
必ず指定します。インポートする XSLT ファイルを識別する URI (Uniform Resource Identifier) 参照。
要素情報
出現回数 |
無制限 |
親要素 |
|
子要素 |
(子要素はありません) |
解説
<xsl:import>
要素を使って XSLT ファイルに他の XSLT ファイルをインポートできます。XSLT ファイルのインポートは、XSLT ファイルのインクルー ドと同様ですが、インポートする側のファイルの定義とテンプレート規則が、インポートされる側の XSLT ファイルの定義とテンプレート規則より優先される点が異なります。<xsl:import>
要素は、href
属性を持っています。この属性の値は、インポートするスタイル シートを識別する URI 参照です。相対 URI は、<xsl:import>
要素のベース URI を基準として解決されます。
<xsl:import>
要素は必ず最上位の要素でなければなりません。<xsl:import>
要素の子は、<xsl:include>
要素の子を含む <xsl:stylesheet>
要素の他のすべての要素の子より優先させる必要があります。<xsl:include>
を使ってスタイル シートをインクルードした場合、インクルードされたドキュメント内のすべての <xsl:import>
要素は、インクルードされたドキュメント内の既存のすべての <xsl:import>
要素に従って、インクルードされたドキュメント内で上位に移動します。
<xsl:import>
要素が含まれたスタイル シートの処理中に検出された <xsl:stylesheet>
要素は、インポート ツリーを形成するものとして扱われます。インポート ツリーでは、個々の <xsl:stylesheet>
要素が、その要素に含まれている <xsl:import>
要素ごとに 1 つのインポートの子を持ちます。すべての <xsl:include>
要素は、インポート ツリーの構築前に解決されます。インポート ツリーの後順走査 (つまり、<xsl:stylesheet>
要素がその要素のインポートの子の後で出現するインポート ツリーの走査) で、インポート ツリー内のある <xsl:stylesheet>
要素が同じインポート ツリー内の他の <xsl:stylesheet>
要素の前に出現する場合、その <xsl:stylesheet>
要素は、他の要素より低いインポート優先順位を持っていると定義されます。定義とテンプレート規則のインポート優先順位は、定義とテンプレート規則が含まれている <xsl:stylesheet>
要素によって決まります。
たとえば、次の条件が満たされているとします。
XSLT ファイル A が XSLT ファイル B と XSLT ファイル C をこの順序でインポートする。
XSLT ファイル B が XSLT ファイル D をインポートする。
XSLT ファイル C が XSLT ファイル E をインポートする。
この場合、インポート優先順位は、低い方から順に D、B、E、C、A になります。
注意
<xsl:import>
要素は、定義またはテンプレート規則の前に出現する必要があるため、<xsl:import>
要素を検出した時点でインポートされた XSLT ファイルを処理する実装では、インポート優先順位が高くなる順に定義とテンプレート規則が検出されます。
通常は、インポート優先順位の高い定義やテンプレート規則の方がインポート優先順位の低い定義やテンプレート規則より優先されます。各種の定義とテンプレート規則について、優先順位が詳細に定義されています。
XSLT ファイルが自分自身を直接または間接的にインポートすると、エラーが発生します。それ以外の場合は、特定の URI を持った 1 つの XSLT ファイルを複数の場所にインポートする操作が特別に扱われることはありません。インポート ツリーは、インポートする場所ごとに、別々の <xsl:stylesheet>
要素を持ちます。
注意
<xsl:apply-imports>
を使用したときの動作は、インポート優先順位が最も高い場所だけに XSLT ファイルをインポートしたときの動作と異なることがあります。
XSLT ファイル (importer.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:import href="article.xsl"/>
<xsl:import href="bigfont.xsl"/>
<xsl:attribute-set name="note-style">
<xsl:attribute name="font-style">italic</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
次のトピックも参照してください。