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"对象上设置错误处理程序。因此,我们可以在同一文档中收集多个架构错误。