W3C home > Mailing lists > Public > xmlschema-dev@w3.org > October 2001

RE: constraining an element to be either simple or complex content

From: Priscilla Walmsley <priscilla@walmsley.com>
Date: Fri, 19 Oct 2001 13:01:47 -0400
To: "'Jeni Tennison'" <jeni@jenitennison.com>, "'Priscilla Walmsley'" <priscilla@walmsley.com>
Cc: <xmlschema-dev@w3.org>
Message-ID: <004d01c158bf$ce609b00$b92a6420@xmls>
Hi Jeni,

That's a good point, and I think we may have uncovered a contradiction in
the Rec.  The section I was looking at is Derivation Valid (Restriction,
Complex) in clause 5:

5.1 If the {content type} of the complex type definition is a simple type
definition, then one of the following must be true:
5.1.1 The {content type} of the {base type definition} must be a simple type
definition of which the {content type} is a ·valid restriction· as defined
in Derivation Valid (Restriction, Simple) (§3.14.6).
5.1.2 The {base type definition} must be mixed and have a particle which is
·emptiable· as defined in Particle Emptiable (§3.9.6).

Unless maybe I should have used "complexContent"?  I will investigate
further....

Priscilla
-----------------------------------------------------------
Priscilla Walmsley                   priscilla@walmsley.com
Vitria Technology                     http://www.vitria.com
Author, Definitive XML Schema    (Prentice Hall, Dec. 2001)
-----------------------------------------------------------

> -----Original Message-----
> From: Jeni Tennison [mailto:jeni@jenitennison.com]
> Sent: Friday, October 19, 2001 12:44 PM
> To: Priscilla Walmsley
> Cc: xmlschema-dev@w3.org
> Subject: Re: constraining an element to be either simple or complex
> content
>
>
> Hi Priscilla,
>
> > You can't extend simple content to create complex content, but you
> > _can_ restrict mixed complex content to create simple content. In
> > this situation, you would define the types as:
> >
> > <xs:complexType name="baseType" mixed="true" abstract="true">
> >   <xs:sequence>
> >     <xs:any minOccurs="0" maxOccurs="unbounded"/>
> >   </xs:sequence>
> > </xs:complexType>
> >
> > <xs:complexType name="simpleType">
> >   <xs:simpleContent>
> >     <xs:restriction base="baseType">
> >       <xs:simpleType>
> >         <xs:restriction base="xs:integer"/>
> >       </xs:simpleType>
> >     </xs:restriction>
> >   </xs:simpleContent>
> > </xs:complexType>
>
> Wow, that is obscure! It works in XSV, but I'm confused about why,
> because Clause 2 of the Complex Type Definition Representation OK
> Schema Representation Constraint says:
>
>   2 If the <simpleContent> alternative is chosen, the type
>     definition ·resolved· to by the ·actual value· of the base
>     [attribute] must be either a complex type definition whose
>     {content type} is a simple type definition or, only if the
>     <extension> alternative is also chosen, a simple type definition;
>
> but the base attribute in the definition of the 'simpleType' type is a
> complex type definition whose {content type} is a *complex* type
> definition, isn't it?
>
> Or am I reading it wrong?
>
> Cheers,
>
> Jeni
>
> ---
> Jeni Tennison
> http://www.jenitennison.com/
>
>
Received on Friday, 19 October 2001 13:03:16 GMT

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