[JAXP] Validation par Schema dans un JAR
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:
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:
StreamSource ss = new StreamSource(new File("monschema.xsd"));
par :
Code:
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 !