Validation 模式验证组件是mule esb

Validation 模式验证组件是mule esb,validation,xsd,mule,mule-component,Validation,Xsd,Mule,Mule Component,我正在使用模式验证组件进行xml验证 在我的场景中,xml来自JMS队列,需要放在中间的其他JMS队列中,我需要通过XSD模式验证传入的xml是否正确 但当我将logger放在模式验证组件之后时,它并没有记录(记录为[#document:null])xml,甚至输入的xml也是按照XSD模式的 <mulexml:schema-validation-filter name="Schema_Validation" schemaLocations="C:\src\test\resources\O

我正在使用模式验证组件进行xml验证

在我的场景中,xml来自JMS队列,需要放在中间的其他JMS队列中,我需要通过XSD模式验证传入的xml是否正确

但当我将logger放在模式验证组件之后时,它并没有记录(记录为[#document:null])xml,甚至输入的xml也是按照XSD模式的

<mulexml:schema-validation-filter name="Schema_Validation" schemaLocations="C:\src\test\resources\Orders.xsd" returnResult="true" doc:name="Schema Validation" />
<logger message="content is #[payload]" level="INFO" doc:name="Logger"/>


请向我推荐,谢谢…,

你有stacktrace吗?您能否直接在JMS端点之后设置记录器,并验证它是否是正确的消息?它是嵌套模式吗

为了允许有效的XML通过过滤器,您需要设置 在架构验证筛选器中将结果返回为false。这边 向前传递到中下一个元素的消息的有效负载 您的流将保留XML内容


给定您的配置xml,如果您的xml无效,它将停止处理,这说明它没有记录。但是如果确实有效,日志应该已经执行了。嗨,Tyrone,我已经从XSD模式本身生成了输入xml,所以我的输入xml是正确的。此外,当我将不正确的xml作为输入时,它会抛出错误消息,即logger没有执行。当我给出正确的XML时,唯一的流程是向前移动并记录:[#document:null]。按照Franck所说的做,这样您的负载在筛选之前保持不变。您得到的已经是一个DOM类,这就是为什么[#document:null]。如果你想处理过滤过的(无效的XML),有一个配置,它是全局模式过滤器和消息过滤器的混合。你在验证过滤器之后和记录器之前试过了吗?