Давайте посмотрим на мой тест .xsd:
<!-- lot of stuff... -->
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="target:child"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="child">
<xsd:complexType>
<xsd:attribute name="childAttribute" type="myType"/>
</xsd:complexType>
</xsd:element>
<!-- lot of stuff... -->
Ну, здесь все хорошо. Есть только одна проблема: у моего дочернего элемента нет типа! Я не знаю, как дать элементу тип. Я пробовал с:
<xsd:element name="child" type="xsd:myType2">
<xsd:complexType>
<xsd:attribute name="childAttribute" type="myType"/>
</xsd:complexType>
</xsd:element>
или с
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="target:child" type="xsd:myType2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Но это не сработает. Всегда есть сообщение об ошибке:
«Элемент 'child' не может иметь как атрибут типа, так и дочерний тип simpleType / complexType [xml]]]"
Как я могу исправить эту проблему? Я имею в виду без типа валидатор не разрешит xml, как это:
Привет, мир
допускается только пустой дочерний элемент с одним атрибутом
У кого-нибудь есть идеи?
Спасибо!