Commit | Line | Data |
---|---|---|
8cd39fb3 MH |
1 | # Tables Module |
2 | ||
3 | # This builds on the basic tables module, unlike with the DTD | |
4 | # implementation. | |
5 | ||
1ff6d724 | 6 | include "xhtml-btable.rnc" { |
8cd39fb3 MH |
7 | table = |
8 | element table { | |
9 | table.attlist, | |
10 | caption?, | |
11 | (col* | colgroup*), | |
12 | ((thead?, tfoot?, tbody+) | tr+) | |
13 | } | |
14 | th = element th { th.attlist, Flow.model } | |
15 | td = element td { td.attlist, Flow.model } | |
16 | CellHAlign.attrib = | |
17 | attribute align { | |
18 | "left" | "center" | "right" | "justify" | "char" | |
19 | }?, | |
20 | attribute char { Character.datatype }?, | |
21 | attribute charoff { Length.datatype }? | |
22 | CellVAlign.attrib = | |
23 | attribute valign { "top" | "middle" | "bottom" | "baseline" }? | |
24 | scope.attrib = | |
25 | attribute scope { "row" | "col" | "rowgroup" | "colgroup" }? | |
26 | } | |
27 | table.attlist &= | |
28 | attribute width { Length.datatype }?, | |
29 | attribute border { Pixels.datatype }?, | |
30 | frame.attrib, | |
31 | rules.attrib, | |
32 | attribute cellspacing { Length.datatype }?, | |
33 | attribute cellpadding { Length.datatype }? | |
34 | col = element col { col.attlist } | |
35 | col.attlist = | |
36 | Common.attrib, | |
37 | attribute span { Number.datatype }?, | |
38 | attribute width { MultiLength.datatype }?, | |
39 | CellHAlign.attrib, | |
40 | CellVAlign.attrib | |
41 | colgroup = element colgroup { colgroup.attlist, col* } | |
42 | colgroup.attlist = | |
43 | Common.attrib, | |
44 | attribute span { Number.datatype }?, | |
45 | attribute width { MultiLength.datatype }?, | |
46 | CellHAlign.attrib, | |
47 | CellVAlign.attrib | |
48 | tbody = element tbody { tbody.attlist, tr+ } | |
49 | tbody.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib | |
50 | thead = element thead { thead.attlist, tr+ } | |
51 | thead.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib | |
52 | tfoot = element tfoot { tfoot.attlist, tr+ } | |
53 | tfoot.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib | |
54 | frame.attrib = | |
55 | attribute frame { | |
56 | "void" | |
57 | | "above" | |
58 | | "below" | |
59 | | "hsides" | |
60 | | "lhs" | |
61 | | "rhs" | |
62 | | "vsides" | |
63 | | "box" | |
64 | | "border" | |
65 | }? | |
66 | rules.attrib = | |
67 | attribute rules { "none" | "groups" | "rows" | "cols" | "all" }? |