Guy,
I am just learning XML but I have tried out the included XML files with the include XSD schema and it seemed to work OK. You can set minOccurs="0" for any element that you want to allow to include 0 or 1 time in the group. Hope this helps.
Warren
XML #1 ----------------------------------
<?xml version="1.0" ?>
<x
arent xmlns:x="urn:books">
<ca>child a</ca>
<cb>child b</cb>
<cc>child c</cc>
</x
arent>
XML #2 --------------------------------
<?xml version="1.0" ?>
<x
arent xmlns:x="urn:books">
<ca>child a</ca>
<cc>child c</cc>
</x
arent>
XSD -------------------------------------
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:books"
xmlns:b="urn:books">
<xsd:element name="parent" type="b
arentData"/>
<xsd:complexType name="ParentData">
<xsd:all>
<xsd:element name="ca" type="xsd:string"/>
<xsd:element name="cb" type="xsd:string" minOccurs="0"/>
<xsd:element name="cc" type="xsd:string" />
</xsd:all>
</xsd:complexType>
</xsd:schema>