<xsl:import> 元素
匯入另一個 XSLT 檔。
<xsl:import
href = "uri-reference" />
屬性
- href
必要項。 可識別要匯入之 XSLT 檔的統一資源識別元 (URI) 參照。
項目資訊
發生次數 |
無限制 |
父項目 |
|
項目子系 |
(沒有項目子系) |
備註
XSLT 檔可使用 <xsl:import> 項目匯入另一個 XSLT 檔。 匯入與加入 XSLT 檔是相同的,但匯入檔中的定義和範本規則的優先順序,高於已匯入的 XSLT 檔中的定義和範本規則。 <xsl:import> 項目具有 href 屬性,該屬性的值是可用來識別要匯入之樣式表的 URI 參考。 XML 會根據 <xsl:import> 項目的基底 URI,來解析相對的 URI。
<xsl:import> 項目只能做為頂層項目。 <xsl:import> 項目子系必須在 <xsl:stylesheet> 項目 (包括任何 <xsl:include> 項目子系) 的其他所有項目子系的前面。 使用 <xsl:include> 加入樣式表時,已包含之文件中任何 <xsl:import> 項目都會在已包含之文件中往上移,以接續已包含之文件中任何現有的 <xsl:import> 項目。
在處理內含 <xsl:import> 項目之樣式表期間所發現的 <xsl:stylesheet> 項目會視為形成匯入樹狀目錄的項目。 在匯入樹狀目錄中,每個 <xsl:stylesheet> 項目所包含的每個 <xsl:import> 項目,都有一個匯入子系。 建構匯入樹狀目錄前,任何 <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> 項目必須在任何定義或範本規則前執行,因此在處理已匯入的 XSLT 檔時,如果發現 <xsl:import> 項目,則它的匯入優先順序將高於所遇到的定義和範本規則。 |
一般而言,當匯入優先順序較高的定義或範本規則,遇到匯入優先順序較低的定義或範本規則時,會優先處理前者。 每一類定義和範本規則都會詳細定義這種關係。
當 XSLT 檔直接或間接匯入自己本身時,就會發生錯誤。 此外,即使在多個位置匯入使用特殊 URI 的 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>
請參閱下列主題: