 |
xquery version "1.0";
declare namespace request="http://exist-db.org/xquery/request"; ← 1
declare namespace response="http://exist-db.org/xquery/response"; ← 2
declare function local:traverseParts($consist_of as element()*) as element()* { ← 3
for $item in $consist_of/parts
let $parts := document("/db/inventory/parts.xml")/parts_list/parts[@id = $item/@id] ← 4
return
if ($parts/consist_of/parts)
then <parts id="{xs:string($parts/@id)}" name="{$parts/name/text()}">
{local:traverseParts($parts/consist_of)} ← 5
</parts>
else <part id="{xs:string($parts/@id)}" name="{$parts/name/text()}"/>
};
response:set-header("Content-Type", "text/xml"), ← 6
let $id := request:get-parameter("id", "") ← 7
let $product := document("/db/inventory/products.xml")/products/product[@id = $id] ← 8
return
<product id="{xs:string($product/@id)}" name="{$product/name/text()}">
{local:traverseParts($product/consist_of)} ← 9
</product>
|
 |