2011-02-11 17 views
1

我需要配置Apache FOP,以便它使用我的本地的DocBook DTD文件等我從寫分類文件來安裝試過幾乎所有的Apache XML解析器等的Apache FOP:解決當地docbook的安裝

這裏我寫的目錄文件。我還將xml.catalog.files屬性設置爲該文件,並且 實例化了FopFactory用作URIResolver的apache目錄解析器。但是fop仍然從網上獲取所有內容。

<?xml version="1.0"?> 
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 
<group prefer="public" xml:base="file:///Users/raichoo/"> 
    <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="docbook/docbookx.dtd" /> 
    <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbook/docbookx.dtd" /> 
    <system systemId="http://www.oasis-open.org/docbook/xml/4.5/" uri="docbook/" /> 
    <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/" rewritePrefix="docbook/"/> 
</group>                              

</catalog> 

任何想法發生了什麼問題?

問候, raichoo

回答

0

我解決了這個問題,只需從要轉換的文件中刪除DOCTYPE即可。不完全是一個漂亮的解決方案,但我不能說服FOP解決URI。

問候,raichoo

1

我認爲這個問題是在你的目錄文件的DOCTYPE聲明:

  1. 的語法是錯誤的:它/>代替>結束和一個右引號是失蹤。

  2. 在第1項固定的情況下,解析器嘗試從http://www.oasis-open.org/committees/entity獲取DTD。該位置沒有DTD,解析器放棄。

我做了一些測試,當我簡單地從目錄文件中刪除整個<!DOCTYPE ..>線,事情開始按預期工作。

+0

不,對不起。片段在複製和粘貼時丟失了;)。不管怎麼說,還是要謝謝你。問題已解決。 – raichoo 2011-02-23 22:46:20

0

我用我的catalog.xml文件這個DOCTYPE元素定義:

<?xml version="1.0"?> 
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 
... 
</catalog>