|
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-CompDocConstructor | 58/58 | 58/58 | 0/0 | 58/58 | 0/0 | 58/58 | 56/58 | 0/0 | 58/58 | 58/58 | 0/0 | 58/58 | 58/58 | 57/58 | 57/58 | 2/15 |
Constr-docnode-adjtext-1[+]
X Constr-docnode-adjtext-1: count((document {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-docnode-adjtext-2[+]
X Constr-docnode-adjtext-2: count((document {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-docnode-adjtext-3[+]
X Constr-docnode-adjtext-3: count((document {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-docnode-nested-1[+]
X Constr-docnode-nested-1: document {1, document {2, document {document {()}, document {3}}, 4}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-nested-2[+]
X Constr-docnode-nested-2: document {/root} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-nested-3[+]
X Constr-docnode-nested-3: count(document {1, document{2}, document { document {()}, document {3}}, 4}/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-nested-4[+]
X Constr-docnode-nested-4: count(document {"", document{""}, document { document {()}, document {""}}, ""}/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-enclexpr-1[+]
X Constr-docnode-enclexpr-1: document {()} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-enclexpr-2[+]
X Constr-docnode-enclexpr-2: document {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-docnode-enclexpr-3[+]
X Constr-docnode-enclexpr-3: document {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-docnode-enclexpr-4[+]
X Constr-docnode-enclexpr-4: document {1, '', 2} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-nodeid-1[+]
X Constr-docnode-nodeid-1: for $x in <a/>, $y in document {$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-docnode-nodeid-3[+]
X Constr-docnode-nodeid-3: for $x in <!--comment-->, $y in document {$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-docnode-nodeid-4[+]
X Constr-docnode-nodeid-4: for $x in <?pi content?>, $y in document {$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-docnode-nodeid-5[+]
X Constr-docnode-nodeid-5: for $x in <a>text</a>, $y in document {$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-docnode-constrmod-1[+]
X Constr-docnode-constrmod-1: declare construction strip; fn:count(fn:data((document {//*:idrefs})/*)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-constrmod-2[+]
X Constr-docnode-constrmod-2: declare construction preserve; fn:count(fn:data((document {//*:idrefs})/*)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-constrmod-3[+]
X Constr-docnode-constrmod-3: declare construction strip; (document {//*:decimal})/* 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-docnode-constrmod-4[+]
X Constr-docnode-constrmod-4: declare construction preserve; (document {//*:decimal})/* 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-docnode-doc-1[+]
X Constr-docnode-doc-1: document {., .} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-parent-1[+]
X Constr-docnode-parent-1: count((document {()})/..) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-string-1[+]
X Constr-docnode-string-1: fn:string(document {'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-docnode-data-1[+]
X Constr-docnode-data-1: fn:data(document {'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-docnode-attr-1[+]
X Constr-docnode-attr-1: document {//@mark} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-attr-2[+]
X Constr-docnode-attr-2: document {<a/>, //@mark} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-docnode-attr-3[+]
X Constr-docnode-attr-3: document {<a/>, //@mark, <b/>} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-1[+]
X K2-ConDocNode-1: document-node{"content"} |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-2[+]
X K2-ConDocNode-2: document{"content"}; |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | fail | fail | |
K2-ConDocNode-3[+]
X K2-ConDocNode-3: document{"some text", <e/>, attribute name {"content"}} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-4[+]
X K2-ConDocNode-4: document{<e/>, attribute name {"content"}, "some text"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-5[+]
X K2-ConDocNode-5: document{attribute name {"content"}, <e/>, "some text"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-6[+]
X K2-ConDocNode-6: string(document{"some text", <e/>, attribute name {"content"}}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-7[+]
X K2-ConDocNode-7: string(document{<e/>, attribute name {"content"}, "some text"}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-8[+]
X K2-ConDocNode-8: string(document{attribute name {"content"}, <e/>, "some text"}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-9[+]
X K2-ConDocNode-9: document{<a/>, <b/>, <c/>} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-10[+]
X K2-ConDocNode-10: document{<a/>, <b/>, <c/>} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-11[+]
X K2-ConDocNode-11: <a>{data(document{<a/>, <b/>, <c/>})}</a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-12[+]
X K2-ConDocNode-12: <a>{string(document{<a/>, <b/>, <c/>})}</a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-13[+]
X K2-ConDocNode-13: <a>{string(document{<a/>, <b/>, <c/>})}</a> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-14[+]
X K2-ConDocNode-14: string(document{"abc"}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-15[+]
X K2-ConDocNode-15: data(document {"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-ConDocNode-16[+]
X K2-ConDocNode-16: document {"content"} is document{"content"} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-17[+]
X K2-ConDocNode-17: string(document{"string", <e>more<a>even more</a><b attr="thisIsIgnored"/><![CDATA[ButNotThis]]><?target butThisIs?> content</e>}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-18[+]
X K2-ConDocNode-18: string(document{ text {"data"}, processing-instruction name {"data"}, processing-instruction name {"data"}, text {"data"}, processing-instruction name {"data"}, processing-instruction name1 {"data"}, comment {"content"}, comment {"content"}, text {"data"}, processing-instruction name2 {"data"}, comment {"content"}, text {"data"} }) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-19[+]
X K2-ConDocNode-19: count(document{document{document{document{()}}}}/child::node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-20[+]
X K2-ConDocNode-20: 1, document{document{document{document{()}}}}/child::node(), 1 |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-21[+]
X K2-ConDocNode-21: document{document{document{document{<e/>}}}}/child::node() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-22[+]
X K2-ConDocNode-22: document{document{document{document{<e/>, document{()}, <e>{document{()}}</e>}}}}//child::node() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-23[+]
X K2-ConDocNode-23: string(document{ text {"data"}, text {"data"}, text {"data"}, text {"data"} }) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-24[+]
X K2-ConDocNode-24: count(document{ text {"data"}, text {"data"}, <e/>, text {"data"}, text {"data"} }/child::node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-25[+]
X K2-ConDocNode-25: count(document{ text {"data"}, text {"data"}, text {"data"}, text {"data"} }/child::node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-26[+]
X K2-ConDocNode-26: <doo> { document { attribute name {"content"} } } </doo> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-27[+]
X K2-ConDocNode-27: <doo> { document { <e/>, attribute name {"content"} } } </doo> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-28[+]
X K2-ConDocNode-28: <doo> { document { <e> <b/> <b/> <b/> <c> <d/> </c> </e>, attribute name {"content"} } } </doo> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-29[+]
X K2-ConDocNode-29: <doo> { document { <e> { <?target data?>, attribute name {"content"} } </e> } } </doo> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-30[+]
X K2-ConDocNode-30: count(<a>{document {text{'a'}}}b</a>/node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-31[+]
X K2-ConDocNode-31: string(document {1, document {2, document {document {()}, 3, document {4}}, 5}, 6}) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-ConDocNode-32[+]
X K2-ConDocNode-32: document {1, document {2, document {document {()}, 3, document {4}}, 5}, 6} |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |