Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
验证使用JAXB类(而不是XSD)生成的XML_Xml_Xsd_Jaxb_Jaxb2_Jaxb2 Basics - Fatal编程技术网

验证使用JAXB类(而不是XSD)生成的XML

验证使用JAXB类(而不是XSD)生成的XML,xml,xsd,jaxb,jaxb2,jaxb2-basics,Xml,Xsd,Jaxb,Jaxb2,Jaxb2 Basics,如果XML是由JAXB类(而不是XSD)生成的,我就没有XSD来验证。如何验证XML?JAXB在开始解组之前是否会自动对XML进行验证?如果没有XSD,JAXB仍将执行“结构”验证。例如,如果您使用“required”或指定的特定“accessorder”对JAXB类属性进行了注释,并且输入XML与注释的值不一致,那么您将得到异常。但是,您将无法执行“数据”验证,因为特定的XML元素被限制为具有“8”字符长度(我相信JEE7将集成BeanValidation,并希望JAXB利用此规范) 现有的问

如果XML是由JAXB类(而不是XSD)生成的,我就没有XSD来验证。如何验证XML?JAXB在开始解组之前是否会自动对XML进行验证?

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

现有的问题和答案可能会有所帮助:谢谢您的回复。数据验证是我正在寻找的。你有什么建议吗?就我个人而言,我还是更喜欢在XSD中进行数据验证。在您的例子中,使用JDK schemagen工具从JAXB生成XSD并进行修改以进行数据验证和遵循@Patrice建议的链接将是很容易的。您还必须认真研究Schematron。