【发布时间】:2021-07-19 22:32:42
【问题描述】:
我已经从 xml 响应生成了一些 xsd 架构来运行我的响应架构验证测试。
当我尝试运行响应架构验证测试时出现错误消息:
org.xml.sax.SAXParseException: cvc-elt.4.2: 无法将“saveResponse”解析为元素“result”的类型定义。
XML 架构:
<?xml version="1.0" encoding="UTF-8"?>
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="saveResponse">
<ap_result>ok</ap_result>
<code>SUCCESS</code>
<ap_contractNumber>Z6922/240/B0004163/1_TEST</ap_number>
<ap_insprem>100</ap_insprem>
<ap_inssum>100000</ap_inssum>
</result>
我生成的 XSD 架构:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="result">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="ap_result"/>
<xs:element type="xs:string" name="code"/>
<xs:element type="xs:string" name="ap_number"/>
<xs:element type="xs:byte" name="ap_insprem"/>
<xs:element type="xs:int" name="ap_inssum"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我应该在 XSD 中进行哪些更改以使我的测试正常工作?
【问题讨论】:
-
您的 XML 表明
result的类型为saveResponse,但您的 XSD 中没有定义此类类型。你真的想在这里使用xsi:type="saveResponse"吗?您不能只使用验证工具的功能将您的 XML 与 XSD 相关联,或者使用xsi:noNamespaceSchemaLocation吗?
标签: xml validation testing xsd rest-assured