Russell

I struggled with that also. Here what I found worked best for me. I used a 
relative path (mostly) instead of a fixed one. I also needed this to work for 
Windows and Linux so I structured it so that I would only adjust the base dir. 
Here is mine:

Regards, 
Dean Nelson

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"; [
<!ENTITY XSL_VER "docbook-xsl-1.74.0">
<!ENTITY DB_VER "docbook-xml-4.5">
<!ENTITY MATHML_VER "MathML2">
<!ENTITY BASE_DIR "file:///root/doc/">
]> 
<!-- ENTITIES
BASE_DIR = this is the base of the whole doc tree including doctools
Linux : "file:///root/doc/"
Win32 : "../../"
-->
<!-- When changing the XSL version - make sure it is also changed in the 
xml.pro file --> 
<catalog prefer="public" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<!-- DTD and stylesheet files installed under -->
<group xml:base="&BASE_DIR;"> <!-- configured above -->
<!--<group prefer="public" xml:base="file:///root/doc/"> --> <!-- UNIX/LINUX -->
<!-- <group prefer="public" xml:base="../../"> --> <!-- Windows -->
publicId="-//OASIS//DTD DocBook XML V4.4//EN" 
uri="doctools/&DB_VER;/docbookx.dtd"/>
<public publicId="-//W3C//DTD MathML 2.0//EN" 
uri="doctools/MathML2/mathml2.dtd"/>
<!-- Resolve DTD URL system ID to local file -->
<rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.4/"; 
rewritePrefix="doctools/&DB_VER;/"/>
<rewriteSystem systemIdStartString="http://www.docbook.org/xml/4.4/"; 
rewritePrefix="doctools/&DB_VER;/"/>
<rewriteSystem systemIdStartString="http://www.docbook.org/xml/4.5/"; 
rewritePrefix="doctools/&DB_VER;/"/>
<rewriteSystem systemIdStartString="http://www.w3.org/TR/MathML2/dtd/"; 
rewritePrefix="doctools/&MATHML_VER;/"/>
<!-- Resolve stylesheet URL to local file -->
<rewriteURI 
uriStartString="http://docbook.sourceforge.net/release/xsl/current/"; 
rewritePrefix="doctools/&XSL_VER;/"/>
<rewriteURI 
uriStartString="http://docbook.sourceforge.net/release/slides/current/"; 
rewritePrefix="doctools/&SLIDES_VER;/"/>
<rewriteURI uriStartString="http://docbook.sourceforge.net/release/slides/"; 
rewritePrefix="doctools/&SLIDES_VER;/"/>
<!-- To resolve short stylesheet references -->
<uri name="html-docbook.xsl" uri="doctools/&XSL_VER;/html/docbook.xsl"/>
<uri name="chunk.xsl" uri="doctools/&XSL_VER;/html/chunk.xsl"/>
<uri name="fo-docbook.xsl" uri="doctools/&XSL_VER;/fo/docbook.xsl"/>
</group>

<!-- Resolve DTD PUBLIC identifiers -->
<nextCatalog catalog="file:///../../doctools/&DB_VER;/catalog.xml"/>
</catalog>



In a message dated 10/13/08 07:12:20 Pacific Daylight Time, [EMAIL PROTECTED] 
writes:
Good afternoon all,

I am trying to write a catalog file for my DocBook processing so all the paths 
that I need are in one place.  At the moment I have limited success.

I have pretty much lifted the Catalog file from 

'Example DocBook catalog file' - 
http://www.sagehill.net/docbookxsl/ExampleCatalog.html
and I have got the system to find my customisation stylesheet in the correct 
location.

However when my file then tries to import the Docbook  XSL file, it does it 
with the same path location as it did when it found my customisation, even 
though in my catalog I have a different path for this file.

I am using xsltproc to produce my FO file, the command I am using is:

    XML_CATALOG_FILES="catalog.xml" xsltproc -o output.fo cpsltdonline.xsl 
c815ea1d111988cfc9e630e7feb3b6a6.xml 

If i re-run this command using fo-docbook.xsl instead it works perfectly and I 
get the FO, trouble is that it is not what I want.  I have appened the Catalog 
file to the end of this email.

Thanks, Russell



<?xml version="1.0"?>
<!DOCTYPE catalog
   PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
   "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">


    <group xml:base="file:///home/russells/workspace/cpsltdonline/docbook/">
    <uri name="cpsltdonline.xsl"
        uri="custom/cpsltdonline.xsl" />

    <uri
        name="cpsltdonline-order.xsl"
        uri="styles/cpsltdonline-order.xsl" />
    </group>

 <!-- DTD and stylesheet files installed under /usr/share/xml -->
  <group  xml:base="file:///usr/share/xml/">

    <!-- Resolve DTD URL system ID to local file -->
    <rewriteSystem
        systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/";
        rewritePrefix="docbook/schema/dtd/4.5/" />
 
    <!-- Resolve stylesheet URL to local file -->
    <rewriteURI
        uriStartString="http://docbook.sourceforge.net/release/xsl/current/";
        rewritePrefix="docbook-xsl-1.73.1/" />

    <!-- To resolve simple DTD SYSTEM identifiers. -->
    <!-- Note: this does not work with Java resolver -->
    <!--   classes in Saxon or Xalan -->
    <system
         systemId="docbook.dtd"
         uri="docbook/schema/dtd/4.5/docbookx.dtd" />

    <!-- To resolve short stylesheet references -->
    <uri
        name="fo-docbook.xsl"
        uri="docbook/stylesheet/nwalsh/fo/docbook.xsl" />


  </group>
  

</catalog>

Reply via email to