Heim >Java >javaLernprogramm >Wie kann ich XML-Dateien anhand von XSD-Schemas in Java validieren?
XML-Dateien anhand von XSD-Schemas validieren
Um die Gültigkeit von XML-Dateien sicherzustellen, die anhand eines bestimmten XSD-Schemas generiert wurden, ist eine Überprüfung erforderlich . Die Java-Laufzeitbibliothek bietet Unterstützung für diese Validierung.
Verwendung von javax.xml.validation.Validator
Die Klasse javax.xml.validation.Validator bietet einen praktischen Mechanismus für Validierung von XML-Dokumenten anhand von XSD-Schemas. Hier ist ein Beispiel für die Verwendung:
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); }
Hinweis: Die Konstante XMLConstants.W3C_XML_SCHEMA_NS_URI definiert XSD-Schemas. Im obigen Beispiel wird die XML-Datei web.xml anhand der Schema-URL http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd validiert. Sie können die URL der Schemadatei ändern, um sie an Ihr spezifisches Szenario anzupassen.
DOMParser zur Validierung vermeiden
Es ist wichtig, den DOMParser nicht allein zur Validierung zu verwenden. Der DOMParser erstellt beim Parsen des Dokuments DOM-Objekte, was verschwenderisch sein kann, wenn Sie diese Objekte nicht verwenden möchten. Verwenden Sie stattdessen die Validator-Klasse, um die Validierung effizient durchzuführen.
Das obige ist der detaillierte Inhalt vonWie kann ich XML-Dateien anhand von XSD-Schemas in Java validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!