A SOAP envelope normally consists of two parts:
- A Header containing address data, properties and other information about the message.
- A Body that contains the message data.
IFS Implementation of SOAP Envelopes¶
IFS Connect has support for plugging in envelopes (XML Envelope Definitions).
Envelopes SOAP_SIMPLE and SOAP_IFS are installed as a part of a standard installation.
XML Envelope Definitions are used for
- Format of the outbound message
- Recognize of inbound messages
- Format of the response (when synchronous request/response)
- Format of the error response
XML Envelope Definitions are stored in the database in form of XML files and they are administered in the Connect configuration tool.
Note: If other envelopes then SOAP_IFS and SOAP_SIMPLE are needed then read: Customization of envelopes
Envelopes are used to encapsulate xml data. A definition file in xml format is used as the envelope definition.
Envelopes are stored in the database and are defined using the Connect Configuration tool feature.
They are connected to an address in Message Routing rules.
Inbound message flow with Envelopes¶
- A message is received by some Reader in IFS Connect.
The Reader is just a protocol implementation and will not change the message. Note: All text messages (plain text, XML) are stored internally in UTF-8 character encoding. If necessary the Reader will re-code the message to UTF-8.
- The Envelope Factory tries to recognize if the message is enveloped and in which Envelope, if any.
It will use all the XML Envelope Definitions that are stored in the IFS database.
In a standard installation SOAP_IFS and SOAP_SIMPLE are stored.
If the input message is not recognized as a known envelope it will be classified as:
UNKNOWN_XML: if xml format
NONE_XML: if none xml format
Envelope Factory will create Request Envelope corresponding to the found Envelope.
- The Request Envelope splits up the message into two parts:
A Header that will be used for extracting of parameters for Content Based routing. These parameters are predefined.
A Body that contains the data. This will be passed forward to the Transformer Factory.
For UNKNOWN_XML and NONE_XML header and body will be the same and contain the whole message.
- The Request Envelope contains definitions of response and error envelope formats that can be used when processing the response.
Outbound message flow with Envelopes¶
- An outbound message in IFS XML format is transformed to any format by the Transformer Factory.
- The destination address in the Message Routing determines which Envelope should be used for carrying the data. If no Envelope is specified then the data will be sent as it is. (sent as a letter without envelope)
- The message will be delivered to it's destination by a Sender.
The Sender is just a protocol implementation and will not change the message. Note: All text messages (plain text, XML) are stored internally in UTF-8 character encoding. If necessary the Sender will re-code the message from UTF-8 to the encoding specified in the Sender's configuration.