我想检查针对xsd的soap响应。 这是xml soap响应:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetHTMLResponse xmlns="http://www.webserviceX.NET">
<GetHTMLResult>
Test
</GetHTMLResult>
</GetHTMLResponse>
</soap:Body>
</soap:Envelope>
这是我的XSD:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/>
<xs:element name="GetHTMLResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="GetHTMLResult" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
我收到此错误: Cvc-elt.1:找不到元素宣言'肥皂:信封'。
为什么会这样?
答案 0 :(得分:0)
尝试针对以下XSD文件检查SOAP响应。我添加了SOAP响应中存在的外部<soap:Envelope>
和<soap:Body>
标记的元素。
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org"
xmlns:tns="http://www.w3.org/2003/05/soap-envelope">
<xs:element name="Envelope" type="tns:envType">
<xs:complexType name="envType">
<xs:sequence>
<xs:element name="Body" type="tns:bodyType">
<xs:complexType name="bodyType">
<xs:sequence>
<xs:element name="GetHTMLResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="GetHTMLResult" minOccurs="0"
maxOccurs="1" type="xs:string">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>