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 çà :
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.
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);
Afin de charger le schéma aussi bien sous Eclipse (avec classpath bien réglé) qu'à l'execution à partir du JAR, j'ai modifié
par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part StreamSource ss = new StreamSource(new File("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 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part StreamSource ss = new StreamSource(XTree.class.getResourceAsStream("monschema.xsd"));
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 !
Partager