不必将 WebSphere Message Broker 使用名称空间限制为 XML 消息模型。此处有一个方案,其中非 XML 消息模式使用名称空间可以简化所编写的 ESQL 或 Java 代码。
在描述该方案前,有必要了解以下内容:当解析在具有目标名称空间的消息定义文件中定义的消息时,MRM 解析器会生成包含名称和名称空间信息的逻辑树。无论消息的物理格式是什么,都将这样。对于非 XML(CWF 或 TDS)消息,名称空间将从消息定义文件获取。
考虑一个转换方案,其中来自旧的 COBOL 应用程序的消息需要转换为属于名称空间域的 XML(例如 SOAP XML 消息)。转换必须将为 COBOL 消息创建的逻辑消息树映射到与 XML 消息匹配的逻辑消息树。如果 COBOL 消息树不包含名称空间信息,则从 COBOL 字段到 XML 元素的每个映射都必须为 XML 元素设置名称空间。但是,如果 COBOL 消息树已经包含必需的名称空间消息,则该映射将简单很多。
要启用 MRM 解析器以在从 CWF 或 TDS 消息创建的消息树中创建名称空间信息,您需要指定消息定义文件的目标名称空间。这必须作为消息定义文件过程的一部分完成;不能在已创建文件后再执行此操作。有两种方法可用于指定目标名称空间。对于这两种方法,都要使消息定义文件的目标名称空间和 XML 消息(向其转换非 XML 消息)的目标名称空间相同。
在同时处理非 XML 消息的消息树和 XML 消息的消息树时,为执行转换而编写的 ESQL 或 Java 代码必须属于名称空间。