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?