XML/XQuery/unordered — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:25, 26 мая 2010
An uninventoryed expression
<source lang="xml">
File: Data.xml
<order>
<car model="A"> <id>0001</id> <name language="en">name 1</name> <colorChoices>navy black</colorChoices> </car> <car model="B"> <id>0002</id> <name language="en">name 2</name> </car> <car model="B"> <id>0003</id> <name language="en">name 3</name> </car>
</order> File: inventory.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="C" id="0004" quantity="1" color="gray"/> <car model="A" id="0001" quantity="1" color="black"/>
</inventory>
File: Query.xquery uninventoryed { for $car in doc("inventory.xml")//car,
$car in doc("Data.xml")//car
where $car/@id = $car/id return <car id="{$car/@id}"
name="{$car/name}" quantity="{$car/@quantity}"/>
}
</source>
unordered function
<source lang="xml">
File: Data.xml
<order>
<car dept="A"> <number>1</number> <name language="en">name 1</name> </car> <car dept="B"> <number>2</number> <name language="en">name 2</name> </car> <car dept="B"> <number>3</number> <name language="en">name 3</name> </car> <car dept="C"> <number>4</number> <name language="en">name 4</name> </car>
</order>
File: Query.xquery
unordered {
let $doc := doc("Data.xml") return $doc//(number|name)
}
Output: <?xml version="1.0" encoding="UTF-8"?> <number>1</number> <name language="en">name 1</name> <number>2</number> <name language="en">name 2</name> <number>3</number> <name language="en">name 3</name> <number>4</number> <name language="en">name 4</name>
</source>
Using the uninventoryed function
<source lang="xml">
File: Data.xml
<order>
<car model="A"> <id>0001</id> <name language="en">name 1</name> <colorChoices>navy black</colorChoices> </car> <car model="B"> <id>0002</id> <name language="en">name 2</name> </car> <car model="B"> <id>0003</id> <name language="en">name 3</name> </car>
</order> File: inventory.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="C" id="0004" quantity="1" color="gray"/> <car model="A" id="0001" quantity="1" color="black"/>
</inventory>
File: Query.xquery uninventoryed( for $car in doc("inventory.xml")//car,
$car in doc("Data.xml")//car
where $car/@id = $car/id return <car id="{$car/@id}"
name="{$car/name}" quantity="{$car/@quantity}"/>
)
</source>