|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Question on expected XQuery return per standardsGeert Josten Geert.Josten at daidalos.nlSat Mar 28 12:56:03 PST 2009
Yes, It starts making sense to me now as well. I keep forgetting that $xml/p actually means $xml/child::p. And we all understand intuitively what $xml/p[2] means (especially when reading it as $xml/child::p[2]).. Just for the sake of completeness, I wrote a simplistic self-contained testsuite with most interesting cases. If someone of you lot could just take a look whether I didn't make any mistakes, that would be appreciated. Kind regards, Geert > Drs. G.P.H. Josten Consultant http://www.daidalos.nl/ Daidalos BV Source of Innovation Hoekeindsehof 1-4 2665 JZ Bleiswijk Tel.: +31 (0) 10 850 1200 Fax: +31 (0) 10 850 1199 http://www.daidalos.nl/ KvK 27164984 De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend. > From: http://x-query.com/mailman/listinfo/talk > [mailto:http://x-query.com/mailman/listinfo/talk] On Behalf Of Ronald Bourret > Sent: vrijdag 27 maart 2009 21:53 > To: Pavel Minaev > Cc: http://x-query.com/mailman/listinfo/talk > Subject: Re: Question on expected XQuery return > per standards > > Pavel Minaev wrote: > > On Fri, Mar 27, 2009 at 12:06 PM, Ronald Bourret > > <http://x-query.com/mailman/listinfo/talk> wrote: > >> Hmmm. I would have thought that, in each case, only p2 is returned. > >> > >> According to the spec, "For each item in the input sequence, the > >> predicate expression is evaluated using an inner focus, defined as > >> follows: The context item is the item currently being > tested against > >> the predicate. The context size is the number of items in > the input > >> sequence. The context position is the position of the > context item within the input sequence." > >> > >> In each case, the input sequence is the result of $xml//p, > which is a > >> sequence of four p elements. Since the position is the position > >> within this sequence, only p2 is in the second position. > > > > But it isn't. The standard is very clear that $xml//p expands to > > $xml/descendant-or-self::node()/p. The ordering is also very clear: > > > > "Each non-initial occurrence of "//" in a path expression is > > expanded as described in 3.2.4 Abbreviated Syntax, leaving > a sequence > > of steps separated by "/". This sequence of steps is then evaluated > > from left to right." > > > > and, obviously, in $xml/descendant-or-self::node()/p[2], 2 is the > > position within the sequence of child nodes of the parent of p, not > > the expression as a whole. > > Thanks for the clarification. I had to think about it a bit > -- the parent isn't obviously involved until you realize that > the parent is a descendant of $xml -- but that now makes sense. > > -- Ron > _______________________________________________ > http://x-query.com/mailman/listinfo/talk > http://x-query.com/mailman/listinfo/talk > -------------- next part -------------- A non-text attachment was scrubbed... Name: position-testsuite.xqy Type: application/octet-stream Size: 14834 bytes Desc: position-testsuite.xqy Url : http://x-query.com/pipermail/talk/attachments/20090328/d1ab3f61/position-testsuite-0001.obj
|
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
|






