|
Implementations | ||||||||||||||||
Tests | BaseX 7.7 XQ30 |
EMC/xDB xDB_main_r2411365 XQ30 |
Saxon-EE 9.5.1.1 XP20 |
Saxon-EE 9.5.1.1 XQ10 |
Saxon-EE 9.5.1.1 XP30 |
Saxon-EE 9.5.1.1 XQ30 |
Saxon-EE 9.5.1.4 XQX30 (QT3 v1.1) |
XmlPrime 3.0.0.0 XP30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XP20 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX10 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ30 (QT3 vCVS) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
prod-TreatExpr | 69/69 | 69/69 | 34/34 | 69/69 | 59/59 | 69/69 | 67/69 | 59/59 | 69/69 | 69/69 | 34/34 | 69/69 | 69/69 | 69/69 | 69/69 | 2/15 |
treat-as-1[+]
X treat-as-1: let $var := (100+200) div 2 return fn:concat($var treat as xs:string,"a string") |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-2[+]
X treat-as-2: let $var := "String 1" return fn:concat($var treat as xs:string,"String 2") |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-3[+]
X treat-as-3: let $var := 100 return ($var treat as xs:integer) div 2 |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-4[+]
X treat-as-4: let $var := 100 return fn:abs($var treat as xs:decimal) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-5[+]
X treat-as-5: let $var := xs:decimal(100) return fn:abs($var cast as xs:integer treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-6[+]
X treat-as-6: let $var := xs:float(100) return fn:abs($var treat as xs:float) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-7[+]
X treat-as-7: let $var := xs:double(100) return fn:abs($var treat as xs:double) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-8[+]
X treat-as-8: let $var := xs:boolean(fn:true()) return fn:not($var treat as xs:boolean) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-9[+]
X treat-as-9: let $var := xs:date("2000-01-01+05:00") return fn:year-from-date($var treat as xs:date) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-10[+]
X treat-as-10: let $var := xs:dateTime("1999-05-31T13:20:00-05:00") return fn:minutes-from-dateTime($var treat as xs:dateTime) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-11[+]
X treat-as-11: let $var := xs:time("01:23:00+05:00") return fn:hours-from-time($var treat as xs:time) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-12[+]
X treat-as-12: let $var := 100 return ($var treat as xs:integer, $var treat as xs:integer, $var treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-13[+]
X treat-as-13: let $var := 100 return (xs:decimal($var) treat as xs:decimal, xs:double($var) treat as xs:double, xs:float($var) treat as xs:float, $var treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-14[+]
X treat-as-14: let $var := -100 return fn:abs($var cast as xs:float treat as xs:float) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-15[+]
X treat-as-15: let $var := -100 return fn:abs($var cast as xs:double treat as xs:double) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-16[+]
X treat-as-16: let $var := xs:float(-100) return fn:abs($var cast as xs:integer treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-17[+]
X treat-as-17: let $var := xs:double(-100) return fn:abs($var cast as xs:integer treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-18[+]
X treat-as-18: let $var := xs:double(-100) return fn:abs($var cast as xs:float treat as xs:float) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-19[+]
X treat-as-19: let $var := xs:float(-100) return fn:abs($var cast as xs:double treat as xs:double) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-20[+]
X treat-as-20: let $var := xs:decimal(-100) return fn:abs($var cast as xs:double treat as xs:double) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-21[+]
X treat-as-21: let $var := xs:decimal(-100) return fn:abs($var cast as xs:float treat as xs:float) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-22[+]
X treat-as-22: let $var := xs:float(-100) return fn:abs($var cast as xs:decimal treat as xs:decimal) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-23[+]
X treat-as-23: let $var := xs:double(-100) return fn:abs($var cast as xs:decimal treat as xs:decimal) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-24[+]
X treat-as-24: let $var := (100+200) div 10 return ($var cast as xs:integer treat as xs:integer) + 10 |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
treat-as-25[+]
X treat-as-25: let $var := (100+200) div 10 return ($var cast as xs:integer treat as xs:integer) - 10 |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
K-SeqExprTreat-1[+]
X K-SeqExprTreat-1: 3 treat as xs:string |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-2[+]
X K-SeqExprTreat-2: xs:double("3") treat as xs:float |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-3[+]
X K-SeqExprTreat-3: xs:anyURI("example.com/") treat as xs:float |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-4[+]
X K-SeqExprTreat-4: 3.0 treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-5[+]
X K-SeqExprTreat-5: xs:integer(3) treat as xs:decimal instance of xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-6[+]
X K-SeqExprTreat-6: "3" treat as xs:string eq '3' |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-7[+]
X K-SeqExprTreat-7: xs:integer("3") treat as xs:decimal instance of xs:decimal |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-8[+]
X K-SeqExprTreat-8: 3 treat as prefixDoesNotExist:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-9[+]
X K-SeqExprTreat-9: 3 treat as xs:doesNotExist |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-10[+]
X K-SeqExprTreat-10: 1 treat as empty-sequence() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-11[+]
X K-SeqExprTreat-11: ("asda" treat as xs:string +) eq "asda" |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-12[+]
X K-SeqExprTreat-12: ("asda" treat as xs:string *) eq "asda" |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-13[+]
X K-SeqExprTreat-13: (3 treat as xs:integer * * 3) eq 9 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-14[+]
X K-SeqExprTreat-14: (3 treat as xs:integer ? * 3) eq 9 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-15[+]
X K-SeqExprTreat-15: (4 treat as item() + - 5) = ((4 treat as item()+) - 5) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-16[+]
X K-SeqExprTreat-16: 3 treat as item( |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-SeqExprTreat-17[+]
X K-SeqExprTreat-17: (remove((5, 1e0), 2) treat as xs:integer) eq 5 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-SeqExprTreat-1[+]
X K2-SeqExprTreat-1: xs:decimal(3) treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-SeqExprTreat-2[+]
X K2-SeqExprTreat-2: 3 treat as item()+ + +1 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-SeqExprTreat-3[+]
X K2-SeqExprTreat-3: fn:root(self::node()) treat as document-node()/X |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-SeqExprTreat-4[+]
X K2-SeqExprTreat-4: empty(<e/>/(* treat as empty-sequence())) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-001[+]
X cbcl-treat-as-001: (1 to 10)[. mod 2 = 0] treat as xs:integer+ |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-002[+]
X cbcl-treat-as-002: (1 to 10)[. mod 2 = 0] treat as xs:integer* |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-003[+]
X cbcl-treat-as-003: zero-or-one((1 to 10)[. div 2 = 1]) treat as xs:integer+ |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-004[+]
X cbcl-treat-as-004: zero-or-one((1 to 10)[. div 2 = 1]) treat as xs:integer* |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-005[+]
X cbcl-treat-as-005: exactly-one((1 to 10)[. div 2 = 1]) treat as xs:integer+ |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-006[+]
X cbcl-treat-as-006: exactly-one((1 to 10)[. div 2 = 1]) treat as xs:integer* |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-007[+]
X cbcl-treat-as-007: count((1 to 10)[. mod 2 = 0] treat as xs:integer+) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-008[+]
X cbcl-treat-as-008: subsequence((1 to 10)[. mod 2 = 0] treat as xs:integer+,1,2) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-009[+]
X cbcl-treat-as-009: (1 to 10)[. div 2 = 0] treat as xs:integer+ |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-010[+]
X cbcl-treat-as-010: (1 to 10)[. mod 2 = 0] treat as xs:negativeInteger+ |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-011[+]
X cbcl-treat-as-011: (1 to 10)[. mod 2 = 0] treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-012[+]
X cbcl-treat-as-012: (1 to 10)[. mod 2 = 0] treat as xs:negativeInteger* |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-013[+]
X cbcl-treat-as-013: zero-or-one((1 to 10)[. div 2 = 0]) treat as xs:integer |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-014[+]
X cbcl-treat-as-014: zero-or-one((1 to 10)[. div 2 = 0]) treat as xs:integer+ |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-treat-as-015[+]
X cbcl-treat-as-015: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer) { $arg * 2 }; local:double(local:range(0) treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-016[+]
X cbcl-treat-as-016: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer) { $arg * 2 }; local:double(local:range(1) treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-017[+]
X cbcl-treat-as-017: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer) { $arg * 2 }; local:double(local:range(3) treat as xs:integer) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-018[+]
X cbcl-treat-as-018: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer?) { $arg * 2 }; empty(local:double(local:range(0) treat as xs:integer?)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-019[+]
X cbcl-treat-as-019: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer?) { $arg * 2 }; local:double(local:range(1) treat as xs:integer?) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-020[+]
X cbcl-treat-as-020: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer?) { $arg * 2 }; local:double(local:range(2) treat as xs:integer?) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-021[+]
X cbcl-treat-as-021: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer+) { for $a in $arg return $a * 2 }; local:double(local:range(0) treat as xs:integer+) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-022[+]
X cbcl-treat-as-022: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer+) { for $a in $arg return $a * 2 }; local:double(local:range(1) treat as xs:integer+) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-treat-as-023[+]
X cbcl-treat-as-023: declare function local:range($arg as xs:integer) as xs:integer* { 1 to $arg }; declare function local:double($arg as xs:integer+) { for $a in $arg return $a * 2 }; local:double(local:range(2) treat as xs:integer+) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |