根据 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中文网其他相关文章!