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

注意

<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>

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

参照

リファレンス

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