Technical solution for the scenario to transform SOAP messages

To complete the scenario and successfully transform message data, you must create a message map and customize it based on your SOAP message and transformation requirements. In this scenario, you use the SOAP domain to parse your SOAP message.

You configure a message domain on an input node such as a SOAPInput node to define the parser that IBM® App Connect Enterprise uses to parse a message. IBM App Connect Enterprise supplies a range of parsers to parse and write messages in different formats.

IBM App Connect Enterprise supports SOAP 1.1 and SOAP 1.2 messages.

Depending on the message domain that you configure in your input node, you might have to consider the differences between SOAP 1.1 and SOAP 1.2 when transforming SOAP messages.
  • If you receive a SOAP message through a SOAPInput node, the SOAP parser handles SOAP 1.1 or SOAP 1.2 automatically. The SOAP domain uses a common logical tree format that is independent of the exact format of the web service message. For details of the SOAP tree format, see SOAP tree overview.
  • If you receive a SOAP message through an HTTPInput node, the XMLNSC parser handles your SOAP 1.1 or SOAP 1.2 message differently. When you create a message map, you must be aware of the SOAP version, and configure the correct SOAP 1.1 or SOAP 1.2 schema when you create and configure your graphical data map.
Depending on the nodes that you use when you model your message flow or your service operation, and the message domain you configure, you must use a different schema model:
  • If you use the SOAP nodes without the SOAPExtract node, you must map the SOAP_Domain_Msg in the SOAP domain.
  • If you use the SOAP nodes with the SOAPExtract node, and the Mapping node is wired after a SOAPExtract node, you must map the schema associated with your operation in the XMLNSC domain. You use the SOAPExtract node to remove SOAP envelopes, allowing just the body of a SOAP message to be processed.
  • If you use HTTP nodes or MQ nodes, you must map the SOAP 1.1 or the SOAP 1.2 schema as the root model of the map in the XMLNSC domain.
  • If you use an integration service, the operation subflow must use the XMLNSC domain and the schema that is associated with operation request on the map input, and it must use either the schema for the operation response or a SOAP_Domain_Msg for the map output. Use the SOAP_Domain_Msg on the output of the map if you need to set other parts of the SOAP message and not just the contents of the SOAP body.
The following table summarizes the different types of nodes and domains that you can use to map a SOAP message and the schema that you must use when you use a message map to transform a SOAP message.
Table 1. Schemas to use when transforming a SOAP message
Message domain Nodes usage Schema to configure in a message map
SOAP SOAP nodes without a SOAPExtract node (when you transform a SOAP message within a message flow in an application). SOAP_Domain_Msg
XMLNSC SOAP nodes (when you transform a SOAP message within an integration service operation subflow). Schema associated with the operation request on the map input and either the schema for the operation response or a SOAP_Domain_Msg for the output of the map
XMLNSC SOAPInput nodes wired to a SOAPExtract node then a Mapping node. Schema associated with operation
XMLNSC Applications not using SOAP nodes; for example, HTTP nodes, MQ nodes, and FileInput nodes. SOAP 1.1 or 1.2 schema as the root model of the map

Use this scenario to learn how to create a message map that transforms a SOAP message in a message flow where the Mapping node is connected directly from a SOAPInput node with no SOAPExtract node. For more information, see Implementing the solution for the scenario to transform SOAP messages.