Validation des fichiers XML par rapport aux schémas XSD
Pour garantir la validité des fichiers XML générés par rapport à un schéma XSD donné, il est nécessaire d'effectuer une vérification . La bibliothèque d'exécution Java prend en charge cette validation.
Utilisation de javax.xml.validation.Validator
La classe javax.xml.validation.Validator offre un mécanisme pratique pour validation des documents XML par rapport aux schémas XSD. Voici un exemple d'utilisation :
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); }
Remarque : La constante XMLConstants.W3C_XML_SCHEMA_NS_URI définit les schémas XSD. Dans l'exemple ci-dessus, le fichier XML web.xml est validé par rapport à l'URL du schéma http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd. Vous pouvez modifier l'URL du fichier de schéma en fonction de votre scénario spécifique.
Éviter DOMParser pour la validation
Il est important d'éviter d'utiliser DOMParser pour la validation seule. Le DOMParser crée des objets DOM lors de l'analyse du document, ce qui peut être inutile si vous n'avez pas l'intention d'utiliser ces objets. Utilisez plutôt la classe Validator pour effectuer une validation efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!