Как определить группы обязательных атрибутов в XSD? - PullRequest
2 голосов
/ 27 июня 2011

Предположим, что я хочу, чтобы элемент XXX мог иметь либо атрибут AAA вместе с атрибутом BBB в паре, либо атрибут CCC с парой DDD, но никогда не смешивать AAA с DDD или подобным.

Как я могу определить это?

Спасибо

1 Ответ

3 голосов
/ 28 июня 2011

Эта функция недоступна в xsd.Если вы хотите ограничить атрибуты двумя группировками, вам необходимо определить два элемента, по одному для каждой из групп атрибутов.Например:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:choice>
        <xs:element name="MyType1">
          <xs:complexType>
            <xs:attribute name="AAA" type="xs:string" />
            <xs:attribute name="DDD" type="xs:string" />
          </xs:complexType>
        </xs:element>
        <xs:element name="MyType2">
          <xs:complexType>
            <xs:attribute name="BBB" type="xs:string" />
            <xs:attribute name="CCC" type="xs:string" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

Надеюсь, это поможет вам.

...