summaryrefslogtreecommitdiffstats
path: root/htdocs/sgml-lib/oreilly-draft-table.elements
blob: 5b0901f0d23db4fd7c8a62d10eea9bb361ab0119 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
   <!-- Content model entities imported from parent DTD:
   
     %body.content; allows table cells to contain headers, paras,
     lists, form elements and even arbitrarily nested tables.
   
     %text; is text characters, including character entities and
     character emphasis elements, IMG and anchors
   -->
   
   <!ENTITY % attrs
          "id      ID       #IMPLIED  -- element identifier --
           class   NAMES    #IMPLIED  -- for subclassing elements --
           lang    NAME     #IMPLIED  -- as per RFC 1766 --
           dir   (ltr|rtl)  #IMPLIED  -- I18N text direction --">
   
   <!--
    The BORDER attribute sets the thickness of the frame around the
    table. The default units are screen pixels.
   
    The FRAME attribute specifies which parts of the frame around
    the table should be rendered. The values are not the same as
    CALS to avoid a name clash with the VALIGN attribute.
   
    The value "border" is included for backwards compatibility with
    <TABLE BORDER> which yields frame=border and border=implied
    For <TABLE BORDER=1> you get border=1 and frame=implied. In this
    case, its appropriate to treat this as frame=border for backwards
    compatibility with deployed browsers.
   -->
   
   <!ENTITY % Frame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
   
   <!--
    The RULES attribute defines which rules to draw between cells:
   
    If RULES is absent then assume:
        "none" if BORDER is absent or BORDER=0 otherwise "all"
   -->
   
   <!ENTITY % Rules "(none | groups | rows | cols | all)">
           
   <!-- horizontal placement of table relative to window -->
   <!ENTITY % Where "(left|center|right)">

   <!-- horizontal alignment attributes for cell contents -->
   <!ENTITY % cell.halign
           "align  (left|center|right|justify|char) #IMPLIED
            char    CDATA   #IMPLIED -- alignment char, e.g. char=':' --
            charoff CDATA   #IMPLIED -- offset for alignment char --"
           >
   
   <!-- vertical alignment attributes for cell contents -->
   <!ENTITY % cell.valign
           "valign  (top|middle|bottom|baseline)  #IMPLIED"
           >
   
   <!ELEMENT table - - (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
   <!ELEMENT caption - - (%text;)+>
   <!ELEMENT thead - O (tr+)>
   <!ELEMENT tfoot - O (tr+)>
   <!ELEMENT tbody O O (tr+)>
   <!ELEMENT colgroup - O (col*)>
   <!ELEMENT col - O EMPTY>
   <!ELEMENT tr - - (th|td)+>

<![ %HTML.Recommended [
        <!ELEMENT (th|td) - - (%body.content 
                               | #PCDATA | A | BR | %phrase | %font)>
]]>

<![ %HTML.Deprecated [
        <!ELEMENT (th|td) - - (%body.content)>
]]>
   
   <!ATTLIST table                    -- table element --
           %attrs;                    -- id, lang, dir and class --
           align   %Where;  #IMPLIED  -- table position relative to window --
           width   CDATA    #IMPLIED  -- table width relative to window --
           cols    NUMBER   #IMPLIED  -- used for immediate display mode --
           border  CDATA    #IMPLIED  -- controls frame width around table --
           frame   %Frame;  #IMPLIED  -- which parts of table frame to include --
           rules   %Rules;  #IMPLIED  -- rulings between rows and cols --
           cellspacing CDATA #IMPLIED -- spacing between cells --
           cellpadding CDATA #IMPLIED -- spacing within cells --
           >
   
   <!-- ALIGN is used here for compatibility with deployed browsers -->
   <!ENTITY % Caption "(top|bottom|left|right)">
   
   <!ATTLIST caption                  -- table caption --
           %attrs;                    -- id, lang, dir and class --
           align  %Caption; #IMPLIED  -- relative to table --
           >
   
   <!--
   COLGROUP groups a set of COL elements. It allows you to group
   several columns together.
   -->
   <!ATTLIST colgroup
           %attrs;                    -- id, lang, dir and class --
           span    NUMBER   1         -- default number of columns in group --
           width   CDATA    #IMPLIED  -- default width for enclosed COLs --
           %cell.halign;              -- horizontal alignment in cells --
           %cell.valign;              -- vertical alignment in cells --
           >

   <!--
    COL elements define the alignment properties for cells in a given
    column or spanned columns. The WIDTH attribute specifies the
    width of the columns, e.g.
   
        width=64        width in screen pixels
        width=0.5*      relative width of 0.5
   -->
   
   <!ATTLIST col                      -- column groups and properties --
           %attrs;                    -- id, lang, dir and class --
           span    NUMBER   1         -- number of columns spanned by group --
           width   CDATA    #IMPLIED  -- column width specification --
           %cell.halign;              -- horizontal alignment in cells --
           %cell.valign;              -- vertical alignment in cells --
           >
   
   <!--
       Use THEAD to duplicate headers when breaking table
       across page boundaries, or for static headers when
       body sections are rendered in scrolling panel.
   
       Use TFOOT to duplicate footers when breaking table
       across page boundaries, or for static footers when
       body sections are rendered in scrolling panel.
   
       Use multiple TBODY sections when rules are needed
       between groups of table rows.
   -->
   <!ATTLIST (thead|tbody|tfoot)      -- table section --
           %attrs;                    -- id, lang, dir and class --
           %cell.halign;              -- horizontal alignment in cells --
           %cell.valign;              -- vertical alignment in cells --
           >
   
   <!ATTLIST tr                       -- table row --
           %attrs;                    -- id, lang, dir and class --
           %cell.halign;              -- horizontal alignment in cells --
           %cell.valign;              -- vertical alignment in cells --
           >
   
   <!ATTLIST (th|td)                  -- header or data cell --
           %attrs;                    -- id, lang, dir and class --
           axis    CDATA    #IMPLIED  -- defaults to cell content --
           axes    CDATA    #IMPLIED  -- list of axis names --
           nowrap (nowrap)  #IMPLIED  -- suppress word wrap --
           rowspan NUMBER   1         -- number of rows spanned by cell --
           colspan NUMBER   1         -- number of cols spanned by cell --
           %cell.halign;              -- horizontal alignment in cells --
           %cell.valign;              -- vertical alignment in cells --
           >