Re: [xsl] Catalog support in Saxon-B (Linux)?

Subject: Re: [xsl] Catalog support in Saxon-B (Linux)?
From: Evan Leibovitch <evan@xxxxxxxxx>
Date: Fri, 27 Aug 2010 15:33:37 -0400
Thanks for the quick answer.

On 26 August 2010 18:56, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
> You can find information on using Saxon with catalogs here:
>
> https://sourceforge.net/apps/mediawiki/saxon/index.php?title=XML_Catalogs
>
> Regrettably, if your source document contains a reference to a DTD, there is
no way to prevent the XML parser from attempting to retrieve the DTD. You can
suppress DTD-based validation, but you can't suppress other things that are
DTD-dependent, like entity definitions and default attribute expansion.
>
> (There's nothing about this problem that's specific to Java, incidentally,
or for that matter to XSLT. It's a pure XML parsing issue.)

I only thought it was a Java issue since I seem to be able to invoke
xsltproc without its downloading the DTD.

In any case, I followed the instructions (I think).

I'm now getting a slew of Java errors when I try to invoke it.

----------
here is the shell file containing `saxonb`

exec java -cp
/usr/share/java/xml-commons-resolver-1.1.jar:/usr/share/java/saxonb.jar
\
        -Dxml.catalog.files=/etc/xml/catalog \
        -Dxml.catalog.verbosity=1 \
        net.sf.saxon.Transform \
        -novw \
        -r org.apache.xml.resolver.tools.CatalogResolver \
        -x org.apache.xml.resolver.tools.ResolvingXMLReader \
        -y org.apache.xml.resolver.tools.ResolvingXMLReader "$@"
----------
Here is the contents of /etc/catalog

<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN"
  "file:///usr/share/xml/schema/xml-core/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<delegateURI
uriStartString="http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0
/"
catalog="file:///etc/xml/rarian-compat.xml"/>
<delegatePublic publicIdStartString="ISO 8879:1986//ENTITIES"
catalog="file:///etc/xml/sgml-data.xml"/>
<delegateSystem systemIdStartString="/usr/share/sgml/dtd/svg"
catalog="file:///etc/xml/sgml-data.xml"/>
<delegateSystem systemIdStartString="http://docbook.org/xml/";
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//ELEMENTS DocBook"
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="+//IDN faq.org//DTD Frequently
Asked Questions" catalog="file:///etc/xml/sgml-data.xml"/>
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML"
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegateSystem
systemIdStartString="http://www.w3.org/Graphics/SVG/1.1/";
catalog="file:///etc/xml/sgml-data.xml"/>
<delegateSystem systemIdStartString="/usr/share/sgml/dtd/qaml-xml.dtd"
catalog="file:///etc/xml/sgml-data.xml"/>
<delegatePublic publicIdStartString="-//GlobalTransCorp//DTD XML
Catalogs V1.0-Based Extension V1.0//EN"
catalog="file:///etc/xml/xml-core.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD CALS Table
Model XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//DTD XML Exchange Table
Model 19990315" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//ELEMENTS DocBk
XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//DTD XML Catalogs
V1.0//EN" catalog="file:///etc/xml/xml-core.xml"/>
<delegateSystem
systemIdStartString="http://globaltranscorp.org/oasis/catalog/xml/tr9401.dtd";
catalog="file:///etc/xml/xml-core.xml"/>
<delegatePublic publicIdStartString="-//W3C//DTD SVG"
catalog="file:///etc/xml/sgml-data.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD DocBook XML"
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegateSystem
systemIdStartString="http://www.oasis-open.org/committees/entity/release/1.0/
catalog.dtd"
catalog="file:///etc/xml/xml-core.xml"/>
<delegateSystem
systemIdStartString="http://xml.ascc.net/xml/resource/qaml-xml";
catalog="file:///etc/xml/sgml-data.xml"/>
<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook"
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegateSystem
systemIdStartString="http://www.w3.org/TR/2001/REC-SVG-20010904/";
catalog="file:///etc/xml/sgml-data.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//ENTITIES DocBk
XML" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Norman Walsh//DTD DocBk XML"
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//Normal Walsh//Exchange Table
Model 19960430" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="+//ISBN 82-7640-023//DTD
Frequently Asked Questions//EN"
catalog="file:///etc/xml/sgml-data.xml"/>
<delegateSystem
systemIdStartString="http://www.oasis-open.org/docbook/xml/";
catalog="file:///etc/xml/docbook-xml.xml"/>
<delegatePublic publicIdStartString="-//OASIS//DTD DocBook CALS Table
Model" catalog="file:///etc/xml/docbook-xml.xml"/>
<delegateSystem
systemIdStartString="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
catalog="file:///etc/xml/xhtml1-strict.dtd"/>
<delegatePublic publicIdStartString="-//W3C//DTD XHTML 1.0 Strict//EN"
catalog="file:///etc/xml/xhtml1-strict.dtd"/>
</catalog>

----------
Here is the invokation of the command and the error messages:

$ saxonb -ext:on -o foo.out -s foo.html -xsl:foo.xsl
java.lang.ArrayIndexOutOfBoundsException: 3
        at
org.apache.xml.resolver.readers.TextCatalogReader.nextToken(TextCatalogReader
.java:249)
        at
org.apache.xml.resolver.readers.TR9401CatalogReader.readCatalog(TR9401Catalog
Reader.java:81)
        at org.apache.xml.resolver.Catalog.parseCatalogFile(Catalog.java:861)
        at
org.apache.xml.resolver.Catalog.parsePendingCatalogs(Catalog.java:757)
        at org.apache.xml.resolver.Catalog.parseCatalog(Catalog.java:605)
        at
org.apache.xml.resolver.Catalog.resolveLocalSystem(Catalog.java:1829)
        at org.apache.xml.resolver.Catalog.resolveSystem(Catalog.java:1704)
        at
org.apache.xml.resolver.tools.CatalogResolver.getResolvedEntity(CatalogResolv
er.java:131)
        at
org.apache.xml.resolver.tools.ResolvingXMLFilter.resolveEntity(ResolvingXMLFi
lter.java:173)
        at
com.sun.org.apache.xerces.internal.util.EntityResolverWrapper.resolveEntity(E
ntityResolverWrapper.java:110)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntityAsPerSt
ax(XMLEntityManager.java:995)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.disp
atch(XMLDocumentScannerImpl.java:1167)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next
(XMLDocumentScannerImpl.java:1065)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.n
ext(XMLDocumentScannerImpl.java:978)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocume
ntScannerImpl.java:625)
        at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDo
cumentScannerImpl.java:116)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDo
cument(XMLDocumentFragmentScannerImpl.java:488)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Conf
iguration.java:812)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Conf
iguration.java:741)
        at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123
)
        at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSA
XParser.java:1208)
        at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAX
ParserImpl.java:525)
        at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
        at
org.apache.xml.resolver.tools.ResolvingXMLFilter.parse(ResolvingXMLFilter.jav
a:141)
        at net.sf.saxon.event.Sender.sendSAXSource(Unknown Source)
        at net.sf.saxon.event.Sender.send(Unknown Source)
        at net.sf.saxon.event.Sender.send(Unknown Source)
        at net.sf.saxon.Controller.transform(Unknown Source)
        at net.sf.saxon.Transform.processFile(Unknown Source)
        at net.sf.saxon.Transform.doTransform(Unknown Source)
        at net.sf.saxon.Transform.main(Unknown Source)
Fatal error during transformation: java.lang.ArrayIndexOutOfBoundsException:
3

The same file, run through xsltproc, generates no errors.

Any suggestions?

- Evan

Current Thread