Imagine OR in XSD

I need

(firstName and lastName) OR (nameForDisplay)

in xsd. I can get XOR if I use <xs:choice>, but I can not get OR.

+5
source share
2 answers
<choice>
  <sequence>
    <element name="firstName" />
    <element name="lastName" />
    <element name="nameForDisplay" minOccurs="0" />
  </sequence>
  <element name="nameForDisplay" />
</choice>

It's ugly to repeat, I know. You can cancel repeating with groups.

+4
source

Here's an alternative:

<choice>
   <element name="Name" type="xs:complexType">
      <sequence>
         <element name="firstName" type="xs:String"/>
         <element name="lastName" type="xs:String"/>
      </sequence>
   </element>
   <element name="nameForDisplay" type="xs:String"/>
</choice>
0
source

All Articles