NOT the comp.text.sgml FAQ
Subject: NOT the comp.text.sgml FAQ
Author: Joe English <email@example.com>
Posting-Date: 1 April 1999
Not the comp.text.sgml Frequently Asked Questions List
Copyright (C) 1997, 1999 Joe English. All rights reserved. There are
lots of wrongs in this document, and those are all reserved too.
Author bears no responsibility for any other reservations you might
have. Standard disclaimers apply. For external use only. If
irritation, rash, or swelling occurs, discontinue use immediately.
Void where prohibited.
Part 1. Administrivia.
Q. Is there a FAQ for this newsgroup?
A. Yes. This is not it.
Q. In the real FAQ, how come all the answers just point to
<URL: http://www.oasis-open.org/cover/ >?
A. If you've ever tried to get more than four SGML experts to agree
on the answer to _any_ question, you'd understand. The only thing
that every expert agrees on is that Robin Cover's web site
is the best source of SGML information available anywhere;
that in itself is pretty amazing.
Q. I sent in an update to this FAQ last year, but my question
didn't show up in this edition. What's the deal?
A. I can't find my notes :-(. Sorry about that.
Part 2. SGML, HTML, and XML.
Q: In what way is XML simpler than SGML?
A: Nearly everyone who has ever adopted an SGML-based system
will agree that the hardest part of the project is the initial
set-up. This process often requires highly-paid consultants, who
spend weeks or even months analyzing requirements in order
to write a DTD, or sometimes simply to select an existing one and
tailor it to the customer's needs.
Since XML does not require DTDs, it is hoped that companies
who adopt XML instead of full SGML can skip this expensive and
Q: Why did XML become popular so quickly, while SGML still doesn't
have much visibility?
A: I suspect that it's because XML has an "X" in its name,
so it sounds a lot cooler.
Q. How do I make a transparent background image?
A. That's more of an HTML/Web question than an SGML question.
Q. How do I make a link that loads two frames at the same time?
A. Try asking in comp.infosystems.www.authoring.*, down
the hall, second newsgroup on the right.
Q. How do I make a borderless centered blinking table in a frame?
A. Ask in the *Web* newsgroups, fercryinoutloud!
Q. Is there a list of all the new tags in Netsca--
A. NO! SHUT UP! GO AWAY!
Q. Can anybody explain the relationship between SGML, HTML, and XML?
A. Apparently not.
Part 3. Miscellany.
Q. Why can't you specify character numbers in hexadecimal?
A. SGML is designed to be readable by human beings as well as
by computers, and humans tend to find decimal numbers easier
to interpret than hex, as the following demonstrates:
<!-- Decimal example: -->
<P>we're zany to
<!-- Hex example: -->
EE; F;KH IC;=?B;I
The first example is clearly much more readable than the second.
Q. What is the philosophy of SGML?
A. "The philosophy of SGML" is a rhetorical device, most often
invoked when one participant in a discussion disagrees with
something another has proposed. Typical usage: "That goes
totally against the philosophy of SGML, which dicates that
[... fill in the blank ...]".
Q. OK, so then what's the spirit of SGML?
A. This is not formaly defined at present. A proposed amendment
to ISO 8879 (below) seeks to correct this deficiency:
[Text of proposed changes:]
| 4.333 spirit of SGML: An alcoholic concoction produced by fermenting
| a conforming SGML document.
| 4.334 spirit of SGML: The name of a boat which will win the Whitbread
| Round-the-World yacht race in the year of the 100th anniversary of the
| adoption of SGML.
| 4.335 spirit of SGML: The ghost of the inventor of SGML who comes
| back to haunt you every time you write "fully-tagged" without a hyphen.
(Thanks to Steve Pepper for this one.)
Q. What's so great about ISO standardization?
A. It is often said that one of the advantages of SGML over some
other, proprietary, generic markup scheme is that "nobody owns
the standard". While this is not strictly true, the ISO's pricing
policy certainly has helped to keep the number of people who do own
a copy of the Standard at an absolute minimum.
[ Ed. note: I'm not exactly sure why this is seen as an advantage,
it's just something people say. ]
Part 4. Terminology.
Q. What's a DTD?
A. DTD is an acronym for Document Type Definition, which consists
of a formal part (specified in SGML) and an informal part (specified
in natural language).
Many people forget about the informal part and use "DTD" to refer
only to the formal part (i.e., the stuff that usually goes in a
file named "something.dtd"). This is incorrect: the proper term
for this object is "the entity containing the external subset of
the formal part of the document type definition".
(SGML has a tradition of using the longest possible phrases
to describe the most frequently talked-about concepts; see also
The term "DTD" is also often confused with the document
type declaration, mostly because they have the same initials.
Q. What's an application?
A. As with most SGML terminology, "application" has a very
precise and specific meaning, to wit:
"4.5 application: Text processing application.
4.318 text processing application: A related set of
proceses performed on documents of related types.
4.279 SGML application: Rules that apply SGML to a
text processing application. An SGML application includes
a formal specification of the markup constructs used in the
application, expressed in SGML. [...]"
[ ISO 8879 Section 4 "Definitions" ]
Or, more clearly and concisely:
"By 'application' I mean it in the SGML and database sense,
meaning a collection of data of specific types and semantics
to which processing is applied, rather than the processors
[Eliot Kimber, in a message to w3c-sgml-wg,
Typical example of usage:
"The text of an SGML document is classified in either
of two ways: as markup characters or as data characters
that are passed to an *application* for processing."
[Charles Goldfarb, The SGML Handbook, section 7.6 p. 319]
Part 5. Esoterica.
Q. Why does nsgmls complain that '((a|b)*,b)' is ambiguous?
A. Because it's not clear whether 'a' stands for Anchor, Author,
Q. OK, so how do I make it unambiguous?
A. [Serious answer] This depends of course on the content model
in question. Your best bet is to post to comp.text.sgml, where
you are likely to receive several answers. Many will be wrong,
so don't take any advice from the newsgroup unless three or more
respondents say the same thing.
Exception to above rule: If Marcy Thompson answers, do whatever she says.
Q. What's an RE?
A. RE is an acronym for Record End, which is sort of like a
newline, only different.
Goldfarb's First Law of Text Processing states that:
"... if a text processing system has bugs, at least one of
them will have to do with the handling of input line endings."
[The Handbook, footnote p. 321]
The Record End concept was introduced to make sure that SGML
parsers don't violate Goldfarb's First Law.
Q. So what's an RS?
A. An RS is a fictitious character inserted by the entity manager
and later removed by the parser. Applications shouldn't ever have to
worry about RSs; their primary function is to make REs disappear
in mysterious places.
Q. What's the difference between a QUANTITY and a CAPACITY?
A. In the SGML declaration, a "quantity" is an arbitrary limit
placed on the size of individual parts of a document which
must be increased in order to use reasonable DTDs. A "capacity"
on the other hand is an arbitrary limit placed on the size
of the document as a whole which must be increased in order
to process reasonably-sized documents.
Quantities and capacities are used to make sure that every
document includes an SGML declaration. Were it not for
the ridiculously small limits in the Reference Concrete Syntax,
most SGML users would be able to simply use the default SGML
declaration instead of providing their own, slightly modified
version, in violation of section 6.2.
Q. What are inclusion exceptions and how do they work?
A. There are two primary schools of thought regarding inclusions.
Some feel that inclusion exceptions are a dangerous and badly
designed feature, and should never be used (exclusion exceptions,
however, are another matter). Others feel that inclusion exceptions
are a useful and necessary enhancement to SGML's formal model.
Q. What are exclusion exceptions and how do they work?
A. There are two primary schools of thought regarding exclusions.
Some feel that exclusion exceptions are a dangerous and badly
designed feature, and should never be used (inclusion exceptions,
however, are another matter). Others feel that exclusion exceptions
are a useful and necessary enhancement to SGML's formal model.
Part 6. HyTime.
Q. What's a grove?
A. I've heard that it's supposed to be an acronym for some thing
or another, but I don't buy it.
Q. What's the difference between a 'wand' and a 'baton' in the
HyTime scheduling and rendition module?
A. Sorry, it took me three months just to figure out 'pathloc'.
I'm not even going to try to answer that one.
Q. How many HyTime consultants does it take to screw in a lightbulb?
A. Just one. HyTime's powerful linking and location facilities make
it trivial to create a link expressing the abstract semantic of
"screwing" with the lightbulb and the socket as link-ends, and
even if the lightbulb and socket are not expressed as SGML objects
you're free to use whatever application-specific query notation
you desire to locate them.
The actual installation of the light bulb is, of course, left
up to the application.
Part 7. DSSSL, CSS, XSL, and DHTML.
Q. What are DSSSL, CSS, XSL and DHTML?
A. They are acronyms.
See Robin Cover's extensive SGML/XML web site at
<URL: http://www.oasis-open.org/cover/ >
for more information.