[XSLT] 11.1.3 exclude-result-prefixes

Hello,

the current specification of exclude-result-prefixes in XSLT 2.0, section
11.1.3 is a little bit unclear what the value "#all" means. Does it mean
all namespaces in scope of the element bearing that attribute or does it
mean all namespaces in scope of a literal result element? Actually the
question is, whether a namespace declared in a subtree will be excluded if
the value "#all" was used at the root of that subtree (and the namespace
in question is not known at this point).

Because exclude-result-prefixes contains the prefixes of declared
namespaces in the element bearing that attribute, I believe "#all" should
refer only to these namespaces, too. Otherwise an implementation would
become a little bit more complicated since the list of namespaces to be
excluded cannot be computed statically in the element bearing the
exclude-result-prefixes attribute, but rather would have to be computed on
every literal result element separately. This in turn is problematic if a
known prefix will be bound to a new namespace in a child element (and then
mustn't be excluded).

Furthermore: Does the next sentence
"In this case, any other prefixes are ignored."
mean, it is no error if among these other prefixes is one that is not
bound to any namespace? This again would be an unecessary exception,
additional programming effort for implementors, and I see no reason not to
report the error in this case.

Last question: is it an error to use "#default" if there's no declaration
for the default namespace?

Thank you for clarifying this,
Oliver


/-------------------------------------------------------------------\
|  ob|do        Dipl.Inf. Oliver Becker                             |
|  --+--        E-Mail: obecker@informatik.hu-berlin.de             |
|  op|qo        WWW:    http://www.informatik.hu-berlin.de/~obecker |
\-------------------------------------------------------------------/

Received on Sunday, 15 June 2003 07:42:48 UTC