Create DocBook XML based documentation with Ant

Validate with jing

    <java jar="lib/jing/jing.jar" fork="true" failonerror="true">
      <jvmarg value="-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration" />
      <jvmarg value="-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl" />
      <arg value="${docbook.basedir}/rng/docbook.rng" />
      <arg line="${xml.fs.property}" />
    </java>

I am using java here rather than the jing task . I found the idea to use the jvmargs by reading this bug report of jing-trang http:^/code.google.com/p/jing-trang/issues/detail?id=38

Transform into HTML

Jars needed :

  • for xslt
  • saxon9.jar xercesImpl.jar xml-apis.jar xml-resolver.jar
    <xslt basedir="${sample.docs.xml.dir}" force="true" destdir="${sample.docs.html.dir}" style="${docbook.xsl.basedir}/html/docbook.xsl">
      <include name="*.xml" />
      <classpath>
        <fileset dir="lib/xslt" />
      </classpath>
      <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration" value="org.apache.xerces.parsers.XIncludeParserConfiguration" />
    </xslt>

Transform into PDF

Thanks to Wendy Smoak for the wiki page http:^/wiki.wsmoak.net/cgi-bin/wiki.pl?DocBookToPDF which put me on the right track.

Jars needed :

  • for xslt
  • saxon9.jar xercesImpl.jar xml-apis.jar xml-resolver.jar
  • for fop
  • download fop 1.0. This contains fop-1.0.jar avalon-framework-4.2.0.jar batik-all-1.7.jar commons-io-1.3.1.jar commons-logging-1.0.4.jar serializer-2.7.0.jar xalan-2.7.0.jar xercesImpl-2.7.1.jar xml-apis-1.3.04.jar xml-apis-ext-1.3.04.jar xmlgraphics-commons-1.4.jar

    <xslt style="${docbook.xsl.basedir}/fo/docbook.xsl" extension=".fo" basedir="${sample.docs.xml.dir}" includes="sample-user.xml" destdir="${sample.docs.fo.dir}">
      <classpath>
        <fileset dir="lib/xslt" />
      </classpath>
      <!-- these parameters make bookmarks work in the generated PDF -->
      <param name="fop.extensions" expression="0"/>
      <param name="fop1.extensions" expression="1"/>
      <!-- this allows xinclude processing to work -->
      <sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration" value="org.apache.xerces.parsers.XIncludeParserConfiguration" />
    </xslt>
    <taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
      <classpath>
        <fileset dir="${project.lib}/fop">
          <include name="*.jar" />
        </fileset>
      </classpath>
    </taskdef>
    <fop format="application/pdf" outdir="${sample.docs.pdf.dir}">
      <fileset dir="${sample.docs.fo.dir}">
        <include name="*.fo" />
      </fileset>
    </fop>
  • No labels