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

RE: Derivation by restriction from <any>

From: Dare Obasanjo <dareo@microsoft.com>
Date: Fri, 8 Mar 2002 19:08:32 -0800
Message-ID: <8BD7226E07DDFF49AF5EF4030ACE0B7E05573BA3@red-msg-06.redmond.corp.microsoft.com>
To: "Jeni Tennison" <jeni@jenitennison.com>
Cc: "Henry S. Thompson" <ht@cogsci.ed.ac.uk>, <Simon.Cox@csiro.au>, <xmlschema-dev@w3.org>


> -----Original Message-----
> From: Jeni Tennison [mailto:jeni@jenitennison.com] 
> Sent: Friday, March 08, 2002 2:07 AM
> To: Dare Obasanjo
> Cc: Henry S. Thompson; Simon.Cox@csiro.au; xmlschema-dev@w3.org
> Subject: Re: Derivation by restriction from <any>
> 
> 
> Hi Dare,
> 
> > Upon investigating the W3C XML Schema Structures specification I've 
> > had some difficulty locating where it specifies that one-to-many 
> > particle derivations are acceptable. I would appreciate a 
> pointer to 
> > where in the recommendation it mentions that this is possible. From 
> > what I've read[0] particle derivation is a one-to-one affair.
> 
> The specific derivation from this example is a derivation by 
> restriction from the base model group:
> 
>   <sequence>
>     <any maxOccurs="unbounded"/>
>   </sequence>
> 
> to the derived model group:
> 
>   <sequence>
>     <element name="e1" type="string"/>
>     <element name="e2" type="integer" minOccurs="0"/>
>     <element name="e3" type="date" minOccurs="0"/>
>   </sequence>
> 
> By the rules of the Schema Component Constraint: Particle Valid
> (Restriction) 
> (http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict), 
> the sequence in the base model group is "pointless" so the 
> base model group is equivalent to:
> 

I am curious as to what rules you used to come to that conclusion. The
original XML schema fragment was 
	
 <complexType name="basetype">
  <sequence>
    <any maxOccurs="unbounded"/>
  </sequence>
 </complexType>

 <complexType name="newtype">
  <complexContent>
    <restriction base="my:basetype">
      <sequence>
        <element name="e1" type="string"/>
        <element name="e2" type="integer" minOccurs="0"/>
        <element name="e3" type="date" minOccurs="0"/>
      </sequence>    
    </restriction>
  </complexContent>
 </complexType>

The rules for pointlessness for an xs:sequence are 

	<sequence> 
	One of the following must be true:
	2.2.1 {particles} is empty. [Dare - Nope, not in this case] 
	
	2.2.2 All of the following must be true:
	2.2.2.1 The particle within which this <sequence> appears has
{max occurs} and {min 	occurs} of 1. [Dare - the sequence does not
appear in a particle. Now it is possible that somewhere in the spec
defines some implicit particle similar to how there is an implicit
xs:complexContent child of a xs:complexType when it has particles as
children. If this is the case I'd appreciate it if you could point this
out]

Thanks. 

<snip stuff on restricting xs:any to xs:sequence> 

-- 
THINGS TO DO IF I BECOME AN EVIL OVERLORD #230
I will not procrastinate regarding any ritual granting immortality.
Received on Friday, 8 March 2002 22:09:19 GMT

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