Lists Home |
Date Index |
> > I _think_ it's because of QNames in attribute/element
> values, but it may
> > also have to do with canonicalization discussions. I seem
> to remember
> > it being an issue for the long-ago XML Fragment
> discussions, but I'm not
> > sure.
> If that's the case then why not limit 'in-scope' to mean
> those namespaces
> used by the element, or it's direct element or attribute content?
> Wouldn't that staunch the bleeding?
The problem is that you don't know which namespaces are used, because
namespace prefixes can be used undetectably in content.
<xsl:value-of select="3 + my:function()" xmlns:my="some.uri"/>
If we had made it absolutely clear in the first place that namespace
prefixes could be used ONLY in element and attribute names, then we would
never have got into this mess. The solution adopted in the InfoSet model
(which got it from XPath) decided the opposite: that namespace prefixes were
significant and could be used anywhere they were in scope. Which works, but
brings its own set of problems.
The whole problem is caused by doing namespaces as a cheap and cheerful
bolt-on to XML without recognizing that it was an architectural change to
the foundations. Perhaps it is too late to fix now, but one reason I want to
see namespaces move into the core is that I'm fed up with attempts to patch
them with sticky-plaster.