|
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-IfExpr | 42/42 | 42/42 | 27/27 | 42/42 | 29/29 | 42/42 | 39/42 | 29/29 | 42/42 | 42/42 | 27/27 | 42/42 | 42/42 | 42/42 | 42/42 | 2/15 |
CondExpr002[+]
X CondExpr002: if (fn:true()) then <elem1/> else <elem2/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr003[+]
X CondExpr003: if (fn:false()) then <elem1/> else <elem2/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr004[+]
X CondExpr004: if (//CompanyName) then <elem1/> else <elem2/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr005[+]
X CondExpr005: if (//NodeDoesNotExist) then <elem1/> else <elem2/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr006[+]
X CondExpr006: <out>{ if (1 != 0) then if (4 != 5) then 1 else 2 else 3 }</out> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr007[+]
X CondExpr007: if (//MissingNode) then <elem3/> else if (/Root/Customers[@CustomerID='ALFKI']//Country = "Germany") then <elem1/> else <elem2/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr008[+]
X CondExpr008: if ( /Root/Customers[1]/@CustomerID = 'ALFKI' and /Root/Customers[1]/FullAddress/City = 'Berlin') then "pass" else "fail" |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr009[+]
X CondExpr009: if (/Root/Customers[1]/@CustomerID = 'ALFKI' or /Root/Customers[1]/FullAddress/City = 'Non-Existent') then "pass" else "fail" |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr010[+]
X CondExpr010: if (2 != 4) then 1 else 0 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr011[+]
X CondExpr011: fn:string-length(if (2 != 3) then 'foo' else 'expanded-foo') |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr012[+]
X CondExpr012: if (/doc/widget1/@unit-cost = /doc/widget2/@unit-cost) then /doc/widget1/@name else /doc/widget2/@name |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr013[+]
X CondExpr013: if (if (5 != 3) then fn:true() else fn:empty(/doc/widget1)) then "search" else "assume" |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
CondExpr014[+]
X CondExpr014: ( if (3 != 2) then 16 else 0 ) + ( if (8 = 7) then 4 else 1 ) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr015[+]
X CondExpr015: (if (3 != 2) then 16 else 0) + (if (8 = 7) then 4 else 1) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr016[+]
X CondExpr016: (//Folder)[1]/File[ if ( ./@name='File00000000000' ) then 2 else true() ]/FileName |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr017[+]
X CondExpr017: for $file in (//Folder)[1]/File return if( $file/FileName='File00000000000' ) then $file/FileName else data( $file/FileName ) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr018[+]
X CondExpr018: for $file in (//Folder)[1]/File return if( $file/FileName='File00000000004' ) then 1 else data( $file/FileName ) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr019[+]
X CondExpr019: if //File[1] then "true" else "false" |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr20[+]
X CondExpr20: if( false() ) then /Folder[1] cast as xs:double ? else 10 cast as xs:double ? |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr21[+]
X CondExpr21: if( true() ) then 10 cast as xs:double ? else /Folder[1] cast as xs:double ? |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
CondExpr022[+]
X CondExpr022: if (doc-available('nodocument.xml')) then doc('nodocument.xml') else 10 cast as xs:double |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-1[+]
X K-CondExpr-1: (if(2) then 1 else 0) eq 1 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-2[+]
X K-CondExpr-2: if(()) then false() else true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-3[+]
X K-CondExpr-3: (if((1, current-time())[1] treat as xs:integer) then true() else false()) eq true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-4[+]
X K-CondExpr-4: (if(boolean((1, current-time())[1] treat as xs:integer)) then true() else false()) eq true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-5[+]
X K-CondExpr-5: if((1, 2, 3, hours-from-time(current-time()))[1]) then true() else false() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-6[+]
X K-CondExpr-6: string(if(boolean((1, current-time())[1] treat as xs:integer)) then true() else false()) eq "true" |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-7[+]
X K-CondExpr-7: (if(current-time()) then 1 else 0) eq 1 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-8[+]
X K-CondExpr-8: 1 eq (if(xs:anyURI("example.com/")) then 1 else 0) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-9[+]
X K-CondExpr-9: 0 eq (if(xs:anyURI("")) then 1 else 0) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-10[+]
X K-CondExpr-10: if(count((1, 2, 3, current-time(), 4))) then true() else 4 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-11[+]
X K-CondExpr-11: if(not(count(remove((1, 2, 3, current-time()), 1)))) then 3 else true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-CondExpr-12[+]
X K-CondExpr-12: if(boolean((1, 2, 3, current-time())[1] treat as xs:integer)) then true() else 4 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-CondExpr-1[+]
X K2-CondExpr-1: empty(if(<e>{current-time()}</e>) then () else ()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-CondExpr-2[+]
X K2-CondExpr-2: empty(if(<e>{current-time()}</e>) then 1 else 1) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-CondExpr-3[+]
X K2-CondExpr-3: declare default function namespace "http://www.example.com/"; declare function unordered() { 1 }; unordered() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-CondExpr-4[+]
X K2-CondExpr-4: if(//(employee[location = "Denver"]/ancestor::*)) then 1 else 3 |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-CondExpr-5[+]
X K2-CondExpr-5: if(!true()) then 2 else 3 |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-CondExpr-6[+]
X K2-CondExpr-6: <e/>/if(true()) then 1 else 3 |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-CondExpr-7[+]
X K2-CondExpr-7: if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else if (1) then 1 else () |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
cbcl-condexpr-001[+]
X cbcl-condexpr-001: let $x := zero-or-one((1 to 10)[. div 2 = 2]) return if(exists($x)) then xs:string($x) else () |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-condexpr-002[+]
X cbcl-condexpr-002: let $x := zero-or-one((1 to 10)[. div 2 = 2]) return if(empty($x)) then () else xs:string($x) |
pass | pass | pass | n/a
notXP20 |
pass | pass | pass | pass | pass | pass | n/a | pass | pass | pass | pass |