|
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-AxisStep.following-sibling | 33/33 | 33/33 | 21/21 | 33/33 | 21/21 | 33/33 | 33/33 | 21/21 | 33/33 | 33/33 | 21/21 | 33/33 | 33/33 | 33/33 | 33/33 | 3/15 |
followingsibling-1[+]
X followingsibling-1: (200)/following-sibling::* |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-2[+]
X followingsibling-2: fn:count(/works/employee[1]/following-sibling::noSuchNode) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-3[+]
X followingsibling-3: exactly-one(/works/employee[12]/following-sibling::employee) is exactly-one(/works/employee[13]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-4[+]
X followingsibling-4: exactly-one(/works[1]/employee[12]/following-sibling::employee) is exactly-one(/works[1]/employee[12]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-5[+]
X followingsibling-5: exactly-one(/works[1]/employee[12]/overtime/day[1]/following-sibling::day) << exactly-one(/works[1]/employee[13]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-6[+]
X followingsibling-6: exactly-one(/works[1]/employee[12]/following-sibling::employee) << exactly-one(/works[1]/employee[12]/following-sibling::employee) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-7[+]
X followingsibling-7: exactly-one(/works[1]/employee[12]/following-sibling::employee) << exactly-one(/works[1]/employee[12]/overtime[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-8[+]
X followingsibling-8: exactly-one(/works[1]/employee[13]) >> exactly-one(/works[1]/employee[12]/overtime[1]/day[1]/following-sibling::day) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-9[+]
X followingsibling-9: exactly-one(/works[1]/employee[12]/following-sibling::employee) >> exactly-one(/works[1]/employee[12]/following-sibling::employee) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-10[+]
X followingsibling-10: exactly-one(/works[1]/employee[12]) >> exactly-one(/works[1]/employee[12]/following-sibling::employee) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-11[+]
X followingsibling-11: (/works/employee[12]/*/day[1]/following-sibling::day) | (/works/employee[12]/*/day[1]/following-sibling::day) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-12[+]
X followingsibling-12: (/works/employee[12]/*/day[1]/following-sibling::day) | (/works/employee[12]/*/day[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-13[+]
X followingsibling-13: (/works[1]/employee[12]/overtime[1]/day[1]/following-sibling::day) intersect (/works[1]/employee[12]/overtime[1]/day[1]/following-sibling::day) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-14[+]
X followingsibling-14: fn:count((/works[1]/employee[12]/following-sibling::employee) except (/works[1]/employee[12]/following-sibling::employee)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-15[+]
X followingsibling-15: (/works[1]/employee[12]/overtime/day) except (/works[1]/employee[12]/overtime/day[1]/following-sibling::day) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-16[+]
X followingsibling-16: (/works[1]/employee[12]/following-sibling::employee) and fn:true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-17[+]
X followingsibling-17: (/works[1]/employee[12]/following-sibling::employee) and fn:false() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-18[+]
X followingsibling-18: (/works[1]/employee[12]/following-sibling::employee) or fn:true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-19[+]
X followingsibling-19: (/works[1]/employee[12]/following-sibling::employee) or fn:false() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-20[+]
X followingsibling-20: fn:deep-equal(/works[1]/employee[12]/following-sibling::employee,/works[1]/employee[12]/following-sibling::employee) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
followingsibling-21[+]
X followingsibling-21: let $var := <anElement>Some Content</anElement> return fn:count($var/following::*) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
unabbreviatedSyntax-24[+]
X unabbreviatedSyntax-24: for $h in (/works/employee[2]) return $h/following-sibling::employee[fn:position() = 1] |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-following-siblingAxis-1[+]
X K2-following-siblingAxis-1: <root> <child/> <child/> <child/> </root>/child[1]/following-sibling::node() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-2[+]
X K2-following-siblingAxis-2: <root> <child/> <child/> <child attr="foo" attr2="foo"/> </root>/child[1]/following-sibling::node() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-3[+]
X K2-following-siblingAxis-3: count(<root> <child/> <child/> <child attr="foo" attr2="foo"/> </root>/child[1]/following-sibling::node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-4[+]
X K2-following-siblingAxis-4: declare variable $i := <root> <child/> <child/> <child> <child2> <child3> <leaf/> </child3> </child2> </child> </root>; root($i)//count(following-sibling::node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-5[+]
X K2-following-siblingAxis-5: declare variable $i := <root> <child/> <child/> <child> <child2> <child3> <leaf/> </child3> </child2> </child> </root>; root($i)//following-sibling::node() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-6[+]
X K2-following-siblingAxis-6: declare variable $i := <root> <child/> <child/> <child> <child2> <child3> <leaf/> </child3> </child2> </child> </root>; root($i)//(following-sibling::node(), "BOO") |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-7[+]
X K2-following-siblingAxis-7: count(<root> <child/> </root>/following-sibling::node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-8[+]
X K2-following-siblingAxis-8: 1, <root> <child/> </root>/following-sibling::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-9[+]
X K2-following-siblingAxis-9: 1, <root/>/following-sibling::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-following-siblingAxis-10[+]
X K2-following-siblingAxis-10: <result> { <a><b/></a>/*/following::*[2] } </result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
following-sibling-attr[+]
X following-sibling-attr: <foo a='1' b='2' c='3'> <bar>4</bar> <bar>5</bar> <bar>6</bar> </foo>/@a/following-sibling::node() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |