Re: Correct rules for ComplexType extension

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 UTC