我試圖在Ant中使用xslt
任務來使用XSLT修改Hibernate映射文件(*.hbm.xml
)。不過,我一直在獲得com.sun.org.apache.xml.internal.utils.WrappedRuntimeException
。Ant:如何在使用<xslt>任務時修復WrappedRuntimeException?
如果我在源xml文件中取出!DOCTYPE
聲明,則以下目標運行時不會出現任何錯誤。有人能告訴我我做錯了什麼嗎?謝謝!
這裏是我的Ant目標:
<target name="generatePermHbmXml">
<xslt in="${base.configuration.hibernate.dir}\Test.hbm.xml"
out="${base.configuration.hibernate.dir}\TestPerm.hbm.xml"
style="${base.configuration.hibernate.dir}\perm.xsl">
<xmlcatalog>
<dtd publicId="-//Hibernate/Hibernate Mapping DTD//EN"
location="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"/>
</xmlcatalog>
</xslt>
</target>
這裏是我的日誌輸出:
[xslt] : Error! hibernate.sourceforge.net
[xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: hibernate.sourceforge.net
[編輯]這是我刪除的DOCTYPE得到它的工作
<!DOCTYPE hibernate-mapping
PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
[EDIT2 ]:我找到了一個解決方案,但我不知道這是否是「正確」的方式。我下載了DTD文件並將其放置在我的項目目錄中。我引用了該文件(如下所示)而不是URL,現在它似乎正在工作。
<xmlcatalog>
<dtd publicId="-//Hibernate/Hibernate Mapping DTD//EN"
location="${base.configuration.hibernate.dir}/hibernate-mapping-3.0.dtd"/>
</xmlcatalog>
那麼什麼是DOCTYPE聲明當你刪除它的東西工作? – Eddie 2009-03-04 23:48:14