jeudi 27 septembre 2007

Valider un schéma XSD en java

La validation d'un schéma XSD permet de vérifier qu'un document est bien conforme. Cette action se fait en même temps que le parsing, pour cela il est nécessaire de mettre dans la première ligne du xml le schéma que doit vérifier les données XML.



<dossier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://mydomain.org/schema/dossier.xsd">




DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringComments(true);
dbf.setNamespaceAware(true);
dbf.setValidating(true);
dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
try {
documentBuilder = dbf.newDocumentBuilder();
documentBuilder.setErrorHandler(new DossierErrorHandler());
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
ByteArrayInputStream bif = new ByteArrayInputStream(xml.getBytes());
documentBuilder.parse(bif);



Il est également possible de forcer le schéma
par


dbf.setAttribute(JAXP_SCHEMA_SOURCE, new File(xsdFile));



Ou bien par une ressource :

InputStream schemaIs = getClass().getResourceAsStream("/schema.xsd");
sp.setProperty(JAXP_SCHEMA_SOURCE, schemaIs);

1 commentaire:

Anonyme a dit…

BON DEPART