Добавление в элемент потомков также требует использования сложных типов. Проще всего перечислить один или более дочерних элементов, используя элемент sequence:
<xsd:element name="memories"> <xsd:complexType> <xsd:sequence>
<xsd:element name="memory" type="memoryType"/> </xsd:sequence>
</xsd:complexType> </xsd:element>
Этот пример показывает только один дочерний элемент, но вам все же нужен элемент sequence.
В типе memoryType комбинируются несколько приемов, увиденных вами недавно:
<xsd:complexType name="memoryType"> <xsd:sequence> <xsd:element name="media"> <xsd:complexType> <xsd:attribute name="mediaid" type="xsd:integer" /> <xsd:attribute name="status" type="mediaType" /> </xsd:complexType> </xsd:element> <xsd:element name="subdate" type="xsd:date"/> <xsd:element name="donor" type="xsd:string"/> <xsd:element name="subject" type="xsd:string"/> <xsd:element name="location" type="locationType" /> </xsd:sequence> <xsd:attribute name="tapeid" type="idNumber" /> <xsd:attribute name="status" type="xsd:string" /> </xsd:complexType>
Тип memoryType также включает ссылку на locationType, что позволяет пользователю выбирать между потенциальными потомками элемента.