Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Imports another XSL Transformations (XSLT) style sheet.
<xsl:import
href ="URI-reference" />
Attributes
- href
[required] This is a Uniform Resource Identifier (URI) reference identifying the style sheet to be imported.
Element Information
Number of occurrences | Unlimited |
Parent elements | xsl:stylesheet, xsl:transform |
Child elements | None |
Remarks
An XSLT style sheet can import another XSLT style sheet using an <xsl:import> element. Importing a style sheet is the same as including it except that definitions and template rules in the importing style sheet take precedence over those in the imported style sheet. The <xsl:import> element has an href attribute whose value is a URI reference identifying the style sheet to be imported. A relative URI is resolved relative to the base URI of the <xsl:import> element.
The <xsl:import> element is allowed only as a top-level element. The <xsl:import> element children must precede all other element children of an <xsl:stylesheet> element, including any <xsl:include> element children. When <xsl:include> is used to include a style sheet, any <xsl:import> elements in the included document are moved up in the included document to follow any existing <xsl:import> elements in the included document.
The <xsl:stylesheet> elements encountered during processing of a style sheet that contains <xsl:import> elements are treated as forming an import tree. In the import tree, each <xsl:stylesheet> element has one import child for each <xsl:import> element that it contains. Any <xsl:include> elements are resolved before constructing the import tree. An xsl:stylesheet element in the import tree is defined to have lower import precedence than another <xsl:stylesheet> element in the import tree if it would be visited before that <xsl:stylesheet> element in a post-order traversal of the import tree (that is, a traversal of the import tree in which an <xsl:stylesheet> element is visited after its import children). Each definition and template rule has import precedence determined by the <xsl:stylesheet> element that contains it.
For example, assume the following conditions are true.
- Style sheet A imports style sheets B and C, in that order.
- Style sheet B imports style sheet D.
- Style sheet C imports style sheet E.
The order of import precedence (lowest first) is D, B, E, C, A.
Note Because <xsl:import> elements are required to occur before any definitions or template rules, an implementation that processes imported style sheets at the point at which it encounters the <xsl:import> element will encounter definitions and template rules in increasing order of import precedence.
In general, a definition or template rule with higher import precedence takes precedence over a definition or template rule with lower import precedence. This is defined in detail for each kind of definition and for template rules.
It is an error if a style sheet directly or indirectly imports itself. Apart from this, the case where a style sheet with a particular URI is imported in multiple places is not treated specially. The import tree will have a separate <xsl:stylesheet> element for each place that it is imported.
Note If <xsl:apply-imports> is used, the behavior may be different from the behavior if the style sheet had been imported only at the place with the highest import precedence.
Example
<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>
See Also
XSLT Elements | xsl:include Element | xsl:apply-imports Element
Send Feedback on this topic to the authors