2015-09-11 66 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內容。