私は、SOAPエンベロープにXMLオブジェクトを受け取るサービスを.NETで作成します。このサービスは、同じスキーマを使用してSOAPメッセージでそのメッセージと応答を取得します。たとえば、次のように.NET内の特定のスキーマを持つSOAPメッセージを取得する
要求:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns="http://schemas.mystuff.org/myschema">
<Message>
<Header>...</Header>
<MessageContent>...</MessageContent>
</Message>
</s:Body>
</s:Envelope>
応答:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns="http://schemas.mystuff.org/myschema">
<Message>
<Header>...</Header>
<MessageContent>...</MessageContent>
</Message>
</s:Body>
</s:Envelope>
また、私はオブジェクトの階層が、XMLの単なる文字列ではない終わるしたいと思います。
私はこれを行うにはWCF ServiceContractsを使用すると、その後WCFは、例えば、それが生成されたWSDLサービスのラッパーの追加の層を定義しています。私は、SOAPメッセージを受信し、送信するための最良の方法です
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header />
<s:Body>
<SendMessageResponse xmlns="http://tempuri.org/">
<SendMessageResult xmlns:a="http://schemas.datacontract.org/2004/07/CxMessageReceiverRole" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Message>
...
</a:Message>
</SendMessageResult>
</SendMessageResponse>
</s:Body>
</s:Envelope>
何.NETではWCFではなくメッセージの表示を制御していますか?もしそれが最良の方法でないなら、それはWCFである必要はありません。また、XMLスキーマを表現するためにクラス構造全体を実装するのではなく、単にSOAP本体を文字列として受け取るだけです。
なぜメッセージの表示を制御する必要がありますか?誰が彼らを見ますか? –