[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ next ]

# SGML Entity Management
Chapter 2 - Proposed mapping of public identifiers to system identifiers

SGML can refer to an external file (really an entity) with an external identifier: this is a public identifier or a system identifier, or both.

A typical public identifier looks like

         	  PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN"

where `ISO 8879-1986` is the owner, `ENTITIES` is the text class and `Added Latin 1` is the text description, and `EN` is language.

A system identifier looks like

         	  SYSTEM "htmlplus.dtd"

where `htmlplus.dtd` is a system-specific identifier.

To map external identifiers to file names, one should first try the system identifier, as a file name, and then search entity catalog files and then search the list of file names derived from the public identifier. The catalog format is according to SGML/Opens resolution on entity management. The catalog consists of a series of entries and comments. A comment is delimited by `--` like in a markup declaration.

The fallback derivation of the file name is modelled after the `sgmls` environment variable SGML_PATH, and Emacs `psgml` mode's sgml-public-map variable. There does not seem to be any official standards (this is left to the implementation), so this standard is simply an abstraction of real-world practice of SGML tools, and shall now be the standard for Debian systems, since this is the convention currently followed by all applications currently in Debian.

Contiguous white space is compacted to a single space and replaced with an underscore (`_`); the characters `/` to `%` are also replaced with `_`. The text class is down-cased. The language specifier (i.e., `//EN`) and anything following it should be removed.

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ next ]

SGML Entity Management