1<?xml version="1.0" encoding="iso-8859-1"?>
2<!-- Basic Tables Module -->
3<grammar xmlns="http://relaxng.org/ns/structure/1.0">
4
5<define name="table">
6  <element name="table">
7    <ref name="table.attlist"/>
8    <optional>
9      <ref name="caption"/>
10    </optional>
11    <oneOrMore>
12      <ref name="tr"/>
13    </oneOrMore>
14  </element>
15</define>
16
17<define name="table.attlist">
18  <ref name="Common.attrib"/>
19  <optional>
20    <attribute name="summary">
21      <ref name="Text.datatype"/>
22    </attribute>
23  </optional>
24</define>
25
26<define name="caption">
27  <element name="caption">
28    <ref name="caption.attlist"/>
29    <ref name="Inline.model"/>
30  </element>
31</define>
32
33<define name="caption.attlist">
34  <ref name="Common.attrib"/>
35</define>
36
37<define name="tr">
38  <element name="tr">
39    <ref name="tr.attlist"/>
40    <oneOrMore>
41      <choice>
42        <ref name="th"/>
43        <ref name="td"/>
44      </choice>
45    </oneOrMore>
46  </element>
47</define>
48
49<define name="tr.attlist">
50  <ref name="Common.attrib"/>
51  <ref name="CellHAlign.attrib"/>
52  <ref name="CellVAlign.attrib"/>
53</define>
54
55<define name="th">
56  <element name="th">
57    <ref name="th.attlist"/>
58    <ref name="Flow.model"/>
59  </element>
60</define>
61
62<define name="th.attlist">
63  <ref name="Cell.attrib"/>
64</define>
65
66<define name="td">
67  <element name="td">
68    <ref name="td.attlist"/>
69    <ref name="Flow.model"/>
70  </element>
71</define>
72
73<define name="td.attlist">
74  <ref name="Cell.attrib"/>
75</define>
76
77<define name="Cell.attrib">
78  <ref name="Common.attrib"/>
79  <optional>
80    <attribute name="abbr">
81      <ref name="Text.datatype"/>
82    </attribute>
83  </optional>
84  <optional>
85    <attribute name="axis"/>
86  </optional>
87  <optional>
88    <attribute name="headers">
89      <ref name="IDREFS.datatype"/>
90    </attribute>
91  </optional>
92  <ref name="scope.attrib"/>
93  <optional>
94    <attribute name="rowspan">
95      <ref name="Number.datatype"/>
96    </attribute>
97  </optional>
98  <optional>
99    <attribute name="colspan">
100      <ref name="Number.datatype"/>
101    </attribute>
102  </optional>
103  <ref name="CellHAlign.attrib"/>
104  <ref name="CellVAlign.attrib"/>
105</define>
106
107<define name="CellHAlign.attrib">
108  <optional>
109    <attribute name="align">
110      <choice>
111	<value>left</value>
112	<value>center</value>
113	<value>right</value>
114      </choice>
115    </attribute>
116  </optional>
117</define>
118
119<define name="CellVAlign.attrib">
120  <optional>
121    <attribute name="valign">
122      <choice>
123	<value>top</value>
124	<value>middle</value>
125	<value>bottom</value>
126      </choice>
127    </attribute>
128  </optional>
129</define>
130
131<define name="scope.attrib">
132  <optional>
133    <attribute name="scope">
134      <choice>
135	<value>row</value>
136	<value>col</value>
137      </choice>
138    </attribute>
139  </optional>
140</define>
141
142<define name="Block.class" combine="choice">
143  <ref name="table"/>
144</define>
145
146</grammar>