Re: Body start tag.

E. Stephen Mack (
Wed, 16 Jul 1997 00:05:58 -0700

Message-Id: <>
Date: Wed, 16 Jul 1997 00:05:58 -0700
To: Paul Prescod <>,
From: "E. Stephen Mack" <>
Subject: Re: Body start tag.
In-Reply-To: <>

>Russell Steven Shawn O'Connor wrote:
>> I thought the begining of #PCDATA would imply the BODY start tag.

At 09:54 PM 7/15/97 -0500, Paul Prescod wrote:
>Only if BODY is required. In HTML 4.0, it isn't: there could be a
>FRAMESET instead. This will come as a shock to HTML authors.

It comes as a shock to me.  Why then does global.html say:

> <!ELEMENT BODY O O  (%block) -(BODY) +(INS|DEL)>
> Start tag: optional, End tag: optional
Here the start tag is declared to be optional.

But, Russell is right, the KGV certainly won't validate
a non-FRAMESET document that doesn't contain a <BODY> tag.

Paul's argument is that given the definition of 
the HTML element:

> <!ENTITY % html.content "HEAD, (FRAMESET|BODY)">
> <!ELEMENT HTML O O (%html.content)>
> Start tag: optional, End tag: optional

The HTML element must contain a HEAD element, plus either
a FRAMESET elment or a BODY element.  However, the FRAMESET's
start tag is required.  Shouldn't the presence of PCDATA
imply the BODY element's beginning?  If there's no explicit
<FRAMESET> and no explicit <BODY>, PCDATA should imply the
presence of the optional <BODY> start tag.

In other words, a user agent already knows that the FRAMESET
element is not present because the *required* <FRAMESET> tag
wasn't placed before the PCDATA.  Therefore the *optional*
<BODY> tag can be inferred.

Am I wrong?  Is the KGV in error here, or does the HTML 4.0 DTD
really now *require* that the <BODY> tag be present?

E. Stephen Mack <>