On Oct 3, 5:37*pm, "Susan Harris" <susanbharris1...@yahoo.comwrote:
Quote:
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, <catshould not exist
unless at least one of it children does.
>
How can I specific via an XML schema that <catshould not exist unless it
has at least one child?
|
I haven't check the Schema spec deeply, but I feel this might not be
possible with XSD 1.0. But it should be possible with the upcoming XSD
1.1 schema language (using the assertions feature).
With XSD 1.1, this should likely work:
<xs:element name="cat">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="color" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="age" type="xs:integer" minOccurs="0"
maxOccurs="1" />
<xs:element name="ageInCatYears" type="xs:string"
minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:assert test="count(*) > 0" />
</xs:complexType>
</xs:element>