[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: XML Schemas: Best Practices
- From: "Roger L. Costello" <costello@mitre.org>
- To: xml-dev@lists.xml.org
- Date: Thu, 18 Jan 2001 11:10:04 -0500
Jeff Rafter wrote:
>
> Eddie,
>
> > I may be on thin ice here but I don't think this is correct. If you use
> > derivation using the above syntax you're not reordering the elements.
> Instead
> > you are extending the type to allow for all the elements in the base type
>
> I believe you are right. I think that Martin's intent was to use a
> restriction element instead of an extension element (correct me if I am
> wrong). This would make his example:
>
> <complexType name="BookTypePlusReviewer">
> <complexContent>
> <restriction base="c:BookType" >
> <sequence>
> <element name="Reviewer" type="string"/>
> <element name="Title" type="string"/>
> <element name="Author" type="string"/>
> <element name="Date" type="year"/>
> <element name="ISBN" type="string"/>
> <element name="Publisher" type="string"/>
> </sequence>
> </restriction>
> </complexContent>
> </complexType>
Great discussions!
No, using <restriction> does not allow me to put a Reviewer element at
the top of Book's content model. The <restriction> functionality only
allows me to
- restrict the range of values, or
- restrict the number of occurrences of an element
It does not allow me to add (extend) a content model. The only way to
add (extend) a content model is with <extension>, and the extension is
always at the end of the content model.
> using:
>
> <any namespace="##any" minOccurs="0" maxOccurs="2"/>
>
> at the top of the sequence seems to be a good idea until you consider
> multiple layers of inheritance-- then you realize that a more extensive (no
> pun intended) solution is needed.
I don't know what you mean by "multiple layers of inheritance". Could
you expand upon this please? Thanks! /Roger