首页 >Java >java教程 >如何在 Java 中根据 XSD 架构验证 XML 文件?

如何在 Java 中根据 XSD 架构验证 XML 文件?

Susan Sarandon
Susan Sarandon原创
2024-12-03 13:17:10732浏览

How Can I Validate XML Files Against XSD Schemas in Java?

根据 XSD 模式验证 XML 文件

为了确保根据给定 XSD 模式生成的 XML 文件的有效性,有必要执行验证。 Java 运行时库提供了对此验证的支持。

使用 javax.xml.validation.Validator

javax.xml.validation.Validator 类提供了一种方便的机制根据 XSD 模式验证 XML 文档。以下是如何使用它的示例:

import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.net.URL;

// Instantiate the schema factory
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

// Load the XSD schema from a URL
URL schemaFile = new URL("http://host:port/filename.xsd");
Schema schema = schemaFactory.newSchema(schemaFile);

// Load the XML file to be validated
Source xmlFile = new StreamSource(new File("web.xml"));

// Create a new validator
Validator validator = schema.newValidator();

try {
  // Validate the XML document
  validator.validate(xmlFile);
  System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
  System.out.println(xmlFile.getSystemId() + " is NOT valid reason:" + e);
}

注意: 常量 XMLConstants.W3C_XML_SCHEMA_NS_URI 定义 XSD 架构。在上面的示例中,根据架构 URL http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd 验证 XML 文件 web.xml。您可以修改架构文件 URL 以适合您的特定场景。

避免使用 DOMParser 进行验证

避免单独使用 DOMParser 进行验证非常重要。 DOMParser 在解析文档时创建 DOM 对象,如果您不打算使用这些对象,这可能会造成浪费。相反,使用 Validator 类来有效地执行验证。

以上是如何在 Java 中根据 XSD 架构验证 XML 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn