我有一個使用XSLT轉換(Java 6)的web應用程序。 XSL文件(basic.xsl)引用一個DOCTYPE DTD,就像這樣:系統找不到XSL引用的DTD
Basic.xsl
<!DOCTYPE stylesheet SYSTEM "MyXslt.dtd">
當我使用一個集成測試擊中使用這個邏輯控制器端點,它運行良好。但是,當同一個端點從提琴手打,我得到一個錯誤:
ERROR: 'C:\tools\eclipse\src\com\abc\xslt\MyXslt.dtd (The system cannot find the path specified)' FATAL ERROR: 'Could not compile stylesheet'
MyXslt.dtd住在工作區diectory。因此,這裏的完整路徑 -
C:\Workspace\src\com\abc\xslt\MyXslt.dtd
路徑的其餘部分得到解決的罰款,但基本路徑開始從那裏日食的生活,而不是工作區。
我該怎麼做才能找到DTD?
編輯:
一對夫婦的海報的建議給予了絕對路徑。這是行不通的,因爲應用程序將部署在各種各樣的服務器上(而不是我的本地機器)。我不能,也不應該在不同的服務器中給絕對路徑
必須有一種方法,可能是在java自定義URI解析器中的一些設置,它強制引用的DTD相對於當前位置解析,而不是相對於eclipse根。有任何想法嗎?
爲什麼要將自定義DTD應用於樣式表?我不確定這是否合理。 –
自定義DTD包含在XSL中被起訴的一些實體定義。兩者都來自我繼承的遺留代碼。 – OceanBlue
您在具有不同目錄結構的多臺服務器上運行相同的應用程序?在這種情況下,你是比我更勇敢的程序員。你說DTD是「在工作區目錄中」。這是否意味着它與樣式表在同一個目錄中? –