<xsl:import> 要素

他の XSLT ファイルをインポートします。

<xsl:import
  href = "uri-reference" />

属性

  • href
    必須。 インポートする XSLT ファイルを識別する URI (Uniform Resource Identifier) 参照。

要素情報

出現回数

無制限

親要素

xsl:stylesheetxsl:transform

子要素

(子要素はありません)

解説

<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 になります。

ms256126.note(ja-jp,VS.100).gif注 :
<xsl:import> 要素は、定義またはテンプレート規則の前に出現する必要があるため、<xsl:import> 要素を検出した時点でインポートされた XSLT ファイルを処理する実装では、インポート優先順位が高くなる順に定義とテンプレート規則が検出されます。

通常は、インポート優先順位の高い定義やテンプレート規則の方がインポート優先順位の低い定義やテンプレート規則より優先されます。 各種の定義とテンプレート規則について、優先順位が詳細に定義されています。

XSLT ファイルが自分自身を直接または間接的にインポートすると、エラーが発生します。 それ以外の場合は、特定の URI を持った 1 つの XSLT ファイルを複数の場所にインポートする操作が特別に扱われることはありません。 インポート ツリーは、インポートする場所ごとに、別々の <xsl:stylesheet> 要素を持ちます。

ms256126.note(ja-jp,VS.100).gif注 :
<xsl:apply-imports> を使用したときの動作は、インポート優先順位が最も高い場所だけに XSLT ファイルをインポートしたときの動作と異なることがあります。

XSLT ファイル (importer.xsl)

次のトピックも参照してください。

参照

リファレンス

<xsl:include> 要素
<xsl:apply-imports> 要素