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