W3C home > Mailing lists > Public > public-xml-schema-testsuite@w3.org > June 2010

Re: some questions about version information in the test suite

From: Michael Kay <mike@saxonica.com>
Date: Mon, 21 Jun 2010 22:16:50 +0100
Message-ID: <4C1FD6C2.6050104@saxonica.com>
To: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
CC: public-xml-schema-testsuite@w3.org, Henry Thompson <ht@inf.ed.ac.uk>
I'm getting to the point where uncertainty here is starting to hold up 
progress.

Could I suggest the following as a way of moving forward:

Assume that we are testing a processor that claims to implement XSD 
version P; if we want to test multiple processors or a processor that 
implements multiple schema versions, repeat the steps below with 
multiple values of P

(a) The version attribute can appear on testSuite (replacing 
schemaVersion), testSet, testGroup, schemaTest, or instanceTest. In each 
case the semantics are "if the attribute is present and includes the 
value P, then run this test / these tests; if it is present but does not 
include P, then skip this test. If the version attribute is absent, then 
run the test".

(b) The version attribute can appear on <expected>, meaning "these are 
the expected results for a processor at a given version". The test 
driver should find the <expected> element that either has no version 
attribute or whose version attribute includes P. There must be exactly 
one such element.

(c) Change the value of <expected> to be a list of permitted outcomes, 
where any of the listed outcomes is considered to pass the test. For example

<expected version="1.0">invalid notKnown</expected>
<expected version="1.1">invalid</expected>

indicates that acceptable results for 1.0 are "invalid" and "notKnown", 
whereas for 1.1 the only acceptable result is "invalid" This replaces 
the impDe attribute.

As a matter of test suite design, the aim should be to put the version 
attribute on the smallest element possible. Where XSD 1.0 and XSD 1.1 
exhibit interestingly different behaviors, there should be expected 
results for both. However, where the test uses XSD 1.1 syntax that will 
be rejected out of hand by an XSD 1.0, processor, there is little point 
in making XSD 1.0 processors run the test; it should simply be marked as 
version="1.1" typically at the testGroup or testSet level, rather than 
giving expected results for 1.0.

Michael Kay
Saxonica
Received on Monday, 21 June 2010 21:17:23 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 21 June 2010 21:17:24 GMT