The situation is that you are calling xsl:apply-imports when there is no
matching user-defined template rule in an imported stylesheet.
The XSLT 2.0 specification is clear about what happens here:
"If no matching template rule is found that satisfies these criteria, the
built-in template rule for the node kind is used."
The XSLT 1.0 specification is less clear on the subject. It says
(a) "xsl:apply-imports processes the current node using only template rules
that were imported into the stylesheet element containing the current template
rule", and
(b) "The built-in template rules are treated as if they were imported
implicitly before the stylesheet"
My belief is that if you read these two statements together, they indicate that
the same behaviour as in 2.0 is intended. There's room for debate, however,
because of the phrase "before the stylesheet" as distinct from "into the
stylesheet".
Michael Kay
Saxonica
On 4 Apr 2013, at 17:10, Bob Stayton wrote:
According to Saxon author Michael Kay's website, his description of
xsl:apply-imports is:
"The effect is to search for a template that matches the current node and
that is defined in a stylesheet that was imported (directly or indirectly,
possibly via xsl:include) from the stylesheet containing the current
template, and whose mode matches the current mode. If there is such a
template, it is activated using the current node. If not, the call on
xsl:apply-imports has no effect."
Yes. That was written a long time ago, and it's wrong. I will fix it.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--