2009-10-16 62 views
0

我试图通过XSLT将DocBook XML - 文件转换为HTML。该XML - 文件包含一个图像,这就是为什么我得到以下错误:Docbook,Images,ANT

build-html: 
    [xslt] Transforming into C:\dev\DocBook\DocBookmitXML\output 
    [xslt] Processing C:\dev\DocBook\DocBookmitXML\src\BurndownChart.jpg to C:\dev\DocBook\DocBookmitXML\output\BurndownChart.html 
    [xslt] Loading stylesheet C:\dev\DocBook\DocBookmitXML\docbook-xsl-1.75.1\xhtml\docbook.xsl 
    [xslt] : Fatal Error! org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence. Cause: org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence. 
    [xslt] Failed to process null 

DocBook的-文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE article SYSTEM "../docbook-xml-4/docbookx.dtd" > 
<article> 
    <articleinfo> 
     <title>Freitags um 11.30 Uhr</title> 
     <author> 
      <firstname>me, myself </firstname> 
      <surname>and I</surname> 
     </author> 
    </articleinfo> 
    <sect1 label="1.0"> 
     <title>An introduction to DocBook</title> 
     <para>this is text</para> 
    </sect1> 
    <sect1 label="2.0"> 
     <title>Core Docbook</title> 
     <para> 
      <table frame='all'> 
       <title>Testtabelle</title> 
       <tgroup cols="3"> 
        <thead> 
         <row> 
          <entry>Monat</entry> 
          <entry>Woche</entry> 
          <entry>Besucher</entry> 
         </row> 
        </thead> 
        <tbody> 
         <row> 
          <entry>Mai</entry> 
          <entry>1</entry> 
          <entry>4711</entry> 
         </row> 
         <row> 
          <entry>Mai</entry> 
          <entry>2</entry> 
          <entry>4712</entry> 
         </row> 
         <row> 
          <entry>Mai</entry> 
          <entry>3</entry> 
          <entry>4713</entry> 
         </row> 
         <row> 
          <entry>Gesamt</entry> 
          <entry></entry> 
          <entry>47110</entry> 
         </row> 
        </tbody> 
       </tgroup> 
      </table> 
     now to the difficult stuff... 
     </para> 
    </sect1> 
    <sect1 label="2.0"> 
     <title>A Picture</title> 

      <mediaobject> 
       <imageobject> 
        <imagedata format="JPEG" fileref="BurndownChart.jpeg" /> 
       </imageobject> 
      </mediaobject> 

    </sect1> 
</article> 

集结文件:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="docbook-src" default="build-html"> 
    <property name="docbook.xsl.dir" value="./docbook-xsl-1.75.1/xhtml" /> 
    <property name="doc.dir" value="output" /> 
    <property name="src" value="src" /> 
    <property name="html.stylesheet" value="${docbook.xsl.dir}/docbook.xsl" /> 
    <property name="xalan.lib.dir" value="./xalan-j_2_7_1"/> 

    <path id="xalan.classpath"> 
     <fileset dir="${xalan.lib.dir}" id="xalan.fileset"> 
      <include name="xalan.jar" /> 
      <include name="xercesImpl.jar" /> 
     </fileset> 
    </path> 

    <target name="clean" description="Cleans up the generated files"> 
     <delete dir="${doc.dir}" /> 
    </target> 

    <target name="depends"> 
     <mkdir dir="${doc.dir}" /> 
    </target> 

    <target name="build-html" depends="clean,depends" description="Generates HTML files from DocBook"> 
    <xslt basedir="src" destdir="${doc.dir}" style="${html.stylesheet}" extension=".html"> 
      <classpath refid="xalan.classpath" /> 
     </xslt> 
    </target> 
</project> 

我应该在哪里寻找错误?

+0

嗯... DocBook文件的一半没有识别 – Patrick 2009-10-16 13:53:16

+0

嗯......你有没有验证过DocBook XML文件?也许有错误吗?第二个想法:在处理简单文件时如何编码?只是一些想法... – bastianneu 2009-10-16 14:27:56

+0

XML文件验证没有投诉。一切都很好......直到我添加mediaObjekt – Patrick 2009-10-16 14:46:04

回答

1

如果仔细查看错误消息,您会注意到它实际上是在尝试处理JPEG文件,这当然会失败。默认情况下,当以这种方式调用时,xslt任务将尝试转换它在指定目录中找到的所有文件。您可以添加添加一个属性,如includes="*.xml"来告诉它只处理* .xml文件。