Схема, которая допускает только элементы одного набора (два даны) как дочерние элементы - PullRequest
0 голосов
/ 23 января 2020

Предположим, у меня есть два набора элементов S1={A, B, C} и S2={D, E, F}, и только элементы S1 или S2 допускаются одновременно с дочерними элементами.

Так что это будет разрешено:

<Parent>
  <A>
  <B>
</Parent>

Но это не будет разрешено:

<Parent>
  <A>
  <B>
  <D>
</Parent>

Кто-нибудь знает, как написать это правило как XML схема 1.0?

В основном мне нужно что-то вроде:

<xs:element name="Parent" type="ParentType" />
<xs:complexType name="ParentType">
  <xs:complexContent>
    <xs:all>
      <xs:choice>
        <xs:group>
          <xs:element name="A"/>
          <xs:element name="B"/>
          <xs:element name="C"/>
        </xs:group>
        <xs:group>
          <xs:element name="D"/>
          <xs:element name="E"/>
          <xs:element name="F"/>
        </xs:group>
      </xs:choice>
    </xs:all>
  </xs:complexContent>
</xs:complexType>

К сожалению, это невозможно с версией XSD 1.0.

Кто-нибудь знает, как это сделать?

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