Transforming a SOAP message in a message map
In IBM® App Connect Enterprise, a SOAP message is described by a generic model that includes the SOAP Envelope and optionally Attachments. You define your SOAP message parts in a message map by using the Cast function.
About this task
A SOAP message consists of an Envelope and optionally Attachments. The envelope contains a SOAP header and a SOAP body. A SOAP body can include SOAP faults.
- A SOAP message that is described by a generic model and that contains the SOAP operation-specific data.
- An XML message that contains only the SOAP operation-specific data.
In addition to the standard SOAP parts, the SOAP message generic model includes a Context part that includes contextual information about the current SOAP message that is processed. This part is the only one in a message map whose structure is included automatically. You must define the other SOAP message parts manually by using the Cast function.
IBM App Connect Enterprise supports SOAP 1.1 and SOAP 1.2 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.
- If you use the SOAP nodes excluding the SOAPExtract node, you must map the SOAP_Domain_Msg in the SOAP domain.
- If you use the SOAP nodes including 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.
Message domain | Nodes usage | Schema to configure in a message map |
---|---|---|
XMLNSC | All SOAP nodes within an integration service operation subflow. | Schema for operation request or response. |
XMLNSC | SOAPInput nodes in flows that have a SOAPExtract node before the Mapping node. | Schema for operation request. |
XMLNSC | SOAPReply or SOAPRequest nodes that might be preceded in a flow by a SOAPEnvelope node. | Schema for operation request or response. |
SOAP | SOAPInput nodes that are wired directly to the Mapping node. | IBM-provided SOAP_Env where the body xsd:any has
a mapping cast to the schema for the operation request. |
SOAP | SOAPReply or SOAPRequest nodes that are wired directly to the Mapping node. | IBM-provided SOAP_Env where the body xsd:any has
a mapping cast to the schema for the operation request or response. |
XMLNSC | Flows that do not contain SOAP nodes. For example, flows that contain HTTP nodes, MQ nodes, or FileInput nodes. | IBM-provided SOAP 1.1 or SOAP 1.2 schema where
the body xsd:any has a mapping cast to the schema
for the operation request or response. |
Standard SOAP message parts | Status | IBM App Connect Enterprise SOAP message parts | IBM App Connect Enterprise Status |
---|---|---|---|
Context | Required | ||
SOAP header (part of the SOAP envelope) | Optional | Header (part of the SOAP_Domain_Msg) | Optional |
SOAP body (part of the SOAP envelope) | Required | Body (part of the SOAP_Domain_Msg) | Required |
SOAP faults (part of the SOAP body) | Optional | Fault (part of the Body) | Optional |
SOAP Attachments | Optional | Attachment (part of the SOAP_Domain_Msg) | Optional |
Procedure
Complete the following steps to configure the SOAP_Domain_Msg when the Mapping node is connected directly from a SOAPInput node with no SOAPExtract node:
Example
- Configure a SOAP message when you use a conditional transform to map an input element to an output element. For example, you create and configure the If, Else if, and Else transform to control the flow of the mapping between elements that are defined as a specific or a derive type in the input and output message assembly by setting conditions. For more information, see Mapping a SOAP message by using a conditional transform.
- Configure a SOAP message to transform some input elements to output elements. Use the Override function, Assign transform, and Move transform. For more information, see Mapping a SOAP message by using the Override function.
What to do next
Define more transforms between the input SOAP_Domain_Msg and the output SOAP_Domain_Msg. For more information, see Specifying a transform (mapping operation).