[xquery-talk] Top N Most Common Mistakes

John Snelson john.snelson at oracle.com
Sun Aug 5 19:46:41 PDT 2007

The three biggest user mistakes I think I see are:

1) Operator precedence after "return".
2) Use of old XQuery syntax from old tutorials ("define" vs "declare" etc.)
3) Use of ".../text()" when the user really means ".../data()" or 
".../string()" (or should rely on implicit atomization). The trouble is 
that the answer (after implicit atomization and casting) is often the 
same, but the meaning is entirely different. This can cause schema-less 
XML databases like Berkeley DB XML to be unable to use it's indexes in 
these cases.


Frans Englich wrote:
> Yes, what are they? What are the most common mistakes that novice, experienced 
> a like, do when writing XQuery queries?
> I have little contact with users and can therefore contribute poorly:
> 1. That axis steps uses the default element namespace, which possibly is set 
> by a namespace binding on an enclosing element constructor. Hence the path 
> expression automagically misses.
> 2. Expression precedence related to the return clause combined with variable 
> references. In "... return 1 + $f", The variable $f, if bound in the parent 
> let/for clause, is out of scope.
> I suspect a couple of points related to axes can be found, perhaps especially 
> related to navigation order versus document order.
> On a broader more conceptual scale, what is the big challenge for learning 
> XQuery, especially if having a C++/Java background? "I'd rather wait until 
> XSL-T has turned into a real language, such that one can assign to 
> variables," reveals how hard the functional approach of XQuery/XSL-T can be 
> to grasp.
> Cheers,
> 		Frans
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk

More information about the talk mailing list