Валидация XSD, непроходит maxOccurs=»unbounded»

Использую такой XSD-файл:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.geshi_code {font-family:monospace;} .xml.geshi_code .imp {font-weight: bold; color: red;} .xml.geshi_code .es0 {color: #000099; font-weight: bold;} .xml.geshi_code .br0 {color: #66cc66;} .xml.geshi_code .sy0 {color: #66cc66;} .xml.geshi_code .st0 {color: #ff0000;} .xml.geshi_code .sc-1 {color: #808080; font-style: italic;} .xml.geshi_code .sc0 {color: #00bbdd;} .xml.geshi_code .sc1 {color: #ddbb00;} .xml.geshi_code .sc2 {color: #339933;} .xml.geshi_code .sc3 {color: #009900;} .xml.geshi_code .re0 {color: #000066;} .xml.geshi_code .re1 {color: #000000; font-weight: bold;} .xml.geshi_code .re2 {color: #000000; font-weight: bold;} .xml.geshi_code span.xtra { display:block; }

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:complexType name="baseType">
    <xsd:attribute name="name" type="xsd:string"/>
  </xsd:complexType>

  <xsd:element name="root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="additional">
          <xsd:complexType>
            <xsd:all>
              <xsd:element name="class" type="baseType" minOccurs="0" maxOccurs="unbounded"/>
            </xsd:all>
          </xsd:complexType>
        </xsd:element>

        <xsd:element name="modules">
          <xsd:complexType>
            <xsd:all>
              <xsd:element name="module" type="baseType" minOccurs="1" maxOccurs="unbounded"/>
            </xsd:all>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
 


При его валидации выдаётся ошибка:
The 'maxOccurs' attribute is invalid. The value 'unbounded' is invalid according to its datatype 'Union'. The Enumeration constraint failed. (13:71)

Не понимаю, как исправить, чтобы maxOccurs="unbounded" прокатывал.

1 ответов


Оказывается, вся загвоздка была в xsd:all, там допустимое количество повторений всего [0,1], не больше. Так что пришлось использоваться xsd:sequence.