Bug#552018: libxml-commons-resolver1.1-java: fails to find entries in some catalogs
Daniel Leidert
daniel.leidert at wgdd.de
Fri Oct 23 08:27:37 UTC 2009
Am Donnerstag, den 22.10.2009, 17:40 +0000 schrieb brian m. carlson:
> libxml-commons-resolver1.1-java is unable to look up some catalog
> entries on a Debian system. With docbook-xsl-ns and docbook5-xml,
> xmlcatalog (part of libxml2) responds as follows:
>
> lakeview ok % (unset XML_CATALOG_FILES; xmlcatalog --shell)
> > system http://docbook.sourceforge.net/release/xsl-ns/current/xhtml/docbook.xsl
> file:///usr/share/xml/docbook/stylesheet/docbook-xsl-ns/xhtml/docbook.xsl
> > system http://docbook.org/xml/5.0/rng/docbook.rng
> file:///usr/share/xml/docbook/schema/rng/5.0/docbook.rng
> > %
>
> This is correct. Using this package:
>
> lakeview ok % java
> -cp /usr/share/java/xml-commons-resolver-1.1.jar:/etc/xml/resolver
> org.apache.xml.resolver.apps.resolver -s
> http://docbook.sourceforge.net/release/xsl-ns/current/xhtml/docbook.xsl system
This happens for both docbook-xsl and docbook-xsl-ns. In both cases,
using the above command, but with "... -u ...URI... uri" works.
I raised verbosity (BTW: shouldn't `-d xx' overwrite the verbosity value
from CatalogManager.properties? This looks like a bug to me.) and found
the following:
Using the plain /etc/xml/catalog catalog results in
> [..]
> DELEGATE_PUBLIC: -//OASIS//DTD DocBook CALS Table Model
> file:/etc/xml/docbook-xml.xml
> Resolve SYSTEM (systemid):
> system id: http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
> resolveSystem(http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl)
> Result: null
Note, that it did not find a catalog for the requested system ID! Now
commenting out the related delegateURI entry in /etc/xml/catalog and
trying the command again, results in:
> [..]
> DELEGATE_PUBLIC: -//OASIS//DTD DocBook CALS Table Model
> file:/etc/xml/docbook-xml.xml
> Resolve SYSTEM (systemid):
> system id: http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl
> resolveSystem(http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl)
> Switching to delegated catalog(s):
> file:/etc/xml/docbook-xsl-ns.xml
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Parse catalog: file:/etc/xml/docbook-xsl-ns.xml
> Loading catalog: file:/etc/xml/docbook-xsl-ns.xml
> Default BASE: file:/etc/xml/docbook-xsl-ns.xml
> delegateURI: http://docbook.sourceforge.net/release/xsl-ns/
> file:///usr/share/xml/docbook/stylesheet/docbook-xsl-ns/catalog.xml
> DELEGATE_URI: http://docbook.sourceforge.net/release/xsl-ns/
> file:/usr/share/xml/docbook/stylesheet/docbook-xsl-ns/catalog.xml
> delegateSystem: http://docbook.sourceforge.net/release/xsl-ns/
> file:///usr/share/xml/docbook/stylesheet/docbook-xsl-ns/catalog.xml
> DELEGATE_SYSTEM: http://docbook.sourceforge.net/release/xsl-ns/
> file:/usr/share/xml/docbook/stylesheet/docbook-xsl-ns/catalog.xml
> resolveSystem(http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl)
> Result: null
This time it found the correct catalog to delegate the request, but
still missed to rewrite the system ID. Now commenting out the
delegateURI entry in /etc/xml/docbook-xsl-ns.xml, the correct location
is finally found:
[..]
> resolveSystem(http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl)
> Result: file:/usr/share/xml/docbook/stylesheet/docbook-xsl-ns/html/docbook.xsl
The problem seems to be, that for the URI two entries exist: delegateURI
and delegateSystem. However, using `-u ... uri' and `-s ... system' are
explicit enough to not get confused by the same URL being registered as
an URL and System ID entry in the catalog. This looks like a bug in the
commons resolver to me, but I don't have the catalog spec in mind atm.
Regards, Daniel
More information about the pkg-java-maintainers
mailing list