Java DOM模式验证
时间:2020-01-09 10:36:29 来源:igfitidea点击:
在Java中,可以根据XML模式验证DOM图。我将在此处展示的技术是在创建DOM图之后进行验证,而不是在创建过程中进行验证,否则将采用DTD验证。
首先,我们必须将XML Schema加载到Schema
对象中。一旦加载到Schema对象中,我们就可以使用同一Schema对象来验证多个DOM图。这很聪明,因为我们只需要解析XML Schema一次即可。与以前的DTD验证机制一样,与为每个XML文档加载和解析XML文档以及XML Schema / DTD相比,结果显着提高了性能。
这是将XML Schema加载到Schema实例中的方法:
Schema schema = null; try { String language = XMLConstants.W3C_XML_SCHEMA_NS_URI; SchemaFactory factory = SchemaFactory.newInstance(language); schema = factory.newSchema(new File(name)); } catch (Exception e) { e.printStackStrace(); }
还有一些其他的" newSchema()"方法,例如,一种方法可让我们从Java" URL"对象中加载" Schema"。
加载后,我们可以像下面这样验证DOM文档:
Validator validator = schema.newValidator(); validator.validate(new DOMSource(document));
Schema类位于Java包javax.xml.validation中。 DOMSource类可在Java包javax.xml.transform中找到。
如果验证失败,则会引发异常。我们还可以在" Validator"对象上设置错误处理程序。因此,我们可以在同一文档中收集多个架构错误。