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: Fall back to network DTD if local one not found

Hello All,

I have an XML document with the following DOCTYPE:

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 

'xmllint  --valid --noout book2.xml' takes a while, and it
does not care that I renamed the directory where the local DTD
is kept,  and adding --nonet causes it to fail to load the external entity
http://.../docbookx.dtd, so I know it is fetching the network DTD.

I copied the catalog.xml that is included in 
to my project directory. I edited it as follows, according to the 
example at Bob Stayton's tutorial (XML catalog to locate the DTD) at

<public publicId="-//OASIS//DTD DocBook XML V4.5//EN"

<group id="DocbookDTD" prefer="public">
<!-- path to local DTD -->
<system systemId="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";

<!-- path to local DTD -->
<system systemId="http://docbook.org/xml/4.5/docbookx.dtd";

I can then 'set SGML_CATALOG_FILES=catalog.xml'

'xmllint --catalogs --valid --noout book2.xml' executes quickly,
and still succeeds when --nonet is added, so I know that
'http://www.oasis-open.org/.../docbookx.dtd' is being mapped to

However, if I rename the local folder, the same command line
above fails:

C:\msys\tmp\book>xmllint  --catalogs --valid --noout book2.xml
book2.xml:3: warning: failed to load external entity "http://www.oasis-open.org/
book2.xml:5: validity error : Validation failed: no DTD found !
<book lang="en">

Clearly, it is not trying to access the network DTD. My connection
is working, otherwise I couldn't post this message.

How can I get it to try the local DTD first, and then the network DTD
if it fails?

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