Proposed HTML Table Model (real one)

yuri@sq.com (Yuri Rubinsky)
Date: Mon, 3 Oct 94 23:26:27 EDT
Message-id: <m0qs0T9-000ESLC@sq.com>
Reply-To: yuri@sq.com
Originator: html-wg@oclc.org
Sender: html-wg@oclc.org
Precedence: bulk
From: yuri@sq.com (Yuri Rubinsky)
To: Multiple recipients of list <html-wg@oclc.org>
Subject: Proposed HTML Table Model (real one)
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas
X-Comment: HTML Working Group (Private)


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  |
       |______________|_______________|


-->