W3C home > Mailing lists > Public > xmlschema-dev@w3.org > April 2003

RE: XML Schema: Alternating "unbounded" elements

From: Mohan Raj <mohanrajd@hotmail.com>
Date: Fri, 18 Apr 2003 16:33:22 -0700
To: noah_mendelsohn@us.ibm.com, ashundi@tibco.com
Cc: silencer2020@yahoo.ca, xmlschema-dev@w3.org
Message-ID: <BAY1-F94oxJ6sJ9amqk00003119@hotmail.com>


(f1 | f2 | f3 )* is exactly what i was looking for. thanks for the 
responses. i need help for one more issue. i have a situation where i would 
like to have something like (f1?, f2?, f3*, f4+) one way to do this will be

<xs:sequence>
<element ref = "f1" minOccurs = "1" maxOccurs = "1">
<element ref = "f2" minOccurs = "1" maxOccurs = "1">
<element ref = "f3" minOccurs = "1" maxOccurs = "unbounded">
<element ref = "f4" minOccurs = "0" maxOccurs = "unbounded">
</xs:sequence>

but this imposes a sequence and requires the fields to be ordered from f1 
through f4. how can i get around this?

thanks again.
mohan


>From: noah_mendelsohn@us.ibm.com
>To: Anli Shundi <ashundi@tibco.com>
>CC: Mohan Raj <mohanrajd@hotmail.com>, "'Navid'" <silencer2020@yahoo.ca>,   
>xmlschema-dev@w3.org
>Subject: RE: XML Schema: Alternating "unbounded" elements
>Date: Fri, 18 Apr 2003 17:03:41 -0400
>
>Anli Shundi suggests:
>
> >> something simpler like seems sufficient
>
> >> (f1*|f2*|f3*)*
>
>I think I'm correct in saying that the above accepts the same language as:
>
>         (f1 | f2 | f3)*
>
>...as suggested in my mail of earlier today.
>
>Thanks.
>
>------------------------------------------------------------------
>Noah Mendelsohn                              Voice: 1-617-693-4036
>IBM Corporation                                Fax: 1-617-693-8676
>One Rogers Street
>Cambridge, MA 02142
>------------------------------------------------------------------
>
>
>
>
>
>
>
>Anli Shundi <ashundi@tibco.com>
>Sent by: xmlschema-dev-request@w3.org
>04/18/2003 01:58 PM
>
>
>         To:     "'Navid'" <silencer2020@yahoo.ca>, Mohan Raj 
><mohanrajd@hotmail.com>,
>xmlschema-dev@w3.org
>         cc:     (bcc: Noah Mendelsohn/Cambridge/IBM)
>         Subject:        RE: XML Schema: Alternating "unbounded" elements
>
>
>
>something simpler like seems sufficient
>
>(f1*|f2*|f3*)*
>
><schema
>     xmlns:tns="tns"
>     xmlns="http://www.w3.org/2001/XMLSchema"
>     targetNamespace="tns"
>     elementFormDefault="qualified" >
>
>     <element name="record">
>         <complexType>
>             <choice maxOccurs="unbounded">
>                 <element name="field1" type="tns:type"
>maxOccurs="unbounded"
>/>
>                 <element name="field2" type="tns:type"
>maxOccurs="unbounded"
>/>
>                 <element name="field3" type="tns:type"
>maxOccurs="unbounded"
>/>
>             </choice>
>         </complexType>
>     </element>
>
>     <complexType name="type">
>         <sequence>
>             <element name="value" type="string"/>
>         </sequence>
>     </complexType>
></schema>
>
>
>
>
>Anli Shundi
>TIBCO Software Inc.
>www.tibco.com
>
> > -----Original Message-----
> > From: Navid [mailto:silencer2020@yahoo.ca]
> > Sent: Friday, April 18, 2003 1:16 PM
> > To: Mohan Raj; xmlschema-dev@w3.org
> > Subject: Re: XML Schema: Alternating "unbounded" elements
> >
> >
> >
> > >    <field1>
> > >       <value>x
> > >       </value>
> > >    </field1>
> > >
> > >    <field3>
> > >       <value>x
> > >       </value>
> > >    </field3>
> >
> > This should do it:
> >
> > <schema xmlns="http://www.w3.org/2001/XMLSchema"
> > targetNamespace="http://www.example.com"
> > elementFormDefault="qualified"
> > xmlns:target="http://www.example.com">
> >
> >                <element name="field1"  type="target:myType"/>
> >                <element name="field2"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field3"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field4"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field5"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field6"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field7"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field8"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field9"  type="target:myType"
> > substitutionGroup="target:field1"/>
> >                <element name="field10" type="target:myType"
> > substitutionGroup="target:field1"/>
> >
> >                <element name="record">
> >                                <complexType>
> >                                                <sequence>
> >                                                                <element
>ref="target:field1"
> > minOccurs="0"
> > maxOccurs="unbounded"/>
> >                                                </sequence>
> >                                </complexType>
> >                </element>
> >
> >                <complexType name="myType">
> >                                <sequence>
> >                                                <element name="value"
>type="string"/>
> >                                </sequence>
> >                </complexType>
> > </schema>
> >
> >
> > Navid.
> >
> >
> >  --- Mohan Raj <mohanrajd@hotmail.com> wrote: >
> > >
> > > I am fairly new to XML and i searched through the
> > > archives but did not find
> > > any solution for this issue.
> > >
> > > I am trying to define a schema that can validate the
> > > following XML document.
> > >
> > > <record>
> > >    <field1>
> > >       <value>x
> > >       </value>
> > >    </field1>
> > >
> > >    <field2>
> > >       <value>x
> > >       </value>
> > >    </field2>
> > >
> > >    <field1>
> > >       <value>x
> > >       </value>
> > >    </field1>
> > >
> > >    <field3>
> > >       <value>x
> > >       </value>
> > >    </field3>
> > >
> > >    <field2>
> > >       <value>x
> > >       </value>
> > >    </field2>
> > >
> > > ...
> > >
> > > </record>
> > >
> > > i have a bunch of fields field1 through field10 and
> > > i can have multiple
> > > occurences of every field (maxOccurs = "unbounded")
> > > and they need not be in
> > > a sequence (i.e.
> > > field1 occuring thrice followed by field2 occuring
> > > twice etc). these
> > > elements can alternate as shown above (in any
> > > order).
> > >
> > > please provide a sample schema that can do something
> > > like this. i appreciate
> > > your help.
> > >
> > > thanks
> > > mohan
> > >
> > >
> > >
> > _________________________________________________________________
> > > Help STOP SPAM with the new MSN 8 and get 2 months
> > > FREE*
> > > http://join.msn.com/?page=features/junkmail
> > >
> >
> > ______________________________________________________________
> > ________
> > Post your free ad now! http://personals.yahoo.ca
> >
> >
>
>
>
>


_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail
Received on Friday, 18 April 2003 19:34:23 GMT

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