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.