XML/XQuery/Constructor
Constructor with boundary whitespace
File: Data.xml
<order>
<car model="A">
<id>0001</id>
<name language="en">name 1</name>
</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: Query.xquery
let $prod := doc("Data.xml")//car[1] return
<ul>
{ <li> <b> id:</b> { $prod/id } </li> }
</ul>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<ul>
<li>
<b> id:</b>
<id>0001</id>
</li>
</ul>
Simple computed constructor
File: Data.xml
<order>
<car model="A">
<id>0001</id>
<name language="en">name 1</name>
</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: Query.xquery
element html {
element h1 { "car order" },
element ul {
for $prod in doc("Data.xml")/order/car
return element li {"id:",data($prod/id),", name:",data($prod/name)}
}
}
Output:
<?xml version="1.0" encoding="UTF-8"?>
<html>
<h1>car order</h1>
<ul>
<li>id: 0001 , name: name 1</li>
<li>id: 0002 , name: name 2</li>
<li>id: 0003 , name: name 3</li>
</ul>
</html>