每个消息定义文件描述您的消息的逻辑结构和物理结构(物理结构在传输期间描述您的消息位流的准确外观)。如果您正使用 MRM 域,必须提供物理格式信息,因为它确切地告诉解析器如何解析消息位流。
您可以将消息视为从一个地方发送到另一个地方的数据包。消息的发送方和接收方将就消息的结构和消息中的每个字段的含义达成一致。这是平台和协议独立的逻辑结构。
发送方和接收方也将就消息的物理表示(数据是如何在线型上物理布局的)达成一致。例如,如果您定义了传递关于个别银行帐户的借方的消息,则其能以不同的物理格式表示(示例是 XML 或固定结构,例如 COBOL copybook)。意义和数据在两种情况中是相同的:仅更改了物理布局。
如果您使用 MRM 域,您可以使用命名的物理格式建模各种不同物理表示。
下面的示例显示一个非常简单的逻辑消息是如何可以有不同的物理表示。
逻辑模型定义消息的结构和顺序。在下面的示例中,这三个字段是简单整数,C 跟在 B 后面,B 跟在 A 后面:
int A; int B; int C;
<Msg><A>xxxxxxxx</A><B>xxxxxxxx</B><C>xxxxxxxx</C></Msg>其中 xxxxxxxx 是表示为字符串的整数的值(XML 只处理字符串)。可替代的表示可能是:
<Msg A="xxxxxxxx" B="xxxxxxxx" C="xxxxxxxx"/>其中整数的值存储为 XML 属性而不是 XML 元素。您以 XML 属性的方式为消息中的每个字段提供精确的 XML 渲染。
{A_tag:xxxxxxxx;B_tag:xxxxxxxx;C_tag:xxxxxxxx}可替代的可能基于排序的数据,因此只需要指定终止定界符,如下所示:
[xxxxxxxx;xxxxxxxx;xxxxxxxx]您提供精度标识方式为 TDS 属性。
这显示逻辑模型没有更改。它是常量,无论您使用 MRM 域提供的物理格式支持选择在它顶部建模的物理表示是什么。MRM 解析器能根据您定义的有线格式层将消息从输入物理表示转换为任何数量的输出表示。
一旦您创建了您的消息集,您可以创建物理格式。您使用消息集编辑器这样做。当您下次保存 messageSet.mset 文件时,任何新的物理格式被添加到该消息集中的所有消息定义文件中所有对象。
下次您编辑消息定义文件中的对象时,您将看到“属性”选项卡中的属性层次结构中的物理格式。如果您单击对象的物理格式,将向您显示一张属性表,您可以在其中输入该对象的物理格式的信息。
注意,不是所有对象在所有物理格式中都有属性。例如:
这是因为每个物理格式的不同性质,且这些差异在每个物理格式的部分中更详细地说明。
您可在给定的消息集中创建的物理格式的个数没有限制。但是,如果您想要在同一消息集中混合不同种类的物理格式,有一些建议是要应用的。
如果不再需要,物理格式可被删除。