[xquery-talk] XQuery Style Conventions
Michael Kay
mhk at mhk.me.uk
Sat Oct 29 10:30:20 PDT 2005
> > As all for and let clauses simply add another variable and
> are equal is that respect [...]
I think it depends on whether one thinks of multiple "for" clauses as
representing nested loops, or as a join construct. People coming from a SQL
background may find it natural to think of it as a join, but in many cases I
think the mental model of nested loops is easier, especially when the inner
"for" clause has a dependency on the outer one.
To be honest, I rarely use multiple "for" clauses in a single FLOWR
expression. Usually I find that each level of iteration is producing some
output:
for $b in //books
return
<book>{
for $a in $b/author
return
<author>{...}</author>
</book>
or if it really is a join, I tend from years of XPath practice to express it
within a predicate:
let $p := //publisher[country=$param]
for $b in //books[publisher = $p/name]
return ...
Michael Kay
http://www.saxonica.com/
More information about the talk
mailing list