- 「,」でつながれてない式
- 単一式(Single Expressions)
- 「,」でつながれた式
- 式(Expressions)
以下、スキーマによって型付けされていない場合の式メモ。
算術式
1 + 2 → 3
1 + <x>2</x> → 3
<x>1</x> + <x>2</x> → 3
1 + <x>abc</x> → error
値比較式
演算子 |
説明 |
eq |
equal |
ne |
not equal |
lt |
less than |
le |
less than or equal |
gt |
greater than |
ge |
greater than or equal |
"ab" eq "cd" → false
<x>ab</x> eq "ab" → true
10 gt 2 → true
"10" gt "2" → false
fn:number(<x>10</x>) lt 10 → false
<x>10</x> eq 10 → error (左辺は文字列"10")
"abc" ne ("def") → true (単一アイテムのシーケンスは単独の原子値またはノードと等価)
"abc" ne ("def", "ghi") → error (右辺が単一式ではないため)
一般演算式
演算子 |
説明 |
= |
equal |
!= |
not equal |
|
less than |
<= |
less than or equal |
> |
greater than |
>= |
greater than or equal |
1 = (1, 2) → true
(1, 2) = (1, 3) → true
("1", "2") = ("3", "4") → false
2 < <x>10</x> → true
"2" < <x>10</x> → false
<x>2007-09-01</x> < xs:date("2007-10-01") → true
1 = <x/> → error (空文字""は数値に変換できない)
論理式
and
|
第2オペランド |
true |
false |
error |
第1オペランド |
true |
true |
false |
error |
false |
false |
false |
false or error |
error |
error |
false or error |
error |
or
|
第2オペランド |
true |
false |
error |
第1オペランド |
true |
true |
true |
true or error |
false |
true |
false |
error |
error |
true or error |
error |
error |
1 = (1, 2) and (1, 2) = (1, 3) → true and true → true
2 < <x>10</x> or "2" < <x>10</x> → true or false → true
1 = (1, 2) and 1 = <x/> → true and error → error
("1", "2") = ("3", "4") and 1 = <x/> → false and error → false or error
1 = (1, 2) or 1 = <x/> → true or error → true or error
- 空シーケンスの場合、false
- 1個以上のアイテムを持つシーケンスの場合、先頭アイテムがノードならばtrue、そうでなければfalse
- 文字列の場合、長さ0ならばfalse、そうでなければtrue
- 数値の場合、0またはNaNならばfalse、そうでなければtrue
条件式
if (式) then 単一式 else 単一式
if ((1, 2) = (1, 3)) then 1 else 0 → 1
if (2 < <x>10</x> and "2" < <x>10</x> then 1 else 0 → 0