可以使用JAXB 2.0验证编组的XML吗?

Vid*_*dar 19 java validation jaxb

显然在JAXB的第2版中 - 验证者类已被弃用 - 这是否意味着编组器会自动验证您的XML?如果是这样,它似乎并没有抱怨我正在形成的一些不正确的XML!任何人都可以给我一些关于如何验证编组XML以确保它符合XSD架构的建议.

非常感谢.

bru*_*nde 27

通过使用JAXP 1.3模式验证框架,JAXB 2.0中的验证功能得到了扩展.

之前的地方:

unmarshaller.setValidating(true);
Run Code Online (Sandbox Code Playgroud)

现在你需要做:

SchemaFactory sf = SchemaFactory.newInstance(
    javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("myschema.xsd"));
unmarshaller.setSchema(schema);
Run Code Online (Sandbox Code Playgroud)

如果将null传入setSchema,则会禁用验证.

请查看此参考.