Lists Home |
Date Index |
Bullard, Claude L (Len) wrote:
[ re: elements which allow both start- and end- tag omission ]
> *Bonehead elements* might be good. Other than in
> the SGML Handbook, I've never seen these used
> in practice.
You're forgetting the HTML 1 backwards-compatibility hacks
in versions 2.0 through 4.01:
<!ELEMENT HTML O O (%html.content;) -- document root element -->
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
<!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- document body -->
> "Although the basic principles of start tag
> ommission are reasonably straightforward, the
> detailed requirements and definitions are highly
> technical. They hinge on the concepts "contextually
> optional element" and "contextually required element". p 163
> Ugly stuff.
You can say that again. Ugly, ugly, ugly!
By the way, start-tag omission is the *real* reason that
content models are required to be deterministic in SGML.
If it weren't for that, the definition of "contextually
required element" wouldn't make any sense. Other than
that, there's no good reason for the restriction. (The
handwaving in Annex H does not constitute a good reason.)
I once came up with a compatible restatement of the
rules for start-tag inference that would fix this,
but apparently nobody was interested in revising the
ISO standard to fix it.