p. 89, document type definition (DTD)
The definition given refers to the DOCTYPE declaration. This is one of the
things that confuses people about SGML, but a DTD and a DOCTYPE declaration
are not the same thing, though there is some interaction between them.
A DTD is a collection of declarations (entity, element, attribute, link, map,
etc.) in SGML syntax that defines the components and structures available for
a class (type) of documents. How this collection of material is assembled is
not defined by the standard (e.g., it may be one file or several); as the
standard indicates (4.105) there may even be things in a DTD that are only
implicit, such as the semantics of names. In common usage, a DTD is not part
of what is thought of as an SGML instance (which is typically another file or
collection of tiles). An SGML processor (e.g., parser, editor, HTML user
agent) can, of course, interact only with the explicit declarations, not the
implied semantics. If it chooses to incorporate a set of semantics (as do HTML
user agents), that is generally dependent on the presence of a narrative
specification such as the draft in question.
A DOCTYPE declaration, in contrast, is typically used in an instance document
(1) to refer to an external DTD and (2) to add additional declarations (e.g.,
entities for graphics files needed by that instance) in its declaration
subset. A DOCTYPE declaration in not required in all instance documents; it
may be defaulted (as in the case of the typical HTML instance). The DOCTYPE
declaration in an instance is used in many cases to tell a processor what
rules to process by. The DOCTYPE declaration has been described as a
"self-invoking entity declaration": that is, it names the entity that contains
the DTD (or at least the top level of it) and then makes an implicit
includsion of that entity into the instance.
It is, of course, possible, to have a unitary SGML document entity in which
there is an instance is preceded by its DTD, which is in this case wrapped in
the declaration subset of a DOCTYPE declaration.
p. 90, SGML
The full name is probably best rendered "ISO 8879:1986 Information
processing—Text and Office Systems—Standard Generalized Markup
Language (SGML)"
(This is a corrected text for the cover of the standard. The original had ISO
8879-1986, but the "-" was an error; it should have been ":". Most modern SGML
parsers will accept either form in an SGML DECLARATION.)
(This is not to be included in the draft, but just to explain that name: The
old ISO committee structure under which SGML was published was Technical
Committee 97, Information Processing; Subcommitte 18, Text and Office Systems;
Working Group 8, Text Description and Processing Languages. The current
structure is ISO/IEC Joint Technical Committee 1, Information Technology;
Subcommittee 18, Document Processing and Related Communication; Working Group
8, Document Description and Processing Languages. Reduced to ISO alphabet
soup, that's ISO/IEC JTC1/SC18/WG8.)
Dr. James D. Mason
(WG8 Convenor)
Oak Ridge National Laboratory
Information Management Services
Bldg. 2506, M.S. 6302, P.O. Box 2008
Oak Ridge, TN 37831-6302 U.S.A.
Telephone: +1 615 574-6973
Facsimile: + 1 615 574-6983
Network: masonjd @ ornl.gov