根据 XSD(XML 架构定义)文件验证 XML 文档对于确保数据完整性和符合指定标准至关重要。本教程将深入研究 Java 运行时库的 XML 验证功能,并提供使用 javax.xml.validation.Validator 类的具体示例。
Java 运行时库通过 javax.xml.validation API 提供强大的 XML 验证功能。 javax.xml.validation.Validator 类构成了此 API 的基石,使开发人员能够根据给定架构验证 XML 文档。
以下代码片段演示了如何根据 XSD 验证 XML 文件schema:
import javax.xml.XMLConstants; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.*; import java.net.URL; import org.xml.sax.SAXException; //import java.io.File; // if you use File import java.io.IOException; ... // Define the XSD schema URL URL schemaFile = new URL("http://host:port/filename.xsd"); // Create a Source object for the XML file to be validated Source xmlFile = new StreamSource(new File("web.xml")); // Create a SchemaFactory instance SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); try { // Create a Schema object from the XSD schema Schema schema = schemaFactory.newSchema(schemaFile); // Create a Validator object from the Schema object Validator validator = schema.newValidator(); // Validate the XML file against the schema validator.validate(xmlFile); // Print a success message if validation is successful System.out.println(xmlFile.getSystemId() + " is valid"); } catch (SAXException e) { // Print an error message if validation fails due to an error System.out.println(xmlFile.getSystemId() + " is NOT valid reason:" + e); } catch (IOException e) { // Handle IOException if file is not found or cannot be read }
值得注意的是,如果目标不是创建 DOM 对象模型,则不建议使用 DOMParser 进行验证。这种方法可能会导致不必要的资源消耗,并且不是一种有效的验证方法。
以上是如何在 Java 中根据 XSD 验证 XML?的详细内容。更多信息请关注PHP中文网其他相关文章!