Hi,
Your catalog.xml file is not being loaded
because of the syntax you used in CatalogManager.properties:
catalogs=file://catalog.xml
I don't think my book ever uses such syntax
for a relative path. If it does, please show me where so I can fix
it. When I use that syntax in my CatalogManager.properties, my version of
Java responds with the following first line of error:
java.net.UnknownHostException:
catalog.xml
catalogs=catalog.xml
Also, you don't want to set
relative-catalogs=true because then relative paths in "catalogs=" are taken as
relative to the XML document location. When that property is false, then
relative paths to catalog files are taken as relative to the
CatalogManager.properties file, which is what I think you want.
----- Original Message -----
Sent: Wednesday, January 18, 2006 12:03
AM
Subject: [docbook-apps] Problem with XML
catalogs and Saxon
Hi all,
I am trying to set up the toolchain according to
the directions from http://sagehill.net/docbookxsl/Catalogs.html I have
completed all the procedures described in the book. Unfortunately, I can't
set the toolchain to use local files (DTD and XSL).
Here is my
directory tree: c:\public +---catalog [contains catalog.xml and
properties for the catalog resolver] +---docbook | +---dtd
[equiv. to dtd44] | | \---ent |
+---dtd44 | | \---ent | \---xsl
[current XSL distro] [zap: full DocBook XSL distro goes here] \---docs
[directory with many subdirectories with source
files]
Catalog.properties: --------------------------- catalogs=file://catalog.xml;file:///c:/public/docbook/dtd/docbook.cat
relative-catalogs=true static-catalog=yes catalog-class-name=org.apache.xml.resolver.Resolver verbosity=4 prefer=public
catalog.xml: ------------------ <?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">
<!--
DTD and stylesheet files installed under c:\public\ --> <group
prefer="public" xml:base=" file:///c:/public/" >
<public
publicId="-//OASIS//DTD DocBook XML
V4.4//EN"
uri="docbook/dtd/docbookx.dtd"/>
<!-- Resolve DTD URL system ID to local file -->
<rewriteSystem
systemIdStartString="http://www.oasis-open.org/docbook/xml/4.4/"
rewritePrefix=" file://docbook/dtd/"
/>
<!-- Resolve stylesheet
URL to local file -->
<rewriteURI
uriStartString="http://docbook.sourceforge.net/release/xsl/current/
" rewritePrefix="file:///docbook/xsl/"
/> <!-- Resolve DTD PUBLIC
identifiers --> <nextCatalog catalog=" file://docbook/dtd/catalog.xml"
/>
</group>
</catalog>
All
environment variables are set.
I call the HTML transformation from
c:\public\catalog and get the following results:
$ java
com.icl.saxon.StyleSheet -x org.apache.xml.resolver.tools.ResolvingXMLReader
-y org.apache.xml.resolver.tools.ResolvingXMLReader -r
org.apache.xml.resolver.tools.CatalogResolver -u -o ../docs/sample.html
file://../docs/sample.xml http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl Parse
catalog: file:///c:/public/docbook/dtd/docbook.cat
Loading catalog: file://catalog.xml Default BASE: file://catalog.xml java.net.ConnectException:
Connection refused: connect at
java.net.PlainSocketImpl.socketConnect (Native
Method) at
java.net.PlainSocketImpl.doConnect(Unknown
Source) at
java.net.PlainSocketImpl.connectToAddress(Unknown
Source) at
java.net.PlainSocketImpl.connect(Unknown
Source) at
java.net.Socket.connect(Unknown
Source) at
java.net.Socket.connect(Unknown
Source) at
sun.net.NetworkClient.doConnect(Unknown
Source) at
sun.net.NetworkClient.openServer(Unknown
Source) at
sun.net.ftp.FtpClient.openServer(Unknown
Source) at
sun.net.ftp.FtpClient.openServer(Unknown
Source) at
sun.net.www.protocol.ftp.FtpURLConnection.connect(Unknown
Source) at
sun.net.www.protocol.ftp.FtpURLConnection.getInputStream (Unknown
Source) at
java.net.URL.openStream(Unknown
Source) at
org.apache.xml.resolver.Catalog.parseCatalogFile(Unknown
Source) at
org.apache.xml.resolver.Catalog.parsePendingCatalogs(Unknown Source)
at
org.apache.xml.resolver.Catalog.parseCatalog(Unknown
Source) at
org.apache.xml.resolver.Catalog.loadSystemCatalogs(Unknown
Source) at
org.apache.xml.resolver.tools.CatalogResolver.initializeCatalogs (Unknown
Source) at
org.apache.xml.resolver.tools.CatalogResolver.<init>(Unknown
Source) at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance (Unknown
Source) at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source) at
java.lang.reflect.Constructor.newInstance(Unknown
Source) at
java.lang.Class.newInstance0(Unknown Source)
at
java.lang.Class.newInstance(Unknown
Source) at
com.icl.saxon.Loader.getInstance(Loader.java:91)
at
com.icl.saxon.StyleSheet.makeURIResolver(StyleSheet.java:551)
at com.icl.saxon.StyleSheet.doMain
(StyleSheet.java:164) at
com.icl.saxon.StyleSheet.main(StyleSheet.java:47) resolveURI(file://../docs/sample.xml) Resolved
URI: file://../docs/sample.xml
file://../docs/sample.xml resolveURI( http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl) Resolved
URI: http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
resolveSystem(http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl) Transformation
failed: java.io.EOFException: no more input
Could anybody help me with
this? I know that many of you use XML catalogs, XIncludes etc. with success.
Network restrictions in my company prevent access to the Internet, except for
web browsers, so I have to use local files.
One thing, which makes me
think, is that the example of the catalog.xml from Bob's book has parts that
do not work with Saxon (or other Java-based processor). The book does not
provide any solution that WORKS with Java-based processor. I have searched
throughout the archives of this list and haven't found the solution of my
problem.
Thanks in
advance,
Zbyszek
|