Я определил компоненты типов inputTextType
и inputEmailType
(их определения здесь не важны). Мне нужно иметь components
коллекцию любого номера inputText и/или inputEmail в любом порядке (пример: текст, текст, текст, текст). Я пробовал:XML-схема для сбора компонентов любого определенного типа
<xs:complexType name="componentsType">
<xs:choice>
<xs:element name="inputText" type="inputTextType" maxOccurs="unbounded" minOccurs="0"/>
<xs:element name="inputEmail" type="inputEmailType" maxOccurs="unbounded" minOccurs="0"/>
</xs:choice>
</xs:complexType>
но при проверке XML
<components>
<inputText>
<label>label 1</label>
<name>as</name>
</inputText>
<inputText>
<label>label 2</label>
<name>ghyyy6</name>
</inputText>
<inputEmail>
<label>drg</label>
<name>rgtght</name>
</inputEmail>
</components>
У меня есть ошибка cvc-complex-type.2.4.a: Invalid content was found starting with element 'inputEmail'. One of '{inputText}' is expected.
. XML правильный (мне это нужно). Как мне исправить XSD?
Для XML выше я изменил XSD для
<xs:complexType name="componentsType">
<xs:choice>
<xs:element name="inputText" type="inputTextType" maxOccurs="unbounded" minOccurs="0"/>
<xs:element name="inputEmail" type="inputEmailType" maxOccurs="unbounded" minOccurs="0"/>
</xs:choice>
</xs:complexType>
, и она работала, но тогда я не смог определить текст, электронную почту, текст, текст, но только сначала все тексты, а затем все письма.