Re: Body start tag.

E. Stephen Mack (estephen@emf.net)
Wed, 16 Jul 1997 00:05:58 -0700


Message-Id: <3.0.3.32.19970716000558.0078a9a8@emf.net>
Date: Wed, 16 Jul 1997 00:05:58 -0700
To: Paul Prescod <papresco@technologist.com>, www-html@w3.org
From: "E. Stephen Mack" <estephen@emf.net>
Subject: Re: Body start tag.
In-Reply-To: <33CC29E4.D46A2607@technologist.com>

>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 <estephen@emf.net>    http://www.emf.net/~estephen/