XML/XQuery/unordered — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
 
м (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>