Analizar un archivo XML con un esquema DTD en una ruta relativa

Tengo el siguiente código de Java:


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

Y/opt/myfile contiene algo como:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE archive SYSTEM "../../schema/xml/schema.dtd">
...

Obtuve el siguiente error:

java.io.FileNotFoundException: /../schema/xml/schema.dtd (No such file or directory)

Este es un gran marco de Java que consume un archivo XML producido en otro lugar. Creo que el camino relativo es el problema. No creo que sea aceptable cambiar el cwd antes de que se inicie la JVM (la ruta proviene de un archivo de configuración que es leído por la propia JVM) y no he encontrado una manera de cambiar el cwd mientras se está ejecutando la JVM. ¿Cómo analizo este archivo XML con el DTD apropiado?

Respuestas a la pregunta(3)

Su respuesta a la pregunta