If the main stylesheet imports another stylesheet with xsl:import and this stylesheet contains a matching template with the same priority as the main one, the declaration in the main stylesheet takes precedence.
If xsl:include were used instead of xsl:import there would be an ambiguous rule match as xsl:include only "pastes" its stylesheet to the place where it occurs and so templates in the included stylesheet behave as if they were part of the main stylesheet.
|
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:import href="st3-a.xslt"/> <xsl:template match="/aaa"> <xxx> <xsl:apply-templates select="*"/> </xxx> </xsl:template> <xsl:template match="bbb"> <main-bbb/> </xsl:template> </xsl:stylesheet> st3-a.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:template match="bbb"> <imported-bbb/> </xsl:template> <xsl:template match="ccc"> <imported-ccc/> </xsl:template> </xsl:stylesheet> |
|
|
XML
<aaa> <bbb/> <ccc/> </aaa> |
Output
<xxx> <main-bbb/> <imported-ccc/> </xxx> |
| Previous chapter: | Multiple source documents |
| Next chapter: | Multiple Outputs |
| Previous page: | Stylesheets inclusion |
| Next page: | Template conflicts between several imported stylesheets. |