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