<
xs:simpleType name="AgeType">
<xs:restriction
base="xs:integer"/>
</xs:simpleType>
<xs:simpleType
name="GenderType">
<xs:restriction
base="xs:string"/>
</xs:simpleType>
<xs:simpleType
name="LangType">
<xs:restriction
base="xs:string">
<xs:enumeration
value="English"/>
<xs:enumeration
value="French"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType
name="SType">
<xs:complexContent>
<xs:extension
base="tns:SH">
<xs:sequence>
<xs:element
name="Subject" type="tns:LangType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType
name="SH">
<xs:choice
maxOccurs="2">
<xs:element
name="Age" type="tns:AgeType"/>
<xs:element
name="Gender" type="tns:GenderType"/>
</xs:choice>
</xs:complexType>
<xs:element
name="Data">
<xs:complexType>
<xs:choice
maxOccurs="unbounded">
<xs:element ref="tns:_Base"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element
name="_Base" abstract="true"/>
<xs:element
name="Name" type="tns:SType" substitutionGroup="tns:_Base"/>