Subject: Re: [xsl] I need to make sure that all namespace declarations get output to a particular element, not the document element|
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Thu, 22 Mar 2007 15:38:19 +0100
False. The namespace node has been pruned away from the <root> element so does not require a declaration. The node cannot be pruned from a literal-result-element that needs it. Saxon places the namespace declaration where it needs it and not anywhere higher.
I think David's assertion is still correct ... it cannot be moved "down" the tree ... the declaration is placed where there is a namespace node in the result tree and your examples of pruning or not pruning the namespace nodes impact on the presence of a namespace node on your <root> result element.
I'm still wary of a processor moving the namespace declaration "up" the tree ... though not incorrect (assuming they haven't confused namespaces), I don't see how the result tree node has namespace nodes requiring declarations ... surely they are not moved up the tree. Why would a processor bother with the look-ahead to determine "future" use of namespace nodes? But he is correct to say that it is not incorrect.
<root> <elem xmlns:test="urn:test"> <bla> <test:xyz /> </bla> </elem> <root>
I hope this helps.
Cheers, -- Abel