[xquery-talk] Question on expected XQuery return per standards

David Sewell dsewell at virginia.edu
Fri Mar 27 15:52:03 PST 2009


No, it's in ML 4.0-4 in strict XQuery 1.0 mode as well.

On Fri, 27 Mar 2009, Vyacheslav Sedov wrote:

> ML 4.0-4 in 3.2 compatibility mode? try (1,2,3,4,5)[2 to 3]
> if no error and result is 2 3 then better not care about it - it in history.
>
> On Fri, Mar 27, 2009 at 10:35 PM, David Sewell <dsewell at virginia.edu> wrote:
> > For MarkLogic (4.0-4), sets 1 and 2 return the same as set 5 (only p2).
> > In other words, [position() eq 2] is parsed differently from [2].
> >
> > Before filing a bug report I wanted more input, as this seems to be an
> > area where informed people disagree about the standard. So I'm
> > temporarily resisting my default behavior of assuming that whatever
> > Michael Kay says must be true. :-)
> >
> > David
> >
> > On Fri, 27 Mar 2009, Vyacheslav Sedov wrote:
> >
> >> exist 1.2.5 - set 4 is same as set 5 :(
> >> anybody can check 1.3?
> >> i did not get yet latest 1.3 from svn
> >> Also would be helpful same info about Marklogic.
> >>
> >> 2Ronald for your case you can use brackets <set4>{ ($xml//p)[2] }</set4>
> >>
> >> With best wishes,
> >> Slav
> >>
> >> On Fri, Mar 27, 2009 at 10: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 I'm sure I could be wrong...
> >> >
> >> > -- Ron
> >> >
> >> > David Sewell wrote:
> >> >>
> >> >> Over on another list there has been a discussion of unexpected results
> >> >> from an XQuery like the following. The issues are how the parser
> >> >> interprets, in particular, the abbreviated syntax '//' and '[N]' as an
> >> >> equivalent to '[position() eq N]'.
> >> >>
> >> >> My belief is that the standard requires that two nodes (p2, p4) should
> >> >> be returned for result sets 1-4 below, because the interpretation of the
> >> >> XPath should in each case be identical. Set 5, on the other hand, should
> >> >> return only p2.
> >> >>
> >> >> We're seeing different behavior from a couple of XML parsers. Anyone
> >> >> care to read from the stone tablets on this one?
> >> >>
> >> >> (: begin query :)
> >> >>
> >> >> let $xml :=
> >> >>  <root>
> >> >>    <div>
> >> >>      <p>p1</p>
> >> >>      <p>p2</p>
> >> >>    </div>
> >> >>    <div>
> >> >>      <p>p3</p>
> >> >>      <p>p4</p>
> >> >>    </div>
> >> >>  </root>
> >> >>
> >> >> return (
> >> >>  <set1>{ $xml/descendant-or-self::node()/p[position() eq 2] }</set1>,
> >> >>  <set2>{ $xml//p[position() eq 2] }</set2>,
> >> >>  <set3>{ $xml/descendant-or-self::node()/p[2] }</set3>,
> >> >>  <set4>{ $xml//p[2] }</set4>,
> >> >>  <set5>{ $xml/descendant::p[2] }</set5>
> >> >> )
> >> >>
> >> >> (: end query :)
> >> >>
> >> >> David S.
> >> >>
> >> >>
> >> >>
> >> >> ------------------------------------------------------------------------
> >> >>
> >> >>
> >> >> No virus found in this incoming message.
> >> >> Checked by AVG - www.avg.com Version: 8.0.238 / Virus Database:
> >> >> 270.11.30/2026 - Release Date: 03/27/09 07:13:00
> >> >>
> >> > _______________________________________________
> >> > talk at x-query.com
> >> > http://x-query.com/mailman/listinfo/talk
> >> >
> >>
> >
> > --
> > David Sewell, Editorial and Technical Manager
> > ROTUNDA, The University of Virginia Press
> > PO Box 801079, Charlottesville, VA 22904-4318 USA
> > Courier: 310 Old Ivy Way, Suite 302, Charlottesville VA 22903
> > Email: dsewell at virginia.edu   Tel: +1 434 924 9973
> > Web: http://rotunda.upress.virginia.edu/
>

-- 
David Sewell, Editorial and Technical Manager
ROTUNDA, The University of Virginia Press
PO Box 801079, Charlottesville, VA 22904-4318 USA
Courier: 310 Old Ivy Way, Suite 302, Charlottesville VA 22903
Email: dsewell at virginia.edu   Tel: +1 434 924 9973
Web: http://rotunda.upress.virginia.edu/


More information about the talk mailing list