<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>
次のトピックも参照してください。