An XML Syntax for XQuery
Intended for machine processing and programmer convenience, not for human legibility
In XQuery:
for $t in doc("bib.xml")/bib/book/title
return
$t
In XQueryX:
<?xml version="1.0"?>
<xqx:module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xqx="http://www.w3.org/2003/12/XQueryX"
xsi:schemaLocation="http://www.w3.org/2003/12/XQueryX xqueryx.xsd">
<xqx:mainModule>
<xqx:queryBody>
<xqx:expr xsi:type="xqx:flwrExpr">
<xqx:forClause>
<xqx:forClauseItem>
<xqx:typedVariableBinding>
<xqx:varName>t</xqx:varName>
</xqx:typedVariableBinding>
<xqx:forExpr>
<xqx:expr xsi:type="xqx:pathExpr">
<xqx:expr xsi:type="xqx:functionCallExpr">
<xqx:functionName>doc</xqx:functionName>
<xqx:parameters>
<xqx:expr xsi:type="xqx:stringConstantExpr">
<xqx:value>bib.xml</xqx:value>
</xqx:expr>
</xqx:parameters>
</xqx:expr>
<xqx:stepExpr>
<xqx:xpathAxis>child</xqx:xpathAxis>
<xqx:elementTest>
<xqx:nodeName>
<xqx:QName>bib</xqx:QName>
</xqx:nodeName>
</xqx:elementTest>
</xqx:stepExpr>
<xqx:stepExpr>
<xqx:xpathAxis>child</xqx:xpathAxis>
<xqx:elementTest>
<xqx:nodeName>
<xqx:QName>book</xqx:QName>
</xqx:nodeName>
</xqx:elementTest>
</xqx:stepExpr>
<xqx:stepExpr>
<xqx:xpathAxis>child</xqx:xpathAxis>
<xqx:elementTest>
<xqx:nodeName>
<xqx:QName>title</xqx:QName>
</xqx:nodeName>
</xqx:elementTest>
</xqx:stepExpr>
</xqx:expr>
</xqx:forExpr>
</xqx:forClauseItem>
</xqx:forClause>
<xqx:returnClause>
<xqx:expr xsi:type="xqx:variable">
<xqx:name>b</xqx:name>
</xqx:expr>
</xqx:returnClause>
</xqx:expr>
</xqx:elementContent>
</xqx:expr>
</xqx:queryBody>
</xqx:mainModule>
</xqx:module>