根據 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中文網其他相關文章!