- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 19 Feb 2007 17:33:14 +0000
- To: www-xml-schema-comments@w3.org
- CC:
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