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
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Jul 10 16:32:50 2006