2013-01-19 55 views
1

如果XML由JAXB类(不是由XSD)生成,那么我没有要验证的XSD。我如何验证XML?在开始解组之前,JAXB是否会自动验证XML?验证使用JAXB类(不是由XSD)生成的XML

+0

这个现有的问题和答案可能有所帮助:http://stackoverflow.com/questions/805989/can-one-validate-marshalled-xml-with-jaxb-2-0 –

回答

2

如果您还没有XSD,JAXB仍然会执行“结构化”验证。例如,如果您使用“required”或指定的特定“accessorder”注释了JAXB类属性,并且输入XML没有确认注释的值,您将会得到例外。但是,您将无法执行“数据”验证,如特定的XML元素被限制为具有“8”字符长度(我相信JEE7将集成BeanValidation并希望JAXB利用此规范)。

+0

谢谢你的回应。数据验证是我正在寻找的。你有什么建议? – pingu

+1

个人我仍然希望在XSD中进行数据验证。在您的情况下,使用JDK schemagen工具从JAXB生成XSD并修改数据验证并遵循建议的@Patrice链接将很容易。您还必须认真探索Schematron。 – Baski