Когда я пытаюсь проверить этот XSD:
<xs:group name="ValidityDateGroup">
<xs:annotation>
<xs:documentation>Reusable element group to be used where Valid From/Until needs to be captured in xs:date format</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="ValidFrom" type="xs:date"/>
<xs:element minOccurs="0" name="ValidUntil" type="xs:date"/>
</xs:all>
</xs:group>
<xs:complexType name="NameType">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<!-- SNIP - many more choices here -->
<xs:group ref="ValidityDateGroup"/> <!-- THIS IS WHERE THE ERROR IS -->
</xs:choice>
</xs:complexType>
Я получаю следующую ошибку:
Модельная группа «все» должна появиться в частице с «{'минимальное число событий'}» = '{'макс. число событий'}' = 1, и эта частица должна принадлежать к паре, которая составляет '{'тип содержимого'}. ' определения сложного типа.
Единственный способ, которым я смог заставить это работать как XSD 1.0, - это изменить «все» на «последовательность»:
<xs:group name="ValidityDateGroup">
<xs:annotation>
<xs:documentation>Reusable element group to be used where Valid From/Until needs to be captured in xs:date format</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" name="ValidFrom" type="xs:date"/>
<xs:element minOccurs="0" name="ValidUntil" type="xs:date"/>
</xs:sequence>
</xs:group>
но это навязывает особый порядок.
У кого-нибудь есть идеи, как заставить этот XSD работать с XSD 1.0?