[xquery-talk] Query Through Multiple Files

Michael Kay mike at saxonica.com
Mon Jan 21 01:07:16 PST 2008


> >Alice: I did use Liam's suggestions,
> > 
> > for $ad in (
> >        doc("1.xml"),
> >        doc("2.xml"),
> >        doc("3.xml"),
> >        doc("4.xml"))//ad
> > 
> Liam:That wasn't exactly what I suggested... :-)
> 
> XQuery is not a good language in which to make random guesses 
> and hope things will work.
> 
> You can try,
> for $doc in (
>        doc("1.xml"),
>        doc("2.xml"),
>        doc("3.xml"),
>        doc("4.xml"))
>     return $doc//ad
> 

or more simply,

( doc("1.xml"),
  doc("2.xml"),
  doc("3.xml"),
  doc("4.xml"))//ad

or if you want to eliminate duplicates,

distinct-values(( doc("1.xml"),
  doc("2.xml"),
  doc("3.xml"),
  doc("4.xml"))//ad)

I've found when teaching XQuery that there are two important
misunderstandings that students easily make:

(a) the idea that every query has a FLWOR expression as its outermost
construct

(b) the idea that a FLWOR expression can only be used at the outermost level
of a query

Michael Kay



More information about the talk mailing list