|
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.ancestor-or-self | 31/31 | 31/31 | 21/21 | 31/31 | 21/21 | 31/31 | 31/31 | 21/21 | 31/31 | 31/31 | 21/21 | 31/31 | 31/31 | 31/31 | 31/31 | 3/15 |
ancestorself-1[+]
X ancestorself-1: (200)/ancestor-or-self::* |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-2[+]
X ancestorself-2: fn:count(/works/employee[1]/ancestor-or-self::noSuchNode) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-3[+]
X ancestorself-3: exactly-one(/works/employee[1]/ancestor-or-self::works) is exactly-one(/works) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-4[+]
X ancestorself-4: exactly-one(/works/employee[1]/ancestor-or-self::works) is exactly-one(/works/employee[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-5[+]
X ancestorself-5: exactly-one(/works/employee[1]/ancestor-or-self::works) << exactly-one(/works/employee[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-6[+]
X ancestorself-6: exactly-one(/works/employee[1]/ancestor-or-self::works) << exactly-one(/works/employee[1]/ancestor-or-self::works) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-7[+]
X ancestorself-7: exactly-one(/works/employee[1]/ancestor-or-self::works) << exactly-one(/works/employee[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-8[+]
X ancestorself-8: exactly-one(/works/employee[1]) >> exactly-one(/works/employee[1]/ancestor-or-self::works) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-9[+]
X ancestorself-9: exactly-one(/works/employee[1]/ancestor-or-self::works) >> exactly-one(/works/employee[1]/ancestor-or-self::works) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-10[+]
X ancestorself-10: exactly-one(/works/employee[1]/ancestor-or-self::works) >> exactly-one(/works/employee[1]/hours) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-11[+]
X ancestorself-11: ((/works/employee[12]/*/day/ancestor-or-self::overtime) | (/works/employee[12]/*/day/ancestor-or-self::overtime))/count(*) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-12[+]
X ancestorself-12: ((/works/employee[12]/*/day[1]/ancestor-or-self::overtime) | (/works/employee[12]/*/day[2]/ancestor-or-self::overtime))/count(*) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-13[+]
X ancestorself-13: ((/works/employee[12]/overtime/day/ancestor-or-self::employee) intersect (/works/employee[12]/overtime/day/ancestor-or-self::employee))/@name |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-14[+]
X ancestorself-14: fn:count((/works/employee[12]/overtime/day[ancestor-or-self::overtime]) except (/works/employee[12]/overtime/day[ancestor-or-self::overtime])) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-15[+]
X ancestorself-15: (/works/employee[12]/overtime/day[ancestor-or-self::overtime]) except (/works/employee[12]/overtime/day[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-16[+]
X ancestorself-16: (/works/employee[12]/overtime/day[ancestor-or-self::overtime]) and fn:true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-17[+]
X ancestorself-17: (/works/employee[12]/overtime/day[ancestor-or-self::overtime]) and fn:false() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-18[+]
X ancestorself-18: (/works/employee[12]/overtime/day[ancestor-or-self::overtime]) or fn:true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-19[+]
X ancestorself-19: (/works/employee[12]/overtime/day[ancestor-or-self::overtime]) or fn:false() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-20[+]
X ancestorself-20: fn:deep-equal(/works/employee[12]/overtime/ancestor-or-self::works,/works/employee[12]/overtime/ancestor-or-self::works) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
ancestorself-21[+]
X ancestorself-21: let $var := <anElement>Some Content</anElement> return $var/ancestor-or-self::* |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
unabbreviatedSyntax-11[+]
X unabbreviatedSyntax-11: (for $h in (/works/employee[1]/hours) return $h/ancestor-or-self::employee)/@name |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-1[+]
X K2-ancestor-or-selfAxis-1: 1, <element/>/ancestor-or-self::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-2[+]
X K2-ancestor-or-selfAxis-2: 1, <?target data?>/ancestor-or-self::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-3[+]
X K2-ancestor-or-selfAxis-3: 1, (attribute name {"content"}/ancestor-or-self::node() instance of attribute(name)), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-4[+]
X K2-ancestor-or-selfAxis-4: 1, <!-- content -->/ancestor-or-self::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-5[+]
X K2-ancestor-or-selfAxis-5: 1, document {()}/ancestor-or-self::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-6[+]
X K2-ancestor-or-selfAxis-6: 1, text {""}/ancestor-or-self::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-7[+]
X K2-ancestor-or-selfAxis-7: count(<a> <b c=""> <c/> </b> <d/> </a>/b/c/(ancestor-or-self::*)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-8[+]
X K2-ancestor-or-selfAxis-8: <a> <b c=""> <c/> </b> <d/> </a>//count(ancestor-or-self::*) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ancestor-or-selfAxis-9[+]
X K2-ancestor-or-selfAxis-9: <r> <a> <b> <c/> </b> </a> </r>/a/b/c/(ancestor-or-self::*[1], ancestor-or-self::*[2], ancestor-or-self::*[last()], ancestor-or-self::*[10]) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |