- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 03 Jan 2008 04:52:33 +0000
- To: www-xml-schema-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5074
cmsmcq@w3.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status Whiteboard|thimble, easy |thimble, work, clarification
| |cluster
------- Comment #3 from cmsmcq@w3.org 2008-01-03 04:52 -------
I believe the schema you provide is valid, but as written it doesn't test
whether types of elements in the substitution group can be derived indirectly
from the head of the substitution group, because types are not given on the
element declarations for e0 or eb. They default, therefore, to type ta. (The
form in which I tested it differs slightly from the one in comment #2; it's on
the Web at
http://www.w3.org/XML/2008/xsdl-exx/sgd1.xsd if you wish to inspect it.)
A modified form of the example (http://www.w3.org/XML/2008/xsdl-exx/sgd2.xsd)
with explicit association of types t0 and tb with elements e0 and eb is also
valid, conforming, and correct, as far as I can tell.
I've tested these two schemas with some instance documents (in the same
directory), with varying results.
- libxml / xmllint does not complain about the schema, but it rejects
most of the test instances; I wonder if substitution
groups have not yet been implemented.
- MSV rejects schema sgd1.xsd, with the message 'Unimplemented feature:
"omitting type attribute in <element> element with substitutionGroup
attribute"'.
- Saxon, Xerces C, and Xerces J all accept the schema and pronounce the
test instances valid or invalid in a way consistent with the type
definitions.
I believe these implementations are taking the rule in question to mean
that if the head of a substitution group has declared type T, then each
element in the substitution group must have a declared type derived from
T (subject to the blocks and exclusions and whatnot). That is, I think they
are not interpreting the rule as meaning the types of member elements must
be derived either exclusively by a series of restriction steps, or exclusively
by a series of extension steps.
Speaking for myself, I think the implementations' interpretation makes sense;
at least, it matches what I always thought the spec meant to say. But you
have made me aware that the wording can bear a rather different interpretation;
I think both that the 1.1 text should be revised and that an erratum should
be issued for 1.0.
Received on Thursday, 3 January 2008 04:52:36 UTC