代理为预定义消息提供基于消息字典的验证。因此,验证仅适用于您已在 MRM 域中建模并定义的消息。
代理不对自定义消息提供任何验证。您无法直接对 XML DTD 或 XML 模式进行消息验证。而应通过使用 Message Brokers Toolkit 导入您的 XML DTD 或 XML 模式,在 MRM 域中创建等价模型。
设计消息流的目的是为了转换和路由符合某些规则的消息。缺省情况下,MRM 解析器会对消息执行某些有效性检验,但只是为了确保解析操作的完整性。然而,通过在消息流中某些节点上指定验证选项,还可能根据消息字典中包含的消息模型执行更严格的消息验证。
您可以使用验证选项来验证以下消息:
这些验证选项可保证对进入和离开消息流的数据进行验证。这些选项对所执行的验证提供某种程度的控制,以:
还可指定发生验证故障时采取何种操作。
消息验证涉及浏览消息树和检查其有效性。在解析消息时它是树创建的扩展,并且在写输出消息时是位流创建的扩展。
以下节点具有验证选项:
节点类型 | 有验证选项的节点 |
---|---|
输入节点 | MQInput、SCADAInput、HTTPInput、JMSInput 和 TimeoutNotification |
输出节点 | MQOutput、MQReply、SCADAOutput、HTTPReply 和 JMSOutput |
其他节点 | Compute、Mapping、JavaCompute、Validate、ResetContentDescriptor、MQGet 和 HTTPRequest |
验证选项还可以在 ESQL CREATE 语句和 ASBITSTREAM 函数上指定。
要验证输入节点接收的输入消息,可在输入节点上指定验证属性。 随后会在解析消息位流以形成消息树时验证输入消息。
您还可以使用输入节点的“解析计时”属性控制此时是否解析和验证整个消息,或者是否仅当引用消息中的个别字段时才对它们进行解析和验证。
要验证由 Compute 节点、Mapping 节点或 JavaCompute 节点创建的输出消息,可在节点自身指定验证属性,也可在发送消息的输出节点上指定验证属性。验证会在输出节点从消息树创建消息位流时执行。
或者,您可使用 Validate 节点在消息流中某个特定位置对消息树进行验证,也可使用 Compute、Filter 或 Database 节点中的 ESQL ASBITSTREAM 函数。
然而,通过使用验证选项,您可以请求更彻底的消息验证。例如,您可能要验证以下一个或多个条件,并抛出异常或记录错误:
样本描述了某些验证选项。
有关“解析计时”的更多信息,请参阅MRM 域中消息的验证属性。
有关如何使用不同属性控制验证的信息,请参阅MRM 域中消息的验证属性。