- From: Sarah Wilkin <swilkin@apple.com>
- Date: Tue, 28 Sep 2004 15:48:58 -0700
- To: Don Chamberlin <chamberl@almaden.ibm.com>
- Cc: public-qt-comments@w3.org
- Message-Id: <95C42118-11A0-11D9-AF3D-000A278462D6@apple.com>
Thank you, this is acceptable.
On Sep 14, 2004, at 11:19 AM, Don Chamberlin wrote:
>
> Dear Sarah,
> Thanks for your comment of Feb. 3, 2004 on this subject (attached
> below). After considerable discussion, the XML Query and XSLT working
> groups have decided to adopt your proposal. In the next edition of the
> XQuery and XPath 2.0 specifications, the definition of a path
> expression will be edited as follows:
>
> "Each operation E1/E2 is evaluated as follows: Expression E1 is
> evaluated, and if the result is not a (possibly empty) sequence of
> nodes, a type error is raised. [err:XP0019] Each node resulting from
> the evaluation of E1 then serves in turn as an inner focus for an
> evaluation of E2, as described in [Dynamic Context]. The sequences
> resulting from all the evaluations of E2 are combined as follows:
> (a) If every evaluation of E2 returns a (possibly empty) sequence of
> nodes, these sequences are combined, and duplicate nodes are
> eliminated based on node identity. <xpath-only>The resulting node
> sequence is returned in document order.</xpath-only><xquery-only>If
> ordering mode is "ordered", the resulting node sequence is returned in
> document order; otherwise it is returned in implementation-dependent
> order.</xquery-only>
> (b) If every evaluation of E2 returns a (possibly empty) sequence of
> atomic values, these sequences are concatenated, in order, and
> returned.
> (c) Otherwise (that is, if the multiple evaluations of E2 return at
> least one node and at least one atomic value), an error is raised.
> NOTE: Since each step in a path provides context nodes for the
> following step, in effect, only the last step in a path is allowed to
> return a sequence of atomic values."
>
> Please let us know whether you consider this to be an acceptable
> response to your comment.
> Thanks and best regards,
> --Don Chamberlin
>
> ----------------(referenced note)------------------
>
> 3.2 Path Expressions
> "Each evaluation of E2 must result in a (possibly empty) sequences of
> nodes; otherwise a type error is raised. [err:XP0019]"
>
> We feel XQuery is limited by its focus on nodes. The evaluation of E2
> should be able to contain nodes or atomic values.
>
> The main purpose of this is to allow for a function at the end of a
> path. Generally this saves writing a loop. For example:
>
> let $root := <b><a> foo bar</a><a>baz faz</a></b>
> return $root/a/normalize-space(.)
>
> instead of
> let $root := <b><a> foo bar</a><a>baz faz</a></b>
> let $seq := $root/a
> let $result := for $item in $seq
> return normalize-space($item)
> return $result
>
> In addition, without this functionality ugly workarounds are required
> to obtain the value of context functions. For example:
> ("a", "b", "c" )/text{ position() }
>
> instead of the straightforward:
> ("a", "b", "c" )/position()
>
> --Sarah
Attachments
- text/enriched attachment: stored
Received on Tuesday, 28 September 2004 22:49:48 UTC