サブディレクトリ内のファイルを変更するためにantにxmltaskを使用しようとしています:
project/path/to/file.xml
このファイルは、次のような DTD を参照します。
<!DOCTYPE data SYSTEM "mydtd.dtd">
これらのドキュメントを変更する柔軟性がありません。
この DTD は同じサブディレクトリに格納されており、常に正常に機能しています。
project/path/to/mydtd.dtd
残念ながら、xmltask はプロジェクトの最上位ディレクトリで dtd を見つけようとしています。このディレクトリは、ビルド ファイルが置かれている場所であり、実行元です。
[xmltask] java.io.FileNotFoundException: /home/me/project/mydtd.dtd (指定されたファイルが見つかりません)
xmltask のドキュメントで、xmlcatalog要素を使用してこれを修正し、ファイルを検索する場所を指定できることを確認しました。しかし、dtd要素を使用する必要があり、ドキュメントではなく、この要素の例しか見つかりません。例では publicId のみを示しています。XML を正しく理解している場合、このドキュメントには publicId はありません。とにかく、これを指定する必要はありません。私のドキュメントには、私の DTD がローカルに保存されていると既に記載されており、その場所が示されているからです。
xmltask が DTD を正しく検出しないのはなぜですか? この状況を修正または回避する最善の方法は何ですか?