Схема, сгенерированная мной для XML, выглядит следующим образом:
<xs:complexType name="ComplexElement1">
<xs:sequence>
<xs:element name="ComplexType1" type="ComplexType1">
</xs:element>
<xs:element name="ComplexType2" type="ComplexType2" minOccurs="0">
</xs:element>
<xs:element name="ComplexType3">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="ComplexType4" type="ComplexType4"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ComplexType5" type="ComplexType5" minOccurs="0"/>
<xs:element name="ComplexType6" type="ComplexType6" minOccurs="0" maxOccurs="1"/>
<xs:element name="SimpleType1" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ComplexType7" type="ComplexType7" minOccurs="0" maxOccurs="1"/>
<xs:element name="SimpleType2" minOccurs="1" maxOccurs="1" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Attribute1" type="StringLength3WithNoSpace" use="required"/>
<xs:attribute name="Attribute2" type="ComplexAttribute1"/>
<xs:attribute name="Attribute3" type="xs:boolean" use="optional"/>
</xs:complexType>
Как видно из XSD, ComplexType 5,6 и 7 и SimpleType 1 являются необязательными элементами .Кроме того, SimpleType2 является обязательным элементом.
Когда я пытаюсь выполнить запрос, в котором в качестве части запроса не указан SimpleType2, я ожидаю сообщение, подобное
Message validation failed. Errors: [cvc-complex-type.2.4.b: The content of element 'ComplexElement1' is not complete. One of '{"somePath":SimpleType2}' is expected.]
, которое работает нормально.
Однако в случаях, когда я не помещаю любые необязательных элементов, ComplexType 5, 6 и 7 и SimpleType 1, а также обязательный SimpleType2, возникает проблема.
СообщениеЯ ожидаю, что это то же самое, что и выше - так как все другие элементы сделаны необязательными в последовательности, используя minOccurs = "0"
Однако, фактическое сообщение об ошибке, которое я получаю:
Message validation failed. Errors: [cvc-complex-type.2.4.b: The content of element 'ComplexElement1' is not complete. One of '{"somePath":ComplexType5, "somePath":ComplexType6, "somePath":SimpleType1, "somePath":ComplexType7, "somePath":SimpleType2}' is expected.]<
что не совсем правильно, так как моя схема определяет только SimpleType2 как обязательный, а все остальные как необязательные.
Есть какие-нибудь идеи о том, что я могу сделать, чтобы это исправить?