2016-08-15 110 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合作多年,但對前綴的工作方式沒有清晰的認識。再次感謝! –