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>