|
Packit |
8a864e |
|
|
Packit |
8a864e |
<HTML>
|
|
Packit |
8a864e |
<HEAD>
|
|
Packit |
8a864e |
<TITLE>OpenSP - System identifiers</TITLE>
|
|
Packit |
8a864e |
</HEAD>
|
|
Packit |
8a864e |
<BODY>
|
|
Packit |
8a864e |
System identifiers
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
There are two kinds of system identifier: formal system identifiers
|
|
Packit |
8a864e |
and simple system identifiers. A system identifier that does not
|
|
Packit |
8a864e |
start with <SAMP><</SAMP> will always be interpreted as a simple
|
|
Packit |
8a864e |
system identifier. A simple system identifier will always be
|
|
Packit |
8a864e |
interpreted either as a filename or as a URL.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Formal system identifiers
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Formal system identifiers are based on the
|
|
Packit |
8a864e |
System Identifier facility defined in ISO/IEC 10744 (HyTime) Technical
|
|
Packit |
8a864e |
Corrigendum 1, Annex D.
|
|
Packit |
8a864e |
A system identifier that is a formal system
|
|
Packit |
8a864e |
identifier consists of a sequence of one or more storage object
|
|
Packit |
8a864e |
specifications. The objects specified by the storage object
|
|
Packit |
8a864e |
specifications are concatenated to form the entity. A storage object
|
|
Packit |
8a864e |
specification consists of an SGML start-tag in the reference concrete
|
|
Packit |
8a864e |
syntax followed by character data content. The generic identifier of
|
|
Packit |
8a864e |
the start-tag is the name of a storage manager. The content is a
|
|
Packit |
8a864e |
storage object identifier which identifies the storage object in a
|
|
Packit |
8a864e |
manner dependent on the storage manager. The start-tag can also
|
|
Packit |
8a864e |
specify attributes giving additional information about the storage
|
|
Packit |
8a864e |
object. Numeric character references are recognized in storage object
|
|
Packit |
8a864e |
identifiers and attribute value literals in the start-tag. Record
|
|
Packit |
8a864e |
ends are ignored in the storage object identifier as with SGML. A
|
|
Packit |
8a864e |
system identifier will be interpreted as a formal system identifier if
|
|
Packit |
8a864e |
it starts with a <SAMP><</SAMP> followed by a storage manager name,
|
|
Packit |
8a864e |
followed by either <SAMP>></SAMP> or white-space; otherwise it will be
|
|
Packit |
8a864e |
interpreted as a simple system identifier. A storage object
|
|
Packit |
8a864e |
identifier extends until the end of the system identifier or until the
|
|
Packit |
8a864e |
first occurrence of <SAMP><</SAMP> followed by a storage manager
|
|
Packit |
8a864e |
name, followed by either <SAMP>></SAMP> or white-space.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The following storage managers are available:
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>osfile</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The storage object identifier is a filename. If the filename is
|
|
Packit |
8a864e |
relative it is resolved using a base filename. Normally the base
|
|
Packit |
8a864e |
filename is the name of the file in which the storage object
|
|
Packit |
8a864e |
identifier was specified, but this can be changed using the
|
|
Packit |
8a864e |
<SAMP>base</SAMP> attribute. The filename will be searched for first
|
|
Packit |
8a864e |
in the directory of the base filename. If it is not found there, then
|
|
Packit |
8a864e |
it will be searched for in directories specified with the
|
|
Packit |
8a864e |
<SAMP>-D</SAMP> option in the order in which they were specified on
|
|
Packit |
8a864e |
the command line, and then in the list of directories specified by the
|
|
Packit |
8a864e |
environment variable <SAMP>SGML_SEARCH_PATH</SAMP>. The list
|
|
Packit |
8a864e |
is separated by colons under Unix and by semi-colons under MSDOS.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>osfd</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The storage object identifier is an integer specifying a file
|
|
Packit |
8a864e |
descriptor. Thus a system identifier of <SAMP><osfd>0</SAMP> will
|
|
Packit |
8a864e |
refer to the standard input (STDIN ), 1 to standard output
|
|
Packit |
8a864e |
(STDOUT ), and 2 to standard error
|
|
Packit |
8a864e |
(STDERR ). Arbitrary file descriptors may be used so you
|
|
Packit |
8a864e |
could say <samp><osfd>3</samp> to get an extra input or output
|
|
Packit |
8a864e |
stream independant of the usual three. This is useful, e.g., for
|
|
Packit |
8a864e |
generating catalog entries or SGML declarations on the fly. You can
|
|
Packit |
8a864e |
use an osfd storage object anywhere you can use a sysid, including on
|
|
Packit |
8a864e |
the command line.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>url</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The storage object identifier is a URL. Only the <SAMP>http</SAMP>
|
|
Packit |
8a864e |
scheme is currently supported and not on all systems.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>neutral</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The storage manager is the storage manager of storage object in which
|
|
Packit |
8a864e |
the system identifier was specified (the underlying storage
|
|
Packit |
8a864e |
manager). However if the underlying storage manager does not
|
|
Packit |
8a864e |
support named storage objects (ie it is <SAMP>osfd</SAMP>), then the
|
|
Packit |
8a864e |
storage manager will be <SAMP>osfile</SAMP>. The storage object
|
|
Packit |
8a864e |
identifier is treated as a relative, hierarchical name separated by
|
|
Packit |
8a864e |
slashes (<SAMP>/</SAMP>) and will be transformed as appropriate for
|
|
Packit |
8a864e |
the underlying storage manager.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>literal</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The bit combinations of the storage object identifier are
|
|
Packit |
8a864e |
the contents of the storage object.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The following attributes are supported:
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>records</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
This describes how records are delimited in the storage object:
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>cr</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Records are terminated by a carriage return.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>lf</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Records are terminated by a line feed.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>crlf</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Records are terminated by a carriage return followed by a line feed.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>find</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Records are terminated by whichever of
|
|
Packit |
8a864e |
<SAMP>cr</SAMP>,
|
|
Packit |
8a864e |
<SAMP>lf</SAMP>
|
|
Packit |
8a864e |
or
|
|
Packit |
8a864e |
<SAMP>crlf</SAMP>
|
|
Packit |
8a864e |
is first encountered in the storage object.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>asis</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
No recognition of records is performed.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The default is <SAMP>find</SAMP> except for NDATA entities for which
|
|
Packit |
8a864e |
the default is <SAMP>asis</SAMP>. This attribute is not applicable to
|
|
Packit |
8a864e |
the <SAMP>literal</SAMP> storage manager.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
When records are recognized in a storage object, a record start is
|
|
Packit |
8a864e |
inserted at the beginning of each record, and a record end at the end
|
|
Packit |
8a864e |
of each record. If there is a partial record (a record that doesn't
|
|
Packit |
8a864e |
end with the record terminator) at the end of the entity, then a
|
|
Packit |
8a864e |
record start will be inserted before it but no record end will be
|
|
Packit |
8a864e |
inserted after it.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The attribute name and <SAMP>=</SAMP> can be omitted for this attribute.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>zapeof</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
This specifies whether a Control-Z character that occurs as the final byte
|
|
Packit |
8a864e |
in the storage object should be stripped.
|
|
Packit |
8a864e |
The following values are allowed:
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>zapeof</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
A final Control-Z should be stripped.
|
|
Packit |
8a864e |
<SAMP>nozapeof</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
A final Control-Z should not be stripped.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The default is <SAMP>zapeof</SAMP> except for NDATA entities, entities
|
|
Packit |
8a864e |
declared in storage objects with <SAMP>zapeof=nozapeof</SAMP> and
|
|
Packit |
8a864e |
storage objects with <SAMP>records=asis</SAMP>. This attribute is not
|
|
Packit |
8a864e |
applicable to the <SAMP>literal</SAMP> storage manager.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The attribute name and <SAMP>=</SAMP> can be omitted for this
|
|
Packit |
8a864e |
attribute.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>encoding</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The encoding attribute specifies the encoding of the storage object.
|
|
Packit |
8a864e |
This attribute is used when the encoding is independent of the
|
|
Packit |
8a864e |
document character set.
|
|
Packit |
8a864e |
The value must be the name of an encoding.
|
|
Packit |
8a864e |
This attribute is not applicable to the
|
|
Packit |
8a864e |
<SAMP>literal</SAMP> storage manager.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>bctf</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The BCTF attribute specifies that the encoding of the storage
|
|
Packit |
8a864e |
object.
|
|
Packit |
8a864e |
This attribute is used when the encoding is
|
|
Packit |
8a864e |
document character set dependent.
|
|
Packit |
8a864e |
The value must be the name of a BCTF.
|
|
Packit |
8a864e |
This attribute is not applicable to the
|
|
Packit |
8a864e |
<SAMP>literal</SAMP> storage manager.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>tracking</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
This specifies whether line boundaries should be tracked for this
|
|
Packit |
8a864e |
object: a value of <SAMP>track</SAMP> specifies that they should; a
|
|
Packit |
8a864e |
value of <SAMP>notrack</SAMP> specifies that they should not. The
|
|
Packit |
8a864e |
default value is <SAMP>track</SAMP>. Keeping track of where line
|
|
Packit |
8a864e |
boundaries occur in a storage object requires approximately one byte
|
|
Packit |
8a864e |
of storage per line and it may be desirable to disable this for very
|
|
Packit |
8a864e |
large storage objects.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The attribute name and
|
|
Packit |
8a864e |
<SAMP>=</SAMP>
|
|
Packit |
8a864e |
can be omitted for this attribute.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>base</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
When the storage object identifier specified in the content of the
|
|
Packit |
8a864e |
storage object specification is relative, this specifies the base
|
|
Packit |
8a864e |
storage object identifier relative to which that storage object
|
|
Packit |
8a864e |
identifier should be resolved.
|
|
Packit |
8a864e |
When not specified a storage object identifier is interpreted
|
|
Packit |
8a864e |
relative to the storage object in which it is specified,
|
|
Packit |
8a864e |
provided that this has the same storage manager.
|
|
Packit |
8a864e |
This applies both to system identifiers specified in SGML
|
|
Packit |
8a864e |
documents and to system identifiers specified in the catalog entry
|
|
Packit |
8a864e |
files.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>smcrd</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The value is a single character that will be recognized in storage
|
|
Packit |
8a864e |
object identifiers (both in the content of storage object
|
|
Packit |
8a864e |
specifications and in the value of <SAMP>base</SAMP> attributes) as a
|
|
Packit |
8a864e |
storage manager character reference delimiter when followed by a
|
|
Packit |
8a864e |
digit. A storage manager character reference is like an SGML numeric
|
|
Packit |
8a864e |
character reference except that the number is interpreted as a
|
|
Packit |
8a864e |
character number in the inherent character set of the storage manager
|
|
Packit |
8a864e |
rather than the document character set. The default is for no
|
|
Packit |
8a864e |
character to be recognized as a storage manager character reference
|
|
Packit |
8a864e |
delimiter. Numeric character references cannot be used to prevent
|
|
Packit |
8a864e |
recognition of storage manager character reference delimiters.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>fold</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
This applies only to the <SAMP>neutral</SAMP> storage manager. It
|
|
Packit |
8a864e |
specifies whether the storage object identifier should be folded to
|
|
Packit |
8a864e |
the customary case of the underlying storage manager if storage object
|
|
Packit |
8a864e |
identifiers for the underlying storage manager are case sensitive.
|
|
Packit |
8a864e |
The following values are allowed:
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>fold</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The storage object identifier will be folded.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
<SAMP>nofold</SAMP>
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The storage object identifier will not be folded.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
The default value is <SAMP>fold</SAMP>. The attribute name and
|
|
Packit |
8a864e |
<SAMP>=</SAMP> can be omitted for this attribute.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
For example, on Unix filenames are case-sensitive and the customary
|
|
Packit |
8a864e |
case is lower-case. So if the underlying storage manager were
|
|
Packit |
8a864e |
<SAMP>osfile</SAMP> and the system was a Unix system, then
|
|
Packit |
8a864e |
<SAMP><neutral>FOO.SGM</SAMP> would be equivalent to
|
|
Packit |
8a864e |
<SAMP><osfile>foo.sgm</SAMP>.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Simple system identfiers
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
A simple system identifier is interpreted as a storage object
|
|
Packit |
8a864e |
identifier with a storage manager that depends on where the system
|
|
Packit |
8a864e |
identifier was specified: if it was specified in a storage object
|
|
Packit |
8a864e |
whose storage manager was <SAMP>url</SAMP> or if the system identifier
|
|
Packit |
8a864e |
looks like an absolute URL in a supported scheme, the storage manager
|
|
Packit |
8a864e |
will be <SAMP>url</SAMP>; otherwise the storage manager will be
|
|
Packit |
8a864e |
<SAMP>osfile</SAMP>. The storage manager attributes are defaulted as
|
|
Packit |
8a864e |
for a formal system identifier. Numeric character references are not
|
|
Packit |
8a864e |
recognized in simple system identifiers.
|
|
Packit |
8a864e |
</BODY>
|
|
Packit |
8a864e |
</HTML>
|