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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: XML Schemas: <all> + extension = ?

[ Lists Home | Date Index | Thread Index ]
  • From: "Dave Carlson" <dcarlson@ontogenics.com>
  • To: <xml-dev@xml.org>
  • Date: Fri, 7 Jul 2000 08:03:38 -0600

If I interpret the spec correctly, there is another problem with
implementing your example.  You include:
    <element name="cost" type="decimal" maxOccurs="unbounded"/>

 within the <all> group, which is not allowed by the spec.  Each member must
be [0..1] cardinality.  I'm hoping that this restriction can be eliminated
in the next revision of the spec, because it severely restricts where <all>
may be used.  On the other hand, allowing unbounded member elements of
unordered groups makes the validation more difficult.

Dave

----- Original Message -----
From: Roger L. Costello <costello@mitre.org>
To: <xml-dev@xml.org>
Cc: <costello@mitre.org>
Sent: Friday, July 07, 2000 5:34 AM
Subject: XML Schemas: <all> + extension = ?


Hi Folks,

I am wishing to create a complexType which extends a base type.  I would
like for the resulting set of elements to be unordered (using <all>).

Here's an example to demonstrate what I mean.  Suppose that I have a
base type called appliance, and the elements in this base type are
unordered:

<complexType name="appliance">
    <all>
        <element name="description" type="string" maxOccurs="1"/>
        <element name="warranty" type="string" maxOccurs="1"/>
    </all>
</complexType>

Now I would like to create another type, juiceAppliance, which extends
appliance.  Further, I would like for the resulting set of elements to
be unordered.  Here was my first attempt at doing this:

<complexType name="juiceAppliance" base="j:appliance"
             derivedBy="extension">
    <all>
        <element name="name" type="string" maxOccurs="1"/>
        <element name="image" type="string" maxOccurs="1"/>
        <element name="weight" type="integer" maxOccurs="1"/>
        <element name="cost" type="decimal" maxOccurs="unbounded"/>
        <element name="retailer" type="uriReference" maxOccurs="1"/>
    </all>
</complexType>

I realize that this does not give me what I desire. Using curly braces
to denote sets, and parenthesis to denote lists, the above produces:

({description, warranty}, {name, image, weight, cost, retailer})

which is not what I want.  My desire is that after doing the extension I
have:

{description, warranty, name, image, weight, cost, retailer}

i.e., one big set, where description and warranty come from the base
type and the rest come from juiceAppliance.  Any suggestions on how to
do this?  Thanks!  /Roger


***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************



***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS