There has been a problem in transforming DocBook to anything in eXist-db. The main problem is that the DocBook XSLTs cannot be loaded into eXist. There are some conflicts with the catalog in eXist.
The solution is to utilize the XPRoc Module <http://exist-db.org/exist/apps/public-repo/packages/XProc.html>
Install the XProc module and download the DocBook XSLT. I recommend the docbook-xsl-ns collection
http://sourceforge.net/projects/docbook/files/docbook-xsl-ns/ <http://sourceforge.net/projects/docbook/files/docbook-xsl-ns/>.
install the extracted zip on the local filesystem of the eXist-db server.
The option stylesheet-path is set to the location of the XSL that you need to call.
The option db-doc-path is set to the path to the DocBook document that is to be transformed.
The XProc script is a simple one:
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc <http://www.w3.org/ns/xproc>" version="1.0">
<p:option name="stylesheet-path" required="true"/>
<p:option name="db-doc-path" required="true"/>
<p:input port="source">
<p:empty/>
</p:input>
<p:output port="result"/>
<p:load name="load-doc">
<p:with-option name="href" select="concat('xmldb://' <xmldb://'>, $db-doc-path)"/>
</p:load>
<p:load name="load-stylesheet">
<p:with-option name="href" select="$stylesheet-path"/>
</p:load>
<p:xslt>
<p:input port="source">
<p:pipe port="result" step="load-doc"/>
</p:input>
<p:input port="stylesheet">
<p:pipe port="result" step="load-stylesheet"/>
</p:input>
<p:with-param name="draft.mode" select="'no'"/>
<p:with-param name="fop.extensions" select="'0'"/>
<p:with-param name="fop1.extensions" select="'1'"/>
<p:with-param name="highlight.source" select="'1'"/>
<p:with-param name="paper.type" select="'USLetter'"/>
</p:xslt>
</p:declare-step>
The XQuery code to run the transform is equally simple:
xquery version "3.0";
import module namespace xproc="http://exist-db.org/xproc <http://exist-db.org/xproc>";
let $simple-proc := doc('/db/myxproc/docbook-to.xpl')/*
let $fo := xproc:process($simple-proc, (