Bonjour à tous, voilà le problème auquel je suis confronté:

j'utilise JAXP sous JDK6 pour parser et valider un texte.
Le fichier .xsd comprend des include (avec chemin relatif).

Sous Eclipse tout marche bien en utilisant çà :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
 
StreamSource ss = new StreamSource(new File("monschema.xsd"));
Schema schema = sf.newSchema(ss);
 
dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setSchema(schema);
Désormais, j'ai besoin de construire un .jar avec les ressources à l'intérieur de ce jar. Pas de problème pour les images, mais je me retrouve face à un problème pour le schéma.

Afin de charger le schéma aussi bien sous Eclipse (avec classpath bien réglé) qu'à l'execution à partir du JAR, j'ai modifié

Code : Sélectionner tout - Visualiser dans une fenêtre à part
StreamSource ss = new StreamSource(new File("monschema.xsd"));
par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
StreamSource ss = new StreamSource(XTree.class.getResourceAsStream("monschema.xsd"));
Résultat : monschema.xsd est bien chargé, mais les autres .xsd qu'il include ne le sont pas. Le chemin relatif doit certainement poser problème ...

Y a t-il une option pour activer les chemins relatifs ? Ou une autre solution ?

Si quelqu'un a une idée, je lui serai très reconnaissant de passer me donner son avis ...
Merci d'avance !