OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Saxon and XML Catalogs


Hi again -

I'm having difficulty convincing Xerces and Saxon to not try to access the 
DocBook DTD on oasis-open.org when it does a build.  I'm using the XML 
Catalog, and the verbose output implies it'd use the local copy for the 
actual validation (I don't know yet), but it still accesses the network to 
resolve the system URL specified in the XML file.

I expected it to never access the network, because the catalog resolves 
the public DTD URL locally.  I need it to not access the network at all. 
Am I misunderstanding a principle, or is this what's supposed to happen?

I'm using Java 1.4.2 (and testing with 1.5.0_06 as well), Xerces 2.8.0, 
Saxon 6.5.5.

I'm confident my classpath is set correctly.  The appropriate classes are 
being loaded, and CatalogManager.properties is being recognized.  I can 
adjust the verbosity property to get debugging output from the resolver.

My files are organized about like this (paths simplified):

/docbook/schemas/docbook-4.4/catalog.xml
/docbook/schemas/docbook-4.4/docbook.cat
/docbook/schemas/docbook-4.4/...
/docbook/tools/CatalogManager.properties
/project/mybook.xml
/templates/mytemplate.xsl

CatalogManager.properties reads as follows:
  - - 
catalogs=../schemas/docbook4-4/catalog.xml;../schemas/docbook-4.4/docbook.cat
relative-catalogs=false
static-catalog=true
verbosity=4
  - -

My args to Saxon:

-x org.apache.xml.resolver.tools.ResolvingXMLReader
-y org.apache.xml.resolver.tools.ResolvingXMLReader
-r org.apache.xml.resolver.tools.CatalogResolver
-u

(Without the -u I don't get the word "override" in my debug output, so I 
assume it's needed, but I don't understand why.)

mybook.xml begins as follows:
  - -
<?xml version="1.0" standalone="no"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
      "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"; 
>
<book id="TestBookOne">
  ...
  - -

The verbosity=4 output is as follows (paths simplified, output shortened):
  - -
Parse catalog: file:/docbook/schemas/docbook-4.4/docbook.cat
Loading catalog: file:/docbook/schemas/docbook-4.4/docbook.cat
Default BASE: file:/docbook/schemas/docbook-4.4/docbook.cat
override: yes
OVERRIDE: yes
public: -//OASIS//DTD DocBook XML V4.4//EN
         docbookx.dtd
PUBLIC: -//OASIS//DTD DocBook XML V4.4//EN
         file:/docbook/schemas/docbook-4.4/docbookx.dtd
system: http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd
         docbookx.dtd
SYSTEM: http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd
         file:/docbook/schemas/docbook-4.4/docbookx.dtd
system: http://docbook.org/xml/4.4/docbookx.dtd
         docbookx.dtd
SYSTEM: http://docbook.org/xml/4.4/docbookx.dtd
         file:/docbook/schemas/docbook-4.4/docbookx.dtd
public: -//OASIS//DTD DocBook CALS Table Model V4.4//EN
         calstblx.dtd
PUBLIC: -//OASIS//DTD DocBook CALS Table Model V4.4//EN
         file:/docbook/schemas/docbook-4.4/calstblx.dtd
public: -//OASIS//ELEMENTS DocBook XML HTML Tables V4.4//EN
         htmltblx.mod
PUBLIC: -//OASIS//ELEMENTS DocBook XML HTML Tables V4.4//EN
         file:/docbook/schemas/docbook-4.4/htmltblx.mod
[...]
public: ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML
         ent/isocyr2.ent
PUBLIC: ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML
         file:/docbook/schemas/docbook-4.4/ent/isocyr2.ent
resolveURI(file:/project/mybook.xml)
Parse catalog: file:/docbook/schemas/docbook-4.4/docbook.cat
Loading catalog: file:/docbook/schemas/docbook-4.4/docbook.cat
Default BASE: file:/docbook/schemas/docbook-4.4/docbook.cat
PUBLIC: -//OASIS//DTD DocBook XML V4.4//EN
         file:/docbook/schemas/docbook-4.4/docbookx.dtd
PUBLIC: -//OASIS//DTD DocBook CALS Table Model V4.4//EN
         file:/docbook/schemas/docbook-4.4/calstblx.dtd
[...]
resolveURI(file:/project/mybook.xml)
Resolved URI: file:/project/mybook.xml
         file:/project/mybook.xml
resolveURI(file:/templates/mytemplate.xsl)
resolveURI(file:/templates/mytemplate.xsl)
Resolved URI: 
file:/templates/mytemplate.xsl
         file:/templates/mytemplate.xsl
resolveSystem(http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd)
resolveSystem(http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd)
resolvePublic(-//OASIS//DTD DocBook 
V4.4//EN,http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd)
resolvePublic(-//OASIS//DTD DocBook 
V4.4//EN,http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd)
  - -

I know it is going to the network for the DTD every time it builds a file 
because I can change the oasis-open.org URL to a localhost URL on a port 
listening for HTTP requests, and I see them happen with my listener.  My 
listener returns a success code but no other data, and the build still 
succeeds.  If I cause the network access to fail, such as by using the 
original DTD URL and unplugging the network cable, or by using the 
localhost URL and shutting down my listener app, the build fails.

Thanks for any assistance you can provide!

-- Dan



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]