- From: <bugzilla@wiggum.w3.org>
- Date: Tue, 26 Apr 2005 15:26:41 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1272
------- Additional Comments From jonathan.robie@datadirect.com 2005-04-26 15:26 -------
Let me check my understanding with a few queries.
Example 1:
<e1 xmlns:p="abc">{<e2/>}</e1>//e2
When <e2/> is constructed, the rules of 3.7.4 apply, so <e2/> does
indeed inherit the namespaces of the enclosing element
constructors. When <e2/> is copied into <e1/>, the rules of 3.7.1.3
apply, so these namespaces are preserved. So the result of the above
query is:
<e2 xmls:p="abc"/>
Example 2:
declare copy-namespaces preserve,no-inherit;
let $e := <e/>
return <ee xmlns:p="abc"><e/>{$e, <e/>}</ee>//*
In the let clause, there is no enclosing element constructor, so the
element does not inherit the xmlns:p binding. The other two do. So the
result is:
<e xmlns:p="abc"/>
<e/>
<e xmlns:p="abc"/>
Does that match your understanding?
Namespaces are way too complicated in XQuery - this is mostly a
problem for the implementor, rather than the user, but it definitely
makes the language more complex...
Jonathan
Received on Tuesday, 26 April 2005 15:26:54 UTC