|
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-DirElemContent | 118/127 | 115/127 | 4/4 | 126/126 | 4/4 | 126/126 | 107/126 | 4/4 | 127/127 | 127/127 | 4/4 | 127/127 | 127/127 | 126/127 | 126/127 | 2/15 |
Constr-cont-invalid-1[+]
X Constr-cont-invalid-1: <elem>{</elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-invalid-2[+]
X Constr-cont-invalid-2: <elem>}</elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-invalid-3[+]
X Constr-cont-invalid-3: <elem><</elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-invalid-4[+]
X Constr-cont-invalid-4: <elem>&</elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-eol-1[+]
X Constr-cont-eol-1: <codepoints>{string-to-codepoints(<elem>1 2</elem>)}</codepoints> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-eol-2[+]
X Constr-cont-eol-2: <codepoints>{string-to-codepoints(<elem>1
2</elem>) }</codepoints> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-eol-3[+]
X Constr-cont-eol-3: <codepoints>{string-to-codepoints(<elem>
</elem>)}</codepoints> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-eol-4[+]
X Constr-cont-eol-4: <codepoints>{string-to-codepoints(<elem>
</elem>)}</codepoints> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-entref-1[+]
X Constr-cont-entref-1: string-to-codepoints(<elem><</elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-entref-2[+]
X Constr-cont-entref-2: string-to-codepoints(<elem>></elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-entref-3[+]
X Constr-cont-entref-3: string-to-codepoints(<elem>&</elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-entref-4[+]
X Constr-cont-entref-4: string-to-codepoints(<elem>"</elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-entref-5[+]
X Constr-cont-entref-5: string-to-codepoints(<elem>'</elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-charref-1[+]
X Constr-cont-charref-1: <elem>0</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-charref-2[+]
X Constr-cont-charref-2: <elem>�</elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | fail | fail | |
Constr-cont-cdata-1[+]
X Constr-cont-cdata-1: <elem><![CDATA[cdata&<>'"< ]]></elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-text-1[+]
X Constr-cont-text-1: count((<elem>text</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-text-2[+]
X Constr-cont-text-2: count((<elem>text<![CDATA[cdata]]></elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nested-1[+]
X Constr-cont-nested-1: <elem><a><b/></a><a/><c/></elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nested-2[+]
X Constr-cont-nested-2: <elem><?pi?><?pi content?></elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nested-3[+]
X Constr-cont-nested-3: <elem><!----><!--content--></elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nested-4[+]
X Constr-cont-nested-4: <elem>A<a>B<?pi?>C<b/>D<!---->E</a>F<!--content-->G<a/>H<?pi content?>I<c/>J</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-enclexpr-1[+]
X Constr-cont-enclexpr-1: count((<elem>{1,'a',3.5,4e2}</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-enclexpr-2[+]
X Constr-cont-enclexpr-2: count((<elem>{1,'a',<a/>,3.5,4e2}</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-enclexpr-3[+]
X Constr-cont-enclexpr-3: <elem>{1,'a',3.5,4e2}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-enclexpr-4[+]
X Constr-cont-enclexpr-4: <elem>{1,//a,2,3,//comment(),4,5,//processing-instruction(),6,7,//text(),8}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-enclexpr-5[+]
X Constr-cont-enclexpr-5: <elem>{1, '', 2}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nested-5[+]
X Constr-cont-nested-5: <elem>{/root}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nodeid-1[+]
X Constr-cont-nodeid-1: for $x in <a/>, $y in <elem>{$x}</elem> 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-cont-nodeid-2[+]
X Constr-cont-nodeid-2: for $x in <a b="b"/>, $y in <elem>{$x/@b}</elem> 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-cont-nodeid-3[+]
X Constr-cont-nodeid-3: for $x in <!--comment-->, $y in <elem>{$x}</elem> 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-cont-nodeid-4[+]
X Constr-cont-nodeid-4: for $x in <?pi content?>, $y in <elem>{$x}</elem> 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-cont-nodeid-5[+]
X Constr-cont-nodeid-5: for $x in <a>text</a>, $y in <elem>{$x/text()}</elem> 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-cont-constrmod-1[+]
X Constr-cont-constrmod-1: declare construction strip; fn:count(fn:data(<elem>{//*:idrefs}</elem>/*)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-constrmod-2[+]
X Constr-cont-constrmod-2: declare construction preserve; fn:count(fn:data(<elem>{//*:idrefs}</elem>/*)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-constrmod-3[+]
X Constr-cont-constrmod-3: declare construction strip; <elem>{//*:decimal}</elem>/* 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-cont-constrmod-4[+]
X Constr-cont-constrmod-4: declare construction preserve; <elem>{//*:decimal}</elem>/* 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-cont-constrmod-5[+]
X Constr-cont-constrmod-5: declare construction strip; fn:count(fn:data((<elem>{//*:idrefs/@*:attr}</elem>)/@*:attr)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-constrmod-6[+]
X Constr-cont-constrmod-6: declare construction preserve; fn:count(fn:data((<elem>{//*:idrefs/@*:attr}</elem>)/@*:attr)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-constrmod-7[+]
X Constr-cont-constrmod-7: declare construction strip; (<elem>{//*:decimal/@*:attr}</elem>)/@*: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-cont-constrmod-8[+]
X Constr-cont-constrmod-8: declare construction preserve; (<elem>{//*:decimal/@*:attr}</elem>)/@*: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-cont-nsmode-1[+]
X Constr-cont-nsmode-1: declare copy-namespaces preserve, inherit; <y xmlns:inherit="http://www.example.com/inherit">{(/)}</y>/x/z |
fail | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-2[+]
X Constr-cont-nsmode-2: declare copy-namespaces no-preserve, inherit; <y xmlns:inherit="http://www.example.com/inherit">{(/)}</y>/x/z |
fail | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-3[+]
X Constr-cont-nsmode-3: declare copy-namespaces preserve, no-inherit; <y xmlns:inherit="http://www.example.com/inherit">{(/)}</y>/x/z |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-4[+]
X Constr-cont-nsmode-4: declare copy-namespaces no-preserve, no-inherit; <y xmlns:inherit="http://www.example.com/inherit">{(/)}</y>/x/z |
fail | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-5[+]
X Constr-cont-nsmode-5: declare copy-namespaces no-preserve, inherit; declare construction preserve; <new>{ //*:QName }</new> |
fail | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-6[+]
X Constr-cont-nsmode-6: declare copy-namespaces no-preserve, no-inherit; declare construction preserve; <new>{ //*:QName }</new> |
fail | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-7[+]
X Constr-cont-nsmode-7: declare namespace atomic = "http://www.w3.org/XQueryTest"; declare copy-namespaces no-preserve, inherit; declare construction preserve; <new>{ (//atomic:QName/@atomic:attr)[1] }</new> |
fail | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-8[+]
X Constr-cont-nsmode-8: declare namespace atomic = "http://www.w3.org/XQueryTest"; declare copy-namespaces preserve, inherit; declare construction preserve; <new>{ (//atomic:QName/@atomic:attr)[1] }</new> |
fail | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-9[+]
X Constr-cont-nsmode-9: declare namespace atomic = "http://www.w3.org/XQueryTest"; declare copy-namespaces preserve, inherit; declare construction preserve; <new>{ //atomic:QName }</new> |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-10[+]
X Constr-cont-nsmode-10: declare construction preserve; element { "new" } { //*:QName/@* } |
fail | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-nsmode-11[+]
X Constr-cont-nsmode-11: declare construction preserve; declare copy-namespaces no-preserve,inherit; import schema namespace ns="http://www.example.com/test/namespace-sensitive"; let $node := <e xmlns:bar="http://www.example.org/bar">{//ns:insensitive}</e> return data($node//ns:insensitive) instance of ns:myString |
no result | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-uripres-1[+]
X Constr-cont-uripres-1: for $x in <a xml:base="http://www.example.com/base1"><b/></a>, $y in <a xml:base="http://www.example.com/base2">{$x/b}</a> return fn:base-uri(exactly-one($y/b)) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-adjtext-1[+]
X Constr-cont-adjtext-1: count((<elem>a{1,2,3}b</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-adjtext-2[+]
X Constr-cont-adjtext-2: count((<elem>a{1,<a/>,3}b</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-adjtext-3[+]
X Constr-cont-adjtext-3: count((<elem>{''}</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-adjtext-4[+]
X Constr-cont-adjtext-4: count((<elem>{()}</elem>)/text()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-doc-1[+]
X Constr-cont-doc-1: <elem>{(/), (/)}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-1[+]
X Constr-cont-attr-1: <elem>{1, //west/@mark}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-2[+]
X Constr-cont-attr-2: <elem><a/>{//west/@mark}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-3[+]
X Constr-cont-attr-3: <elem>{()}{//west/@mark}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-4[+]
X Constr-cont-attr-4: <elem>{//west/@mark}x{//west/@west-attr-1}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-baseuri-1[+]
X Constr-cont-baseuri-1: fn:base-uri(<elem 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-cont-baseuri-2[+]
X Constr-cont-baseuri-2: fn:base-uri(exactly-one((<elem xml:base="http://www.example.com"><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-cont-baseuri-3[+]
X Constr-cont-baseuri-3: declare base-uri "http://www.example.com"; fn:base-uri(<elem/>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-parent-1[+]
X Constr-cont-parent-1: count((<elem/>)/..) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-5[+]
X Constr-cont-attr-5: <elem>{//west/@mark, //west/@west-attr-1}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-6[+]
X Constr-cont-attr-6: <elem mark="w0">{//west/@west-attr-1, //west/@west-attr-2}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-7[+]
X Constr-cont-attr-7: <elem>{//west/@mark, //center/@mark}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-8[+]
X Constr-cont-attr-8: <elem mark="w0">{//west/@west-attr-1, //west/@mark}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-attr-9[+]
X Constr-cont-attr-9: <elem>{//west/@west-attr-1}{//west/@west-attr-2}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-string-1[+]
X Constr-cont-string-1: fn:string(<elem>a<a/>b</elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-data-1[+]
X Constr-cont-data-1: fn:data(<elem>a<a/>b</elem>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-document-1[+]
X Constr-cont-document-1: count(<wrapper> {'abc', document {'def', <anode/>, 'ghi'}, 'jkl'} </wrapper>/node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-document-2[+]
X Constr-cont-document-2: count(<wrapper> abc {document {'def', <anode/>, 'ghi'}} jkl </wrapper>/node()) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-document-3[+]
X Constr-cont-document-3: declare variable $codepoints as xs:integer+ := (9, 10, 13, 32 to 55295, 57344 to 65532, 65536 to 1114111 ); declare variable $count as xs:integer := count($codepoints); declare variable $lineWidth as xs:integer := 70; <allCodepoints><r>{codepoints-to-string($codepoints)}</r></allCodepoints> (:<allCodepoints>{ for $i in (1 to $count idiv $lineWidth) let $startOffset := (($i - 1) * $lineWidth) + 1 return (<r s="{$codepoints[$startOffset]}" e="{$codepoints[$startOffset] + $lineWidth}"> { codepoints-to-string(subsequence($codepoints, $startOffset, $lineWidth)) } </r>, "
") } </allCodepoints>:) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-document-4[+]
X Constr-cont-document-4: count( document {'abc', 'def', document {'ghi', <anode/>, 'jkl'}, 'mno' } /node() ) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Constr-cont-document-5[+]
X Constr-cont-document-5: count( document {'abc', 'def', document {'ghi', 'jkl'}, 'mno' } /node() ) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-1[+]
X K2-DirectConElemContent-1: 3} |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-DirectConElemContent-2[+]
X K2-DirectConElemContent-2: "a string" } |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-DirectConElemContent-3[+]
X K2-DirectConElemContent-3: } |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-DirectConElemContent-4[+]
X K2-DirectConElemContent-4: } |
pass | pass | no result | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | |
K2-DirectConElemContent-5[+]
X K2-DirectConElemContent-5: data(<name>some text</name>) 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-DirectConElemContent-6[+]
X K2-DirectConElemContent-6: not(data(<name>some text</name>) instance of xs:string) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-7[+]
X K2-DirectConElemContent-7: <name>some, if(1) then else</name> instance of element() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-8[+]
X K2-DirectConElemContent-8: not(<name>some text</name> 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-DirectConElemContent-9[+]
X K2-DirectConElemContent-9: data(<!-- a comment -->) instance of xs:string |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-10[+]
X K2-DirectConElemContent-10: not(data(<!-- a comment -->) 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-DirectConElemContent-11[+]
X K2-DirectConElemContent-11: <!-- a comment --> instance of comment() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-12[+]
X K2-DirectConElemContent-12: not(<!-- a comment --> 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-DirectConElemContent-13[+]
X K2-DirectConElemContent-13: not(<!-- a comment --> instance of xs:string) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-14[+]
X K2-DirectConElemContent-14: data(<?target content?>) instance of xs:string |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-15[+]
X K2-DirectConElemContent-15: not(data(<?target 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-DirectConElemContent-16[+]
X K2-DirectConElemContent-16: <?target content?> instance of processing-instruction() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-17[+]
X K2-DirectConElemContent-17: not(<?target 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-DirectConElemContent-18[+]
X K2-DirectConElemContent-18: <![CDATA[content]]> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-19[+]
X K2-DirectConElemContent-19: <elem><![THISISWRONG[content]]></elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-20[+]
X K2-DirectConElemContent-20: <elem><![CDA |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-21[+]
X K2-DirectConElemContent-21: <elem><![CDATA[CONTENT]]> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-22[+]
X K2-DirectConElemContent-22: <elem><![CDATA[CONTENT]] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-23[+]
X K2-DirectConElemContent-23: <elem><![CDATA[CONTENT] |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-24[+]
X K2-DirectConElemContent-24: <elem><![cdata[CONTENT]]></elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-25[+]
X K2-DirectConElemContent-25: string(<eg> (: an (:example:) </eg>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-26[+]
X K2-DirectConElemContent-26: <elem>content{}content</elem> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-27[+]
X K2-DirectConElemContent-27: string(<elem><![CDATA[str]]>str<![CDATA[str]]><![CDATA[str]]><![CDATA[str]]>strstr{ "str", "str", "strstr", "str"}strstr<![CDATA[str]]>s<?target str?>tr</elem>) eq "strstrstrstrstrstrstrstr str strstr strstrstrstrstr" |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-28[+]
X K2-DirectConElemContent-28: string(<elem><![CDATA[con<<< ]] >""'*"*">>tent]]�&"¬recognized;&apos]]></elem>) eq "con<<< ]] >""""'*""*"">>tent]]&#00;&#x12;&amp;&quot;&notrecognized;&apos" |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-29[+]
X K2-DirectConElemContent-29: data(text{"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-DirectConElemContent-30[+]
X K2-DirectConElemContent-30: <e>{1}A{1}</e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-31[+]
X K2-DirectConElemContent-31: string(<e>{1}A{1}</e>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-32[+]
X K2-DirectConElemContent-32: data(<e>dsa</e>) 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-DirectConElemContent-33[+]
X K2-DirectConElemContent-33: data(<e>dsa</e>) |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-34[+]
X K2-DirectConElemContent-34: <e/> 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-DirectConElemContent-35[+]
X K2-DirectConElemContent-35: <e/> instance of element(*, xs:untyped) |
pass | fail | disputed
Regex with high repeat count blows heap space |
n/a
notXP20 |
disputed
Related to bug issue #22768 |
n/a
notXP30 |
disputed
Related to bug issue #22768 |
n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-36[+]
X K2-DirectConElemContent-36: declare construction strip; <e/> 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-DirectConElemContent-37[+]
X K2-DirectConElemContent-37: <e/> 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-DirectConElemContent-38[+]
X K2-DirectConElemContent-38: declare construction strip; <e/> 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-DirectConElemContent-39[+]
X K2-DirectConElemContent-39: <elem>{1}{2}{3}{4}{5}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-40[+]
X K2-DirectConElemContent-40: <elem>{1}{2}{3}{4}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-41[+]
X K2-DirectConElemContent-41: <elem>{1}{2}{3}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-42[+]
X K2-DirectConElemContent-42: <elem>{1}{2}</elem> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-43[+]
X K2-DirectConElemContent-43: <a> <![CDATA[ ]]> {"abc"}</a> |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-44[+]
X K2-DirectConElemContent-44: <e attr='content"/> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-45[+]
X K2-DirectConElemContent-45: <e attr="content'/> |
pass | pass | no result | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-46[+]
X K2-DirectConElemContent-46: <e>{1}{text{()}}{2}</e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-47[+]
X K2-DirectConElemContent-47: <e>{1}{text{""}}{2}</e> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
K2-DirectConElemContent-48[+]
X K2-DirectConElemContent-48: <e xmlns="http://www.example.com/"> <a xmlns=""/> </e>, <e xmlns="http://www.example.com/"> <a xmlns=""/> </e>/count(in-scope-prefixes(a)), <e xmlns="http://www.example.com/"> <a xmlns=""> <b xmlns=""/> </a> </e> |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
cbcl-ns-fixup-1[+]
X cbcl-ns-fixup-1: let $x := <ns:foo xmlns:ns="http://www.w3.org/foo" ns:attr="foo" /> return let $y := <ns:foo xmlns:ns="http://www.w3.org/bar" ns:attr="bar" /> return let $z := <root> { $x/@*, $y/@* } </root> return count(distinct-values(in-scope-prefixes($z))) |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |