|
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) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fn-local-name | 59/59 | 59/59 | 41/41 | 59/59 | 41/41 | 59/59 | 59/59 | 41/41 | 59/59 | 59/59 | 41/41 | 59/59 | 59/59 | 59/59 | 59/59 | 1/15 |
fn-local-name-1[+]
X fn-local-name-1: declare namespace eg = "http://example.org"; declare function eg:noContextFunction() { fn:local-name() }; eg:noContextFunction() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-1a[+]
X fn-local-name-1a: fn:local-name() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-2[+]
X fn-local-name-2: (1 to 100)[fn:local-name()] |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-3[+]
X fn-local-name-3: fn:local-name(/*, /*) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-4[+]
X fn-local-name-4: fn:local-name(()) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-5[+]
X fn-local-name-5: fn:local-name((//text())[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-6[+]
X fn-local-name-6: fn:count(fn:local-name((comment {"A Comment Node"}))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-7[+]
X fn-local-name-7: fn:count(fn:local-name(<!-- A Comment Node -->)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-8[+]
X fn-local-name-8: fn:count(fn:local-name(document {<aDocument>some content</aDocument>})) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-8a[+]
X fn-local-name-8a: fn:count(fn:local-name(/)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-9[+]
X fn-local-name-9: fn:string(fn:local-name(element anElement {"Some content"})) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-10[+]
X fn-local-name-10: fn:string(fn:local-name(<anElement>Some content</anElement>)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-11[+]
X fn-local-name-11: fn:string(fn:local-name(<p1:anElement xmlns:p1="http://example.com">Some content</p1:anElement>)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-11a[+]
X fn-local-name-11a: fn:local-name(/*) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-12[+]
X fn-local-name-12: fn:string(fn:local-name(attribute anAttribute {"Attribute Value"})) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-13[+]
X fn-local-name-13: declare namespace p1 = "http://example.org"; fn:string(fn:local-name(attribute p1:anAttribute {"Attribute Value"})) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-13a[+]
X fn-local-name-13a: fn:local-name((//@*:attr)[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-14[+]
X fn-local-name-14: fn:string(fn:local-name(processing-instruction PITarget {"PIcontent"})) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-15[+]
X fn-local-name-15: fn:string(fn:local-name(<?format role="output" ?>)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-16[+]
X fn-local-name-16: declare namespace p1 = "http://example.org"; fn:string(fn:local-name(<p1:anElement>Some content</p1:anElement>)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-17[+]
X fn-local-name-17: fn:string-length(fn:string(fn:local-name(<anElement>Some content</anElement>))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-18[+]
X fn-local-name-18: declare namespace p1 = "http://example.org"; fn:string(fn:local-name(element p1:anElement{"Some content"})) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-19[+]
X fn-local-name-19: fn:upper-case(fn:string(fn:local-name(<anElement>Some content</anElement>))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-20[+]
X fn-local-name-20: fn:lower-case(fn:string(fn:local-name(<anElement>Some content</anElement>))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-21[+]
X fn-local-name-21: fn:upper-case(fn:string(fn:local-name(attribute anAttribute {"Some content"}))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-22[+]
X fn-local-name-22: fn:lower-case(fn:string(fn:local-name(attribute anAttribute {"Some content"}))) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-23[+]
X fn-local-name-23: declare namespace eg = "http://example.org"; declare function eg:noContextFunction() { fn:local-name(.) }; eg:noContextFunction() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
fn-local-name-51[+]
X fn-local-name-51: fn:string-length(fn:local-name(())) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-52[+]
X fn-local-name-52: (fn:local-name(./works[1]/employee[1])) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-53[+]
X fn-local-name-53: (fn:local-name(./works[1]/employee[1]/@name)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-54[+]
X fn-local-name-54: fn:string-length(fn:local-name(.)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-55[+]
X fn-local-name-55: fn:string-length(fn:local-name(./works[1]/nonexistent[1])) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-56[+]
X fn-local-name-56: for $h in ./works[1]/employee[2] return fn:string-length(fn:local-name($h/child::text()[last()])) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-57[+]
X fn-local-name-57: fn:local-name() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-58[+]
X fn-local-name-58: for $h in (./works/employee[2]) return fn:upper-case(fn:local-name($h)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-59[+]
X fn-local-name-59: for $h in (./works/employee[2]) return fn:lower-case(fn:local-name($h)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-60[+]
X fn-local-name-60: for $h in (./works/employee[2]) return fn:local-name($h/parent::node()) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-61[+]
X fn-local-name-61: for $h in (./works/employee[2]) return fn:local-name($h/descendant::empnum[position() = 1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-62[+]
X fn-local-name-62: for $h in (./works/employee[2]) return fn:local-name($h/descendant-or-self::empnum[position() = 1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-63[+]
X fn-local-name-63: for $h in (./works/employee[2]) return fn:substring(fn:local-name($h),2) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-64[+]
X fn-local-name-64: for $h in (/works/employee[2]) return fn:concat(fn:local-name($h),"A String") |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-65[+]
X fn-local-name-65: for $h in (./works/employee[2]) return fn:local-name($h/self::employee) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-66[+]
X fn-local-name-66: for $h in (./works/employee[2]) return fn:count(fn:local-name($h/self::div)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-67[+]
X fn-local-name-67: for $h in (/works/employee[2]/@name) return fn:local-name($h/parent::node()) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-68[+]
X fn-local-name-68: fn:string-length(fn:local-name(./works[1]/employee[2]/@name)) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-71[+]
X fn-local-name-71: string-join((fn:local-name(./works[1]/employee[1]),fn:local-name(./works[1]/employee[2])), ' ') |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-72[+]
X fn-local-name-72: fn:count(((fn:local-name(/works[1]/employee[1]),fn:local-name(/works[1]/employee[2])))) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-73[+]
X fn-local-name-73: fn:local-name(.) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-74[+]
X fn-local-name-74: name(/*) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-75[+]
X fn-local-name-75: name((//*:Start)[1]/@*) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-76[+]
X fn-local-name-76: name((//@xml:*)[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-77[+]
X fn-local-name-77: name((//namespace::*[.='http://www.w3.org/1999/xlink'])[1]) |
no result | n/a | no result | pass | n/a
notXQ10 |
pass | n/a
notXQ30 |
pass | n/a | n/a | pass | n/a | n/a | n/a
Dependency (type=feature, value=namespace-axis, satisfied=true) was not met. Dependency (type=spec, value=XP20+, satisfied=true) was not met. |
n/a
Dependency (type=feature, value=namespace-axis, satisfied=true) was not met. Dependency (type=spec, value=XP20+, satisfied=true) was not met. |
|
fn-local-name-78[+]
X fn-local-name-78: name((//processing-instruction())[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-79[+]
X fn-local-name-79: name((//*[.='1983'])[1]) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-80[+]
X fn-local-name-80: name((//comment())[1]) = '' |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
fn-local-name-81[+]
X fn-local-name-81: name((//text())[1]) = '' |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-NodeLocalNameFunc-1[+]
X K-NodeLocalNameFunc-1: local-name((), "wrong param") |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-NodeLocalNameFunc-2[+]
X K-NodeLocalNameFunc-2: if(false()) then local-name() else true() |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K-NodeLocalNameFunc-3[+]
X K-NodeLocalNameFunc-3: local-name(()) eq "" |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-NodeLocalNameFunc-1[+]
X K2-NodeLocalNameFunc-1: local-name(/works/employee[1]/@name) |
pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |