Problème Validation XML XSD
Bonjour,
J'essaie de vérifier la validité d'un fichier XML par rapport à un schéma XSD.
Voici le code utilisé:
Code:
1 2 3 4 5 6 7 8 9
|
SchemaFactory fabrique = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
GestionnaireErreurs gestErreur=new GestionnaireErreurs();
File fichierXSD=new File(nomFichierXSD);
Source sourceW3C = new StreamSource(fichierXSD);
Schema schemaW3C = fabrique.newSchema(sourceW3C);
Validator validateur = schemaW3C.newValidator();
validateur.setErrorHandler(gestErreur);
validateur.validate(new DOMSource(document)); |
Ce morceau de code a l'air de marcher lorsque je l'utilise dans une fonction main. Par contre, lorsque je passe par Tomcat, j'ai l'exception suivante:
Code:
1 2 3 4 5 6 7
|
XML-22101: (Fatal Error) DOMSource node as this type not supported.
javax.xml.transform.TransformerException: XML-22101: (Fatal Error) DOMSource node as this type not supported.
at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.process(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(Unknown Source)
at javax.xml.validation.Validator.validate(Unknown Source)
.... |
Pourquoi? Quel est la différence entre un appel par l'intermédaire de Tomcat et un appel dans un main? Les jar utilisés sont-ils les même?
Je pense que mon erreur est du à de vieilles versions de Xalan et de Xerces. En effet, en utilisant la dernière version de Xalan, je n'ai pas de problème. Cependant, je suis obligée de guarder l'ancienne version. Est-t-il possible de faire cohabité deux versions différentes? Et si oui comment?