|
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-CompElemConstructor | 72/72 | 71/72 | 0/0 | 72/72 | 0/0 | 72/72 | 71/72 | 0/0 | 72/72 | 72/72 | 0/0 | 72/72 | 72/72 | 72/72 | 72/72 | 2/15 |
Constr-compelem-name-1[+]
X Constr-compelem-name-1: element elem {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-name-2[+]
X Constr-compelem-name-2: declare namespace foo="http://www.example.com/foo"; element 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-compelem-name-3[+]
X Constr-compelem-name-3: element 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-compelem-compname-1[+]
X Constr-compelem-compname-1: element {()} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-2[+]
X Constr-compelem-compname-2: element {'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-compelem-compname-3[+]
X Constr-compelem-compname-3: element {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-compelem-compname-4[+]
X Constr-compelem-compname-4: element {//a} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-5[+]
X Constr-compelem-compname-5: element {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-compelem-compname-6[+]
X Constr-compelem-compname-6: element {123} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-7[+]
X Constr-compelem-compname-7: element {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-compelem-compname-8[+]
X Constr-compelem-compname-8: element {//*: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-compelem-compname-9[+]
X Constr-compelem-compname-9: element {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-compelem-compname-10[+]
X Constr-compelem-compname-10: element {'elem'} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-11[+]
X Constr-compelem-compname-11: element {'elem', ()} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-12[+]
X Constr-compelem-compname-12: element {(), 'elem'} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-13[+]
X Constr-compelem-compname-13: <elem xmlns:foo="http://www.example.com/foo">{element {'foo:elem'} {'text'}}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-14[+]
X Constr-compelem-compname-14: element {'foo:elem'} {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-15[+]
X Constr-compelem-compname-15: element {xs:untypedAtomic('elem')} {'text'} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-16[+]
X Constr-compelem-compname-16: <elem xmlns:foo="http://www.example.com/foo">{element {xs:untypedAtomic('foo:elem')} {'text'}}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-compname-17[+]
X Constr-compelem-compname-17: element {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-compelem-compname-18[+]
X Constr-compelem-compname-18: element {'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-compelem-compname-19[+]
X Constr-compelem-compname-19: element {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-compelem-adjtext-1[+]
X Constr-compelem-adjtext-1: count((element elem {1, 'string', 1,2e3})/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-adjtext-2[+]
X Constr-compelem-adjtext-2: count((element elem {1, //text(), 'string'})/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-adjtext-3[+]
X Constr-compelem-adjtext-3: count((element elem {1, 2, <a/>, 3, 4, <b/>, 5, 6})/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nested-1[+]
X Constr-compelem-nested-1: element elem {1, element a {2, element b {element c {}, element d {3}}, 4}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nested-2[+]
X Constr-compelem-nested-2: element elem {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-enclexpr-1[+]
X Constr-compelem-enclexpr-1: element elem {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-enclexpr-2[+]
X Constr-compelem-enclexpr-2: element elem {1,'a',3.5,4e2} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-enclexpr-3[+]
X Constr-compelem-enclexpr-3: element elem {1,//a,2,3,//comment(),4,5,//processing-instruction(),6,7,//text(),8} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-enclexpr-4[+]
X Constr-compelem-enclexpr-4: element elem {1, '', 2} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nodeid-1[+]
X Constr-compelem-nodeid-1: for $x in <a/>, $y in element elem {$x} return exactly-one($y/a) is $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nodeid-2[+]
X Constr-compelem-nodeid-2: for $x in <a b="b"/>, $y in element elem {$x/@b} return $y/@b is $x/@b |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nodeid-3[+]
X Constr-compelem-nodeid-3: for $x in <!--comment-->, $y in element elem {$x} return exactly-one($y/comment()) is $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nodeid-4[+]
X Constr-compelem-nodeid-4: for $x in <?pi content?>, $y in element elem {$x} return exactly-one($y/processing-instruction()) is $x |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-nodeid-5[+]
X Constr-compelem-nodeid-5: for $x in <a>text</a>, $y in element elem {$x/text()} return exactly-one($y/text()) is exactly-one($x/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-constrmod-3[+]
X Constr-compelem-constrmod-3: declare construction strip; (element elem {xs:decimal((//decimal[1]))}) cast as xs:integer |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-constrmod-4[+]
X Constr-compelem-constrmod-4: declare construction preserve; (element elem {xs:decimal((//decimal[1]))}) cast as xs:integer |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-constrmod-7[+]
X Constr-compelem-constrmod-7: declare construction strip; (element elem {//*:decimal/@*:attr})/@*:attr cast as xs:integer |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-constrmod-8[+]
X Constr-compelem-constrmod-8: declare construction preserve; (element elem {xs:decimal(//*:decimal[1]/@*:attr)}) cast as xs:integer |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-baseuri-1[+]
X Constr-compelem-baseuri-1: fn:base-uri(element elem {attribute xml:base {"http://www.example.com"}}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-baseuri-2[+]
X Constr-compelem-baseuri-2: fn:base-uri(exactly-one((<elem xml:base="http://www.example.com">{element a {}}</elem>)/a)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-baseuri-3[+]
X Constr-compelem-baseuri-3: declare base-uri "http://www.example.com"; fn:base-uri(element elem {}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-doc-1[+]
X Constr-compelem-doc-1: element elem {., .} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-parent-1[+]
X Constr-compelem-parent-1: count((element elem {})/..) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-string-1[+]
X Constr-compelem-string-1: fn:string(element elem {'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-compelem-data-1[+]
X Constr-compelem-data-1: fn:data(element elem {'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-compelem-attr-1[+]
X Constr-compelem-attr-1: element elem {1, //west/@mark} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-attr-2[+]
X Constr-compelem-attr-2: element elem {element a {}, //west/@mark} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-attr-3[+]
X Constr-compelem-attr-3: element elem {//west/@mark, //west/@west-attr-1} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-compelem-attr-4[+]
X Constr-compelem-attr-4: element elem {//west/@mark, //center/@mark} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-1[+]
X K2-ComputeConElem-1: element "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-ComputeConElem-2[+]
X K2-ComputeConElem-2: <elem>{"", "", <e/>, <b></b>}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-3[+]
X K2-ComputeConElem-3: <elem>{<e/>, <b></b>, "", ""}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-4[+]
X K2-ComputeConElem-4: element {"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-ComputeConElem-5[+]
X K2-ComputeConElem-5: element {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-ComputeConElem-6[+]
X K2-ComputeConElem-6: data(element foo {"dsa"}) 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-ComputeConElem-7[+]
X K2-ComputeConElem-7: data(element foo {"dsa"}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-8[+]
X K2-ComputeConElem-8: element e {"content"} instance of element(*, xs:anyType) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-9[+]
X K2-ComputeConElem-9: element e {"content"} instance of element(*, xs:untyped) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-10[+]
X K2-ComputeConElem-10: declare construction strip; element e {"content"} instance of element(*, xs:untyped) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-11[+]
X K2-ComputeConElem-11: element e {"content"} instance of element(a, xs:anyType) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-12[+]
X K2-ComputeConElem-12: declare construction strip; element e {"content"} instance of element(b, xs:untyped) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-13[+]
X K2-ComputeConElem-13: element e {element b{()}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-14[+]
X K2-ComputeConElem-14: declare function local:addNamespace($argElement as element(), $argPrefix as xs:string, $namespaceURI as xs:string) as element() { element { QName($namespaceURI, concat($argPrefix, ":x")) }{$argElement}/* }; local:addNamespace(<a><b/></a>, "prefix", "http://example.com/") |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ComputeConElem-15[+]
X K2-ComputeConElem-15: declare default element namespace "http://example.com/NS"; element {exactly-one((//*)[3])} {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-elem-bad-name-1[+]
X comp-elem-bad-name-1: element {"xmlns:error"} {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-elem-bad-name-2[+]
X comp-elem-bad-name-2: (: 3.7.3.1 Computed Element Constructor per XQ.E19 XQDY0096 if namespace URI is 'http://www.w3.org/2000/xmlns/' Mary Holstege :) element { fn:QName("http://www.w3.org/2000/xmlns/","error")} {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-elem-bad-name-3[+]
X comp-elem-bad-name-3: (: 3.7.3.1 Computed Element Constructor per XQ.E19 XQDY0096 if namespace URI is 'http://www.w3.org/2000/xmlns/' Mary Holstege :) element { fn:QName("http://www.w3.org/2000/xmlns/","foo:error")} {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-elem-bad-name-4[+]
X comp-elem-bad-name-4: (: 3.7.3.1 Computed Element Constructor per XQ.E19 XQDY0096 if namespace prefix is 'xml' and namespace URI is not 'http://www.w3.org/XML/1998/namespace' Mary Holstege :) element { fn:QName("http://example.com/not-XML-uri","xml:error") } {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-elem-bad-name-5[+]
X comp-elem-bad-name-5: (: 3.7.3.1 Computed Element Constructor per XQ.E19 XQDY0096 if namespace prefix is not 'xml' and its namespace URI is 'http://www.w3.org/XML/1998/namespace' Mary Holstege :) element { fn:QName("http://www.w3.org/XML/1998/namespace","foo:error") } {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
comp-elem-bad-name-6[+]
X comp-elem-bad-name-6: (: 3.7.3.1 Computed Element Constructor per XQ.E19 XQDY0096 if namespace prefix is 'xmlns' Mary Holstege :) element { fn:QName("http://example.com/some-uri","xmlns:error") } {} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |