Proposed HTML Table Model (real one)

Yuri Rubinsky (yuri@sq.com)
Mon, 3 Oct 1994 23:23:00 -0400

My apologies for the delay in getting this out. This is the DTD
that takes into account Dave's original HTMLplus table model and
blends it with what's needed for Braille, computer voice and
large type requirements. (Large type is pretty darn similar to
other straight formatting requirements, maybe a bit simpler.)

It's built on the ICADD table DTD and is by now old-fashioned in that
it was intended to work with the three-part DTD before the merger.

There's also a sample table at the end.

Also: Note that there are two of these. This is the simpler one,
intended to be implementable as a first phase. The next mail message
will include the full-blown one with all the attributes for standard
typeset formatting as well. The second one is also based to some extent
on the SoftQuad Author/Editor table model, which is also supported by
EBT's DynaText and Synex' Explorer product.

(I seem to have thought I was in an editor a moment ago when I was
really in mail. Here goes again...)

========================cut here=================================
<!-- html-t1.dtd

Document Type Definition for the HyperText Markup Language (HTML DTD)
Level One (Basic Table)
$Id: html-t1.dtd,v 0.9 1994/09/21 11:22:06 yuri $

Authors: Dave Raggett, Yuri Rubinsky and ICADD (Contact: <yuri@sq.com>)
See Also: html.decl, html-0.dtd, html-1.dtd, html.dtd
http://www.hal.com/%7Econnolly/html-spec/index.html
http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
-->

<!-- Dan: please fix up the header stuff as you wish if appropriate. -->

<!ENTITY % HTML.Version
"+//ISBN 82-7640-037::WWW//DTD HTML TBL-1 PROPOSED//EN//x.0"

-- Typical usage:

<!DOCTYPE HTML PUBLIC "+//ISBN 82-7640-037::WWW//DTD HTML//EN">
<html>
...
</html>
--
>

<!-- Include all other DTDs + extensions -->

<!ENTITY % block-2 "| FORM | ISINDEX | TABLE">

<!ENTITY % html PUBLIC "+//ISBN 82-7640-037::WWW//DTD HTML//EN//2.0" "html.dtd">
%html;

<!-- Create model for data and header cells -->

<!ENTITY % table "P|%heading|%list" >

<!-- Tables -->

<!-- This DTD fragment defines a table structure that is forward compatible
with the full ICADD Braille table model (which contains additional
format attributes) and backward compatible, to a very great extent,
with the recent drafts of the late/former HTMLplus.


TO EXTEND THE FORMATTING CAPABILITIES OF THIS DTD, ONE
WOULD ADD ATTRIBUTES FROM THE FULL ICADD TABLE MODEL
WHICH HAS BEEN EXTENDED TO ALSO SUPPORT ATTRIBUTES FOR
FULL FORMATTING FOR PRINT. IT IS CALLED html-t2.dtd.

I WILL POST IT SEPARATELY - - BUT DON'T WANT ITS COMPLEXITY
TO SCARE ANYONE OFF OF THIS VERY SIMPLE MODEL!

-->

<!ELEMENT TABLE - - (CAPTION?, NOTE?, THEAD?, TBODY, TFOOT?, CAPTION?)
-- CAPTION is allowed before or after table structures;
model is simplified to suggest both could be used. This
could be rewritten as an OR group. NOTE is where Braille
transcribers put contents of very long cells (kind of
reverse footnotes to avoid very wide cells) with
pointers to the actual cells. -->

<!ELEMENT THEAD - O (COLDEF+, HDROW+) -- table head -->
<!ELEMENT TBODY - O (COLDEF+, TR+) -- table body -->
<!ELEMENT TFOOT - O (A?, FN)+ -- very simple table footer -->
<!ELEMENT HDROW O O (TH+) -- a row within a header -->
<!ELEMENT TR O O (TH?, THSUB*, TD+) -- row in table body:
A TH cell, if it exists within a table body, must be in the leftmost
column. THSUBs are repeatable, but only in left side columns. That is,
they always precede TD (table data) cells. -->
<!ELEMENT TD - O (%table;)* -- a data cell -->
<!ELEMENT (TH|THSUB) - O (%table;)* -- col and row header cells -->
<!ELEMENT COLDEF - O EMPTY -- column definition is here only
to carry necessary attribute values for any individual column;
must be one COLDEF for each column in the table. COLDEFS
must exist on both head and body but will generally have
different values. (Centered versus number aligned, for instance.) -->

<!-- additional elements used in tables: -->

<!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
<!ELEMENT FN - - (%text;)* -- footnote -->
<!ELEMENT NOTE - - (P*) -- admonishment -->

<!-- end of DTD -->

<!-- Here's a very basic sample file. It uses two attributes from the full html-t2.DTD:
<TABLE><THEAD>
<COLDEF><COLDEF>
<HDROW>
<TH HALIGN="Center" COLSPAN="2">Tea
<HDROW><TH>Loose<TH>Bagged
<TBODY><COLDEF><COLDEF>
<TR><TD>123<TD>234
<TR><TD>124<TD>235

It assumes a default alignment of flush right and describes the following table:

________________________________
| |
| Tea |
|______________________________|
| | |
| Loose | Bagged |
|______________|_______________|
| | |
| 123 | 234 |
|______________|_______________|
| | |
| 124 | 235 |
|______________|_______________|

-->