2016-08-15 3 views
0

Ich wurde beauftragt, einige Web-Service in Java in .NET geschrieben zu schreiben. Angeblich muss die Antwort die gleichen Elemente enthalten (was sie tut, mit meiner neuen Antwort bekomme ich die richtigen Elemente zurück), aber meine Frage betrifft die Tags. Müssen die Tags genau gleich sein? Dieser Web-Service wird von einem Drittunternehmen konsumiert werden, so dass es derzeit schwer zu testen ist, da die einzige Version, die wir haben, in Produktion ist. Hier sind beide Antworten:SOAP Antwort Vergleich/Format

Ursprüngliche Antwort:

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

neue Antwort:

<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

Ich würde die Drittfirma –

+0

fragen ja, ich weiß, dass das ein guter Rat ist, aber da ich nur den Code in anderer Sprache neu schreibe, sollte alles gleich sein, nichts neues. Das Kontaktieren dieser Firma und das Erhalten einer Antwort von ihnen würde ein wenig länger dauern und wollte das bis zum Ende vermeiden –

Antwort

1

Namespacepräfix muss nicht genau gleich sein aber Namespace sollte sein. Ich sehe, dass der Namespace von AgencyID und AgentID in beiden Antworten, die Sie geteilt haben, nicht identisch ist. Wenn die Elemente und Namespaces gleich sind, das Namespace-Präfix jedoch unterschiedlich ist, ist es immer noch eine gültige Antwort. Für eine weitere Bestätigung können Sie Ihre neue Antwort immer mit der WSDL validieren, die Sie mit der dritten Partei geteilt haben, um sicherzustellen, dass sie perfekt an ihrem Ende funktioniert.

+0

woher erhält der Code/die Antwort das Präfix? wie zum Beispiel: anstelle von oder

+1

Der zugrunde liegende Marshaller entscheidet, welches Präfix einem Namespace zugewiesen werden soll. Zum Beispiel wird env dem Namespace xmlns: env = "http://schemas.xmlsoap.org/soap/envelope/" zugewiesen, daher wird allen Elementen in diesem Namespace das Präfix env wie usw. zugewiesen solange Namespace gleich ist. Das Anpassen der Präfixe ist einfach Zeitverschwendung IMO –

+0

Ausgezeichnet! Danke für die Information. Ich arbeite seit ein paar Jahren mit WebServices, hatte aber keine klare Vorstellung davon, wie Präfixe funktionieren. Danke noch einmal! –