[Bug 4337] Substitution group and abstract

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

           Summary: Substitution group and abstract
           Product: XML Schema
           Version: 1.0/1.1 both
          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


Can an abstract element declaration "substitute" another element declaration?
The 2 substitution group related constraints give different answers.

In the definition of "substitution group" [1], it's clear that abstract element
declarations are excluded. But Substitution Group OK (Transitive) doesn't take
abstractness into account.

Many people consider substitution group as a choice over all members of the
"substitution group" of the head. This is currently *not* true given the
inconsistency between these constraints.

Consider

<element name="head" type="date"/>
<element name="sub" substitutionGroup="head" abstract="true"/>
...
<choice or sequence>
 <element ref="head"/>
 <element name="sub" type="int"/>
</choice or sequence>

It's not clear whether the above <choice> violates "Unique Particle
Attribution", and it's not clear whether the <sequence> violates "Element
Declaration Consistent".

What's the rationale for [1] to exlcude abstract elements from substitution
groups? Given the changes in how abstract is handled in schema 1.1 (moving more
toward "matched but unfortunately abstract"), maybe [1] should be changed to
include abstract elements?

[1] http://www.w3.org/TR/xmlschema11-1/#key-eq
[2] http://www.w3.org/TR/xmlschema11-1/#cos-equiv-derived-ok-rec

Received on Monday, 19 February 2007 17:33:21 UTC