XML 有线格式同时支持使用消息标识技术和消息路径技术,在多段式消息中标识嵌入式消息。并不强制要求使用它们来 标识嵌入式消息,如同消息的内容和结构都是由位流完整描述的。 逻辑模型必须在合适的位置包含嵌入式消息定义,但无需额外的定义。
在 MRM 域中,嵌入的 XML 消息通过将它们的 XML 标记名称与消息模型中的消息定义的 XML 名相匹配来识别。如果嵌入式消息的位置对应于逻辑模型中的嵌入式消息定义,消息被识别。
因此,当将消息标识或消息路径用于 XML 消息时,消息标识元素值或消息路径值仅用来检查在位流中,由 XML 标记标识的消息是否为要求的消息。 如果不是要求的消息,则抛出一条异常。
如果您已在不同的消息集中定义了嵌入式消息,您需要使用消息集标识元素或属性值来指定目标消息集。请注意,其中定义了 根和后续嵌入式消息的消息集必须与消息集的“使用名称空间”属性的用法一致。 也就是,不支持以下两种嵌入式消息:一是定义在知晓名称空间的消息集中的嵌入式消息;二是如果嵌入式消息包含在某个父消息中,而这个父消息又是定义在不知晓名称空间的消息集中。 类似地,不支持以下两种嵌入式消息:一是定义在不知晓名称空间的消息集中的嵌入式消息;二是如果嵌入式消息包含在某个父消息中,而这个父消息又是定义在知晓名称空间的消息集中。
如果嵌入式消息定义是复杂类型,消息定义将包含基于该复杂类型的复杂元素。此复杂元素将有它自己的标记,此标志将在位流中出现在嵌入式消息的标志之前。如果您想要避免此额外的标志,您可以从组创建嵌入式消息定义,并将组插入消息模型中合适的位置。