W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > April to June 2003

<complexContent> extending <simpleContent> (clarification/erratum?)

From: Sandy Gao <sandygao@ca.ibm.com>
Date: Fri, 6 Jun 2003 14:27:05 -0400
To: www-xml-schema-comments@w3.org
Message-ID: <OF517B625A.B8A4FC23-ON85256D3D.0063E16D@torolab.ibm.com>

Consider

<complexType name="derived" mixed="false">
 <complexContent mixed="false">
  <extension base="base"/>
 </complexContent>
</complexType>

where "base" is a complex type whose {content type} is a simple type
definition.

Then according to structure 3.4.2, "derived" has the same content type as
base, which is a simple type definition. But it specified <complexContent>
explicitly, and mixed = false. This seems confusing.

And if mixed was true on <complexType> and <complexContent>, then the rule
actually says that "derived" has a content of a sequence of an empty
sequence, following the particle from "base". But "base" doesn't have a
particle. (Rules from 3.4.6 says this is invalid, but those are at the
component level. Here we are talking about the mapping.)

IMO, it shouldn't be allowed for <complexContent> to extend a complex type
with simple content. That is, change bullet 1 of the constraint "Complex
Type Definition Representation OK" [1] to

1 If the <complexContent> alternative is chosen, then all of the following
must be true:
1.1 The type definition ·resolved· to by the ·actual value· of the base
[attribute] must be a complex type definition;
1.2 If the <extension> alternative is also chosen, then the type definition
·resolved· to by the ·actual value· of the base [attribute] must not be a
complex type definition whose {content type} is a simple type definition;

[1]
http://www.w3.org/XML/Group/2002/09/xmlschema-1/structures-with-errata.html#src-ct

Thanks,
Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
sandygao@ca.ibm.com
Received on Friday, 6 June 2003 14:27:40 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:50:01 UTC