XQuery
Priscilla Walmsley (pwalmsley@datypic.com)
ISBN: 0596006349
1st edition, , O'Reilly Media, Inc.
Chapter 2: XQuery foundations
Example 2-1. A query with prolog and body
declare boundary-space preserve; declare namespace prod = "http://datypic.com/prod"; declare variable $catalog := doc("catalog.xml")//catalog; <firstResult>{count($catalog/product)}</firstResult>, <prod:secondResult>{$catalog/product/number}</prod:secondResult>
Example 2-2. Small XML example
<catalog xmlns="http://datypic.com/cat"> <product dept="MEN" xmlns="http://datypic.com/prod"> <number>784</number> <name language="en">Cotton Dress Shirt</name> <colorChoices>white gray</colorChoices> <desc>Our <i>favorite</i> shirt!</desc> </product> </catalog>
Example 2-3. Input document with namespaces (prod_ns.xml)
<prod:product xmlns:prod="http://datypic.com/prod"> <prod:number>563</prod:number> <prod:name language="en">Floppy Sun Hat</prod:name> </prod:product>
Example 2-4. Querying with namespaces
declare namespace prod = "http://datypic.com/prod"; for $product in doc("prod_ns.xml")/prod:product return $product/prod:name