[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: XML Schema question on inheritance
- From: Eddie Robertsson <eddie@allette.com.au>
- To: James Williams - Sun East Coast IR Development <James.P.Williams@Sun.COM>
- Date: Wed, 06 Jun 2001 09:34:52 +1000
> Is there an equivalent to the (a | b | c)* content
> group in XML Schema?
Sure,
...
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="a" type="..."/>
<xsd:element name="b" type="..."/>
<xsd:element name="c" type="..."/>
</xsd:choice>
</xsd:complexType>
...
Cheers,
/Eddie
>
> Thanks
> Jim Williams
>
> > I don't believe this is valid according to the restriction imposed on the
> > <xsd:all> group. I haven't found the relevant sections in the Structure
> > spec [1] but the Primer says [2]:
> >
> > "When a complex type is derived by extension, its effective content model
> > is the content model of the base type plus the content model specified in
> > the type derivation. Furthermore, the two content models are treated as
> > two children of a sequential group."
> >
> > This means that the above derivation can be written as a single content
> > model:
> >
> > <complexType name="parentType">
> > <sequence>
> > <all>
> > <element name="x" type="string"/>
> > <element name="y" type="string"/>
> > </all>
> > <all>
> > <element name="z" type="string"/>
> > </all>
> > </sequence>
> > </complexType>
> >
> > According to the constraints imposed on the all group (must be the sole
> > child at the top of a content model) this is illegal and that would mean
> > that the all group cannot be used in a type derivation by extension.
> >
> > Cheers,
> > /Eddie
> >
> > [1] http://www.w3.org/TR/xmlschema-1
> > [2] http://www.w3.org/TR/xmlschema-0/#DerivExt
> >