XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Peter LarbalestierSubject: xsd:choice maxOccurs="unbounded"
Author: Peter Larbalestier
Date: 13 Oct 2004 10:06 PM
Afternoon,

can anyone please explain for me ?

I have a 1 to Many relationshiip (very simple example)

Countries to Categories

<xsd:element name="Countries">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="Categories" maxOccurs="unbounded">

Question: what is the difference between having the test

maxOccurs="unbounded"

appear with the "xsd:choice" as to the "xsd:element" ?

Thanks

Peter

Postnext
Minollo I.Subject: xsd:choice maxOccurs="unbounded"
Author: Minollo I.
Date: 13 Oct 2004 11:09 PM
The min/maxOccurs in <choice> control how many of the specified elements (in this case) can be used: 1 would model an exclusive "or"; unbounded an inclusive "or". The min/maxOccurs on the elements control how many of *those* elements can be repeated.

So, for example, assume you have this schema:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="test">
<xsd:complexType>
<xsd:choice maxOccurs="2">
<xsd:element name="ele1" minOccurs="0" maxOccurs="3"/>
<xsd:element name="ele2" minOccurs="0" maxOccurs="3"/>
<xsd:element name="ele3" minOccurs="0" maxOccurs="3"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>

...this document is valid, because you only use two elements part of the choice group:
<test>
<ele1/><ele1/><ele1/>
<ele3/>
</test>

...this XML document would be invalid, because you use three elements part of the choice group, but choice maxOccurs is 2:
<test>
<ele1/>
<ele2/>
<ele3/>
</test>

...and this XML document would be invalid because ele1 maxOccurs is 3:
<test>
<ele1/><ele1/><ele1/><ele1/>
<ele2/>
</test>

Hope this helps,
Minollo

Postnext
Travis ArmstrongSubject: xsd:choice maxOccurs=
Author: Travis Armstrong
Date: 28 Jan 2011 06:58 AM
This thread is returned near the top if you do a google search for XSD Choice maxocccurs and as it is incorrect I thought I should update it (despite it being an old one) so that no one else is mislead.

Maxoccurs on Choice does not refer to the number of elements you can choose within that choice. It refers to the number of times you can repeat the choice itself. You can only ever choose 1 type of element within a choice. This makes a very subtle difference. Take the following choice:

choice maxOccurs="2"
element name="ele1" maxOcccurs="3"
element name="ele2" maxOcccurs="3"

This does not mean you can choose either "ele1" or "ele2" or "ele1 & ele2", this means you can choose ele1 or ele2 once and then repeat the choice of ele1 or ele2 again.

So, contrary to the 3rd example above, an XML document with up to 6 ele1 elements is perfectly legal despite maxOccurs for ele1 being set to 3. The 3rd example above fails because you have repeated the choice 3 times (1st ele1x3, 2nd ele1x1, 3rd ele2x1).

Sorry for bumping an old thread.
Travis

Postnext
Peter LarbalestierSubject: Re: xsd:choice maxOccurs=
Author: Peter Larbalestier
Date: 13 Oct 2004 11:09 PM
Afternoon Minollo,

were there meant to be examples in your detailed reply?

If there were, do I need to change a setting on my browser?

Thanks

Pete

Postnext
Minollo I.Subject: Re: xsd:choice maxOccurs=
Author: Minollo I.
Date: 13 Oct 2004 11:11 PM
I submitted my reply again; it seems readable now.
Sorry,
Minollo

Postnext
Peter LarbalestierSubject: Re: xsd:choice maxOccurs=
Author: Peter Larbalestier
Date: 13 Oct 2004 11:26 PM
Minollo,

a very nice succinct answer.

Is there a website with such explanations so I don't have to badger
yourselves with such trivial questions?

Thankyou

Peter

Postnext
Minollo I.Subject: Re: xsd:choice maxOccurs=
Author: Minollo I.
Date: 13 Oct 2004 11:57 PM
Originally Posted: 13 Oct 2004 11:53 PM
Peter,
there are many more or less good sources of information about XML
Schema; if you have the stomach for it, I would go to the source:
http://www.w3.org/TR/xmlschema-0/ and related documents

I've also found some of the materials listed in the "

Presentations, guides, and tutorial materials

" section on http://www.w3.org/XML/Schema quite well done, especially the
tutorials.

And of course there is a large amount of books available out there...

Good luck,
Minollo

Posttop
Peter LarbalestierSubject: Re: xsd:choice maxOccurs=
Author: Peter Larbalestier
Date: 14 Oct 2004 12:39 AM
Minollo,

searched W3 and have loads of books.

I quite liked your answer, to find such a precise answer on the web

is always a challenge.

Thanks anyway

Pete

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.