There are still sibling relationships in the three contexts I mentioned, but they are not *absolute* sibling relationships, only relative to the particular context. In [3, 4] we can say that 4 is the right sibling
of 3, but in [4, 3] it's the left sibling; however, the two 3s and the two 4s are not distinct. ========= My read is that in both these cases ( document ordering and sibling access) that you would only have access to the information if you had a reference to the parent (or sequence). Sequence order : sequence [ A , 1 , B , 2 ] Given the sequence we know the order A,1,B,2 But given just the "B" (say it is passed to a function) ... I dont think it would have a sibling axis like function x( B ) { B/previous-sibling:: } x( sequence[ 3 ] ) ---- > how does fucntion x work ? I dont think it can. I am just guessing here ... but if we could do that it would require that each node keep with it the sequence it is in. Similar with document order Suppose we had the tree like this ( pseudo XML/FTan ) <root> <child1 [ A, B ] > <child2 [ C , D ] > <root> create a sequence [ child2/D , child1/A ] Order it in document order .... [ CRASH ] ... I dont think you can because A and D dont have reference to their parents so dont know which come first when pulled out of the tree. I am perfectly willing to live with these limitations ... (as I may describe in a future email) but trying to think through them first. |