W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2002

Re: Correct rules for ComplexType extension

From: <noah_mendelsohn@us.ibm.com>
Date: Fri, 4 Jan 2002 14:39:06 -0500
To: Kevin Burges <xmldude@burieddreams.com>
Cc: xmlschema-dev@w3.org
Message-ID: <OF970D0320.98E90EEF-ON85256B37.006CBB97@lotus.com>
Kevin Burges asks whether:

>> "having an <xs:all> group in a base type and extending
>> it with a second <xs:all> group in a derived type is perhaps
>> illegal?

Yup, illegal.  The general rule is that extension is defined as creating a 
sequence, and you can't have sequences of <all>.  Extension of <all> is a 
known possible future function.  The incomprehensible fine print is at [1] 
where it says:

"Schema Component Constraint: Particle Valid (Extension) 

[Definition:]  For a particle (call it E, for extension) to be a valid 
extension of another particle (call it B, for base) one of the following 
must be true:
1 They are the same particle. 
2 E's {min occurs}={max occurs}=1 and its {term} is a sequence group whose 
{particles}' first member is a particle all of whose properties, 
recursively, are identical to those of B, with the exception of 
{annotation} properties."

Where it says "...is a sequence group.." is where you get in trouble.  You 
have an "all" group.

[1] http://www.w3.org/TR/xmlschema-1/#cos-particle-extend

------------------------------------------------------------------------
Noah Mendelsohn                                    Voice: 1-617-693-4036
Lotus Development Corp.                            Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------------
Received on Friday, 4 January 2002 14:51:16 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:26 GMT