- From: Sarah Wilkin <swilkin@apple.com>
- Date: Wed, 4 Feb 2004 13:13:41 -0800
- To: public-qt-comments@w3.org
Currently the order of nodes constructed in a path is undefined for many cases. For example: let $source := <foo><a>1<a>2</a></a><a>3</a></foo> return $source/element bar { .//a/element b { text() } } will return a variation of <bar><b>1</b><b>3</b><b>2</b></bar> with the "b" elements in an undefined, but stable, order. From 2.3.1 Document Order: "The relative order of nodes in distinct trees is stable but implementation-dependent, subject to the following constraint: If any node in tree T1 is before any node in tree T2, then all nodes in tree T1 are before all nodes in tree T2." We feel this is unsatisfactory for embedded node creation; the order of created elements should be the same across implementations (and runs on the same implementation). One simple fix is to base the document order of new nodes in a path on their position. However, this brings up problems where the position repeats. For example: let $source := <source> <foo><a>1<a>2</a></a><a>3</a></foo> <foo><a>4<a>5</a></a><a>6</a></foo> </source> return $source/element bar { .//a/element b { text() } } Would end up with nodes 1 and 4 appearing before elements 2 and 5. We would appreciate any input on this issue. --Sarah
Received on Wednesday, 4 February 2004 16:13:31 UTC