Я пишу сервис в .NET, который получает объекты XML в конверте SOAP, который примет это сообщение и ответ с сообщением 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, например:
<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>
Как лучше всего получать и отправлять SOAP-сообщения в .NET, где я контролирую, как выглядят эти сообщения, а не WCF? Это не обязательно должен быть WCF, если это не лучший способ. Кроме того, я не хочу реализовывать всю структуру классов для представления моей схемы XML, а вместо этого просто получаю тело SOAP в виде строки.