W3C home > Mailing lists > Public > xmlschema-dev@w3.org > February 2002

RE: <xsd:sequence> required?

From: Priscilla Walmsley <pwalmsley@vitria.com>
Date: Tue, 12 Feb 2002 12:57:03 -0800
Message-ID: <C72C18E3B1C0D411B7B600D0B7A9208C824B19@VT-SJC-MS3.vitria.com>
To: Mark Feblowitz <mfeblowitz@frictionless.com>
Cc: xmlschema-dev@w3.org
Hi Mark,

It would be the second one.  All the elements in the base choice group would
have to appear before all the elements in the extended choice group.  

When extending choice groups, I use substitution groups instead.  Of course,
that requires that the element declarations are global.

Hope that helps,
Priscilla

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

> -----Original Message-----
> From: xmlschema-dev-request@w3.org
> [mailto:xmlschema-dev-request@w3.org]On Behalf Of Mark Feblowitz
> Sent: Tuesday, February 12, 2002 9:40 AM
> To: 'Eddie Robertsson'; xmlschema-dev@w3.org
> Cc: xmlschema-dev@w3.org
> Subject: RE: <xsd:sequence> required?
> 
> 
> I've asked this before, but don't recall seeing an answer:
> 
> Is the design pattern of an unbounded choice extensible? 
> 
> If I extend a type that contains an unbounded choice element 
> and specify
> that the extended type also contains an unbounded choice 
> element, would the
> behavior be 
> 
> 1) a full combination of the two sets of elements, appearing 
> in any order,
> or
> 
> 2) two separate choice subsets with elements in each subset 
> appearing in any
> order
> 
> 
> Extensibility of this pattern could be an important design criterion.
> 
> Thanks,
> 
> Mark
> 
> 
> --------------------------------------------------------------
> --------------
> ----
>  
> Mark Feblowitz                                   [t] 617.715.7231
> Frictionless Commerce Incorporated     [f] 617.495.0188 
> XML Architect                                     [e]
> mfeblowitz@frictionless.com
> 400 Technology Square, 9th Floor 
> Cambridge, MA 02139 
> www.frictionless.com  
>  
> 
>  -----Original Message-----
> From: 	Eddie Robertsson [mailto:erobertsson@allette.com.au] 
> Sent:	Monday, February 11, 2002 7:01 AM
> To:	xmlschema-dev@w3.org
> Cc:	xmlschema-dev@w3.org
> Subject:	Re: <xsd:sequence> required?
> 
> > What I want to be able to say with the following piece of 
> code is that
> > one can use the mentioned elements any number of times and 
> in any order.
> >
> >    <xsd:complexType name="ModelType">
> >      <xsd:element ref="cellml:units" minOccurs="0
> > maxOccurs="unbounded"/>
> >      <xsd:element ref="cellml:component" minOccurs="0"
> >        maxOccurs="unbounded" />
> >      <xsd:element ref="cellml:group" minOccurs="0"
> >        maxOccurs="unbounded"/>
> >      <xsd:element ref="cellml:connection" minOccurs="0"
> >        maxOccurs="unbounded" />
> >      <xsd:element ref="rdf:RDF" minOccurs="0" 
> maxOccurs="unbounded" />
> >      <xsd:attribute ref="cellml:name" use="required" />
> >      <xsd:attribute ref="cmeta:id" use="optional" />
> >    </xsd:complexType>
> >
> > Since the children elements can be in any order, the <xsd:sequence>
> > element is not useful.  Neither are the <xsd:choice> and 
> <xsd:all>.  Is
> > it necessary that I use one of them in this case?
> 
> Yes, you always need to have one of sequence, all or choice 
> specified. Since
> you want all elements to appear any number of times and in 
> any order you can
> add minOccurs="0" and maxOccurs="unbounded" to the choice 
> element itself.
> So, you would have:
> 
>    <xsd:complexType name="ModelType">
>     <xsd:choice minOccurs="0" maxOccurs="unbounded">
>      <xsd:element ref="cellml:units" minOccurs="0
> maxOccurs="unbounded"/>
>      <xsd:element ref="cellml:component" minOccurs="0"
>        maxOccurs="unbounded" />
>      <xsd:element ref="cellml:group" minOccurs="0"
>        maxOccurs="unbounded"/>
>      <xsd:element ref="cellml:connection" minOccurs="0"
>        maxOccurs="unbounded" />
>      <xsd:element ref="rdf:RDF" minOccurs="0" maxOccurs="unbounded" />
>     </xsd:choice>
>     <xsd:attribute ref="cellml:name" use="required" />
>     <xsd:attribute ref="cmeta:id" use="optional" />
>    </xsd:complexType>
> 
> Cheers,
> /Eddie
> 
> 
Received on Tuesday, 12 February 2002 15:57:35 GMT

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