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. 
 
Message édité par Aquarius_28 le 26-10-2006 à 18:26:03