2016-08-15 9 views
0

Javaで書かれたいくつかのWebサービスを.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/"に割り当てられます。したがって、この名前空間の下のすべての要素には、などの接頭辞が割り当てられます。名前空間が同じである限り。接頭辞をマッチングするだけで、時間の無駄になりますIMO –

+0

優秀!情報をありがとう。私はWebサービスを共同研究の年のために使ってきましたが、プレフィックスの仕組みについて明確な考えはありませんでした。再度、感謝します! –