Docbook-XML,Webhelp和XSLT / Xalan错误

时间:2014-03-22 16:16:24

标签: xml xslt docbook xalan

处理11907行的xml测试文件,总计325.050字节。

D:\projekte\dashboard>ant webhelp

Buildfile: D:\projekte\dashboard\build.xml

validate:

clean:
   [delete] Deleting directory D:\projekte\dashboard\docs

chunk:
    [mkdir] Created dir: D:\projekte\dashboard\docs
     [xslt] Processing D:\projekte\dashboard\dashboard.xml to D:\projekte\dashboard\docs\null1967716666
     [xslt] Loading stylesheet d:\apps\docbook-xsl-1.78.1\profiling\profile.xsl
     [xslt] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
     [xslt] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
     [xslt] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
     [xslt] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
     [xslt] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
     [xslt] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
     [xslt] : Error! Keine weiteren DTM-IDs verfügbar
     [xslt] Failed to process D:\projekte\dashboard\dashboard.xml 

经过一些谷歌搜索后,我发现:

ER_NO_DTMIDS_AVAIL,
       "Keine weiteren DTM-IDs verf\u00fcgbar"},

这导致我http://xml.apache.org/xalan-j/faq.html#faq-N10340 试图确定使用哪个版本的Xalan http://xml.apache.org/xalan-j/faq.html#environmentcheck并不适合我。

再次谷歌搜索后,我发现:

java com.sun.org.apache.xalan.internal.xslt.EnvironmentCheck

#---- BEGIN writeEnvironmentReport($Revision: 1.10 $): Useful stuff found: ----
java.version=1.8.0
version.xalan2x=not-present
version.JAXP=1.4
java.ext.dirs=C:\Program Files\Java\jre8\lib\ext;C:\Windows\Sun\Java\lib\ext
version.SAX=2.0
version.crimson=not-present
java.class.path=.
version.ant=not-present
sun.boot.class.path=C:\Program Files\Java\jre8\lib\resources.jar;C:\Program Files\Java\jre8\lib\rt.jar;C:\Program Files\Java\jre8\lib\sunrsasign.jar;C:\Program Files\Java\jre8\lib\jsse.jar;C:\Program Files\Java\jre8\lib\jce.jar;C:\Program Files\Java\jre8\lib\charsets.jar;C:\Program Files\Java\jre8\lib\jfr.jar;C:\Program Files\Java\jre8\classes
version.DOM=3.0
version.xalan1=not-present
version.xalan2_2=Xalan Java 2.7.0
version.xerces2=Xerces-J 2.7.1
version.xerces1=not-present
#----- END writeEnvironmentReport: Useful properties found: -----
# YAHOO! Your environment seems to be OK.

如果我缩小文件大小< 300k文件得到处理。

我的错在哪里?

更新2014-03-23

我使用的是build.properties文件,该文件位于webhelp文件夹中(d:\ apps \ docbook-xsl-1.78.1 \ webhelp)

...
xslt-processor-classpath=d:\\apps\\saxon\\saxon.jar
xercesImpl.jar=d:\\apps\\xerces-2_11_0\\xercesImpl.jar
xml-apis.jar=d:\\apps\\xerces-2_11_0\\xml-apis.jar
...

此选项应包含在我用于处理的构建文件中的<import file="d:\\apps\\docbook-xsl-1.78.1\\webhelp\\build.xml"/>中。

我必须在build.properties中设置什么才能使用正确的工具?

2 个答案:

答案 0 :(得分:0)

使用Apache的Xalan版本优先于JDK中嵌入的版本。 JDK中的版本非常陈旧且错误。

更好的是,使用Saxon ......

答案 1 :(得分:0)

建议使用Saxon 6.5.5而不是Xalan来使用DocBook Webhelp转换文档。您可以在SO答案DocBook-XML and webhelp中找到有关如何使用Saxon和webhelp的更多信息。