| 書式 | 省略 | コメント | |
|---|---|---|---|
| for | for <変数> in <式> | letがある場合可 | for句は、<式>が返すシーケンスのすべての項目を処理する反復処理 |
| let | let <変数> := <式> | forがある場合可 | 変数を宣言して<式>の評価結果をバインド |
| order by | order by <式> (descending) | 可 | <式>で指定された値により検索結果をソート.descending(降順)、ascending(昇順) |
| where | where <式> | 可 | <式>は論理値か、論理値として解釈される値を返す式 |
| return | return <式>/return <コンストラクタ> | 不可 | FLWOR式全体の返却値として1つのシーケンスに処理順にまとめられる |
example
for $変数 in 式 let $変数 := 式 order by 式 where 式 return 式
<example>
{
.
.
.
}
</example>
先頭に$を付けた任意の名前
| 演算式 | 意味 |
|---|---|
| union | どちらかに含まれる |
| intersect | 両方にあらわれる |
| except | 最初にのみあらわれる |
example
$x = (A,B) , $y =(B,C) $x union $y = (A,B,C) $x intersect $y = (B) $x except $y = (A)
let $items := (
doc("file1.xml")
doc("file2.xml")
doc("file3.xml")
)
for $x in items ...
example xml
<books> <book id="00">ほげほげ</book> <book id="01">ふがふが</book> </books>
example xquery
for $book in /books/book return data($book/@id)
or
for $book in /books/book return $book/@id/string()