Re: [xsl] QName as attribute value: save and clean up namespace declarations

Subject: Re: [xsl] QName as attribute value: save and clean up namespace declarations
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Mon, 18 Jun 2012 14:37:56 +0100
On 18/06/2012 13:06, David Carlisle wrote:
On 18/06/2012 12:39, Heiko Niemann wrote:
Now I would like to clean up and just keep the ones that are
'used' in the xsi:type content. The stylesheet actually already does what
I want, but I would like to know whether there might be a better way to do
it, since it looks a little hackish to me

What you have looks fine if you are using a non-schema aware processor. If you were using a schema-aware processor and validated your input, it would "know" the namespaces in the content of xsi:type and so would automatically copy those namespace declarations just as it does for element names.



Sadly, no. If you specify copy-namespaces=yes, then all namespaces are copied. If you specify copy-namespaces=no, then the only namespaces in the output are those generated by namespace fixup. Namespace fixup happens before validation (it has to, because validation would fail if the required namespaces were absent). This means that namespace fixup is not aware of QName-valued attributes.

Michael Kay
Saxonica

Current Thread