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" 
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";>

'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 
http://www.oasis-open.org/docbook/xml/4.5/docbook-xml-4.5.zip
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
(http://www.sagehill.net/docbookxsl/ToolsSetup.html#FindDTD)

<public publicId="-//OASIS//DTD DocBook XML V4.5//EN"
        uri="c:/msys/share/xml/docbook/4.5/docbookx.dtd"/>

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

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


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
'c:/msys/share/.../docbookx.dtd'.

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/
docbook/xml/4.5/docbookx.dtd"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";>
                                                           ^
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]