#xml #xsd #schema #complextype
#xml #xsd #схема #complextype
Вопрос:
Данное определение типа MyType
должно допускать последовательности элементов ( A
), ( B
), ( C
), ( A
, B
) и ( A
, C
). При проверке я получаю ошибку «нарушение уникальной атрибуции частиц». Как я могу исправить эту проблему?
<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>
Ответ №1:
Некоторый рефакторинг исправляет ошибку атрибуции уникальной частицы:
<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>