XQueryノート(三)--その他の文法
基本的な構文規則:
XQueryは大文字と小文字に敏感XQueryの要素、属性および変数は、正当なXML名でなければなりません.
XQuery文字列の値には、一重引用符または二重引用符を使用できます.
XQuery変数は「$」で定義され、例えば$bookstore という名前に従って定義されます.
XQuery注釈は(:および:)によって分割され、例えば、(:XQuery注釈:)
本明細書の例で使用するdept.xml
<?xml version="1.0" encoding="UTF-8"?>
<table>
<row>
<DEPTNO>15</DEPTNO>
<DNAME>ACCOUNTING</DNAME>
<LOC field="parent">NEW YORK</LOC>
</row>
<row>
<DEPTNO>20</DEPTNO>
<DNAME>RESEARCH</DNAME>
<LOC field="child">DALLAS</LOC>
</row>
<row>
<DEPTNO>30</DEPTNO>
<DNAME>SALES</DNAME>
<LOC field="parent">CHICAGO</LOC>
</row>
<row>
<DEPTNO>40</DEPTNO>
<DNAME>OPERATIONS</DNAME>
<LOC field="child">BOSTON</LOC>
</row>
</table>
前の2つの記事のdept.xmlに比べてfield属性が多くなりました
* If-Then-Else
C/C++やJavaやC#などの文法と同じです.
for $x in doc("sample2/dept.xml")/table/row
where $x/DEPTNO > 20
return if($x/LOC/@field="parent")
then <parent>{data($x/LOC)}</parent>
else <child>{data($x/LOC)}</child>
結果:
<parent>CHICAGO</parent>
<child>BOSTON</child>