Bonjour,
J'ai besoin de votre aide.
J'ai un JAR contenant un ensemble de classes dont l'un des rôles est de valider un document XML à partir de XSD stockés dans mon JAR.
En gros voici la structure du JAR
/
dir1
dir2
myClass.class
resources
xsd
myxsdfile.xsd

Donc mon programme externe, importe le package, instancie ma classe dir1.dir2.myClass et appelle ma méthode Validate(String p_xmlToValidate)

Voici le code de ma fonction Validate :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
import org.apache.xerces.parsers.DOMParser;
import org.xml.sax.SAXException;
 
public void Validate(string p_xmlToValidate) throws SAXException
{
     String xsdPath = this.getClass().getResource("/resources/xsd/myxsdfile.xsd").getPath();
            DOMParser l_myParser = new DOMParser();
 
     l_myParser.setFeature("http://xml.org/sax/features/validation", true); 
                    l_myParser.setFeature("http://apache.org/xml/features/validation/schema",true);
                        l_myParser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", xsdPath);
 
            // create a dom Document and initialize it 
            l_myParser.parse(p_xmlToValidate);
 
}
Le path qui m'est renvoyé est :
"file:/C/monrepertoire/monfichierJAR.jar!/resources/xsd/myxsdfile.xsd"

Ce qui me semble correcte, mais aprés l'execution du Parse, j'obtiens une erreur de parsing : cvc-elt.1: Cannot find the declaration of element toto

Typique du fait qu'il ne m'a pas trouvé mon schema.

J'ai essayé le même code mais sans passer par un JAR et cela marche nickel;
J'ai également essayé avec un getRessourceAsStream mais j'ai une exception
Avec un getRessource seul (sans le getPath()) tout pareil....

Je ne sais plus quoi faire Au secours !!!!

Merci d'avance pour votre aide

@+