2016-01-13 191 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。