XSLT kullanarak bir Hazırda Bekletme eşleme dosyasını (*.hbm.xml
) değiştirmek için Ant'deki xslt
görevini kullanmayı denedim. Ancak bir com.sun.org.apache.xml.internal.utils.WrappedRuntimeException
almaya devam ettim.Ant: <xslt> görevini kullanırken WrappedRuntimeException'ı nasıl düzeltebilirim?
Kaynak xml dosyasında !DOCTYPE
bildirimini çıkarırsam, aşağıdaki hedef herhangi bir hata olmadan çalışır. Birisi bana neyi yanlış yaptığımı söyleyebilir mi? Teşekkürler!
<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>
İşte benim günlük çıkış var:
İşte benim Ant hedef var
[xslt] : Error! hibernate.sourceforge.net
[xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: hibernate.sourceforge.net
[Düzenle] Burada
<!DOCTYPE hibernate-mapping
PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
[EDIT2 çalışma almak için ben kaldırıldı DOCTYPE var ]: Bir düzeltme buldum, ama "doğru" yol olup olmadığını bilmiyorum. DTD dosyasını indirdim ve bunu proje direktifime yerleştirdim. Dosyayı (aşağıda gösterildiği gibi) URL yerine başvuruyordum ve şu an çalışıyor gibi görünüyor.
<xmlcatalog>
<dtd publicId="-//Hibernate/Hibernate Mapping DTD//EN"
location="${base.configuration.hibernate.dir}/hibernate-mapping-3.0.dtd"/>
</xmlcatalog>
Peki, DOCTYPE bildirimi, onu kaldırdığınızda ne işe yarar? Yukarıdaki gönderiye ek olarak – Eddie
, bence Hazırda Bekletme sitesinden çıkardığım standart hiberneli bir DTD idi. – tomato