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