File: Data.xml
<inventory id="inv0001" date="2008-12-19" loc="USA">
<car model="A" id="0001" quantity="1" color="navy"/>
<car model="B" id="0002" quantity="1"/>
<car model="B" id="0003" quantity="2"/>
<car model="C" id="0004" quantity="1" color="white"/>
<car model="A" id="0001" quantity="1" color="black"/>
</inventory>
File: Query.xquery
for $d in distinct-values(doc("Data.xml")//car/@model)
let $cars := doc("Data.xml")//car[@model = $d]
order by $d
return <department code="{$d}">{
for $i in $cars
order by $i/@id
return $i
}</department>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<department code="A">
<car model="A" id="0001" quantity="1" color="navy"/>
<car model="A" id="0001" quantity="1" color="black"/>
</department>
<department code="B">
<car model="B" id="0002" quantity="1"/>
<car model="B" id="0003" quantity="2"/>
</department>
<department code="C">
<car model="C" id="0004" quantity="1" color="white"/>
</department>
|