xmltask verwirrt über dtd

Ich versuche, xmltask for ant zu verwenden, um eine Datei in einem Unterverzeichnis zu ändern:

project/path/to/file.xml

Die Datei verweist auf eine DTD wie diese:

<!DOCTYPE data SYSTEM "mydtd.dtd">

Ich habe nicht die Flexibilität, diese Dokumente zu ändern.

Diese DTD wird im selben Unterverzeichnis gespeichert, was immer gut funktioniert hat:

project/path/to/mydtd.dtd

Leider versucht xmltask, die Datei dtd im obersten Verzeichnis meines Projekts zu finden. Dort befindet sich meine Build-Datei und von dort aus kann ich sie ausführen:

[xmltask] java.io.FileNotFoundException: /home/me/project/mydtd.dtd (Das System kann die angegebene Datei nicht finden.)

Ich sehe in der xmltask Dokumentation, dass ich das mit einem korrigieren kannxmlcatalog Element, um anzugeben, wo die Datei nachgeschlagen werden soll. Aber ich muss ein verwendendtd Ich kann nur Beispiele für dieses Element finden, keine Dokumentation. Die Beispiele zeigen nur eine publicId, und wenn ich XML richtig verstehe, enthält dieses Dokument keine. Ich sollte dies sowieso nicht spezifizieren müssen, da mein Dokument bereits sagt, dass meine DTD lokal gespeichert ist und zeigt, wo sie sich befindet?

Warum findet xmltask die DTD nicht richtig? Was ist der beste Weg, um diese Situation zu korrigieren oder zu umgehen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage