Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml SOAP响应的正确格式是什么_Xml_Web Services_Soap_Soapui - Fatal编程技术网

Xml SOAP响应的正确格式是什么

Xml SOAP响应的正确格式是什么,xml,web-services,soap,soapui,Xml,Web Services,Soap,Soapui,我正在使用一个我没有做过的Web服务,我从同一个方法中得到了两个不同的响应,数据是相同的,但格式发生了变化,这使我的应用程序崩溃 答复1: <SOAP-ENV:Envelope xmlns:SOAP-ENV=...> <SOAP-ENV:Body SOAP-ENV:encodingStyle="..." xmlns:NS1="..." xmlns:NS2="..."> <NS1:...> <return href="#1"/> </N

我正在使用一个我没有做过的Web服务,我从同一个方法中得到了两个不同的响应,数据是相同的,但格式发生了变化,这使我的应用程序崩溃

答复1:

<SOAP-ENV:Envelope xmlns:SOAP-ENV=...>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="..." xmlns:NS1="..." xmlns:NS2="...">
  <NS1:...>
<return href="#1"/>
  </NS1:...>
<NS2:..." xsi:type="NS2:...">    
</NS2:...>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
它说“找不到id为2的元素”


第二个响应是因为
UTF8InHeader=TRUE
无论如何,我很好奇它是否是一个有效的soap响应

您的答案将出现在该服务的WSDL中。这是与外部世界的“合同”。

您使用的是什么库,您遇到了什么错误?如果包含完整的SOAP输出,它也会有所帮助。我已经添加了我得到的错误,但我的问题是第二个响应格式是否正确或可接受。正如你在第一个图中看到的,结构是,在另一个图中是
<SOAP-ENV:Envelope xmlns:SOAP-ENV=...>
<SOAP-ENV:Body SOAP-ENV:encodingStyle="..." xmlns:NS1="..." xmlns:NS2="...">
<NS1:...>    
<NS2:..." xsi:type="NS2:...">    
</NS2:...>
<return href="#1"/>
</NS1:...>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<return href="#1"/>
</NS1:...> 
System.Web.Services.Protocols.SoapException: El servidor no puede procesar la       
solicitud.
---> System.InvalidOperationException: Error en el documento XML (2, 3726). --->   
System.InvalidOperationException: No se encontró en el documento el elemento con id '2' 
al que se hace referencia.
en System.Xml.Serialization.XmlSerializationReader.GetTarget(String id)
en System.Xml.Serialization.XmlSerializationReader.FixupArrayRefs(Object fixup)
en System.Xml.Serialization.XmlSerializationReader.DoFixups()
en System.Xml.Serialization.XmlSerializationReader.ReadReferencedElements()