Se um intermediário for se comunicar com um cliente de serviço da Web, geralmente precisa aceitar mensagens SOAP. Utilizando essa abordagem, você deve utilizar o domínio MRM, que nesse caso, o modelo da mensagem do intermediário e a definição WSDL utilizada pelo cliente de serviço da Web devem descrever as mesmas mensagens.
Se o intermediário tiver um modelo de mensagem existente (criado, possivelmente, importando um arquivo de cabeçalho C ou copybook COBOL), ele pode ser exportado para criar uma definição WSDL correspondentes para utilização pelo cliente. Ao mesmo tempo, seu modelo de mensagem precisa ser aprimorado com definições apropriadas para o envelope SOAP e (para estilo rpc) as operações WSDL. Atualmente, somente o WSDL versão 1.1 é suportado.
Para gerar WSDL, você precisa de:
Uma categoria de mensagem é requerida para cada operação WSDL. A categoria especifica um conjunto de mensagens a partir do modelo do intermediário e associa as mesmas com os qualificadores WSDL requeridos para o tipo de operação WSDL especificado.
No tempo de execução, o formato das mensagens SOAP depende do estilo WSDL especificado no assistente. Se o usuário selecionar o estilo rpc, o Envelope SOAP conterá uma mensagem correspondente a uma operação WSDL. O gerador WSDL incluirá, então, uma definição de mensagem apropriada que corresponde à operação WSDL para seu conjunto de mensagens. Se você selecionar o estilo de documento, o envelope SOAP conterá somente mensagens especificadas na categoria, portanto, nenhuma definição de mensagem adicional precisa ser incluída em seu conjunto de mensagens.
As definições de mensagens para o envelope SOAP e (se necessário) o esquema de codificação SOAP são importados para o conjunto de mensagens.
O modelo resultante permite que você analise as mensagens SOAP que chegam utilizando o analisador MRM XML no qual o tipo de mensagem seria Envelope. O modelo de mensagem para o envelope SOAP define o SOAP externo com suas seções de cabeçalho e corpo constituintes e vários pontos de conexão nos quais podem aparecer várias cargas úteis de negócios. Esses pontos de conexão são definidos com a composição do tipo de mensagem, permitindo que as mensagens do intermediário apareçam nesses pontos.
Os pontos de conexão permitidos são: Envelope.Body, Envelope.Header e Envelope.Body.Fault.detail. Uma mensagem de seu modelo de mensagem pode aparecer em cada ponto (no caso do Envelope.Header, várias mensagens podem aparecer). No caso de WSDL com estilo rpc, a mensagem esperada no Envelope.Body é a mensagem gerada automaticamente que corresponde à operação WSDL (por exemplo, a categoria de mensagem). Em todos os outros casos, as mensagens esperadas são as referidas pelas categorias de mensagem.