The spec says:
• if the namespace-context attribute is absent, then the in-scope
namespaces of the xsl:evaluate instruction (with the exception of any binding
for the default namespace) are used as the statically known namespaces for the
target expression, and the value of the innermost [xsl:]xpath-default-namespace
attribute, if any, is used as the default namespace for elements and types in
the target expression.
So the default namespace in the stylesheet is not used, and if there is no
xpath-default-namespace attribute, then there will be no default namespace for
elements and types, which means that "no prefix means no namespace". The rules
are exactly the same as for static XPath expressions in the stylesheet.
I believe that in case 2, the default-namespace binding of the
<xsl:evaluate> instruction should become the the default-namespace
binding in the evaluation context (the alternative is to ignore this
and nave no default-namespace binding for the evaluation case -- as
obviously should be done in case 1.)
No, this isn't what happens.
The rules for handling of the default namespace cause enormous problems for
XSLT beginners, and I would love to change them if I could, but it's too late
for that. And I think it's right that the rules for xsl:evaluate, in the
absence of a namespace-context attribute, should be exactly the same as for
static XPath expressions.
Michael Kay
Saxonica
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--