Si un intermediario se comunica con un cliente de servicio Web, generalmente necesita aceptar mensajes SOAP. Si sigue este planteamiento deberá utilizar el dominio MRM, en cuyo caso el modelo de mensaje del intermediario y la definición WSDL utilizada por el cliente de servicio web deben describir los mismos mensajes.
Si el intermediario tiene un modelo de mensaje existente (probablemente creado al importar un archivo de cabecera C o un libro de copias COBOL), se puede exportar para crear una definición WSDL correspondiente para que la utilice el cliente. Al mismo tiempo, el modelo de mensaje necesita ampliarse con definiciones adecuadas para el sobre SOAP (envelope) y para las operaciones WSDL (para rpc-style). Actualmente sólo está soportado WSDL versión 1.1.
Para generar WSDL necesita:
Para cada operación WSDL es necesaria una categoría de mensaje. La categoría especifica un conjunto de mensajes del modelo de intermediario y lo asocia a los calificadores WSDL necesarios para el tipo de operación WSDL especificado.
Durante la ejecución, el formato de los mensajes SOAP depende del estilo WSDL especificado en el asistente. Si el usuario selecciona rpc-style, entonces el sobre SOAP contendrá un mensaje correspondiente a una operación WSDL. A continuación, el generador WSDL añadirá una definición de mensaje adecuada que se corresponderá con la operación WSDL del conjunto de mensajes Si selecciona document-style, el sobre SOAP simplemente contendrá los mensajes especificados en la categoría, por lo tanto, no será necesario añadir definiciones de mensaje adicionales al conjunto de mensajes.
Las definiciones de mensajes para el sobre SOAP y, si es necesario, el esquema de codificación SOAP, se importan al conjunto de mensajes.
El modelo resultante permite al usuario analizar los mensajes SOAP de entrada utilizando el analizador MRM XML en el que el tipo de mensaje será Envelope. El modelo de mensaje para el sobre SOAP (Envelope) define el reiniciador SOAP externo con las secciones de cabecera y cuerpo que lo constituyen y un número de puntos de conexión donde pueden aparecer diferentes cargas de datos de la empresa. Estos puntos de conexión se definen con la composición de tipo mensaje ("message"), lo que permite que los mensajes de intermediarios aparezcan en estos puntos.
Los puntos de conexión son Envelope.Body, Envelope.Header y Envelope.Body.Fault.detail. Un mensaje del modelo de mensaje puede aparecer en cada punto (en el caso de Envelope.Header, pueden aparecer varios mensajes). En el caso de rpc-style de WSDL, el mensaje que se espera en Envelope.Body es el mensaje generado automáticamente correspondiente a la operación WSDL (por ejemplo, la categoría de mensaje). En todos los demás casos, los mensajes esperados son aquellos a los que hacen referencia las categorías de mensaje.