Изменение maxOccurs в последовательности путем ограничения без повторения определения последовательности - PullRequest
0 голосов
/ 16 октября 2018

Предположим, у меня есть следующее определение типа в схеме XML:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="IntList">
    <xs:sequence minOccurs="1">
      <xs:element name="a" type="xs:int"/>
      <xs:element name="b" type="xs:int"/>
      <xs:element name="list">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="x" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

Можно ли ограничить длину последовательности list ограничением (или каким-либо другим способом), не повторяя всегоопределение IntList?

Я знаю, что могу сделать

<xs:complexContent>
  <xs:restriction base="IntList">
    <xs:sequence>
      <xs:element name="a" type="xs:int"/>
      <xs:element name="b" type="xs:int"/>
      <xs:element name="list">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="x" minOccurs="0" maxOccurs="5"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:restriction>
</xs:complexContent>

Но это как-то противоречит цели избежать дублирования кода в максимально возможной степени.Есть ли другой подход к этому?

...