SOAP 响应 comparison/format

SOAP response comparison/format

我受雇将一些用 Java 编写的 Web 服务重写为 .NET。据推测,响应需要包含相同的元素(它确实如此,通过我的新响应我得到了正确的元素),但我的问题是关于标签。标签也需要完全相同吗?该 Web 服务将由第三方公司使用,因此目前很难测试,因为我们拥有的唯一版本正在生产中。以下是两个回复:

原始回复:

  <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <env:Header/>
<env:Body>
  <m:redCodeResponse xmlns:m="http://com/agentcorp/webservice/vax">
     <m:RedCodeResult>
        <java:AgencyID xmlns:java="java:com.agentcorp.ejb.webservices.vax">56693</java:AgencyID>
        <java:AgentID xmlns:java="java:com.agentcorp.ejb.webservices.vax">757803</java:AgentID>            
     </m:RedCodeResult>
  </m:redCodeResponse>

新回复:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header />
<s:Body>
<redCodeResponse xmlns="http://com/agentcorp/webservice/vax">
  <RedCodeResult xmlns:a="http://schemas.datacontract.org/2004/07/MyFirstWCFService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <a:AgencyID>56693</a:AgencyID>
    <a:AgentID>757803</a:AgentID>        
  </RedCodeResult>
</redCodeResponse>

命名空间前缀不需要完全相同,但命名空间应该完全相同。我可以看到 AgencyID 和 AgentID 的命名空间在您共享的两个响应中都不相同。如果元素和命名空间相同但命名空间前缀不同,它仍然是有效的响应。为了进一步确认,您始终可以使用您与第三方共享的 WSDL 验证您的新响应,以确保它在他们的末端完美运行。