上のDTDスキーマとXMLファイルの解析:私は次のエラーを取得するは、私は次のJavaコードを持っている相対パス
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE archive SYSTEM "../../schema/xml/schema.dtd"> ...
:
DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc=db.parse(new File("/opt/myfile"));
そして/opt/myfile
のようなものが含まれています
java.io.FileNotFoundException: /../schema/xml/schema.dtd (No such file or directory)
これは、他の場所で作成されたXMLファイルを消費する大きなJavaフレームワークです。私は相対的な道が問題だと思う。私は、JVMが起動する前にcwdを変更することは受け入れられないと考えています(パスはJVM自身が読み込んだ設定ファイルから来ています)、JVMの実行中にcwdを変更する方法が見つかりませんでした。このXMLファイルを適切なDTDで解析するにはどうすればよいですか?
でも、カタログベースのリゾルバを使用することもできます。 –
すぐに使用できるリゾルバの例:[org.hibernate.util.DTDEntityResolver](http://stackoverflow.com/questions/10886453/hibernate-issue-with-using-http-www-hibernate-org-dtd) – Vadzim