复杂类型定义违反唯一粒子属性

Complex Type definition violates unique particle attribution

类型 MyType 的给定定义应允许元素序列 (A), (B), (C), (AB) 和 (AC)。验证时出现 "unique particle attribution violation" 错误。我该如何解决这个问题?

<xs:complexType name="MyType">
  <xs:choice>
    <xs:element name="A" type="AType"/>
    <xs:sequence>
      <xs:element name="A" type="AType" minOccurs="0"/>
      <xs:choice>
        <xs:element name="B" type="BType"/>
        <xs:element name="C" type="CType"/>
      </xs:choice>
    </xs:sequence>
  </xs:choice>
</xs:complexType>

一些重构修复了独特的粒子属性错误:

<xs:complexType name="MyType">
  <xs:choice>
     <xs:sequence>
       <xs:element name="A" type="AType"/>
       <xs:choice minOccurs="0">
         <xs:element name="B" type="BType"/>
         <xs:element name="C" type="CType"/>
       </xs:choice>
     </xs:sequence>
     <xs:element name="B" type="BType"/>
     <xs:element name="C" type="CType"/>
   </xs:choice>
</xs:complexType>