On 24 Jul 2020, at 00:17, Michael Kay mike(_at_)saxonica(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Failing to appreciate the implications of a namespace declaratoin in the
source document is probably the most common source of XSLT questions on
StackOverflow - if you search there for "XSLT default namespace" you will
find at least 600 questions from people who have fallen into this trap. It's
particularly invidious beccause (a) the symptoms of the failure are usually
wrong results rather than any kind of error, and there's nothing in the wrong
results that hints at a namespace problem, and (b) many people try to pick up
XSLT from very elementary tutorials that only handle the simplest of
constructs, and leave out any discussion of namespaces as if they are somehow
an advanced feature that you don't need to worry about until later.
It's also invidious because although the problem was recognised very early
on, it's proved impossible to fix without creating backwards compability
problems. The xpath-default-namespace attribute in XSLT 2.0 helps, but only
if you know what the problem is and know that you need to use it. In Saxon
I've been experimenting with another solution, which is for bare unqualified
names in the stylesheet to match elements in any namespace or none - but for
conformance reasons, that option can't be the default, so beginners still
fall straight into the trap. I've also tried heuristics that attempt to
detect when users are falling into the trap (specifically, when a namespace
is used in the source document and isn't declared in the stylesheet) but I
fear that users who don't even know that these peculiar xmlns things are
called namespaces find the message incomprehensible and ignore it.
If the source document has a namespace declaration then it changes the names
of the elements, and if your stylesheet is trying to match elements by name
then they won't match unless you get the namespace right. So understanding
this is absolutely fundamental.
Michael Kay
Saxonica
Thanks Michael, a suitable error message would be highly appreciated ;-
Cheers
Leo
--~----------------------------------------------------------------
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
--~--