|
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-CompAttrConstructor | 109/109 | 104/107 | 0/0 | 109/109 | 0/0 | 109/109 | 108/109 | 0/0 | 109/109 | 110/109 | 0/0 | 109/109 | 109/109 | 109/109 | 109/109 | 0/15 |
Constr-compattr-name-1[+]
X Constr-compattr-name-1: element elem {attribute attr {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-name-2[+]
X Constr-compattr-name-2: declare namespace foo="http://www.example.com/foo"; element elem {attribute foo:attr {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-name-3[+]
X Constr-compattr-name-3: element elem {attribute foo:attr {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-1[+]
X Constr-compattr-compname-1: element elem {attribute {()} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-2[+]
X Constr-compattr-compname-2: element elem {attribute {'one', 'two'} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-3[+]
X Constr-compattr-compname-3: element elem {attribute {xs:untypedAtomic('one'), xs:untypedAtomic('two')} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-4[+]
X Constr-compattr-compname-4: element elem {attribute {//a} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-5[+]
X Constr-compattr-compname-5: element elem {attribute {1,2} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-6[+]
X Constr-compattr-compname-6: element elem {attribute {123} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-7[+]
X Constr-compattr-compname-7: element elem {attribute {xs:dateTime("1999-05-31T13:20:00")} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-8[+]
X Constr-compattr-compname-8: element elem {attribute {//*:NCName[1]} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-9[+]
X Constr-compattr-compname-9: element elem {attribute {xs:QName('aQname')} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-10[+]
X Constr-compattr-compname-10: element elem {attribute {'attr'} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-11[+]
X Constr-compattr-compname-11: element elem {attribute {'attr', ()} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-12[+]
X Constr-compattr-compname-12: element elem {attribute {(), 'attr'} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-13[+]
X Constr-compattr-compname-13: <elem xmlns:foo="http://www.example.com/foo">{element elem {attribute {'foo:attr'} {}}}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-14[+]
X Constr-compattr-compname-14: element elem {attribute {'foo:attr'} {}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-15[+]
X Constr-compattr-compname-15: element elem {attribute {xs:untypedAtomic('attr')} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-16[+]
X Constr-compattr-compname-16: <elem xmlns:foo="http://www.example.com/foo">{attribute {xs:untypedAtomic('foo:attr')} {'text'}}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-17[+]
X Constr-compattr-compname-17: element elem {attribute {xs:untypedAtomic('foo:elem')} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-18[+]
X Constr-compattr-compname-18: element elem {attribute {'el em'} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-compname-19[+]
X Constr-compattr-compname-19: element elem {attribute {xs:untypedAtomic('el em')} {'text'}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-doc-1[+]
X Constr-compattr-doc-1: element elem {attribute attr {., .}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-parent-1[+]
X Constr-compattr-parent-1: count((attribute attr {})/..) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-string-1[+]
X Constr-compattr-string-1: fn:string(attribute attr {'a', element a {}, 'b'}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-data-1[+]
X Constr-compattr-data-1: fn:data(attribute attr {'a', element a {}, 'b'}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-enclexpr-1[+]
X Constr-compattr-enclexpr-1: element elem {attribute attr {1,'string',3.14,xs:float('1.2345e-2'),xs:dateTime('2002-04-02T12:00:00-01:00')}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-enclexpr-2[+]
X Constr-compattr-enclexpr-2: element elem {attribute attr {<elem>123</elem>, (<elem attr='456'/>)/@attr, (<elem>789</elem>)/text()}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-enclexpr-3[+]
X Constr-compattr-enclexpr-3: element elem {attribute attr {1,'',2}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-enclexpr-4[+]
X Constr-compattr-enclexpr-4: element elem {attribute attr {1,<a/>,2}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-id-1[+]
X Constr-compattr-id-1: element elem {attribute xml:id {"ncname"}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compattr-id-2[+]
X Constr-compattr-id-2: element elem {attribute xml:id {" ab c d "}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
constattrerr-1[+]
X constattrerr-1: declare variable $input-context1 external; attribute xmlns {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-1[+]
X K2-ComputeConAttr-1: attribute "name" {"content"} |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-2[+]
X K2-ComputeConAttr-2: <elem> <?target content ?> {attribute name {"content"}} </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-3[+]
X K2-ComputeConAttr-3: <elem> {"a string", attribute name {"content"}} </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-4[+]
X K2-ComputeConAttr-4: <elem> {"a string", attribute name {"content"}} </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-5[+]
X K2-ComputeConAttr-5: <elem> <![CDATA[]]> {attribute name {"content"}} </elem> |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-6[+]
X K2-ComputeConAttr-6: <elem> <![CDATA[content]]> {attribute name {"content"}} </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-7[+]
X K2-ComputeConAttr-7: <elem> <!-- content --> {attribute name {"content"}} </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-8[+]
X K2-ComputeConAttr-8: <elem> <!-- comment --> { "a string", 999, attribute name {"content"}, xs:hexBinary("FF") } </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-9[+]
X K2-ComputeConAttr-9: <elem> <!-- comment --> { "a string", 999, ("another string", attribute name {"content"}, 383), xs:hexBinary("FF") } </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-10[+]
X K2-ComputeConAttr-10: <a> <?target content?> {<b>{attribute name{"content"}}</b>} </a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-11[+]
X K2-ComputeConAttr-11: <a>{(<?target content?>, attribute name{"content"})[2]} </a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-12[+]
X K2-ComputeConAttr-12: <a> <!-- content --> {attribute name{"content"}} </a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-13[+]
X K2-ComputeConAttr-13: <foo > <doo/> {attribute name {"content"}} </foo> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-14[+]
X K2-ComputeConAttr-14: declare function local:myFunc() { <a/> }; <b> {local:myFunc()} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-15[+]
X K2-ComputeConAttr-15: declare function local:myFunc() { comment {"content"} }; <b> {local:myFunc()} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-16[+]
X K2-ComputeConAttr-16: declare function local:myFunc() as element()+ { <a/> }; <b> {local:myFunc()} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-17[+]
X K2-ComputeConAttr-17: declare function local:myFunc() as item() { <a/> }; <b> {local:myFunc()} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-18[+]
X K2-ComputeConAttr-18: declare function local:myFunc() as item() { <a/> }; <b> {local:myFunc()} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-19[+]
X K2-ComputeConAttr-19: declare function local:myFunc($recurse as xs:integer) { <nested> { if ($recurse = 0) then () else local:myFunc($recurse - 1) } </nested> }; <b> {local:myFunc(3)} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-20[+]
X K2-ComputeConAttr-20: declare function local:myFunc($recurse as xs:integer) as item() { <nested> { if ($recurse = 0) then () else local:myFunc($recurse - 1) } </nested> }; <b> {local:myFunc(3)} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-21[+]
X K2-ComputeConAttr-21: declare function local:myFunc() { <elem/>, attribute name {"content"} }; <b> {local:myFunc()} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-22[+]
X K2-ComputeConAttr-22: declare variable $myVar := (<elem/>, attribute name {"content"}); <b> {$myVar} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-23[+]
X K2-ComputeConAttr-23: declare variable $myVar := (<elem/>, attribute name {"content"}); <b> {$myVar[2]} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-24[+]
X K2-ComputeConAttr-24: declare variable $myVar := (attribute name {"content"}, <elem/>); <b> {$myVar[2]} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-25[+]
X K2-ComputeConAttr-25: declare function local:myFunc($recurse as xs:integer) { attribute {concat("name", $recurse)} {"content"} , if ($recurse = 0) then () else local:myFunc($recurse - 1) }; <b> {local:myFunc(2)} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-26[+]
X K2-ComputeConAttr-26: declare function local:myFunc() { attribute name {"content"}, <elem/> }; <b> {local:myFunc()} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-27[+]
X K2-ComputeConAttr-27: declare function local:myFunc() { <elem/>, attribute name {"content"} }; <b> {local:myFunc()[2]} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-28[+]
X K2-ComputeConAttr-28: declare variable $local:myVar := <a/>; <b> {$local:myVar} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-29[+]
X K2-ComputeConAttr-29: declare variable $local:myVar as item() := <a/>; <b> {$local:myVar} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-30[+]
X K2-ComputeConAttr-30: declare variable $local:myVar := attribute n2 {"content"}; <b> {$local:myVar} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-31[+]
X K2-ComputeConAttr-31: declare function local:myFunc() { attribute n2 {"content"} }; <b> {local:myFunc()} {attribute name {"content"}} </b> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-32[+]
X K2-ComputeConAttr-32: <e> { attribute name {<anElement/>}, attribute name2 {"content"} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-33[+]
X K2-ComputeConAttr-33: <e> { attribute name {"content"}, attribute name2 {"content"} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-34[+]
X K2-ComputeConAttr-34: <e> { attribute name {xs:hexBinary("ff")}, attribute name2 {"content"} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-35[+]
X K2-ComputeConAttr-35: <elem><![CDATA[]]>{attribute name {"content"}}<alem/> </elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-36[+]
X K2-ComputeConAttr-36: count(<elem><![CDATA[]]></elem>/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-37[+]
X K2-ComputeConAttr-37: attribute xmlns:localName {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-38[+]
X K2-ComputeConAttr-38: attribute {"xmlns:localName"} {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-39[+]
X K2-ComputeConAttr-39: attribute aPrefix:localName {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-40[+]
X K2-ComputeConAttr-40: attribute {"aPrefix:localName"} {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-41[+]
X K2-ComputeConAttr-41: attribute {xs:untypedAtomic("aPrefix::localName")} {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-42[+]
X K2-ComputeConAttr-42: declare namespace prefix = "http://www.w3.org/2000/xmlns/"; <e>{attribute prefix:localName {"content"}}</e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-43[+]
X K2-ComputeConAttr-43: declare namespace prefix = "http://www.w3.org/2000/xmlns/"; <e>{attribute {"prefix:localName"} {"content"}}</e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-44[+]
X K2-ComputeConAttr-44: attribute {"xmlns"} {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-45[+]
X K2-ComputeConAttr-45: attribute xmlns {"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-46[+]
X K2-ComputeConAttr-46: declare default element namespace "http://www.example.com/"; <e>{attribute xmlns {"content"}}</e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-47[+]
X K2-ComputeConAttr-47: data(attribute foo {"content"}) instance of xs:untypedAtomic |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-48[+]
X K2-ComputeConAttr-48: string(attribute xml:id {" ab c d "}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-49[+]
X K2-ComputeConAttr-49: declare namespace a = "http://example.com/A"; declare namespace b = "http://example.com/A"; <e> { attribute a:localName {()}, attribute b:localName {()} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-50[+]
X K2-ComputeConAttr-50: <e> { attribute {QName("http://example.com/", "attr")} {()}, attribute {QName("http://example.com/", "attr")} {()} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-51[+]
X K2-ComputeConAttr-51: <e> { attribute {QName("http://example.com/", "attr")} {()} } </e> |
pass | disputed | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-52[+]
X K2-ComputeConAttr-52: <e xmlns:p="http://example.com/" p:attr=""> { attribute {QName("http://example.com/", "p:attr")} {()} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-53[+]
X K2-ComputeConAttr-53: <e> { attribute {QName("http://example.com/", "attr")} {()} } </e> |
pass | disputed | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-54[+]
X K2-ComputeConAttr-54: string-length(xs:NCName(prefix-from-QName(node-name(attribute {QName("http://example.com/", "attr")} {()})))) > 0 |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-55[+]
X K2-ComputeConAttr-55: prefix-from-QName(node-name(attribute {QName("http://www.w3.org/XML/1998/namespace", "attr")} {()})) |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-56[+]
X K2-ComputeConAttr-56: <e> { attribute {QName("http://www.w3.org/XML/1998/namespace", "space")} {"default"} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-57[+]
X K2-ComputeConAttr-57: <e> { attribute {QName("http://www.w3.org/2000/xmlns/", "space")} {"default"} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-58[+]
X K2-ComputeConAttr-58: <e xmlns:p="http://example.com/" p:attr1="value"> { attribute {QName("http://example.com/", "attr2")} {()} } </e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-59[+]
X K2-ComputeConAttr-59: <a> { attribute xml:id {"1"} } </a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-60[+]
X K2-ComputeConAttr-60: <a> { attribute xml:space {"DEFAULT"} } </a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConAttr-61[+]
X K2-ComputeConAttr-61: let $x := ( attribute a { "a" }, element b { "b" }, attribute c { "c" } ) return <foo> { $x } </foo> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-1[+]
X comp-attr-bad-name-1: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if namespace prefix is 'xmlns' Mary Holstege :) <result>{attribute {"xmlns:error"} {}}</result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-2[+]
X comp-attr-bad-name-2: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if no namespace prefix and local name is 'xmlns' Mary Holstege :) <result>{attribute {"xmlns"} {}}</result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-3[+]
X comp-attr-bad-name-3: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if namespace URI is 'http://www.w3.org/2000/xmlns/' Mary Holstege :) <result>{ attribute { fn:QName("http://www.w3.org/2000/xmlns/","error")} {} }</result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-4[+]
X comp-attr-bad-name-4: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if namespace URI is 'http://www.w3.org/2000/xmlns/' Mary Holstege :) <result>{ attribute { fn:QName("http://www.w3.org/2000/xmlns/","foo:error")} {} }</result> |
pass | wrongError
expected: XQDY0044 actualCode: XQST0070 |
pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-5[+]
X comp-attr-bad-name-5: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if namespace prefix is 'xml' and namespace URI is not 'http://www.w3.org/XML/1998/namespace' Mary Holstege :) <result>{ attribute { fn:QName("http://example.com/not-XML-uri","xml:error") } {} }</result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-6[+]
X comp-attr-bad-name-6: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if namespace prefix is not 'xml' and namespace URI is 'http://www.w3.org/XML/1998/namespace' Mary Holstege :) <result>{ attribute { fn:QName("http://www.w3.org/XML/1998/namespace","foo:error")} {} }</result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-attr-bad-name-7[+]
X comp-attr-bad-name-7: (: 3.7.3.2 Computed Attribute Constructor per XQ.E19 XQDY0044 if namespace prefix is 'xmlns' Mary Holstege :) <result>{attribute {fn:QName("http://example.com/some-uri","xmlns:error")} {}}</result> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-001[+]
X cbcl-constr-compattr-001: for $a in attribute { fn:QName("http://www.w3.org/2000/xmlns/", "namespace:foo") } { "bar" } return name($a) |
pass | wrongError
expected: XQDY0044 actualCode: XQST0070 |
pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-002[+]
X cbcl-constr-compattr-002: for $a in attribute { fn:QName("http://www.example.com/", "xmlns:foo") } { "bar" } return name($a) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-003[+]
X cbcl-constr-compattr-003: for $a in attribute { "xmlns" } { "bar" } return name($a) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-005[+]
X cbcl-constr-compattr-005: for $a in attribute { fn:QName("http://www.example.com/", "xml:foo") } { "bar" } return name($a) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-006[+]
X cbcl-constr-compattr-006: for $a in attribute { fn:QName("http://www.w3.org/XML/1998/namespace", "sgml:foo") } { "bar" } return name($a) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-007[+]
X cbcl-constr-compattr-007: <element xmlns:sgml="http://www.example.com/other"> { for $a in attribute { fn:QName("http://www.example.com/", "sgml:foo") } { } return concat(name($a), "=", namespace-uri($a)) } </element> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-008[+]
X cbcl-constr-compattr-008: declare function local:factorial($arg as xs:integer) as xs:integer { if ($arg le 1) then 1 else $arg * local:factorial($arg - 1) }; <element> { attribute { fn:QName("http://www.example.com/", "sgml:foo") } { local:factorial(5) } } </element> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-constr-compattr-009[+]
X cbcl-constr-compattr-009: declare function local:even-range($arg as xs:integer) as xs:integer* { (1 to $arg)[. mod 2 = 9] }; <element> { attribute { 'attr' } { local:even-range(0) } } </element> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |