2009-10-16 9 views
0

J'essaie de convertir un fichier XML DocBook via XSLT en HTML. Le XML - fichier contient une image, ce qui est la raison pour laquelle je reçois l'erreur suivante: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-File:

<?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> 

Build-fichier:

<?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> 

Où devrais-je rechercher l'erreur?

+0

hmmm ... la moitié du fichier DocBook n'a pas été reconnue – Patrick

+0

hmmm .... avez-vous validé ce fichier XML DocBook? Peut-être qu'il y a une erreur dedans? Deuxième pensée: Comment le codage est-il impliqué dans le traitement d'un fichier simple? Juste quelques pensées ... – bastianneu

+0

Le fichier XML valide sans se plaindre. Tout va bien ... jusqu'à ce que j'ajoute le mediaObjekt – Patrick

Répondre

1

Si vous regardez attentivement le message d'erreur, vous remarquerez qu'il essaie en fait de traiter le fichier JPEG, ce qui échouera bien sûr. Par défaut, lorsqu'elle est invoquée de cette manière, la tâche xslt tente de transformer tous les fichiers trouvés dans le répertoire spécifié. Vous pouvez ajouter un attribut comme includes="*.xml" pour lui indiquer de traiter uniquement les fichiers * .xml.