|
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-StepExpr | 58/58 | 56/58 | 3/3 | 58/58 | 3/3 | 58/58 | 46/58 | 3/3 | 58/58 | 58/58 | 3/3 | 58/58 | 58/58 | 58/58 | 58/58 | 2/15 |
K2-Steps-1[+]
X K2-Steps-1: declare function local:myFunc() { e[1] }; local:myFunc() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-2[+]
X K2-Steps-2: declare function local:myFunc() { e[928] }; local:myFunc() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-3[+]
X K2-Steps-3: declare function local:myFunc() { e[true()] }; local:myFunc() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-4[+]
X K2-Steps-4: declare function local:myFunc() { e[last()] }; local:myFunc() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-5[+]
X K2-Steps-5: empty(<a/>/a) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-6[+]
X K2-Steps-6: <a/>/. |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-7[+]
X K2-Steps-7: count((<a/>, <!--comment-->)/3) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-8[+]
X K2-Steps-8: (/)/(//)/foo |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-Steps-9[+]
X K2-Steps-9: child::local:b(:ada |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-Steps-10[+]
X K2-Steps-10: declare variable $myVar := <e>text</e>; $myVar/text()/(<e/>, (), 1, <e/>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-11[+]
X K2-Steps-11: /// |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-Steps-12[+]
X K2-Steps-12: declare variable $e := ()/.; declare variable $b := <b/>/.; $e, <b/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-13[+]
X K2-Steps-13: empty(<e/>/(for $i in e return $i)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-14[+]
X K2-Steps-14: <r> { let $i := <e> <a/> <b/> </e> let $b := ($i/b, $i/a, $i/b, $i/a) return ()/$b } </r> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-15[+]
X K2-Steps-15: <r> { let $i := <e> <a/> <b/> </e> let $b := ($i/b, $i/a, $i/b, $i/a) return <e/>/$b } </r> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-16[+]
X K2-Steps-16: <r> { let $i := <e> <a/> <b/> </e> let $b := ($i/b, $i/a, $i/b, $i/a) return <e/>/./$b } </r> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-17[+]
X K2-Steps-17: <r> { let $i := <e> <a/> <b/> </e> let $b := ($i/b, $i/a, $i/b, $i/a) return $b/. } </r> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-18[+]
X K2-Steps-18: <e> <a/> </e>/*/(., .)/. |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-19[+]
X K2-Steps-19: <e> <a/> </e>/(., .)/. |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-20[+]
X K2-Steps-20: <e> <a/> <b/> </e>/((b, a)/., (.), (*, *)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-21[+]
X K2-Steps-21: declare variable $root := <a> <b e="B"/> <c e="B"/> </a>; declare function local:function($arg) { $root["B" eq $arg/@e] }; $root/local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-22[+]
X K2-Steps-22: declare variable $root := <a> <b e="B"/> <c e="B"/> </a>; declare function local:function($arg) { $root[exactly-one($arg/@e)] }; $root/local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-23[+]
X K2-Steps-23: declare variable $root := <a><c e=""/></a>; declare function local:function($arg) { $root[$arg/@e] }; $root/local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-24[+]
X K2-Steps-24: declare variable $root := <root> <b d=""/> <c> <c d=""/> <c/> </c> </root>; declare function local:function($object) { $root/b[@d = $object/@d] }; $root/c/c/local:function(.) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-25[+]
X K2-Steps-25: declare variable $root := <root> <b d=""/> <c> <c d=""/> <c/> </c> </root>; declare function local:function($object) { $root/b[@d = $object/@d] }; $root//local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-26[+]
X K2-Steps-26: declare variable $root := <root> <b d=""/> <c> <c d=""/> <c/> </c> </root>; declare function local:function($object) { $root/b[$object/@d] }; $root//local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-27[+]
X K2-Steps-27: declare variable $root := <root> <b d=""/> <c> <c d=""/> <c/> </c> </root>; declare function local:function($object) { $root[$object/@d] }; $root//local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-28[+]
X K2-Steps-28: declare variable $root := <root> <b d=""/> <c d=""/> </root>; declare function local:function($object) { $root[$object/@d] }; $root//local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-29[+]
X K2-Steps-29: declare variable $root := <root> <c d=""/> </root>; declare function local:function($object) { $root[$object/@d] }; $root//local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-30[+]
X K2-Steps-30: declare variable $root := <root> <c d=""/> </root>; declare function local:function($object) { $root[$object] }; $root//local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-31[+]
X K2-Steps-31: declare variable $root := <root><c/></root>; declare function local:function($arg) { $root[$arg] }; $root//local:function(.) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-32[+]
X K2-Steps-32: declare variable $root := <root/>; declare function local:function($arg, $count as xs:integer) { $arg, $root, if($count eq 2) then $root else local:function($arg, $count + 1) }; $root/local:function(., 1) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-33[+]
X K2-Steps-33: declare variable $root := ( <b d=""/>, <c> <c d=""/> </c> ); declare function local:function($object) { $root[@d eq $object/@d] }; $root/local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-34[+]
X K2-Steps-34: declare variable $root := ( <b d=""/>, <c d=""> <c d=""/> </c> ); declare function local:function($object) { $root[@d eq $object/@d] }; $root/local:function(c) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-Steps-35[+]
X K2-Steps-35: <e/>[1]/text{string-join(., " ")}, 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-1[+]
X Steps-leading-lone-slash-1: declare variable $var := document {<a>123</a>}; $var[/*5] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-1a[+]
X Steps-leading-lone-slash-1a: declare variable $var := document {<a>123</a>}; $var[(/)*5] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-2[+]
X Steps-leading-lone-slash-2: declare variable $var := document {<a>123</a>}; $var[/<a] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-2a[+]
X Steps-leading-lone-slash-2a: declare variable $var := document {<a>123</a>}; $var[(/)<a] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-3[+]
X Steps-leading-lone-slash-3: declare variable $var := document {<a>123</a>}; $var[/<5] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-3a[+]
X Steps-leading-lone-slash-3a: declare variable $var := document {<a>123</a>}; $var[(/)<5] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-4[+]
X Steps-leading-lone-slash-4: declare variable $var := document {<a>123</a>}; $var[/</b] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-5[+]
X Steps-leading-lone-slash-5: declare variable $var := document {<a>123</a>}; $var[/<a div 3] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-5a[+]
X Steps-leading-lone-slash-5a: declare variable $var := document {<a>123</a>}; $var[(/)<a div 3] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-6[+]
X Steps-leading-lone-slash-6: declare variable $var := document {<a>123</a>}; $var[/if ($doclevel) then / else /*] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-7[+]
X Steps-leading-lone-slash-7: declare variable $var := document {<a>123</a>}; declare variable $a := document {<a>123</a>}; $var[/ is $a] |
pass | fail | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-7a[+]
X Steps-leading-lone-slash-7a: declare variable $var := document {<a>123</a>}; declare variable $a := document {<a>123</a>}; $var[(/) is $a] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-8[+]
X Steps-leading-lone-slash-8: declare variable $var := document {<a>123</a>}; $var[/ instance of document-node(element(x))] |
pass | fail | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-8a[+]
X Steps-leading-lone-slash-8a: declare variable $var := document {<a>123</a>}; $var[(/) instance of document-node(element(x))] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-9[+]
X Steps-leading-lone-slash-9: declare variable $var := document {<a>123</a>}; let $doc := / return $doc/* |
pass | wrongError
expected: XPST0003 actualCode: XPDY0002 |
no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-10[+]
X Steps-leading-lone-slash-10: declare variable $var := document {<a>123</a>}; $var[/*] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-11[+]
X Steps-leading-lone-slash-11: declare variable $var := document {<a>123</a>}; $var[/<a/>] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-12[+]
X Steps-leading-lone-slash-12: declare variable $var := document {<a>123</a>}; $var[/<a div="3"/>] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-13[+]
X Steps-leading-lone-slash-13: declare variable $var := document {<a>123</a>}; $var[/unordered{a}] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-14[+]
X Steps-leading-lone-slash-14: declare variable $var := document {<a>123</a>}; $var[/max(a)] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-15[+]
X Steps-leading-lone-slash-15: declare variable $var := document {<a>123</a>}; $var[/-5] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-16[+]
X Steps-leading-lone-slash-16: declare variable $var := document {<a>123</a>}; declare variable $a := document {<a>123</a>}; $var[/=$a] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Steps-leading-lone-slash-17[+]
X Steps-leading-lone-slash-17: declare variable $var := document {<a>123</a>}; declare variable $a := document {<a>123</a>}; $var[5*/] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |