我在针对架构验证XML有效负载时遇到问题。导致该问题的架构部分总结如下。导致问题的因素是“MethodOfPayment / Check”,根据架构文档只需存在且不应包含任何内容。
<xsd:element name="MethodOfPayment" minOccurs="0">
<xsd:complexType>
<xsd:choice>
<xsd:element name="Cheque">
<xsd:complexType/>
</xsd:element>
<xsd:element name="Account">
<xsd:complexType>
<xsd:choice>
<xsd:element name="...">
</xsd:element>
<xsd:element name="...">
</xsd:element>
<xsd:element name="...">
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="Other">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="...">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
我传递的是以下简单结构:
<MethodOfPayment>
<Cheque />
</MethodOfPayment>
但我收到以下验证错误:
<ErrorMessage>
<![CDATA[ Invalid Request!!! XML document failed validation.Please check XML request for valid data
cvc-complex-type.2.4.b: The content of element 'MethodOfPayment' is not complete.
One of '{"fake_namespace":Cheque,
"fake_namespace":Account,
"fake_namespace":Other}' is expected.]]>
</ErrorMessage>
我已经确认“帐户”和“其他”部分工作正常,它只是“检查”元素。任何有关这方面的帮助都很棒
答案 0 :(得分:0)
我最终发现上面的XML没有验证,因为“Check”元素已折叠。每当我给元素补充水分,即
与source ~/.bash_profile
验证相对的<Cheque></Cheque>
成功。