Voilà j'utilise Xerces pour valider un fichier XML avec cette petite classe
Code :
- /**
- * Methode de lancer l'analyse du XML
- *
- * @param filename
- * <u>String</u>
- * @return le résultat sous forme de fluxXML <u>String</u>
- */
- public String process() {
- isValid = true; // Valide jusqu'à ce qu'une erreur se produise !
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setIgnoringComments(true);
- dbf.setNamespaceAware(true);
- dbf.setValidating(true);
- dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
- //dbf.setAttribute(JAXP_SCHEMA_SOURCE, new File(xsdFile));
- try {
- // Parsage du fichier XML avec DOM
- DocumentBuilder db = dbf.newDocumentBuilder();
- db.setErrorHandler(new ErrorHandler() {
- public void fatalError(SAXParseException e) {
- message = "Erreur de validation XSD - Erreur fatal" + e;
- isValid = false;
- }
- public void error(SAXParseException e) {
- message = "Erreur de validation XSD - Erreur fatal" + e;
- isValid = false;
- }
- public void warning(SAXParseException e) {
- message = "Erreur de validation XSD - Erreur fatal" + e;
- isValid = false;
- }
- });
- Document doc = db.parse(filename);
- System.out.println(doc.getFirstChild());
- } catch (ParserConfigurationException pcee) {
- System.out.println(pcee);
- } catch (IOException ioe) {
- System.out.println(ioe);
- } catch (SAXException saxe) {
- System.out.println(saxe);
- }
- if (isValid)
- {
- return message;
- }
- else
- {
- return HEADER_ERROR_MARKUP + message + FOOTER_ERROR_MARKUP;
- }
- }
|
Mais petit probleme.
Je n'arrive pas lister l'ENSEMBLE des erreur contenues dans un XML, elle s'arrete à la première erreur rencontrer.
Comment puis je faire pour les avoir toutes ?
D'avance merci. ![:hello: :hello:](https://forum-images.hardware.fr/icones/smilies/hello.gif)
Message édité par Aquarius_28 le 26-10-2006 à 18:26:03