2016-08-15 3 views
0

Я был нанят для перезаписи некоторых веб-сервисов, написанных на Java до .NET. Предположительно, ответ должен содержать одни и те же элементы (что он делает, с моим новым ответом я возвращаю правильные элементы), но мой вопрос касается тегов. Должны ли теги быть точно такими же? Этот веб-сервис будет потребляться сторонней компанией, поэтому пока это сложно проверить, так как единственная версия, которую мы имеем, находится в производстве. Вот как ответы:Сравнение/формат ответа 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

Префикс пространства имен не должны быть точно так же, но пространство имен должно быть. Я вижу, что пространство имен AgentID и AgentID не совпадает с обоим вашим ответом. Если элементы и пространства имен одинаковы, но префикс пространства имен отличается, он все равно будет действительным ответом. Для дальнейшего подтверждения вы всегда можете подтвердить свой новый ответ WSDL, который вы поделили с третьим лицом, чтобы убедиться, что он отлично работает в конце.

+0

, откуда код или ответ получают префикс? например, вместо или

+1

Подходящий маршаллер решает, какой префикс присваивать пространству имен. Например, env присваивается пространству имен xmlns: env = "http://schemas.xmlsoap.org/soap/envelope/", поэтому всем элементам в этом пространстве имен будет присвоен префикс env, например и т. Д. Вы хороши как поскольку пространство имен одинаково. Соответствие префиксов будет просто пустой тратой времени IMO –

+0

Отлично! Спасибо за информацию. Я работал с WebServices в течение нескольких лет, но не имел четкого представления о том, как работают префиксы. еще раз спасибо! –

Смежные вопросы