2016-01-13 219 views
1

我正在編寫一個小應用程序,用於驗證xml文件,更正它們(如果可能),然後對內容執行測試。最終用戶對XML和解析知識知之甚少,所以我想捕獲驗證錯誤,然後編寫自己的事件和錯誤處理程序,以生成錯誤消息,這些錯誤消息對於最終用戶而言更容易理解。自定義JAXB驗證錯誤消息

我根據我在this blogpost詳細的解決方案初步嘗試。

到目前爲止,我已經分類基礎上event.getMessage內容的錯誤()。不幸的是,在不知道可能發生的所有類型的解析錯誤的情況下,編寫好的自定義錯誤消息或多或少是不可能的。有沒有一種很好的方法來查找驗證過程中可能出現的錯誤消息類型?

I.e.我正在尋找所有消息的列表,例如元素X的內容是不完整的...一,無效的含量被發現開始元素Y ...,價值Z不是刻面的有效相對於圖案......

或者是有一些更好的辦法去做這個?

回答

2

的消息的格式和數量將取決於XML架構驗證你插入JAXB。如果您使用的是基於Xerces-J的版本(如Oracle JDK中包含的版本),那麼大多數消息都將在XML Schema規範(例如cvc-maxLength-valid)中帶有與驗證規則/約束條件相對應的標識符作爲前綴。規範中提供了XML Schema驗證規則的標識符列表here。由Xerces生成的與XML模式相關的錯誤消息的完整列表可以在其XMLSchemaMessages.properties消息文件中找到,但請記住,這已經隨時間而改變,並且取決於您使用的是哪個版本的Xerces。