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 :
Le path qui m'est renvoyé est :
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); }
"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
@+
Partager