Analyse d'un fichier XML avec un schéma DTD sur un chemin relatif

J'ai le code java suivant:


DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc=db.parse(new File("/opt/myfile"));

Et /opt/myfile contient quelque chose comme:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE SYSTÈME d'archivage "../../schema/xml/schéma.dtd"> 
... 

J'obtiens l'erreur suivante:

java.io.FileNotFoundException: /../schema/xml/schéma.dtd (Aucun fichier ou répertoire) 

C'est un grand framework java qui utilise un fichier XML produit ailleurs. Je pense que le chemin d'accès relatif est le problème. Je ne pense pas qu'il serait acceptable de modifier le mdc avant la JVM commence (le chemin vient d'un fichier de configuration qui est lu par la JVM elle-même) et je n'ai pas trouvé un moyen de changer le mdc, tandis que la JVM est en cours d'exécution. Comment dois-je analyser ce fichier XML avec la DTD?

source d'informationauteur User1 | 2011-01-18