OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XML Schema question on inheritance



That's what I was afraid of. This seems like 
an overly restrictive constraint. 
The <all> group would be perfect for modelling fields
of objects, but if you can't use it with inheritance,
then it becomes useless for this purpose.

Given this, any recommendations on how to model objects
that use inheritance?

I don't want to use <sequence>, because that imposes
an artificial ordering on the fields of the object
that make marshalling and unmarshalling the objects
to and from XML more difficult.

Is there an equivalent to the (a | b | c)* content
group in XML Schema?


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
>