Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - Forcing a parent tag to have at least one child via an XML schema [Thread Next] Re: Forcing a parent tag to have at least one child via an XML schemaTo: NULL Date: 10/3/2008 3:03:00 PM
Susan Harris wrote:
> I have a document that includes info similar to:
>
> <cat>
> <name>Tiddles</name>
> <color>Purple</color>
> <age>12</age>
> <ageInCatYears>84</ageInCatYears>
> </cat>
>
> ALL elements (including <cat>) are optional. However, <cat> should not
> exist unless at least one of it children does.
>
> How can I specific via an XML schema that <cat> should not exist unless
> it has at least one child?
<xs:element name="cat">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="name" type="xs:string"/>
<xs:element name="color" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
<xs:element name="ageInCatYears" type="xs:int"/>
</xs:choice>
</xs:complexType>
</xs:element>
would suffice to ensure that the 'cat' element has at least one of the
child elements listed in the choice. On the other hand the above
definition would allow several 'name' or 'color' or 'age' elements so I
doubt you want that construct.
So whether there is a solution depends on the other constraints you want
to put on the children of 'cat'.
--
Martin Honnen
http://JavaScript.FAQTs.com/
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
