My latest foray into ant:

Xinclude processing, fo output using xep.

<path id="xslt.processor.classpath">
  <pathelement path="/myjava/saxon655.jar" />  <!-- Saxon jar -->
  <pathelement path="/myjava/resolver.jar"/> <!-- resolver jar -->
<pathelement path="${websiteHome}/extensions/saxon64.jar"/> <!-- docbook extensions -->
  <pathelement path="/myjava/xercesImpl.jar"/>
  <pathelement path="/sgml"/> <!-- for catalogManager.properties -->
 </path>


   <!-- ================================================ -->
    <!-- Generic XSLT-processor call (main docbook transform) -->
    <!-- ================================================ -->

<target name="docbook" depends="init, clean">
  <java classname="${xslt.processor.class}"
        fork="yes"
        dir="${in.dir}"
        failonerror="true">
    <classpath refid="xslt.processor.classpath" />
<jvmarg line="-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration"/> <jvmarg line="-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/> <jvmarg line="-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
    <arg line="-o ${out.dir}/${main.outfile}"/>
    <arg line="-l"/>
    <arg line="-x org.apache.xml.resolver.tools.ResolvingXMLReader"/>
    <arg line="-y org.apache.xml.resolver.tools.ResolvingXMLReader"/>
    <arg line="-r org.apache.xml.resolver.tools.CatalogResolver "/>
<arg line="${in.dir}/${main.infile} ${main.stylesheet} ${param.args.post}" />
  </java>
  <tstamp>
    <format property="fintim" pattern="E @ H:m a" locale="en,UK"/>
  </tstamp>
  <echo>Finished at ${fintim}</echo>
</target>


And for the fo, both stages:

<target name="fo" depends="init, clean.pdf">
<echo>Generate the fo output</echo>
<java classname="${xslt.processor.class}"
      fork="yes"
      dir="${in.dir}"
      failonerror="true">
  <classpath refid="xslt.processor.classpath" />
<jvmarg line="-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration"/> <jvmarg line="-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/> <jvmarg line="-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
    <arg line="-o ${out.fo.dir}/${main.fo.outfile}"/>
  <arg line="-l"/>
  <arg line="-x org.apache.xml.resolver.tools.ResolvingXMLReader"/>
  <arg line="-y org.apache.xml.resolver.tools.ResolvingXMLReader"/>
  <arg line="-r org.apache.xml.resolver.tools.CatalogResolver "/>
  <arg line="${in.dir}/${main.infile} ${main.fo.stylesheet} " />
</java>
</target>


<target name="pdf" depends="fo">
<echo> Generate the pdf in ${out.fo.dir}</echo>
<echo>cp is ${fo.processor.class}</echo>
<java classname="${fo.processor.class}"
      fork='yes'
      dir='${in.dir}'
      failonerror='true'>
      <classpath refid="xslfo.processor.classpath"/>
      <jvmarg line="-Dcom.renderx.xep.CONFIG=${xephome}/xep.xml"/>
<arg line="-fo ${out.fo.dir}/${main.fo.outfile}"/> <!-- ${main.fo.outfile} -->
      <arg line="-pdf ${out.fo.dir}/${main.pdf.outfile}"/>
</java>
        <tstamp>
          <format property="fintim" pattern="E @ H:m a" locale="en,UK"/>
        </tstamp>
        <echo>Finished on ${fintim}</echo>
</target>



It might be nicer to use xmllint to expand the includes and validate,
but I haven't figured out  how to get ant to do that.

Real nasty if (as I did) you have
book
  chapter
  chapter
  section
where the chapters (and the section) were xincluded
Ouch :-) I'd forgotten to wrap the section in a chapter.
Docbook processes it and the fo processor blows up if it does a validation stage, as xep does.
  (Thanks RenderX)


HTH



regards

--
Dave Pawson
XSLT XSL-FO FAQ.
http://www.dpawson.co.uk

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to