Maison >Java >javaDidacticiel >Comment valider XML par rapport à un XSD en Java ?

Comment valider XML par rapport à un XSD en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-10 19:54:15539parcourir

How to Validate XML Against an XSD in Java?

Validation XML par rapport à XSD : un guide complet

La validation de documents XML par rapport à un fichier XSD (XML Schema Definition) est cruciale pour garantir l'intégrité des données et la conformité aux normes spécifiées. Ce didacticiel approfondira les capacités de la bibliothèque d'exécution Java pour la validation XML et fournira un exemple concret d'utilisation de la classe javax.xml.validation.Validator.

Utilisation de l'API javax.xml.validation

Le La bibliothèque d'exécution Java offre des capacités de validation XML robustes via l'API javax.xml.validation. La classe javax.xml.validation.Validator constitue la pierre angulaire de cette API, permettant aux développeurs de valider des documents XML par rapport à un schéma donné.

Exemple de code de validation

L'extrait de code suivant montre comment valider un fichier XML par rapport à un XSD schéma :

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
}

Considérations

Il convient de noter que l'utilisation du DOMParser pour la validation n'est pas recommandée si l'objectif n'est pas de créer un modèle objet DOM. Cette approche peut conduire à une consommation inutile de ressources et ne constitue pas une méthode de 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn