This is the schema for the W3C XML Schema Test Suite collection (TS), as approved by the W3C XML Schema Working Group on May 12, 2003. It defines the namespace: http://www.w3.org/XML/2004/xml-schema-test-suite/ The TS consists of a set of test suites, each of which is identified according to the version of W3C XML Schema it is designed to test. Previous versions of test suites are archived and are also available, identifiable by the version of the test suite itself. This schema defines three separate but related document types for the TS: 1) The testSuite element is the root element of a document which defines a test suite as described above (e.g. the 2003-10-25 version of the test suite for version 1 of the Recommendation). The principal purpose of a testSuite document is the provision of a set of links to documents defining the tests which constitute the test suite. Files containing testSuite documents have the filename suffix ".suite". 2) The testSet element is the root element of a document which describes a set of tests. Each testSuite consists primarily of a set of links to testSet documents. The scope of the testSet is typically determined by the contributor of the tests which make up the testSet: it is the unit in which tests are contributed to the collection. Files containing testSet documents have the filename suffix ".testSet". 3) The testSuiteResults element is the root element of a document describing the results of testing a processor against a testSuite. Files containing testSuiteResults documents have the filename suffix ".results". The root element of a document describing all tests for a particular version of W3C XML Schema, for the version of the TS defined by the document. The element has three attributes, each of which is required: name - the name of this test suite. releaseDate - the date on which this test suite was released. This value serves to identify the version of the test suite. schemaVersion - the version of W3C XML Schema for which the tests are designed. Two elements may optionally be present: annotation - at most one instance of general documentation. testSetRef - a set of references to the sets of tests which make up this test suite. The test sets referenced are uniquely named. The root element of a document describing a set of tests, normally from a single contributor. A contributor may supply any number of testSet files. The element has two attributes, each of which is required: contributor - the name of the contributor of this testSet. name - the name of this testSet, which must be unique within the enclosing testSuite. Two elements may optionally be present: annotation - at most one instance of general documentation. testGroup - a set of testGroup elements, each of which defines a group of closely related tests. The testGroup elements must be uniquely named. Each test group within a test set must have a unique name. This element groups a collection of closely related tests. In the case where a schema is present, this element groups the schema with a set of instance documents which should be validated against the schema. It has one attribute, which is required: name - an identifier for the testGroup which is unique within the enclosing testSet. Four elements may optionally be present: annotation - at most one instance of general documentation. documentationReference - any number of references to external documentation upon which the test is based, e.g. links to relevant sections of the Recommendation, to the Errata, etc. schemaTest - any number of elements, each of which holds information on a single schema document. When more than one schema document is present, a single schema is constructed from the set (or from other schemas via import). Schema documents may be omitted, for the purpose of testing a processor's validation of an instance containing only the built-in datatypes defined in the Recommendation. instanceTest - any number of elements, each of which holds information on a single instance document to be validated against the included schema. Each test within a test group must have a unique name. This element groups together information about the schema for a particular test condition. It has one attribute which is required: name - the name of the schema, which must be unique within the enclosing testGroup (i.e. it must differ from the name(s) of any associated instanceTest elements). and three attributes which are optional, one for signaling implementation-dependence and two for identifying a subset of versions and/or editions for which the test group is valid: implDe - the test depends on something identified in the spec. as implementation-defined or implementation-dependent. Disagreement with the expected result is therefore not necessarily a sign of a failure to interoperate. version - Test groups which only apply to certain versions of XML Schema list those versions in the version attribute. An absent version implies that the test group applies to all versions. edition - Test groups which only apply to certain editions of XML Schema list those editions in the edition attribute. version should have a single value if edition has a value. An absent edition implies that the test group applies to all editions. One element is required: schemaDocument - at least one link to a file containing a schema document. The schema for the test is constructed from the set (or from other schemas via import). Three elements may optionally be present: expected - the expected validation outcome for the schema contained in the schema document(s). current - the current status of this test in the TS (an indication of the test's accuracy in testing the feature it is intended to test). prior - the history of any changes in the status of this test. The elements "expected" and "current" may be absent when tests are contributed, but will always be present for tests included in the TS. All but the first status entry must have a buzilla cross-reference This element groups together information about an instance document which should be validated against the schema referenced in the enclosing testGroup. It has one attribute which is required: name - the name of the instance document, which must be unique within the enclosing testGroup (i.e. it must differ from the name of any associated schemaTest elements). and three attributes which are optional, one for signaling implementation-dependence and two for identifying a subset of versions and/or editions for which the test group is valid: implDe - the test depends on something identified in the spec. as implementation-defined or implementation-dependent. Disagreement with the expected result is therefore not necessarily a sign of a failure to interoperate. version - Test groups which only apply to certain versions of XML Schema list those versions in the version attribute. An absent version implies that the test group applies to all versions. edition - Test groups which only apply to certain editions of XML Schema list those editions in the edition attribute. version should have a single value if edition has a value. An absent edition implies that the test group applies to all editions. One element is required: instanceDocument - a link to a file containing the instance document. Three elements may optionally be present: expected - the expected validation outcome for the instance document. current - the current status of this test in the TS (an indication of the test's accuracy in testing the feature it is intended to test). prior - the history of any changes in the status of this test. The elements "expected" and "current" may be absent when tests are contributed, but will always be present for tests included in the TS. Note: per section 5.2 "Assessing Schema-Validity" of the Recommendation "XML Schema Part 1: Structures", validation may be started in a variety of ways. For the purposes of the TS, only the third method shall be used: "The processor starts from Schema-Validity Assessment (Element) (3.3.4) with no stipulated declaration or definition". The current status of a test in the TS. This element has two attributes, both of which are required: status - the status of the test. One of "accepted", "stable", "disputed-test" or "disputed-spec" (see the TS website for an explanation of these values). date - the date on which the value in the status attribute was attained. A former status of a test in the TS. This element has two attributes, both of which are required: status - the former status of the test. One of "accepted", "stable", "disputed-test" or "disputed-spec" (see the TS website for an explanation of these values). date - the date on which the value in the status attribute was attained. The expected validation outcome of a test in the TS. This element has one attribute, which is required: validity - the expected validity of the test. One of "valid", "invalid" or "notKnown". This is the root element of a document containing a test result report. The report takes the form of a set of test results returned by a processor/validator when run against the TS. It has three required attributes: suite - the name of the test suite to which these results correspond. This should be the value of the name attribute of the testSuite element at the root of the test suite document describing the tests to which these results correspond. processor - some identifying information for the processor/ validator which produced the reported results. The value of this attribute is left to the discretion of the reporter. submitDate - the date on which these results were submitted to the TS Task Force. The element also has one optional attribute: publicationPermission - the degree to which the result reporter authorizes the W3C to disseminate the reported results. One of "W3C members" or "public" (see the TS website for an explanation of these values). If this attribute is absent, no permission to publish is granted. This element has two optional elements: annotation - at most one instance of more detailed (ts:documentation) or structured (ts:appinfo) information or commentary regarding the enclosed test results. testResult - any number of reports of the results of individual tests. Any results may be omitted, particularly those for tests of features for which the processor claims no support. The result of an individual instance test or a schema test. This element has four required attributes: validity - the validition outcome of the test. One of "valid", "invalid" or "notKnown". set - the value of the "name" attribute of the test set to which the test belongs. group - the value of the "name" attribute of the test group to which the test belongs. test - the value of the "name" attribute of the schema test or instance test, the validation outcome of which this result reports. NOTE: The "set", "group" and "test" attributes are used to uniquely identify the test within the TS for which this result reports the validation outcome. Each matches the "name" attribute of the respective element in the test suite. This element has one optional attribute: normalizedLoad - a relative load value, intended as an indicator of the resource requirements of an individual test. Values may be based on processing time, memory usage or a combination of the two. Values should be in the vicinity of 1.0. The element has one optional element: annotation - at most one instance of more detailed (ts:documentation) or structured (ts:appinfo) information or commentary regarding the individual test result. Reporters are encouraged to use annotation/appinfo to report more detailed outcome information, such as error and warning messages. A link to documentation relevant to a test, such as a link to the Recommendation, an erratum, an archived email discussion, etc. This is an exact copy of the annotation element defined in the Schema Recommendation. It is duplicated here in order to replicate the functionality of the xs:annotation element and because the Schema for Schemas cannot be imported.