Relationship to the message model when generating WSDL

If a broker is to communicate with a web service client, it typically needs to accept SOAP messages. Using this approach you should use the MRM domain, in which case the broker's message model and the WSDL definition used by the web service client must describe the same messages.

If the broker has an existing message model (possibly created by importing a C header file or COBOL copybook), this can be exported to create a corresponding WSDL definition for use by the client. At the same time, your message model needs to be enhanced with appropriate definitions for the SOAP envelope and (for rpc-style) the WSDL operations. Currently only WSDL version 1.1 is supported.

In order to generate WSDL you need:

  1. a way of representing the WSDL operations. This is the role of the message category.
  2. a way of representing the data for these operations. This is the message model.
  3. a way of soliciting the web service end-point and binding details. This is the role of the WSDL Generator wizard.

A message category is required for each WSDL operation. The category specifies a set of messages from the broker model and associates them with the required WSDL qualifiers for the specified WSDL operation type.

At runtime, the format of the SOAP messages depends on the WSDL style specified in the wizard. If the user selects rpc-style then the SOAP Envelope will contain a message corresponding to a WSDL operation. The WSDL generator will then add an appropriate message definition that corresponds to the WSDL operation to your message set. If you select document-style then the SOAP envelope will simply contain messages specified in the category, so no additional message definitions need to be added to your message set.

Message definitions for the SOAP envelope and (if necessary) the SOAP encoding scheme are imported into the message set.

Resulting message model

The resulting model allows you to parse incoming SOAP messages using the MRM XML parser where the message type would be Envelope. The message model for the SOAP envelope defines the outer SOAP wrapper with its constituent header and body sections and a number of attachment points where the various business payloads can appear. These attachment points are defined with composition of type message, allowing broker messages to appear at these points.

The allowed attachment points are Envelope.Body, Envelope.Header and Envelope.Body.Fault.detail. A message from your message model may appear at each point (in the case of the Envelope.Header, multiple messages may appear). In the case of rpc-style WSDL, the message expected at Envelope.Body is the automatically generated message corresponding to the WSDL operation (for example, the message category). In all other cases the messages expected are those referenced by the message categories.