- From: Moog, Thomas H <thomas.h.moog@intel.com>
- Date: Mon, 23 Oct 2006 09:59:06 -0400
- To: <xmlschema-dev@w3.org>
In 3.4.6 (Constraints on Complex Type Definition Schema
Components) Section 1.5 there is this comment:
Note: This requirement ensures that nothing removed by a
restriction is subsequently added back by an extension.
The following schema is accepted by three schema validators.
I would expect gamma to be rejected because it adds back
element "b" which was removed when beta was created
from alpha.
I would appreciate it if someone would explain why this
does not violate 3.4.6 section 1.5.
Thanks.
<xs:complexType name="alpha">
<xs:sequence>
<xs:element name="a" />
<xs:element name="b" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="beta" >
<xs:complexContent>
<xs:restriction base="alpha" >
<xs:sequence>
<xs:element name="a" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="gamma" >
<xs:complexContent>
<xs:extension base="beta" >
<xs:sequence>
<xs:element name="b" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Received on Monday, 23 October 2006 13:59:30 UTC