Message Broker中的解析和验证

时间:2014-01-22 13:09:28

标签: messagebroker

解析和验证之间的实际区别是什么? 由于解析本身可以识别消息结构,我们为什么要进行验证?

如果消息不是根据为MRM解析器定义的结构,解析本身会抛出错误,那么为什么必须使用“内容和值”设置验证属性?

1 个答案:

答案 0 :(得分:3)

首先,只有具有消息模型的解析器才能进行验证,因此XMLNSC / SOAP(带有模式),MRM,DFDL和DataObject。

对于没有验证的基于XMLNSC的解析器,消息将被视为自定义,只有在消息格式不正确时才会抛出异常。

启用验证后,基于XMLNSC的解析器将验证消息是否符合emssage模型,并将检查架构中定义的所有限制/架构方面的有效性。

DFDL和MRM是基于模型的解析器,没有消息模型就无法使用这些解析器,因此它们总是根据模型检查消息内容。与基于XMLNSC的解析器相比,具有这些解析器的非验证解析具有更强的约束。禁用验证后,这些解析器会检查数据是否可以解释为模型的实例。

验证MRM和DFDL解析器时还会检查值约束,正确的数据类型正确并检查排序约束。