XML/XQuery/prolog
A query with prolog and body
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
declare boundary-space preserve;
declare namespace prod = "http://wbex.ru/prod";
declare variable $order := doc("Data.xml")//order;
<firstResult>{count($order/car)}</firstResult>,
<prod:secondResult>{$order/car/id}</prod:secondResult>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<firstResult>3</firstResult>
<prod:secondResult xmlns:prod="http://wbex.ru/prod">
<id>0001</id>
<id>0002</id>
<id>0003</id>
</prod:secondResult>
Prolog default namespace declaration
File: Data.xml
<order xmlns="http://wbex.ru/cat">
<id>1446</id>
<prod:car xmlns:prod="http://wbex.ru/prod">
<prod:id>0002</prod:id>
<prod:name language="en">name 2</prod:name>
</prod:car>
</order>
File: Query.xquery
declare default element namespace "http://wbex.ru/cat";
declare namespace rep = "http://wbex.ru/report";
declare namespace prod = "http://wbex.ru/prod";
<rep:report> {
doc("Data.xml")/order/prod:car
} </rep:report>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<rep:report xmlns:rep="http://wbex.ru/report">
<prod:car xmlns:prod="http://wbex.ru/prod" xmlns="http://wbex.ru/cat">
<prod:id>0002</prod:id>
<prod:name language="en">name 2</prod:name>
</prod:car>
</rep:report>
Prolog namespace declarations
File: Data.xml
<order xmlns="http://wbex.ru/cat">
<id>1446</id>
<prod:car xmlns:prod="http://wbex.ru/prod">
<prod:id>0002</prod:id>
<prod:name language="en">name 2</prod:name>
</prod:car>
</order>
File: Query.xquery
declare namespace rep = "http://wbex.ru/report";
declare namespace prod = "http://wbex.ru/prod";
<rep:report> {
doc("Data.xml")//prod:car
} </rep:report>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<rep:report xmlns:rep="http://wbex.ru/report">
<prod:car xmlns:prod="http://wbex.ru/prod" xmlns="http://wbex.ru/cat">
<prod:id>0002</prod:id>
<prod:name language="en">name 2</prod:name>
</prod:car>
</rep:report>