[xquery-talk] Question on expected XQuery return per standards
christian.gruen at gmail.com
Sat Mar 28 13:12:47 PST 2009
I have checked your test cases; imho, all of them are correct.
2009/3/28 Geert Josten <Geert.Josten at daidalos.nl>:
> 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 means (especially when reading it as $xml/child::p)..
> 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,
> Drs. G.P.H. Josten
> Daidalos BV
> Source of Innovation
> Hoekeindsehof 1-4
> 2665 JZ Bleiswijk
> Tel.: +31 (0) 10 850 1200
> Fax: +31 (0) 10 850 1199
> 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: talk-bounces at x-query.com
>> [mailto:talk-bounces at x-query.com] On Behalf Of Ronald Bourret
>> Sent: vrijdag 27 maart 2009 21:53
>> To: Pavel Minaev
>> Cc: talk at xquery.com
>> Subject: Re: [xquery-talk] Question on expected XQuery return
>> per standards
>> Pavel Minaev wrote:
>> > On Fri, Mar 27, 2009 at 12:06 PM, Ronald Bourret
>> > <rpbourret at rpbourret.com> 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 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
>> talk at x-query.com
> talk at x-query.com
Department of Computer & Information Science
D-78457 Konstanz, Germany
Tel: +49 (0)7531/88-4449, Fax: +49 (0)7531/88-3577
More information about the talk