Re: What's allowed in table cells?

Stephanos Piperoglou <spip@hol.gr> writes:
>I passed this through a parser (WebTechs validation service using the strict
>HTML 3.2 DTD) and it definetely choked:
>
><TABLE>
><TR><P><TD>
></TABLE>
>
>This is a BIT confusing to me. I understand that the DTD implies no markup
>between TABLE tags and TR, TD and TH blocks, but WHY?

TR is a row container, not meant for document content. It contains header
cells (TH) and regular cells (TD). All document content needs to be within
a header or cell. Think of an Excel spreadsheet: nothing exists between the
cells.

>And a second query:
>
>The following validated fine:
>
><TITLE>Somestring</TITLE>
><BODY>
>Foobar
></BODY>
>
>Now my question: is the text "Foobar" in an implied paragraph? If not, where
>is it contained?

From the HTML 2.0 DTD (RFC1866):
[...]
    <!ENTITY % body.content "(%heading | %text | %block |
                                 HR | ADDRESS)*">

BODY contains %body.content, which contains %heading;, %text;, etc. These
are declared earlier in the DTD:

    <!ENTITY % text "#PCDATA | A | IMG | BR | %phrase | %font">
[...]
    <!ENTITY % block "P | %list | DL | %preformatted | %block.forms">

P is contained within BODY (in the declaration of %block), text (#PCDATA)
not contained within another element is contained in BODY (as per the
declaration of %text).

Murray

```````````````````````````````````````````````````````````````````````````````
     Murray Altheim, Program Manager
     Spyglass, Inc., Cambridge, Massachusetts
     email: <mailto:murray@spyglass.com>
     http:  <http://www.cambridge.spyglass.com/murray/murray.html>
            "Give a monkey the tools and he'll eventually build a typewriter."

Received on Tuesday, 24 September 1996 19:27:02 UTC