MRM XML physical format: Multipart messages
Identify embedded messages by using either a Message Identity or a Message Path.
- Message Identity
See Message Sets: Identifying an embedded message by using a Message Identity.
- Message Path
See Message Sets: Identifying an embedded message by using a Message Path.
- Automatic
The MRM parser identifies the message by matching the next XML tag in the bit stream against the XML Name of a message definition.
If you choose the Message Identity or Message Path technique, the MRM parser still checks that the next XML tag name matches the XML Name of the message that was identified. If the XML Name does not match, an exception is thrown.
Where you have defined the embedded message in a different message set, you must use a Message Set Identity element or attribute value to specify the target message set. Note that the message sets within which the root and subsequent embedded messages are defined must be consistent in their use of the 'Use Namespace' property of the message set. That is, embedded messages that are defined in a namespace-aware message set and that are contained within a parent message that is defined in a message set that is not namespace-aware, are not supported. Similarly, embedded messages that are defined in a message set that is not namespace-aware and that are contained within a parent message that is defined in a namespace-aware message set, are not supported.
If the embedded message definition is a complex type, the message definition contains a complex element based on that complex type. This complex element has its own tag, which appears in the bit stream before the tag for the embedded message. If you want to avoid this extra tag, you can create the embedded message definition from a group, and insert the group at the appropriate position in the message model.