← Prev in month ← Prev in thread

Problem with XML catalogs and Saxon

From
Zbyszek Cybulski <>
Date
2006-01-18T08:03:13+00:00
ID
Thread
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
← Prev in month ← Prev in thread