xsl:import Element

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.

See Also

XSLT Elements | xsl:include Element | xsl:apply-imports Element

 Last updated on Saturday, April 10, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.