|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Need some theory helpFlorent Georges lists at fgeorges.orgMon Sep 8 15:08:53 PDT 2008
Michael Kay wrote: Hi Michael, > Given general expressions E,F,G, I believe it is true that > the following two expressions are equivalent: > E/F union E/G <=> E/(F union G) > (That is, union distributes through "/") > But this is not true for "except". > $a/descendant::*/child::b except $a/descendant::*/(child::c/child::b) > is not the same as > a/descendant::*/(child::b except child::c/child::b) > (easily seen because child::c/child::b will not select any > nodes that are selected by child::b). I am not really a theoretician, but I feel this problem is related to the descendant axis rather than the set operations (union, except...) Intuitively, I would say that "E//F x E//G" (for some operator x) is not the same as "E//(F x G)" because in the later "F x G" is 'anchored' at particular nodes, where in the former two sequences are built then the operator is applied. For the union, I guess this leads into the same result (intuitively again), but it doesn't with the difference (the except operator.) Maybe using only a subset of axises to try to prove your assertions could help find the way? Regards, --drkm
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






