Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Multiple stylesheets (4/6) >

Template conflicts between several imported stylesheets.

If a stylesheet imports several stylesheets with xsl:import elements and these stylesheets contain matching templates with the same priorities, the template from the stylesheet which is imported last is used.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:import  href="st4-a.xslt"/>
            <xsl:import  href="st4-b.xslt"/>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:apply-templates  select="*"/>
                  </xxx>
            </xsl:template>

      </xsl:stylesheet>

st4-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">
                  <AAA-bbb/>
            </xsl:template>

            <xsl:template  match="ccc">
                  <AAA-ccc/>
            </xsl:template>

      </xsl:stylesheet>

st4-b.xslt

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">

            <xsl:template  match="bbb">
                  <BBB-bbb/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb/>
            <ccc/>
      </aaa>
Output

      <xxx>
            <BBB-bbb/>
            <AAA-ccc/>
      </xxx>


Previous chapter: Multiple source documents
Next chapter: Multiple Outputs
Previous page: Template conflicts between importing and imported stylesheets.
Next page: Explicit usage of templates from imported stylesheet