External text entities: SGML declaration defaults

If no external-text-entity rule fires to process an entity associated with a public identifier in the SGML declaration, and the public identifier is one of those in the following list, then OmniMark provides the entity text corresponding to the meaning of the public identifier, as defined in the SGML standard:

  ISO 8879-1986//SYNTAX Reference//EN
  ISO 8879-1986//SYNTAX Core//EN
  ISO 8879-1986//SYNTAX Multicode Basic//EN
  ISO 8879-1986//SYNTAX Multicode Core//EN
  ISO 8879:1986//SYNTAX Reference//EN
  ISO 8879:1986//SYNTAX Core//EN
  ISO 8879:1986//SYNTAX Multicode Basic//EN
  ISO 8879:1986//SYNTAX Multicode Core//EN

In addition, any capacity set public identifier is accepted and matched with the reference capacity set values (all 35000).

All three character sets are given the same definition: that of the IRV of ISO 646. The concrete syntaxes with colons in their names are given the same definitions as those in the SGML standard with dashes.

The #libvalue stream starts out with one item for each of the public identifiers listed above. The key of each item is the public identifier, and the value of each item is the corresponding replacement text: a character set definition for each of the CHARSET public identifiers, and a concrete syntax definition for each of the SYNTAX public identifiers. The #libvalue stream is used by OmniMark to get these text values, so if the OmniMark program changes the #libvalue stream, those changes are reflected in how the SGML declaration, in particular, is processed.

The values of the #libvalue stream items must conform to the use that is made of the corresponding identifier. In particular, a public identifier for a capacity set or concrete syntax used in the SGML declaration must have a value that is in the same format as the explicitly described capacity set or concrete syntax that could have been coded in its place in the SGML declaration.

Prerequisite Concepts