Validation par java/DOM d'un flux xml (XSD, DTD)

AKRICHE Philippe <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Bonjour,

J'ai bien réussi à valider un fichier xml avec un
fichier xsd sans que dans le fichier xml je fasse
référence au fichier xsd.
Par contre pour une dtd, impossible de valider le
fichier xml. Seul moyen, placer la déclaration 
DOCTYPE dans le fichier xml puis lancer la validation
sans préciser le fichier dtd, celui déclarer dans le
xml étant pris par défaut par la validation. 
J'aimerais pourtant que les deux fichiers soient
complétement dissocier et que seul l'application
prenne en entrée le fichier xml et dtd.

Est-ce que tout ça est normal ????
Partie principal de mon prog : 
*****************************************************
public static Object validXMLWithDOM(File xmlFile,
File xsdFile){
		Object returnedObject = null;

		DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
		dbf.setIgnoringComments(true);
		dbf.setNamespaceAware(true);
		dbf.setValidating(true);
		
		if(xsdFile!=null){
			dbf.setAttribute(JAXP_SCHEMA_LANGUAGE,
W3C_XML_SCHEMA);
			dbf.setAttribute(JAXP_SCHEMA_SOURCE, xsdFile);
		}
		try {
			// Parsage du fichier XML avec DOM
			DocumentBuilder db = dbf.newDocumentBuilder();
			EFactureHandler errorHandler = new
EFactureHandler();
			db.setErrorHandler(errorHandler);
			// Parsing
			Document doc = db.parse(xmlFile);
			//PAS D'ERREUR (on renvoi le document parsé)
			Object errors = errorHandler.getErrors();
			if(errors==null){	
				returnedObject = doc;
			}
			//ERREUR(S) (on renvoi le(s) erreurs)
			//SAXParseException de type : 
			// - Erreur fatal
			// - Erreur
			// - Warning
			else{
				returnedObject = errors;
			}
		} catch (ParserConfigurationException pcee) {
			returnedObject = pcee;
		} catch (IOException ioe) {
			returnedObject = ioe;
		} catch (SAXException saxe) {
			returnedObject = saxe;
		}
		
		return returnedObject;
	}

*****************************************************
Merci


	

	
		
___________________________________________________________________________ 
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire.
http://fr.mail.yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.