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 are allowed to appear at that location in the message structure, or it might be empty, allowing any message to appear. When a message is parsed, only one message can appear in that position as an embedded message.
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
above. Examples of message standards that can be modeled using this technique
are EDIFACT, X12, SWIFT, SOAP XML, SAP ALE IDoc, multipart
MIME, and RosettaNet
.
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 using one of four techniques, Automatic, Message
Identity, Message Path, or Manual
.
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.