This is sort of a fuzzy area in the spec, so any help would be
appreciated.
I'm not sure it's so fuzzy. Can you explain why you think it is?
When an xsl:element contains namespace declarations outside of the
'namespace' AVT, when should those namespace declarations be inserted
into the result tree?
Here is an example of my problem:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="*">
<out>
<xsl:element name="foo" xmlns:a="bar">
<child/>
</xsl:element>
</out>
</xsl:template>
</xsl:stylesheet>
Xalan produces this:
<out><foo xmlns:a="bar"><child/></foo></out>
That output is not correct.
Xalan-C 1.9 produces the following:
<?xml version="1.0" encoding="UTF-8"?><out><foo><child
xmlns:a="bar"/></foo></out>
There was a bug in older versions of Xalan-C and Xalan-J where namespace
declarations on xsl:element would produce corresponding namespace
declarations in the result tree, but that was a bug that has since been
corrected.
I believe Saxon's output in this case is correct.
However, if I modify the stylesheet slightly...
...
Xalan and Saxon both produces this:
<out><a:foo xmlns:a="bar"><child/></a:foo></out>
Clearly the 'bar' namespace belongs on the 'a:foo' result element.,
but this begs the question: How can this namespace be in scope for
'foo' depending on whether it is used or not?
Well that's a very different case, because the namespace declaration is
now required on the foo element.
The real issue is whether a namespace declaration in a stylesheet
generates a namespace node in the result tree, and in the case of
xsl:element, it does not.
Dave
--~------------------------------------------------------------------
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>
--~--