TheUltimateHack
TheUltimateHack

Reputation: 137

XSD - Validate an element for 1 of 2 formats based on value

Im trying to write a schema for an element that can be in 1 of 2 formats. here is the XML example

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>

Ive tried using in various ways but cant seem to get it to validate. The error message I get is this

cos-element-consistent: Error for type '#AnonType_Root'. Multiple elements with name 'ElementName', with different types, appear in the model group.

Upvotes: 0

Views: 76

Answers (0)

Related Questions