У меня следующий XSD-код:
<xsd:complexType name="questions">
<xsd:sequence>
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
Проблема здесь в следующем: расположение элементов, множественный вывод и т. Д. Должны отображаться в том же порядке, в котором они были объявлены.Я не хочу, чтобы это произошло, я хочу, чтобы в процессе валидации последовательность не была релевантной.Как мне достичь этого?
Еще одна возможность, которую я попробовал, была:
<xsd:complexType name="questions">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
</xsd:complexType>
В этом примере последовательность действительно больше не имеет значения, и у меня может быть столько элементов, сколькоЯ хочу (что "все" не позволило бы мне сделать).Но у меня все еще есть проблема с min- и maxOccurs.В этом примере у меня может быть как можно больше «pictureInput», что опять-таки является ограничением, которое я хотел бы иметь либо 0, либо 1.
Большое спасибо за помощь!