|
|||||
Entity manager: built-in | |||||
Prerequisite Concepts | Related Syntax |
When OmniMark encounters a reference to an external text entity (that is, one that can contain SGML markup), its built-in entity manager tries to find a system identifier for the entity. It first looks in the entity's declaration. If there is no system identifier in the declaration but there is a public identifier, it looks up the public identifier in the OmniMark program's library
rules, and uses the system identifier found there, if any. Once it has a system identifier, the entity manager tries to use it as the name of a file, using each of the "-libpath" strings from the command line as it prefixes (in the order given) in the process. Once it finds a file on the system on which OmniMark is running, it uses the text of that file as the entity. If the entity manager cannot find a system identifier, cannot find a file with the system identifier as its name, or finds that the file is unreadable, it stops the OmniMark program with an appropriate message.
An additional provision is made by OmniMark's built-in entity manager for "anonymous" entities referred to by public identifiers in the SGML Declaration, to avoid requiring all users to provide definitions for these entities. Some character sets and concrete syntax are "built-in" to OmniMark (in particular, those described in the SGML standard, ISO 8879). Unrecognized character sets and capacity sets are given default values. In particular, if one of these public identifiers is not mapped to a system identifier by a library
rule, the built-in entity manager will do the following:
When a file is found, the built-in entity manager passes the text of that file to the SGML parser unmodified (except possibly changing the newline sequences in the text file to the RS/RE sequences expected by the SGML parser).
In other words, OmniMark's built-in entity manager assumes that a file identified by an external text entity contains the text of that entity. In particular, it is assumed that no conversion or other processing of the text is required. This is an appropriate assumption; most text files that are subjects of an entity reference from within an SGML document will themselves be coded in SGML.
Prerequisite Concepts Entities XML/SGML entity managers |
Related Syntax library |
---- |