Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

Specifies an XSL Transformation (XSLT) style sheet to include.

Syntax

<xsl:include
  href = "
URI-reference" />

Attributes

href

[required] A Uniform Resource Identifier (URI) reference identifying the style sheet to be included.

Element Information

Number of occurrences

Unlimited

Parent elements

xsl:stylesheet, xsl:transform

Child elements

(No child elements)

Remarks

An XSLT style sheet can include another XSLT style sheet using the <xsl:include> element. The hrefattribute value is a URI reference identifying the style sheet to be included. The relative URI is resolved with relation to the base URI of the <xsl:include> element.

The <xsl:include> element is only allowed as the child of the <xsl:stylesheet> element.

Inclusions are processed in the Microsoft® XML Parser (MSXML) as if they occurred at the tree level. Note that this is not the same as the Document Object Model (DOM) view of the XML tree. The resource located by the hrefattribute value is parsed as an XML document, and the children of the <xsl:stylesheet> element in this document replace the <xsl:include> element in the including document. The fact that template rules or definitions are included does not affect the way they are processed.

An error occurs if a style sheet directly or indirectly includes itself.

Including a style sheet multiple times can cause errors because of duplicate definitions. Such multiple inclusions are less obvious when they are indirect. For example, if style sheet B includes style sheet A, style sheet C includes style sheet A, and style sheet D includes both style sheet B and style sheet C, then A will be included indirectly by D twice. If all of B, C, and D is used as independent style sheets, the error can be avoided by separating everything in B other than the inclusion of A into a separate style sheet B1 and changing B to contain just inclusions of B1 and A, doing the same for C, and then changing D to include A, B1, C1.

Example

The following sample demonstrates the use of the <xsl:include> element.

The XML file

Copy Code
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xslinclude.xsl"?>
<COLLECTION>
   <BOOK>
	<TITLE>Developing XML Solutions</TITLE>
	<AUTHOR>Jake Sturm</AUTHOR>
	<PUBLISHER>Microsoft Programming
Series</PUBLISHER>
   </BOOK>
   <BOOK>
	<TITLE>HTML and XML for beginners</TITLE>
	<AUTHOR>Michael Morrison</AUTHOR>
	<PUBLISHER>Microsoft Press</PUBLISHER>
   </BOOK>
   <BOOK>
	<TITLE>XML Step by Step</TITLE>
	<AUTHOR>Michael Young</AUTHOR>
	<PUBLISHER>Microsoft Press</PUBLISHER>
   </BOOK>
</COLLECTION>

xslinclude.xsl

Copy Code
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:space="preserve">
   <xsl:output method="xml" indent="yes"
omit-xml-declaration="yes"/>
   <xsl:template match="/">
	<xsl:for-each select="COLLECTION/BOOK">
		 <xsl:apply-templates select="TITLE"/>
		 <xsl:apply-templates select="AUTHOR"/>
		 <xsl:apply-templates select="PUBLISHER"/>
		 <BR/>  <!-- add this -->
	</xsl:for-each>
   </xsl:template>
   <xsl:include href="xslincludefile.xsl" />
</xsl:stylesheet>

xslincludefile.xsl

Copy Code
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:space="preserve">
   <xsl:template match="TITLE">
	Title - <xsl:value-of select="."/><BR/>
   </xsl:template>
   <xsl:template match="AUTHOR">
	Author - <xsl:value-of select="."/><BR/>
   </xsl:template>
   <xsl:template match="PUBLISHER">
	Publisher - <xsl:value-of
select="."/><BR/><!-- removed second <BR/> -->
   </xsl:template>
</xsl:stylesheet>

Output

Copy Code
Title - Developing XML Solutions
Author - Jake Sturm
Publisher - Microsoft Programming Series

Title - HTML and XML for beginners
Author - Michael Morrison
Publisher - Microsoft Press

Title - XML Step by Step
Author - Michael Young
Publisher - Microsoft Press

See Also