This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 13606 - reZ006i.i '\c' and different NameChar productions
Summary: reZ006i.i '\c' and different NameChar productions
Status: RESOLVED FIXED
Alias: None
Product: XML Schema Test Suite
Classification: Unclassified
Component: Microsoft tests (show other bugs)
Version: 2006-11-06
Hardware: All All
: P2 normal
Target Milestone: XSD 1.1 PR
Assignee: Michael Kay
QA Contact: XML Schema Test Suite mailing list
URL:
Whiteboard:
Keywords: decided
Depends on:
Blocks:
 
Reported: 2011-08-03 13:20 UTC by Andreas Meissl
Modified: 2011-10-24 15:29 UTC (History)
3 users (show)

See Also:


Attachments

Description Andreas Meissl 2011-08-03 13:20:51 UTC
In XML 1.1 the NameChar production changed. The XSD 1.1 spec references the NameChar production of XML 1.1 whereas the XSD 1.0 spec references the NameChar production of XML 1.0.
The testcase 'reZ006i.i' in group 'reZ006i' tests the multiCharEsc \c ("the set of name characters, those matched by NameChar"). Char ͆ is a NameChar in XML 1.1 but isn't in XML 1.0. 
So the expected result of the testcase should be invalid for XSD 1.0 and valid for XSD 1.1.
Comment 1 Michael Kay 2011-08-03 13:43:06 UTC
I think it is intended - though it is not unambiguously stated - that the interpretation of \i and \c is covered by the general rule in section 1.3:

"This specification defines some datatypes which depend on definitions in [XML] and [Namespaces in XML]; those definitions, and therefore the datatypes based on them, vary between version 1.0 ([XML 1.0], [Namespaces in XML 1.0]) and version 1.1 ([XML], [Namespaces in XML]) of those specifications. In any given use of this specification, the choice of the 1.0 or the 1.1 definition of those datatypes is ·implementation-defined·."

On this interpretation, the result of this test becomes implementation-defined.
Comment 2 Sandy Gao 2011-08-26 14:03:42 UTC
We have version tokens defined for "XML-1.0" vs. "XML-1.1". We can make this test have different validity for the different versions. e.g.

1.0: invalid (schema 1.0)
XML-1.0: invalid (schema 1.1, with XML 1.0)
XML-1.1: valid (schema 1.1, with XML 1.1)
Comment 3 David Ezell 2011-10-21 16:15:40 UTC
decision: we mark the tests as depending on a specific version of XML.  Michael Kay will check and be sure they are so labeled.
Comment 4 Michael Kay 2011-10-24 11:37:53 UTC
The rules for name characters are the same in XML 1.0 5th edition and XML 1.1 2nd edition; we require an XSD processor to support XML 1.0 5e or later, or XML 1.1 2e or later; therefore I think every XSD 1.1 processor (at least until the XML rules change again) must support the same set of characters for \i and \c. (The question of what an XSD 1.0 processor supports is not addressed here...)

I propose to create new versions of the instance documents valid.c.xml, valid.i.xml, invalid.c.xml, and invalid.i.xml that reflect the character classifications in XML 1.0 5th edition (by moving some characters from the invalid instance to the valid instance). I then propose to change the test metadata so that use of these instances becomes mandatory for an XSD 1.1 processor.
Comment 5 Michael Kay 2011-10-24 12:00:40 UTC
Looking at it more closely, the  design of these tests seems badly flawed. There is no test for the complement metacharacters \I and \C; and the tests for invalid.i and invalid.c succeed if a single entry in the instance document is invalid, whereas it would clearly be better to test a wide range of invalid characters. I'm therefore proposing to mark all these tests as XSD 1.0 only, and replace them with a new set of tests in the Saxonica test set.
Comment 6 Michael Kay 2011-10-24 15:28:44 UTC
Fixed by changing the XSD 1.1 validity of the tests, and adding more tests in the Saxonica area.

Note that the XSD 1.0 results for these tests depend on whether XML 1.1/1.0e5 rules are being used, or whether XML 1.0e4-or-earlier is being used. XSD 1.0 allows either. I haven't attempted to make the tests work for XSD 1.0 processors, the focus is on XSD 1.1 where I believe support for XML 1.1/1.0e5 naming rules is mandatory.