|
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) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
app-CatalogCheck | 11/12 | 9/11 | 0/0 | 10/10 | 0/0 | 12/12 | 10/12 | 0/0 | 11/12 | 11/12 | 0/0 | 9/10 | 9/10 | 10/10 | 12/12 | 0/15 |
Catalog001[+]
X Catalog001: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))), $tests := $testsets//fots-test-case, $environments := (//fots:environment | $testsets//fots:environment)[@name], $refs := $testsets//fots:environment[@ref] return $refs[not(@ref = $environments/@name)] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog002[+]
X Catalog002: import schema namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/(validate{doc(resolve-uri(., base-uri(..)))}) for $test in $testsets//fots:test-case[not(fots:result/fots:error)][ contains(test, "declare variable") or contains(test, "declare function") or matches(test, "<.+>") or contains(test, "typeswitch")] where empty($test/(fots:dependency | ../fots:dependency)) or exists($test/(fots:dependency | ../fots:dependency)[contains(., "XP")]) return $test |
no result | pass | fail
Expected success, got err:XQDY0027 |
n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | fail
Fail due to bug in Microsoft XML Schema implementation |
fail
Fail due to bug in Microsoft XML Schema |
n/a | fail
Fail due to bug in Microsoft XML Schema |
fail
Fail due to bug in Microsoft XML Schema implementation |
pass | pass | |
Catalog003[+]
X Catalog003: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $test in $testsets//fots:test-case[contains(test, "import schema")] where empty($test/(fots:dependency | ../fots:dependency)[@type='feature' and @value="schemaImport"]) return $test |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog004[+]
X Catalog004: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $schema in (.|$testsets)//fots:environment/fots:schema let $targetNamespace := doc(resolve-uri($schema/@file, base-uri($schema)))/*/@targetNamespace where not($schema/@uri eq $targetNamespace or (empty($targetNamespace) and string(@uri)='')) return ($schema, <file>{base-uri($schema)}</file>) |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog005[+]
X Catalog005: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; (: ask whether a test is XQuery-only :) declare function local:needs-xq($t as element(fots:test-case)) as xs:boolean { let $spec := $t/fots:dependency[@type='spec'][1] return exists($spec) and contains($spec/@value, 'XQ') and not(contains($spec/@value, 'XP')) }; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) let $nsenvs := for $t in ($testsets|.) for $e in $t//fots:environment[@name] where exists($e/fots:namespace) return concat($t/*/@name, '~', $e/@name/string()) let $xq-testcases := $testsets//fots:test-case [local:needs-xq(.)] for $tc in $xq-testcases [concat(/*/@name, '~', fots:environment/@ref) = $nsenvs or fots:environment[fots:namespace]] return $tc/@name/string() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog006[+]
X Catalog006: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; (: ask whether a test is XQuery-only :) declare function local:needs-xq($t as element(fots:test-case)) as xs:boolean { let $spec := $t/fots:dependency[@type='spec'][1] return exists($spec) and contains($spec/@value, 'XQ') and not(contains($spec/@value, 'XP')) }; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) let $nsenvs := for $t in ($testsets|.) for $e in $t//fots:environment where exists($e/fots:decimal-format) return $e/@name/string() let $xq-testcases := $testsets//fots:test-case [local:needs-xq(.)] for $tc in $xq-testcases [fots:environment/@ref = $nsenvs or fots:environment[fots:decimal-format]] return $tc/@name/string() |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog007[+]
X Catalog007: xquery version "3.0"; (: output the non-unique test names. There should be none :) declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $xq-testcase in $testsets//fots:test-case let $testname := $xq-testcase/@name group by $testname where count($xq-testcase) gt 1 return $testname |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
Catalog008[+]
X Catalog008: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; for $xq-testcase in //fots:test-set let $testname := $xq-testcase/@name let $testfile := $xq-testcase/@file/doc(resolve-uri(., base-uri(..))) let $file-testname := $testfile/fots:test-set/@name where $testname != $file-testname return <out catalog-name="{string($testname)}" test-name="{string($file-testname)}"/> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog009[+]
X Catalog009: xquery version "3.0"; declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $dependencyTS in $testsets//fots:dependency let $name := $dependencyTS/@type let $value := $dependencyTS/@value group by $name, $value order by $name, $value return <dependency type='{$name}' value='{$value}' /> |
pass | pass | pass | n/a
notXP20 |
n/a
notXQ10 |
n/a
notXP30 |
pass | n/a | pass | pass | n/a | n/a | n/a | n/a
Dependency (type=spec, value=XQ30+, satisfied=true) was not met. |
pass | |
Catalog010[+]
X Catalog010: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $changes := doc('../changes.xml')//change/@id/string() for $xq-test in //fots:test-set let $testfile := $xq-test/@file/doc(resolve-uri(., base-uri(..))) let $testset := $testfile/fots:test-set let $testcases := $testset/fots:test-case for $token in distinct-values((tokenize($testset/@covers, ' '), $testcases/@covers/tokenize(., ' '))) where not($token = $changes) return <out test-set="{string($testset/@name)}" bad-covers-value="{$token}"/> |
pass | fail | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog011[+]
X Catalog011: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; <r>{ let $changes := doc('../changes.xml')//change/@id/string() let $testfiles := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) let $testsets := $testfiles/fots:test-set for $token in distinct-values($changes) let $relevant-testsets := $testsets[tokenize(@covers, ' ') = $token] let $relevant-testcases := $testsets/fots:test-case[tokenize(@covers, ' ') = $token] let $count := count($relevant-testsets/fots:test-case) + count($relevant-testcases) where $count lt 5 return <out change="{$token}" tests="{$count}"/> }</r> |
pass | disputed | fail
Wrong results, got <r><out change="wildcard-uri-literals" tests="4"/><out change="error-XQST0118" t... |
n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
Catalog012[+]
X Catalog012: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) return $testsets//fots:test-case[.//fots:assert-xml[starts-with(., '<?xml')]] |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |