Analisando um Arquivo XML com um Esquema DTD em um Caminho Relativo

Eu tenho o seguinte código java:


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

E/opt/myfile contém algo como:

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

Estou tendo o erro a seguir:

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

Essa é uma grande estrutura java que consome um arquivo XML produzido em outro lugar. Eu acho que o caminho relativo é o problema. Eu não acho que será aceitável alterar o cwd antes da JVM iniciar (o caminho vem de um arquivo de configuração que é lido pela própria JVM) e não encontrei uma maneira de alterar o cwd enquanto a JVM está em execução. Como analiso esse arquivo XML com a DTD apropriada?

questionAnswers(3)

yourAnswerToTheQuestion