If there are two matching templates of the same priority in a stylesheet and in other one which the first stylesheet imports, the template from the first stylesheet takes precedence. The element xsl:apply-imports inside the relevant template in the first stylesheet calls the matching template from the imported one.
While xsl:apply-imports call templates according to their import priority, xsl:next-match is used for match priorities (see previous chapters).
|
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:import href="st5-a.xslt"/> <xsl:template match="/aaa"> <xxx> <xsl:apply-templates select="*"/> </xxx> </xsl:template> <xsl:template match="bbb"> <main-bbb> <xsl:apply-imports/> </main-bbb> </xsl:template> </xsl:stylesheet> st5-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-bbb/> </main-bbb> <imported-ccc/> </xxx> |
| Previous chapter: | Multiple source documents |
| Next chapter: | Multiple Outputs |
| Previous page: | Template conflicts between several imported stylesheets. |
| Next page: | xsl:apply-imports with parameters |