This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
The following tests should be schema-aware (I mean, have a dependency on the schema-ware feature): - fn-element-with-id-1 - fn-element-with-id-2 - fn-element-with-id-3 - fn-element-with-id-4 - fn-element-with-id-5
It should actually be the SchemaValidation feature. From guide/running.html: schemaValidation... Requires a query to support the validate expression, and/or to be able to accept source documents that have been validated. schemaImport... Requires the query to support an import schema declaration. The schemaAware feature is obsolete. (And the dependency is pretty redundant: you can assume that any test whose environment has a schema in it is dependent on the schemaValidation feature)
I have written test Catalog015 which checks for tests whose environment has a schema but which have no dependency on schemaValidation or schemaImport. Here's the list: K2-DataFunc-6 fn-element-with-id-1 fn-element-with-id-2 fn-element-with-id-3 fn-element-with-id-4 fn-element-with-id-5 fn-in-scope-prefixes-24 json-to-xml-001 json-to-xml-002 json-to-xml-003 json-to-xml-004 json-to-xml-005 json-to-xml-006 json-to-xml-007 json-to-xml-013 json-to-xml-014 json-to-xml-015 json-to-xml-018 json-to-xml-021 json-to-xml-022 json-to-xml-025 json-to-xml-036 json-to-xml-040 json-to-xml-error-002 json-to-xml-error-003 json-to-xml-error-004 json-to-xml-error-005 json-to-xml-error-006 json-to-xml-error-007 json-to-xml-error-008 json-to-xml-error-009 json-to-xml-error-010 json-to-xml-error-011 json-to-xml-error-012 json-to-xml-error-013 json-to-xml-error-014 json-to-xml-error-015 json-to-xml-error-016 json-to-xml-error-017 json-to-xml-error-018 json-to-xml-error-019 json-to-xml-error-020 json-to-xml-error-021 json-to-xml-error-022 json-to-xml-error-023 json-to-xml-error-024 json-to-xml-error-025 json-to-xml-error-026 json-to-xml-error-027 fn-local-name-3 fn-local-name-4 fn-local-name-5 fn-local-name-8a fn-local-name-11a fn-local-name-13a LocalNameFromQNameFunc001 LocalNameFromQNameFunc002 LocalNameFromQNameFunc003 LocalNameFromQNameFunc004 LocalNameFromQNameFunc005 LocalNameFromQNameFunc010 LocalNameFromQNameFunc012 LocalNameFromQNameFunc013 LocalNameFromQNameFunc014 LocalNameFromQNameFunc018 LocalNameFromQNameFunc019 LocalNameFromQNameFunc020 NamespaceURIFromQNameFunc001 NamespaceURIFromQNameFunc002 NamespaceURIFromQNameFunc003 NamespaceURIFromQNameFunc004 NamespaceURIFromQNameFunc005 NamespaceURIFromQNameFunc010 NamespaceURIFromQNameFunc012 NamespaceURIFromQNameFunc013 NamespaceURIFromQNameFunc014 NamespaceURIFromQNameFunc018 NamespaceURIFromQNameFunc019 NamespaceURIFromQNameFunc020 fn-not-22 fn-not-23 fn-not-28 fn-not-29 serialize-xml-001 serialize-xml-002 serialize-xml-003 serialize-xml-004 serialize-xml-005 serialize-xml-006 serialize-xml-007 serialize-xml-007a serialize-xml-009 serialize-xml-011 serialize-xml-012 serialize-xml-013 serialize-xml-014 serialize-xml-015 serialize-xml-016 serialize-xml-017 serialize-xml-018 serialize-xml-019 serialize-xml-020 serialize-xml-021 serialize-xml-022 serialize-xml-023 serialize-xml-024 serialize-xml-025 serialize-xml-026 serialize-xml-027 serialize-xml-028 serialize-xml-029 serialize-xml-030 serialize-xml-031 fn-string-length-24 fn-string-length-25 fn-except-node-args-015 fn-except-node-args-016 fn-except-node-args-017 fn-except-node-args-018 fn-except-node-args-019 fn-except-node-args-020 fn-except-node-args-021 fn-intersect-node-args-015 fn-intersect-node-args-016 fn-intersect-node-args-017 fn-intersect-node-args-018 fn-intersect-node-args-019 fn-intersect-node-args-020 fn-intersect-node-args-021 fn-intersect-node-args-022 fn-union-node-args-015 fn-union-node-args-016 fn-union-node-args-017 fn-union-node-args-018 fn-union-node-args-019 fn-union-node-args-020 fn-union-node-args-021 fn-union-node-args-022 Constr-compattr-compname-8 Constr-docnode-constrmod-1 Constr-docnode-constrmod-2 Constr-docnode-constrmod-3 Constr-docnode-constrmod-4 Constr-compelem-compname-8 Constr-comppi-compname-8 Constr-comppi-compname-9 Constr-cont-constrmod-1 Constr-cont-constrmod-2 Constr-cont-constrmod-3 Constr-cont-constrmod-4 Constr-cont-constrmod-5 Constr-cont-constrmod-6 Constr-cont-constrmod-7 Constr-cont-constrmod-8 Constr-cont-nsmode-5 Constr-cont-nsmode-6 Constr-cont-nsmode-7 Constr-cont-nsmode-8 Constr-cont-nsmode-9 Constr-cont-nsmode-10 ForExprType009 ForExprType011 ForExprType013 ForExprType014 ForExprType022 ForExprType023 ForExprType024 ForExprType036 ForExprType045 ForExprType046 ForExprType047 instanceof134 cbcl-module-004 orderBy1 orderBy2 orderBy3 orderBy4 orderBy5 orderBy6 orderBy7 orderBy8 orderBy9 orderBy10 orderBy11 orderBy12 orderBy13 orderBy14 orderBy15 orderBy16 orderBy17 orderBy18 orderBy19 orderBy20 orderBy21 orderBy22 orderBy23 orderBy24 orderBy25 orderBy26 orderBy27 orderBy28 orderBy30 orderBy31 orderBy32 orderBy33 orderBy34 orderBy35 orderBy36 orderBy37 orderBy38 orderBy39 orderBy40 orderBy41 orderBy42 orderBy43 orderBy44 orderBy45 orderBy46 orderBy47 orderBy49 orderBy50 orderBy51 orderBy53 orderBy54 orderBy55 orderBy56 orderBy57 orderBy59 orderBy60 orderBy61 orderBy62 orderBy63 orderBy64 orderBy65 orderBy66 WindowingUseCase01S WindowingUseCase02S WindowingUseCase03S WindowingUseCase04S WindowingUseCase05S WindowingUseCase06S WindowingUseCase08S WindowingUseCase09S WindowingUseCase10S WindowingUseCase12S WindowingUseCase14S WindowingUseCase15S WindowingUseCase16S WindowingUseCase17S WindowingUseCase18S WindowingUseCase19S combined-errors-2 combined-errors-3 XQTY0086_1 XQTY0086_2 XQTY0086_3 Catalog001 Catalog003 Catalog004 Catalog005 Catalog006 Catalog007 Catalog008 Catalog009 Catalog010 Catalog011 Catalog012 Catalog013 Catalog014 Catalog015
DECIDED that test drivers should assume a dependency on schema-awareness if the metadata for the test indicates that it uses a schema. O'Neil to update the test suite documentation accordingly. The tests listed in the bug entry will NOT be updated to add a dependency on schema-awareness.
I find it a rather unfortunate decision, as it makes it harder to find out what a test is about, and it breaks the general rule that the metadata must be complete. Now you need to browse to wherever the dependencies are to find out whether a test requires the schemaImport or Validation feature. And what happens in the case that the schemaValidation or schemaImport dependencies are set with satisfies="false" and the test uses a schema in its metadata? <dependency type="feature" value="schemaImport" satisfied="false"/> I would assume that at the test-level this would override whether or not there is a <schema> component in the environment, such that it enables you to test behavior of processors with tests that require schema's but that themselves do not support, or have switched off schema-import/validation. But at the global level(s) it becomes trickier: if the test-set contains a dependency, does it override "soft dependencies" such as the one proposed, or does the soft-dependency take precedence? And what for the catalog level? I would personally prefer this decision to be reverted and to have tests in "good shape", but I was not present at the meeting...
WG has looked at this bug again at today's F2F bug has upheld its decision made in comment 3.
Understandable, but will the conflicting rules be addressed? I would assume that *if* a <dependency> element is present at any level (catalog, test-set, test), it always overrides a *default* dependency level induced by the presence (or not) of <schema> components. Is that assumption correct?
I would have agreed with Abel, it is strange decision. By the way, almost all the tests in the list pass fine by loading the XML without schema validation (actually did not notice any other tests than element-with-id failing). Tests like fn-not-22 ( not(//banana) ), when there is no banana with schema, there is no banana without schema either...
You wouldn't think it were a strange decision if you were the one being asked to add this entirely redundant information to a couple of hundred tests. If you would like to modify these tests to remove the unnecessary dependency on a schema then of course your efforts will be greatly appreciated by those wanting to test non-schema-aware processors. (There are similarly many tests with an unnecessary dependency on XQuery that could easily be made into XPath tests.)
But you already wrote a query to find the list of tests without schema dependency. It wouuld be straight forward to automatically add the dependency to them with another query. Anyways, I doubt there are hundred tests. It is more like ten. The following tests from your list pass, even if the schema is ignored: Catalog001 Catalog003 Catalog004 Catalog005 Catalog006 Catalog007 Catalog008 Catalog009 Catalog010 Catalog012 Catalog013 cbcl-module-004 combined-errors-2 combined-errors-3 Constr-compattr-compname-8 Constr-compelem-compname-8 Constr-comppi-compname-8 Constr-comppi-compname-9 Constr-cont-constrmod-1 Constr-cont-constrmod-2 Constr-cont-constrmod-3 Constr-cont-constrmod-4 Constr-cont-constrmod-5 Constr-cont-constrmod-6 Constr-cont-constrmod-7 Constr-cont-constrmod-8 Constr-cont-nsmode-5 Constr-cont-nsmode-6 Constr-cont-nsmode-9 Constr-docnode-constrmod-1 Constr-docnode-constrmod-2 Constr-docnode-constrmod-3 Constr-docnode-constrmod-4 fn-except-node-args-015 fn-except-node-args-016 fn-except-node-args-017 fn-except-node-args-018 fn-except-node-args-019 fn-except-node-args-020 fn-except-node-args-021 fn-in-scope-prefixes-24 fn-intersect-node-args-015 fn-intersect-node-args-016 fn-intersect-node-args-017 fn-intersect-node-args-018 fn-intersect-node-args-019 fn-intersect-node-args-020 fn-intersect-node-args-021 fn-intersect-node-args-022 fn-local-name-11a fn-local-name-13a fn-local-name-3 fn-local-name-4 fn-local-name-5 fn-local-name-8a fn-not-22 fn-not-23 fn-not-28 fn-not-29 fn-string-length-24 fn-string-length-25 fn-union-node-args-015 fn-union-node-args-016 fn-union-node-args-017 fn-union-node-args-018 fn-union-node-args-019 fn-union-node-args-020 fn-union-node-args-021 fn-union-node-args-022 ForExprType011 ForExprType013 ForExprType014 ForExprType022 ForExprType023 ForExprType036 ForExprType045 ForExprType046 ForExprType047 instanceof134 LocalNameFromQNameFunc001 LocalNameFromQNameFunc002 LocalNameFromQNameFunc003 LocalNameFromQNameFunc004 LocalNameFromQNameFunc005 LocalNameFromQNameFunc010 LocalNameFromQNameFunc012 LocalNameFromQNameFunc013 LocalNameFromQNameFunc014 LocalNameFromQNameFunc018 LocalNameFromQNameFunc019 LocalNameFromQNameFunc020 NamespaceURIFromQNameFunc001 NamespaceURIFromQNameFunc002 NamespaceURIFromQNameFunc003 NamespaceURIFromQNameFunc004 NamespaceURIFromQNameFunc005 NamespaceURIFromQNameFunc010 NamespaceURIFromQNameFunc012 NamespaceURIFromQNameFunc013 NamespaceURIFromQNameFunc014 NamespaceURIFromQNameFunc018 NamespaceURIFromQNameFunc019 NamespaceURIFromQNameFunc020 orderBy1 orderBy10 orderBy11 orderBy12 orderBy13 orderBy14 orderBy15 orderBy16 orderBy17 orderBy18 orderBy19 orderBy2 orderBy20 orderBy21 orderBy22 orderBy23 orderBy24 orderBy25 orderBy26 orderBy27 orderBy28 orderBy3 orderBy30 orderBy31 orderBy32 orderBy33 orderBy34 orderBy35 orderBy36 orderBy37 orderBy38 orderBy39 orderBy4 orderBy40 orderBy41 orderBy42 orderBy43 orderBy44 orderBy45 orderBy46 orderBy47 orderBy49 orderBy5 orderBy50 orderBy51 orderBy53 orderBy54 orderBy55 orderBy56 orderBy57 orderBy59 orderBy6 orderBy60 orderBy61 orderBy62 orderBy63 orderBy64 orderBy65 orderBy66 orderBy7 orderBy8 orderBy9 serialize-xml-001 serialize-xml-002 serialize-xml-003 serialize-xml-004 serialize-xml-006 serialize-xml-007 serialize-xml-007a serialize-xml-011 serialize-xml-016 serialize-xml-017 serialize-xml-018 serialize-xml-026 serialize-xml-027 serialize-xml-028 WindowingUseCase01S WindowingUseCase02S WindowingUseCase03S WindowingUseCase04S WindowingUseCase05S WindowingUseCase06S WindowingUseCase08S WindowingUseCase09S WindowingUseCase10S WindowingUseCase12S WindowingUseCase14S WindowingUseCase15S WindowingUseCase16S WindowingUseCase17S WindowingUseCase18S WindowingUseCase19S Only these fail (in my implementation, which does not have serialize, yet.): Catalog011 Catalog014 Constr-cont-nsmode-10 Constr-cont-nsmode-7 Constr-cont-nsmode-8 fn-element-with-id-1 fn-element-with-id-2 fn-element-with-id-3 fn-element-with-id-4 fn-element-with-id-5 ForExprType009 ForExprType024 K2-DataFunc-6 serialize-xml-005 serialize-xml-009 serialize-xml-013 serialize-xml-014 serialize-xml-015 serialize-xml-019 serialize-xml-020 serialize-xml-021 serialize-xml-022 serialize-xml-023 serialize-xml-024 serialize-xml-025 serialize-xml-029 serialize-xml-030 serialize-xml-031 Although I could not test those: fn-element-with-id-1 json-to-xml-001 json-to-xml-002 json-to-xml-003 json-to-xml-004 json-to-xml-005 json-to-xml-006 json-to-xml-007 json-to-xml-013 json-to-xml-014 json-to-xml-015 json-to-xml-018 json-to-xml-021 json-to-xml-022 json-to-xml-025 json-to-xml-036 json-to-xml-040 json-to-xml-error-002 json-to-xml-error-003 json-to-xml-error-004 json-to-xml-error-005 json-to-xml-error-006 json-to-xml-error-007 json-to-xml-error-008 json-to-xml-error-009 json-to-xml-error-010 json-to-xml-error-011 json-to-xml-error-012 json-to-xml-error-013 json-to-xml-error-014 json-to-xml-error-015 json-to-xml-error-016 json-to-xml-error-017 json-to-xml-error-018 json-to-xml-error-019 json-to-xml-error-020 json-to-xml-error-021 json-to-xml-error-022 json-to-xml-error-023 json-to-xml-error-024 json-to-xml-error-025 json-to-xml-error-026 json-to-xml-error-027 serialize-xml-012 XQTY0086_1 XQTY0086_2 XQTY0086_3
>It wouuld be straight forward to automatically add the dependency to them with another query. Unfortunately any attempt to update these files automatically loses a lot of human readability, even if you take great care with the serialization parameters. Since human readability is so important, I don't attempt it.