Ant's built-in task xslt seems to have problem to transform XML documents which use XInclude. With simple documents and xslt based script, I couldn't correct result with the following warning message saying that it couldn't process XInclude.
[xslt] Element include in namespace 'http://www.w3.org/2001/XInclude' encountered in book, but no template matches.
I had searched Google to find the same cases and solutions for a few hours, but I couldn't found the helpful one.
But, using java task of Ant, I can write working script for documents using XInclude.
The following is my script.
<artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset">
<dependency groupId="xerces" artifactId="xercesImpl" version="2.9.1" />
<dependency groupId="xalan" artifactId="xalan" version="2.7.1" />
<dependency groupId="saxon" artifactId="saxon" version="6.5.3" />
<dependency groupId="net.sf.docbook" artifactId="docbook-xml"
version="5.0-all" classifier="resources" type="zip" />
<dependency groupId="net.sf.docbook" artifactId="docbook-xsl"
version="1.74.3" classifier="resources" type="zip" />
<dependency groupId="net.sf.docbook" artifactId="docbook-xsl"
version="1.74.3" classifier="ns-resources" type="zip" />
<dependency groupId="net.sf.docbook" artifactId="docbook-xsl-xalan" version="1.0.0" />
<dependency groupId="net.sf.docbook" artifactId="docbook-xsl-saxon" version="1.0.0" />
<dependency groupId="org.apache.xmlgraphics" artifactId="fop" version="0.93"/>
</artifact:dependencies>
<target name="build-spec-xhtml-using-java-saxson-6">
<delete file="${target.base}/spec/xhtml/spec.html"/>
<java classname="com.icl.saxon.StyleSheet" fork="yes"
dir="." failonerror="true">
<classpath refid="dependency.classpath" />
<sysproperty key="javax.xml.parsers.DocumentBuilderFactory"
value="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
<sysproperty key="javax.xml.parsers.SAXParserFactory"
value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
<sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration"
value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>
<arg line="-o ${target.base}/spec/xhtml/spec.html"/>
<arg line="-l"/>
<arg line="./spec/spec.docbook"/>
<arg line="${docbook.xsl.dir}/xhtml/docbook.xsl"/>
<!-- parameters for XSLT -->
<arg line="toc.max.depth=3"/>
<arg line='generate.toc="book toc,title,figure,table,example,equation"'/>
<arg line="use.extensions=1"/>
<arg line="part.autolabel=1"/>
<arg line="chapter.autolabel=1"/>
<arg line="section.autolabel=1"/>
<arg line="section.label.includes.component.label=1"/>
<arg line="section.autolabel.max.depth=4"/>
<arg line="appendix.autolabel=A"/>
<arg line="chunker.output.indent=yes"/>
<arg line="chunker.output.encoding=UTF-8"/>
<arg line="html.stylesheet=docbook-freebsd.css"/>
<arg line="generate.id.attributes=1"/>
<arg line="para.propagates.style=1"/>
<arg line="entry.propagates.style=1"/>
<arg line="emphasis.propagates.style=1"/>
<arg line="phrase.propagates.style=1"/>
</java>
</target>
For more information, refer the followings.
0 comments:
Post a Comment