Re: XSD for 'at least one of'
"G. Ken Holman" <[email protected]>
| Newsgroups | gmane.text.xml.schema.devel |
|---|---|
| Message-ID | <[email protected]> |
At 2011-01-06 11:24 -0500, George Francis wrote: >Apologies if this is a PAQ, I can't find the answer. >How do I specify in my XSD that an element must contain at least one >of it's child elements? By mandating a choice of mandatory children, not optional children. > I've tried the following: > ><xs:complexType name="options"> > ><xs:choice minOccurs="1" maxOccurs="unbounded"> > ><xs:element name='month' type="month" minOccurs="0" /> > ><xs:element name='year' type="year" minOccurs="0" /> > ><xs:element name='day' type="day" minOccurs="0" /> > ></xs:choice> > ></xs:complexType> > >but it still doesn't seem to care if 'options' is empty. Right, because you've allowed any of the choices to be empty. If you make all of the choices mandatory, then the choice cannot be an empty choice and the element will not be empty of children. <xs:complexType name="options"> <xs:choice minOccurs="1" maxOccurs="unbounded"> <xs:element name='month' type="month" /> <xs:element name='year' type="year" /> <xs:element name='day' type="day" /> </xs:choice> </xs:complexType> I hope this helps. . . . . . . . . . Ken -- Contact us for world-wide XML consulting & instructor-led training Crane Softwrights Ltd. http://www.CraneSoftwrights.com/x/ G. Ken Holman mailto:[email protected] Legal business disclaimers: http://www.CraneSoftwrights.com/legal