[Bug 4001] 3.3.1 overconstraining exclusions wording?

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4001

           Summary: 3.3.1 overconstraining exclusions wording?
           Product: XML Schema
           Version: 1.0 only
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Structures: XSD Part 1
        AssignedTo: cmsmcq@w3.org
        ReportedBy: sandygao@ca.ibm.com
         QAContact: www-xml-schema-comments@w3.org
 BugsThisDependsOn: 3888


Regarding _XML_Schema_Part_1:_Structures_Second_Edition_ at
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/:

In section 3.3.1, the specification says:

   The explicit values of {substitution group exclusions} rule out
   element declarations having types which are extensions or
   restrictions respectively of {type definition}.  If both values are
   specified, then the declaration may not be nominated as the
   {substitution group affiliation} of any other declaration.

Is that last sentence correct?

Considering just the first quoted sentence, a substitution group
exclusions property that contains both 'restriction' and 'extension'
excludes any element declarations of a datatype that is an extension
or restriction of the original datatype, but it leaves open the
possibility of an element declaration whose datatype is the _same_
datatype.

The last sentence rules out the possibility of substituting an element
declaration having the same datatype.  It also seems to mean that there
is no way to exclude elements of extended and restricted types but
still allow different elements of the same type (e.g., elements
validated by element declarations with different names but the same
datatype).

Was that last sentence meant as a further restriction that was intended
by the designers?  (Or was is meant just as a summary of the result of
the combination of the two things addressed by the first sentence?)

If the last sentences does not reflect an intended restriction, it
should be removed or corrected.

(If it _does_ reflect an intended restriction, its wording should be
adjusted to make that clear, perhaps by starting:

   In addition, if both values are specified ...


Additionally, what happens if 'restriction' and 'extension' are
specified on different element declarations in a chain?  Are other
parts of the specification worded such that substitution of
same-datatype elements is excluded consistently (regardless of
whether 'restriction' and 'extension' are specified on different
element declarations in a chain or on the same element declaration)?)

Received on Wednesday, 22 November 2006 05:26:35 UTC