2016-08-15 70 views
0

我被雇佣来重写一些用Java写成的.NET Web服务。据推测,响应需要包含相同的元素(它的确如此,我的新响应中我找回了正确的元素),但我的问题是关于标签。标签是否需要完全一样?这种网络服务将由第三方公司使用,所以现在很难测试,因为我们唯一的版本正在生产。这里有两种反应:SOAP响应比较/格式

原始响应:

<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> 

+0

我想请第三方公司 –

+0

是的,我知道这是一个善意的提醒,但是,因为我只是重写其他语言的代码,一切都应该是一样的,没有什么新的。另外接触该公司,并正从他们的回应将采取律较长,并希望避免直到从哪里代码/响应得到前缀结束 –

回答

1

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

+0

?例如:而不是,或

+1

底层的编组器决定将哪个前缀分配给名称空间。例如,ENV被分配到命名空间的xmlns:ENV =“http://schemas.xmlsoap.org/soap/envelope/”因此,所有的这个命名空间下的元素将被分配ENV像等前缀您是好只要命名空间相同即可。匹配前缀只是浪费时间IMO –

+0

非常好!谢谢(你的)信息。我一直在与WebServices合作多年,但对前缀的工作方式没有清晰的认识。再次感谢! –