Why no support for SYSTEM entries in SGML catalog files?

Michael Smith <[email protected]>
Newsgroups gmane.emacs.psgml.devel
Message-ID <[email protected]>
Yesterday I discovered that PSGML does not support catalog
resolution for a system ID in a document that has a doctype
declaration that lacks a public ID, like this:

  <!DOCTYPE article SYSTEM "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

I found that if I open file a with the above doctype in PSGML, and
I do a C-c C-p (sgml-parse-prolog), I will get an error message saying:

  External entity article not found

So I looked at the code for the sgml-parse-catalog-buffer function
in psgml-parse.el, and I found that there is no logic in PSGML for
parsing SYSTEM entries from SGML catalogs. Why?

Note that I'm not taking about the problem of PSGML having any way
to retrieve the file remotely via HTTP. The case here is that I
have a catalog file that includes a SYSTEM entry that maps the
above system identifier to a local path, like this:

  SYSTEM "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" "/usr/share/xml/docbook/schema/dtd/4.1.2/docbookx.dtd"

And I have added the path to that catalog file to the value of the
SGML_CATALOG_FILES environment variable.

If I feed the same file to nsgmls/sgmls, nsgmls/sgmls correctly
resolves the system identifier as expected, and uses the file
/usr/share/xml/docbook/schema/dtd/4.1.2/docbookx.dtd to validate
the document.

So why isn't PSGML designed to do the same thing? Is there some
rationale for ignoring SYSTEM entries when parsing catalog files?

  --Mike

-- 
Michael Smith
http://logopoeia.com/  http://www.oreillynet.com/pub/au/890
smime.p7s (application/x-pkcs7-signature, 2.4 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.