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 验证您的新响应,以确保它在他们的末端完美运行。
我受雇将一些用 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 验证您的新响应,以确保它在他们的末端完美运行。