XQuery:
XQueries are executed against its context (a path relative to the context). The context is the document from which the XQuery is executed. XQueries are namespace aware.
Example 1: return all echo:metadata entries of current document
let $result := //echo:metadata/*
return $result
Example 2: count words of first 3 sentences of current document:
let $s := //echo:s
let $first3s := $s[position() < 4]
let $first3Str := string-join($first3s, ' ')
let $wordCounter := count(tokenize($first3Str, '\W+')[. != ''])
return $wordCounter
If you want to query over many documents you could do this for example by specifying the document collection and using an XPath expression relative from this collection
Example 3: (XQuery over all documents): return all authors of all archimedes documents ordered
let $coll := collection('/db/mpdl/documents/standard/archimedes')
let $result := $coll/archimedes/info/author
let $orderedResult :=
for $elem in $result
order by $elem
return $elem
return $orderedResult
References: XQuery Language 1.0, see
here,
Wikipedia article, eXist functions, see
here
Xpath
XPath queries are executed against its context (a path relative to the context). The context is the document from which the XPath query is executed.
Example: /archimedes/info/author finds only the author of the document from which the query is executed (and not of all documents). XPath queries are namespace aware.
References: XPath Language 2.0, see:
here.