- From: Michael Kay <mhk@mhk.me.uk>
- Date: Sat, 21 Feb 2004 09:38:51 -0000
- To: "'Stephen Buxton'" <Stephen.Buxton@oracle.com>, <public-qt-comments@w3.org>
In the general case I think it would be very difficult to define a workable semantics for path expressions and other node operations that didn't rely on node identity. I have always felt, however, that there might be room for relaxing the identity rules on node creation: something along the lines of "if an expression is evaluated more than once, and returns a sequence of nodes on each occasion, and if the sequence of nodes returned on one occasion is deep equal to the sequence returned on another occasion, then if the weak-identity option is set there is no guarantee that the nodes returned on the two occasions will be distinct." This basically allows you to move node-creation expressions out of a loop, in the same way as you can move any other expression. Michael Kay > -----Original Message----- > From: public-qt-comments-request@w3.org > [mailto:public-qt-comments-request@w3.org] On Behalf Of Stephen Buxton > Sent: 20 February 2004 18:22 > To: public-qt-comments@w3.org > Subject: ORA-XQ-409-B: Introduce identity-less operations as a feature > > > > SECTION 2.6: Optional Features > > Today XQuery requires node identities to be preserved in > the language quite strongly. All nodes that are from an > external source or created in the language require node > identities to be preserved. This is a strict requirement that > is not necessary for a large number of applications that need > to deal only with the values contained in the nodes rather > than the nodes' identity. > > This is also a great burden for implementations that can > otherwise use streaming mechanisms for XML processing. > > This is also a problem for implementations that choose to > push down the query to be evaluated in native systems like > relational databases or other non-XML value based systems. > > Suggestion: > Include a static context flag that specifies whether node > identities need to be preserved. If the option is true, then > no node based operations such as "is", "<<" , ">>" etc.. > should be allowed. Further this could also restrict > non-forward axes like parent(), sibling(), root(), etc.. > > > > - Steve B. >
Received on Saturday, 21 February 2004 04:38:09 UTC