Message Sets: Multipart messages
A multipart message contains one or more other messages within its structure. The contained message is sometimes referred to as an embedded message.
A multipart message must contain a group, or a complex type, with its Composition property set to Message. This group or complex type can contain a list of references to messages that can be present at that location in the message structure. If the group or complex type is empty, any message can be present. When a message is parsed, only one embedded message can be present in that location.
Message envelopes
A common use of multipart messages is to define an outer message with a fixed structure. This outer message is called the message envelope. Within the message envelope a group or complex type is included, as described earlier in this topic. Examples of message standards that can be modeled by using this technique are EDIFACT, X12, SWIFT, SOAP XML, SAP ALE IDoc, multipart MIME, and RosettaNet.
Identifying the embedded message
When a multipart message is parsed, the parser must be able to identify the embedded message; it might be any of the messages that are referenced by the group or complex type, or it might be a message that is not referenced by the group or complex type, perhaps from a different message set. This is achieved by using one of four techniques, Automatic, Message Identity, Message Path, or Manual.
Restrictions
Unless using the Manual identification technique, all embedded messages must be of the same physical format as the outermost message, and have the same character set and encoding.
When using the Automatic or Message Path identification techniques, all embedded messages must be from the same message set as the multipart message.