Я пытаюсь написать схему для элемента, который может быть в одном из двух форматов. Вот пример XML
XML
<root>
<ElementName> <!--if value starts with "A"-->
<SubElementName1\>
<SubElementName2\>
<SubElementName3\>
<ElementName\>
<!--Only one of these structures exist per document-->
<ElementName><!--value starts with "B"-->
<SubElementName4\>
<SubElementName5\>
<SubElementName6\>
<SubElementName7\>
<SubElementName8\>
<SubElementName9\>
<ElementName\>
XSD
<xsd:choice>
<xsd:element name="ElementName">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="SubElementName1"/>
<xsd:element name="SubElementName2"/>
<xsd:element name="SubElementName3"/>/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:choice>
<xsd:element name="ElementName">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="SubElementName4"/>
<xsd:element name="SubElementName5"/>
<xsd:element name="SubElementName6"/>
<xsd:element name="SubElementName7"/>
<xsd:element name="SubElementName8"/>
<xsd:element name="SubElementName9"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
Я пытался использовать по-разному, но не может показаться чтобы проверить это. Я получаю следующее сообщение об ошибке:
согласовано с cos-element: ошибка для типа '# AnonType_ Root'. В группе моделей появятся несколько элементов с именем «ElementName» разных типов.