У меня есть следующий код Java:
DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc=db.parse(new File("/opt/myfile"));
И /opt/myfile
содержит что-то вроде:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE archive SYSTEM "../../schema/xml/schema.dtd"> ...
Я получаю следующую ошибку:
java.io.FileNotFoundException: /../schema/xml/schema.dtd (No such file or directory)
Это большая java-инфраструктура, которая использует XML файл, созданный в другом месте. Я думаю, что относительный путь - проблема. Я не думаю, что будет приемлемым изменение cwd до запуска JVM (путь происходит из файла конфигурации, который считывается самой JVM), и я не нашел способ изменить cwd во время работы JVM. Как проанализировать этот XML файл с соответствующим DTD?