Lists Home |
Date Index |
Yes, I forgot about those. I don't think I ever
believed them when I saw them, and then I tested
it in a browser and felt a creeping panic. :-)
To me, the way that the HTML DTD used parameterization
to grandfather the looseness of the tag stackers was
proof that we needed XML and we needed to disallow
some of the freedoms of SGML. That probably seems
contradictory to my usual positions, but I never
promised consistency in the face of the real world
<aside>Before anyone thinks this is a blast at
the HTML world, try to read that section I cited
for John Cowan and remember that the Handbook is
the annotated explanation for ISO 8879. It will
really make you appreciate James Clark or anyone
else who wrote a conformant SGML parser even more
than you do as well as authors like Martin Bryan.</aside>
The ISO standard comes up for review cyclically.
Keep that rewrite somewhere you can find it. One
From: Joe English [mailto:firstname.lastname@example.org]
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.