我为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以及必需的SimpleType 2中,有一个问题。
但是,我收到的实际错误消息是:
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定义为强制的,而所有其他的都是可选的。
我能做些什么来解决这个问题吗?