[xquery-talk] some ... satisfies with positional variable
Andrew Eisenberg
andrew.eisenberg at us.ibm.com
Fri Aug 19 16:58:34 PDT 2005
Is this what you are looking for?
if (exists(child::tag0[position() > 3]))
then return $fs:dot
else ()
-- Andrew
--------------------
Andrew Eisenberg
IBM
4 Technology Park Drive
Westford, MA 01886
andrew.eisenberg at us.ibm.com
Phone: 978-399-5158 Fax: 978-399-7012
"Benedikt Linse" <linse at cip.ifi.lmu.de>
Sent by: talk-bounces at xquery.com
08/19/2005 03:21 PM
To
talk at xquery.com
cc
Subject
[xquery-talk] some ... satisfies with positional variable
Hello,
Here's a question about an XQuery language construct I would appreciate.
in for-clauses it is possible to include a positional variable and return
the context node $fs:dot - or any other node - based on the position of
its child elements.
for $x at $pos in child::tag0 return
if ($pos > 3) then return $fs:dot
If the context node has more than 4 children, the above expression will
return it more than once. This could be avoided by wrapping the result in
a distinct-doc-order function, but it wouldn't prevent the compiler from
executing extra work, does it?
Without positional variables extra work can be evaded by using the some
... satisfies ... clause:
if (some $x in child::* satisfies (fn:node-name($x) == "tag2")))
then $fs:dot
else ()
This works fine, but I cannot include a positional variable in the
conditional. What I need is a "some ... at ... in ... satisfies ... "
construct similar to the following:
epxr1 =
if (some $x at $pos in child::* satisfies ($pos > 3))
then $fs:dot
else ()
But this is not provided by XQuery. XPath expressions won't help since
they're normalized to for, if-clauses, etc.
Is there a special reason why a "some ... at ... in ... satisfies ..."
construct is not provided by XQuery?
Is there any possibility to express expr1 in a way that no duplicate
elements are returned?
Best regards,
Benedikt
_______________________________________________
talk at xquery.com
http://xquery.com/mailman/listinfo/talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://xquery.com/pipermail/talk/attachments/20050819/7c5aedd9/attachment.htm
More information about the talk
mailing list