2015-09-11 27 views
0

我正在使用架构验证组件进行xml验证。架构验证组件是mule esb

我的方案的XML来自JMS队列,需要在其他JMS队列放置在两者之间,我需要验证传入XML是否是正确的或不XSD架构。

但是当我把记录器模式验证部件它不是登录后(记录为[#document:空])即使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"/> 

请建议我在此,谢谢...,

+0

鉴于你的XML配置,如果你的XML是无效的,将停止处理这也解释了它不记录。但如果确实有效,日志应该已经执行。 –

+0

嗨Tyrone, 我已经从XSD架构本身生成输入xml,所以我的输入xml是适当的,此外,当我给不正确的XML作为输入时,它抛出错误消息,即记录器不执行。当我给出正确的XML时,只有流程正在前进并记录:[#document:null]。 – Thiru

+0

按照Franck的说法,您的有效载荷在过滤之前保持不变。你得到的是一个DOM类,这就是为什么[#document:null]。如果你想处理过滤(无效的XML),那么就有一个配置,混合使用全局模式过滤器和消息过滤器。 –

回答

0

你得到一个堆栈跟踪?您能否在JMS端点之后直接设置记录器并验证它是否是正确的消息?它是嵌套模式吗?

0

为了允许有效的XML通过过滤器,您需要在模式验证过滤器中将 returnResult设置为false。通过这种方式,将消息的有效负载传递给 中的下一个元素将保留XML内容。