XQuery構文
XQueryでは大文字と小文字が区別され、XQueryの要素、属性、および変数は有効なXML名である必要があります。
XQueryの基本的な構文規則
いくつかの基本的な構文規則:
- XQueryでは大文字と小文字が区別されます
- XQueryの要素、属性、および変数は、有効なXML名である必要があります
- XQuery文字列値は一重引用符または二重引用符で囲むことができます
- XQuery変数は、$の後に名前を付けて定義されます(例:$ bookstore)。
- XQueryコメントは(:および:)で区切られます。例:(:XQuery Comment :)
XMLサンプルドキュメント
以下の例では、「books.xml」ドキュメントを使用します(前の章と同じXMLファイル)。
XQuery条件式
「If-Then-Else」式はXQueryで許可されています。
次の例を見てください。
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="children")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
「if-then-else」構文に関する注意: if式が必要な場合は括弧で囲みます。elseは必須ですが、else()にすることもできます。
上記の例の結果は次のようになります。
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
XQueryの比較
XQueryでは、値を比較する2つの方法があります。
1.一般的な比較:=、!=、<、<=、>、> =
2.値の比較:eq、ne、lt、le、gt、ge
2つの比較方法の違いを以下に示します。
次の式は、q属性の値が10より大きい場合にtrueを返します。
$bookstore//book/@q > 10
次の式は、式によって返されるq属性が1つだけで、その値が10より大きい場合にtrueを返します。複数のqが返されると、エラーが発生します。
$bookstore//book/@q gt 10