built-in shelf
#library
is a built-in stream
shelf that starts out with one item for each entry in
every library
rule in the OmniMark program, or in a -library
file at
run-time. The key of each item is a public identifier, and the value of each item is the corresponding system
identifier.
The #library
shelf is initialized from the -library
specifications on the
command line only if, somewhere in the OmniMark program, there is some action that initiates SGML or XML parsing
(i.e. a do sgml-parse
or do xml-parse
action). If there is no such markup parsing
action, the -library
command-line arguments are ignored. However, if there are any
library
rules in an OmniMark program, they are always used to initialize the #library
shelf.
The default current item of the #library
shelf is the lastmost item, as is the case with
programmer-declared shelves.
One of the main uses of the #library
stream is shown by the way the %epq
and %epv
format items are interpreted. For example, %epq
does a keyed lookup of the entity's public identifier on
the #library
shelf to map the public identifier to a system identifier.
If the OmniMark program contains no external-text-entity
rules, any change made to
the #library
stream also determines how OmniMark's built-in entity manager interprets public
identifiers in referenced external text entities.