Chris,

This makes sense. But <xsl:apply-imports/> should not invoke default
templates unless the current stylesheet does not import anything.

Morten Jorgensen,
XML Technology Centre,
Sun Microsystems Ireland ltd.

Chris McCabe wrote:
> 
> It should do whatever a "foo" element would do in E.xsl by itself, which
> may or may not be nothing.  It could be the default template rule.  That
> is how I would interpret the spec anyway.  I am pretty sure it should
> not invoke the template from B.xsl.
> 
> Chris
> 
> Morten Jorgensen wrote:
> 
> >I have spent some time on cleaning up XSLTC's implementation of
> >the xsl:apply-imports element and I have come across a scenario
> >that seems to be handled differently by the various XSLT processors.
> >I'd like some help with determing what the correct behaviour for
> >XSLTC is. Consider that you have these stylesheets:
> >
> >  A.xsl imports B.xsl, which imports C.xsl
> >  A.xsl imports D.xsl, which imports E.xsl
> >
> >Stylesheets A, B, C and D all have a template that matches on
> >an element "foo" - stylesheet E does _not_. This matching
> >template looks like this (in all of the first 4 stylesheets):
> >
> >  <xsl:template match="foo">
> >    <A><xsl:apply-imports/></A>
> >  </xsl:template>
> >
> >The xsl:apply-imports elements is similar to a call to "super()"
> >in Java, so the template in A.xsl triggers the template in D.xsl
> >(because this is the imported template with the highest import
> >precedence). There are no matching templates in E.xsl, so what
> >should the template in D.xsl do?
> >
> >  A) Nothing?
> >  B) Trigger the matching template in B.xsl?
> >
> >Saxon goes with option A), while Xalan (and currently XSLTC) goes
> >with option B). I am tempted to say that Saxon is correct, as
> >template D.xsl does not "inherit" any behaviour from template B.xsl.
> >
> >Any input welcome!
> >
> >Morten Jørgensen,
> >XML Technology Centre,
> >Sun Microsystems Ireland ltd.
> >

Reply via email to