XSD - проверка элемента для 1 из 2 форматов на основе значения - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь написать схему для элемента, который может быть в одном из двух форматов. Вот пример 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» разных типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...