envjs19 0.3.8.20101029121421

Sign up to get free protection for your applications and to get access to all the features.
Files changed (279) hide show
  1. data/.jslintrbrc +30 -0
  2. data/.project +17 -0
  3. data/CHANGELOG.rdoc +57 -0
  4. data/DTD/xhtml-lat1.ent +196 -0
  5. data/DTD/xhtml-special.ent +80 -0
  6. data/DTD/xhtml-symbol.ent +237 -0
  7. data/DTD/xhtml.soc +14 -0
  8. data/DTD/xhtml1-frameset.dtd +1235 -0
  9. data/DTD/xhtml1-strict.dtd +978 -0
  10. data/DTD/xhtml1-transitional.dtd +1201 -0
  11. data/DTD/xhtml1.dcl +192 -0
  12. data/Makefile +7 -0
  13. data/Manifest.txt +280 -0
  14. data/README.rdoc +65 -0
  15. data/Rakefile +196 -0
  16. data/Wakefile +11 -0
  17. data/bin/envjsrb +257 -0
  18. data/build.properties +9 -0
  19. data/build.xml +247 -0
  20. data/gm/jquery.js +6002 -0
  21. data/gm/mainx.js +2648 -0
  22. data/gm/sensx.js +135 -0
  23. data/gm/t.js +6 -0
  24. data/gm/x.html +76 -0
  25. data/htmlparser/BrowserTreeBuilder.java +456 -0
  26. data/htmlparser/README +34 -0
  27. data/htmlparser/build.sh +38 -0
  28. data/jsl/jsl +0 -0
  29. data/jsl/jsl.default.conf +129 -0
  30. data/jsl/jsl.exe +0 -0
  31. data/lib/envjs.rb +35 -0
  32. data/lib/envjs/event_loop.js +206 -0
  33. data/lib/envjs/net.rb +3 -0
  34. data/lib/envjs/net/cgi.rb +94 -0
  35. data/lib/envjs/net/file.rb +69 -0
  36. data/lib/envjs/options.rb +11 -0
  37. data/lib/envjs/runtime.rb +346 -0
  38. data/lib/envjs/tempfile.rb +24 -0
  39. data/licenses/GPL-LICENSE.txt +278 -0
  40. data/licenses/MIT-LICENSE.txt +20 -0
  41. data/src/base64.js +80 -0
  42. data/src/build.js +6 -0
  43. data/src/cruft/bad.html +24 -0
  44. data/src/cruft/dom.js +606 -0
  45. data/src/cruft/element.js +297 -0
  46. data/src/cruft/good.html +30 -0
  47. data/src/cruft/good.js +32 -0
  48. data/src/cruft/internal.js +81 -0
  49. data/src/cruft/parser.js +458 -0
  50. data/src/css/properties.js +293 -0
  51. data/src/css/rule.js +22 -0
  52. data/src/css/sizzle.js +717 -0
  53. data/src/css/stylesheet.js +52 -0
  54. data/src/dom/attr.js +55 -0
  55. data/src/dom/cdatasection.js +31 -0
  56. data/src/dom/characterdata.js +119 -0
  57. data/src/dom/comment.js +30 -0
  58. data/src/dom/doctype.js +9 -0
  59. data/src/dom/document.js +1023 -0
  60. data/src/dom/dom.js +134 -0
  61. data/src/dom/element.js +217 -0
  62. data/src/dom/entities.js +273 -0
  63. data/src/dom/exception.js +28 -0
  64. data/src/dom/fragment.js +37 -0
  65. data/src/dom/implementation.js +140 -0
  66. data/src/dom/instruction.js +51 -0
  67. data/src/dom/namednodemap.js +374 -0
  68. data/src/dom/namespace.js +50 -0
  69. data/src/dom/node.js +618 -0
  70. data/src/dom/nodelist.js +195 -0
  71. data/src/dom/parser.js +1207 -0
  72. data/src/dom/text.js +73 -0
  73. data/src/event/event.js +47 -0
  74. data/src/event/mouseevent.js +4 -0
  75. data/src/event/uievent.js +8 -0
  76. data/src/html/a.js +110 -0
  77. data/src/html/anchor.js +80 -0
  78. data/src/html/area.js +57 -0
  79. data/src/html/base.js +26 -0
  80. data/src/html/blockquote-q.js +19 -0
  81. data/src/html/body.js +19 -0
  82. data/src/html/button.js +21 -0
  83. data/src/html/canvas.js +14 -0
  84. data/src/html/col-colgroup.js +49 -0
  85. data/src/html/collection.js +72 -0
  86. data/src/html/cookie.js +153 -0
  87. data/src/html/del-ins.js +25 -0
  88. data/src/html/div.js +28 -0
  89. data/src/html/document.js +364 -0
  90. data/src/html/element.js +382 -0
  91. data/src/html/fieldset.js +19 -0
  92. data/src/html/form.js +484 -0
  93. data/src/html/frame.js +89 -0
  94. data/src/html/frameset.js +25 -0
  95. data/src/html/head.js +44 -0
  96. data/src/html/html.js +0 -0
  97. data/src/html/htmlparser.js +340 -0
  98. data/src/html/iframe.js +26 -0
  99. data/src/html/image.js +0 -0
  100. data/src/html/img.js +62 -0
  101. data/src/html/input-elements.js +307 -0
  102. data/src/html/input.js +65 -0
  103. data/src/html/label.js +26 -0
  104. data/src/html/legend.js +19 -0
  105. data/src/html/link.js +82 -0
  106. data/src/html/map.js +22 -0
  107. data/src/html/meta.js +37 -0
  108. data/src/html/object.js +89 -0
  109. data/src/html/optgroup.js +25 -0
  110. data/src/html/option.js +103 -0
  111. data/src/html/param.js +38 -0
  112. data/src/html/script.js +122 -0
  113. data/src/html/select.js +132 -0
  114. data/src/html/style.js +31 -0
  115. data/src/html/table.js +199 -0
  116. data/src/html/tbody-thead-tfoot.js +92 -0
  117. data/src/html/td-th.js +18 -0
  118. data/src/html/textarea.js +31 -0
  119. data/src/html/title.js +20 -0
  120. data/src/html/tr.js +114 -0
  121. data/src/intro.js +141 -0
  122. data/src/outro.js +70 -0
  123. data/src/parser/html5.detailed.js +10762 -0
  124. data/src/parser/html5.min.js +503 -0
  125. data/src/parser/html5.pretty.js +10815 -0
  126. data/src/parser/intro.js +42 -0
  127. data/src/parser/outro.js +9 -0
  128. data/src/platform/core.js +323 -0
  129. data/src/platform/johnson.js +484 -0
  130. data/src/platform/rhino.js +327 -0
  131. data/src/platform/static/intro.js +41 -0
  132. data/src/platform/static/outro.js +30 -0
  133. data/src/profile/aop.js +238 -0
  134. data/src/profile/profile.js +402 -0
  135. data/src/serializer/xml.js +21 -0
  136. data/src/svg/animatedstring.js +25 -0
  137. data/src/svg/document.js +25 -0
  138. data/src/svg/element.js +22 -0
  139. data/src/svg/locatable.js +17 -0
  140. data/src/svg/rect.js +18 -0
  141. data/src/svg/rectelement.js +24 -0
  142. data/src/svg/stylable.js +49 -0
  143. data/src/svg/svgelement.js +22 -0
  144. data/src/svg/transformable.js +15 -0
  145. data/src/window/css.js +15 -0
  146. data/src/window/dialog.js +16 -0
  147. data/src/window/document.js +28 -0
  148. data/src/window/event.js +265 -0
  149. data/src/window/history.js +62 -0
  150. data/src/window/location.js +156 -0
  151. data/src/window/navigator.js +48 -0
  152. data/src/window/screen.js +53 -0
  153. data/src/window/timer.js +21 -0
  154. data/src/window/window.js +284 -0
  155. data/src/window/xhr.js +135 -0
  156. data/src/xpath/expression.js +49 -0
  157. data/src/xpath/implementation.js +2505 -0
  158. data/src/xpath/result.js +67 -0
  159. data/src/xpath/util.js +551 -0
  160. data/src/xpath/xmltoken.js +149 -0
  161. data/src/xslt/COPYING +34 -0
  162. data/src/xslt/ajaxslt-0.8.1/AUTHORS +1 -0
  163. data/src/xslt/ajaxslt-0.8.1/ChangeLog +136 -0
  164. data/src/xslt/ajaxslt-0.8.1/Makefile +49 -0
  165. data/src/xslt/ajaxslt-0.8.1/README +102 -0
  166. data/src/xslt/ajaxslt-0.8.1/TODO +15 -0
  167. data/src/xslt/ajaxslt-0.8.1/dom.js +566 -0
  168. data/src/xslt/ajaxslt-0.8.1/dom_unittest.html +24 -0
  169. data/src/xslt/ajaxslt-0.8.1/dom_unittest.js +131 -0
  170. data/src/xslt/ajaxslt-0.8.1/simplelog.js +79 -0
  171. data/src/xslt/ajaxslt-0.8.1/test/xpath.html +18 -0
  172. data/src/xslt/ajaxslt-0.8.1/test/xpath_script.js +45 -0
  173. data/src/xslt/ajaxslt-0.8.1/test/xslt.html +58 -0
  174. data/src/xslt/ajaxslt-0.8.1/test/xslt_script.js +33 -0
  175. data/src/xslt/ajaxslt-0.8.1/unittestsuite.html +26 -0
  176. data/src/xslt/ajaxslt-0.8.1/xmltoken.js +149 -0
  177. data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.html +18 -0
  178. data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.js +811 -0
  179. data/src/xslt/ajaxslt-0.8.1/xpath_unittest.html +39 -0
  180. data/src/xslt/ajaxslt-0.8.1/xpath_unittest.js +557 -0
  181. data/src/xslt/ajaxslt-0.8.1/xpathdebug.js +234 -0
  182. data/src/xslt/ajaxslt-0.8.1/xslt_unittest.html +138 -0
  183. data/src/xslt/ajaxslt-0.8.1/xslt_unittest.js +68 -0
  184. data/src/xslt/implementation.js +625 -0
  185. data/src/xslt/processor.js +37 -0
  186. data/src/xslt/util.js +449 -0
  187. data/test/base64.js +80 -0
  188. data/test/call-load-test.js +15 -0
  189. data/test/data.js +45 -0
  190. data/test/debug.js +53 -0
  191. data/test/firebug/errorIcon.png +0 -0
  192. data/test/firebug/firebug.css +209 -0
  193. data/test/firebug/firebug.html +23 -0
  194. data/test/firebug/firebug.js +672 -0
  195. data/test/firebug/firebugx.js +10 -0
  196. data/test/firebug/infoIcon.png +0 -0
  197. data/test/firebug/warningIcon.png +0 -0
  198. data/test/fixtures/html/events.html +171 -0
  199. data/test/fixtures/html/iframe1.html +46 -0
  200. data/test/fixtures/html/iframe1a.html +46 -0
  201. data/test/fixtures/html/iframe2.html +45 -0
  202. data/test/fixtures/html/iframe3.html +28 -0
  203. data/test/fixtures/html/iframeN.html +57 -0
  204. data/test/fixtures/html/malformed.html +181 -0
  205. data/test/fixtures/html/scope.html +81 -0
  206. data/test/fixtures/html/trivial.html +19 -0
  207. data/test/fixtures/html/with_js.html +26 -0
  208. data/test/fixtures/images/icon-blue.png +0 -0
  209. data/test/fixtures/js/external_script.js +1 -0
  210. data/test/fixtures/js/script.js +1 -0
  211. data/test/fixtures/js/script_error.js +2 -0
  212. data/test/foo.html +8 -0
  213. data/test/foo.js +40 -0
  214. data/test/html/events.html +171 -0
  215. data/test/html/iframe1.html +46 -0
  216. data/test/html/iframe1a.html +46 -0
  217. data/test/html/iframe2.html +45 -0
  218. data/test/html/iframe3.html +30 -0
  219. data/test/html/iframeN.html +57 -0
  220. data/test/html/malformed.html +181 -0
  221. data/test/html/scope.html +87 -0
  222. data/test/html/script.js +1 -0
  223. data/test/html/trivial.html +19 -0
  224. data/test/html/with_js.html +26 -0
  225. data/test/index.html +328 -0
  226. data/test/java-prototype.js +9 -0
  227. data/test/jquery.js +6002 -0
  228. data/test/primary-tests.js +26 -0
  229. data/test/prototype-test.js +13 -0
  230. data/test/qunit.js +61 -0
  231. data/test/qunit/qunit/qunit.css +17 -0
  232. data/test/qunit/qunit/qunit.js +997 -0
  233. data/test/scope.html +19 -0
  234. data/test/scope.rb +24 -0
  235. data/test/smp/dmathieu/index.html +8 -0
  236. data/test/specs/dist/env.spec.js +1534 -0
  237. data/test/specs/envjs.spec.css +46 -0
  238. data/test/specs/parser/html.js +31 -0
  239. data/test/specs/parser/spec.html +40 -0
  240. data/test/specs/parser/xml.js +31 -0
  241. data/test/specs/qunit.bdd.js +210 -0
  242. data/test/specs/qunit.css +17 -0
  243. data/test/specs/qunit.js +997 -0
  244. data/test/specs/template/spec-0.js +31 -0
  245. data/test/specs/template/spec-1.js +31 -0
  246. data/test/specs/template/spec.html +40 -0
  247. data/test/specs/window/css.js +23 -0
  248. data/test/specs/window/dialog.js +25 -0
  249. data/test/specs/window/document.js +23 -0
  250. data/test/specs/window/event.js +25 -0
  251. data/test/specs/window/history.js +34 -0
  252. data/test/specs/window/location.js +34 -0
  253. data/test/specs/window/navigator.js +71 -0
  254. data/test/specs/window/screen.js +42 -0
  255. data/test/specs/window/spec.html +48 -0
  256. data/test/specs/window/timer.js +26 -0
  257. data/test/specs/window/window.js +53 -0
  258. data/test/specs/xhr/spec.html +47 -0
  259. data/test/specs/xhr/xhr.js +31 -0
  260. data/test/test.js +10 -0
  261. data/test/unit/dom.js +44 -0
  262. data/test/unit/elementmembers.js +92 -0
  263. data/test/unit/events.js +195 -0
  264. data/test/unit/fixtures/external_script.js +1 -0
  265. data/test/unit/form.js +40 -0
  266. data/test/unit/iframe.js +234 -0
  267. data/test/unit/insertion.js +23 -0
  268. data/test/unit/multi-window.js +212 -0
  269. data/test/unit/nu.validator.js +34 -0
  270. data/test/unit/onload.js +90 -0
  271. data/test/unit/parser.js +122 -0
  272. data/test/unit/prototypecompat.js +22 -0
  273. data/test/unit/proxy.js +6 -0
  274. data/test/unit/scope.js +209 -0
  275. data/test/unit/timer.js +115 -0
  276. data/test/unit/window.js +57 -0
  277. data/test/x.js +1 -0
  278. data/test/y.js +1 -0
  279. metadata +367 -0
@@ -0,0 +1,978 @@
1
+ <!--
2
+ Extensible HTML version 1.0 Strict DTD
3
+
4
+ This is the same as HTML 4 Strict except for
5
+ changes due to the differences between XML and SGML.
6
+
7
+ Namespace = http://www.w3.org/1999/xhtml
8
+
9
+ For further information, see: http://www.w3.org/TR/xhtml1
10
+
11
+ Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
12
+ All Rights Reserved.
13
+
14
+ This DTD module is identified by the PUBLIC and SYSTEM identifiers:
15
+
16
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
17
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
18
+
19
+ $Revision: 1.24 $
20
+ $Date: 2002/07/31 19:34:51 $
21
+
22
+ -->
23
+
24
+ <!--================ Character mnemonic entities =========================-->
25
+
26
+ <!ENTITY % HTMLlat1 PUBLIC
27
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN"
28
+ "xhtml-lat1.ent">
29
+ %HTMLlat1;
30
+
31
+ <!ENTITY % HTMLsymbol PUBLIC
32
+ "-//W3C//ENTITIES Symbols for XHTML//EN"
33
+ "xhtml-symbol.ent">
34
+ %HTMLsymbol;
35
+
36
+ <!ENTITY % HTMLspecial PUBLIC
37
+ "-//W3C//ENTITIES Special for XHTML//EN"
38
+ "xhtml-special.ent">
39
+ %HTMLspecial;
40
+
41
+ <!--================== Imported Names ====================================-->
42
+
43
+ <!ENTITY % ContentType "CDATA">
44
+ <!-- media type, as per [RFC2045] -->
45
+
46
+ <!ENTITY % ContentTypes "CDATA">
47
+ <!-- comma-separated list of media types, as per [RFC2045] -->
48
+
49
+ <!ENTITY % Charset "CDATA">
50
+ <!-- a character encoding, as per [RFC2045] -->
51
+
52
+ <!ENTITY % Charsets "CDATA">
53
+ <!-- a space separated list of character encodings, as per [RFC2045] -->
54
+
55
+ <!ENTITY % LanguageCode "NMTOKEN">
56
+ <!-- a language code, as per [RFC3066] -->
57
+
58
+ <!ENTITY % Character "CDATA">
59
+ <!-- a single character, as per section 2.2 of [XML] -->
60
+
61
+ <!ENTITY % Number "CDATA">
62
+ <!-- one or more digits -->
63
+
64
+ <!ENTITY % LinkTypes "CDATA">
65
+ <!-- space-separated list of link types -->
66
+
67
+ <!ENTITY % MediaDesc "CDATA">
68
+ <!-- single or comma-separated list of media descriptors -->
69
+
70
+ <!ENTITY % URI "CDATA">
71
+ <!-- a Uniform Resource Identifier, see [RFC2396] -->
72
+
73
+ <!ENTITY % UriList "CDATA">
74
+ <!-- a space separated list of Uniform Resource Identifiers -->
75
+
76
+ <!ENTITY % Datetime "CDATA">
77
+ <!-- date and time information. ISO date format -->
78
+
79
+ <!ENTITY % Script "CDATA">
80
+ <!-- script expression -->
81
+
82
+ <!ENTITY % StyleSheet "CDATA">
83
+ <!-- style sheet data -->
84
+
85
+ <!ENTITY % Text "CDATA">
86
+ <!-- used for titles etc. -->
87
+
88
+ <!ENTITY % Length "CDATA">
89
+ <!-- nn for pixels or nn% for percentage length -->
90
+
91
+ <!ENTITY % MultiLength "CDATA">
92
+ <!-- pixel, percentage, or relative -->
93
+
94
+ <!ENTITY % Pixels "CDATA">
95
+ <!-- integer representing length in pixels -->
96
+
97
+ <!-- these are used for image maps -->
98
+
99
+ <!ENTITY % Shape "(rect|circle|poly|default)">
100
+
101
+ <!ENTITY % Coords "CDATA">
102
+ <!-- comma separated list of lengths -->
103
+
104
+ <!--=================== Generic Attributes ===============================-->
105
+
106
+ <!-- core attributes common to most elements
107
+ id document-wide unique id
108
+ class space separated list of classes
109
+ style associated style info
110
+ title advisory title/amplification
111
+ -->
112
+ <!ENTITY % coreattrs
113
+ "id ID #IMPLIED
114
+ class CDATA #IMPLIED
115
+ style %StyleSheet; #IMPLIED
116
+ title %Text; #IMPLIED"
117
+ >
118
+
119
+ <!-- internationalization attributes
120
+ lang language code (backwards compatible)
121
+ xml:lang language code (as per XML 1.0 spec)
122
+ dir direction for weak/neutral text
123
+ -->
124
+ <!ENTITY % i18n
125
+ "lang %LanguageCode; #IMPLIED
126
+ xml:lang %LanguageCode; #IMPLIED
127
+ dir (ltr|rtl) #IMPLIED"
128
+ >
129
+
130
+ <!-- attributes for common UI events
131
+ onclick a pointer button was clicked
132
+ ondblclick a pointer button was double clicked
133
+ onmousedown a pointer button was pressed down
134
+ onmouseup a pointer button was released
135
+ onmousemove a pointer was moved onto the element
136
+ onmouseout a pointer was moved away from the element
137
+ onkeypress a key was pressed and released
138
+ onkeydown a key was pressed down
139
+ onkeyup a key was released
140
+ -->
141
+ <!ENTITY % events
142
+ "onclick %Script; #IMPLIED
143
+ ondblclick %Script; #IMPLIED
144
+ onmousedown %Script; #IMPLIED
145
+ onmouseup %Script; #IMPLIED
146
+ onmouseover %Script; #IMPLIED
147
+ onmousemove %Script; #IMPLIED
148
+ onmouseout %Script; #IMPLIED
149
+ onkeypress %Script; #IMPLIED
150
+ onkeydown %Script; #IMPLIED
151
+ onkeyup %Script; #IMPLIED"
152
+ >
153
+
154
+ <!-- attributes for elements that can get the focus
155
+ accesskey accessibility key character
156
+ tabindex position in tabbing order
157
+ onfocus the element got the focus
158
+ onblur the element lost the focus
159
+ -->
160
+ <!ENTITY % focus
161
+ "accesskey %Character; #IMPLIED
162
+ tabindex %Number; #IMPLIED
163
+ onfocus %Script; #IMPLIED
164
+ onblur %Script; #IMPLIED"
165
+ >
166
+
167
+ <!ENTITY % attrs "%coreattrs; %i18n; %events;">
168
+
169
+ <!--=================== Text Elements ====================================-->
170
+
171
+ <!ENTITY % special.pre
172
+ "br | span | bdo | map">
173
+
174
+
175
+ <!ENTITY % special
176
+ "%special.pre; | object | img ">
177
+
178
+ <!ENTITY % fontstyle "tt | i | b | big | small ">
179
+
180
+ <!ENTITY % phrase "em | strong | dfn | code | q |
181
+ samp | kbd | var | cite | abbr | acronym | sub | sup ">
182
+
183
+ <!ENTITY % inline.forms "input | select | textarea | label | button">
184
+
185
+ <!-- these can occur at block or inline level -->
186
+ <!ENTITY % misc.inline "ins | del | script">
187
+
188
+ <!-- these can only occur at block level -->
189
+ <!ENTITY % misc "noscript | %misc.inline;">
190
+
191
+ <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
192
+
193
+ <!-- %Inline; covers inline or "text-level" elements -->
194
+ <!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
195
+
196
+ <!--================== Block level elements ==============================-->
197
+
198
+ <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
199
+ <!ENTITY % lists "ul | ol | dl">
200
+ <!ENTITY % blocktext "pre | hr | blockquote | address">
201
+
202
+ <!ENTITY % block
203
+ "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
204
+
205
+ <!ENTITY % Block "(%block; | form | %misc;)*">
206
+
207
+ <!-- %Flow; mixes block and inline and is used for list items etc. -->
208
+ <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
209
+
210
+ <!--================== Content models for exclusions =====================-->
211
+
212
+ <!-- a elements use %Inline; excluding a -->
213
+
214
+ <!ENTITY % a.content
215
+ "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
216
+
217
+ <!-- pre uses %Inline excluding big, small, sup or sup -->
218
+
219
+ <!ENTITY % pre.content
220
+ "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
221
+ | %inline.forms;)*">
222
+
223
+ <!-- form uses %Block; excluding form -->
224
+
225
+ <!ENTITY % form.content "(%block; | %misc;)*">
226
+
227
+ <!-- button uses %Flow; but excludes a, form and form controls -->
228
+
229
+ <!ENTITY % button.content
230
+ "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
231
+ table | %special; | %fontstyle; | %phrase; | %misc;)*">
232
+
233
+ <!--================ Document Structure ==================================-->
234
+
235
+ <!-- the namespace URI designates the document profile -->
236
+
237
+ <!ELEMENT html (head, body)>
238
+ <!ATTLIST html
239
+ %i18n;
240
+ id ID #IMPLIED
241
+ xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
242
+ >
243
+
244
+ <!--================ Document Head =======================================-->
245
+
246
+ <!ENTITY % head.misc "(script|style|meta|link|object)*">
247
+
248
+ <!-- content model is %head.misc; combined with a single
249
+ title and an optional base element in any order -->
250
+
251
+ <!ELEMENT head (%head.misc;,
252
+ ((title, %head.misc;, (base, %head.misc;)?) |
253
+ (base, %head.misc;, (title, %head.misc;))))>
254
+
255
+ <!ATTLIST head
256
+ %i18n;
257
+ id ID #IMPLIED
258
+ profile %URI; #IMPLIED
259
+ >
260
+
261
+ <!-- The title element is not considered part of the flow of text.
262
+ It should be displayed, for example as the page header or
263
+ window title. Exactly one title is required per document.
264
+ -->
265
+ <!ELEMENT title (#PCDATA)>
266
+ <!ATTLIST title
267
+ %i18n;
268
+ id ID #IMPLIED
269
+ >
270
+
271
+ <!-- document base URI -->
272
+
273
+ <!ELEMENT base EMPTY>
274
+ <!ATTLIST base
275
+ href %URI; #REQUIRED
276
+ id ID #IMPLIED
277
+ >
278
+
279
+ <!-- generic metainformation -->
280
+ <!ELEMENT meta EMPTY>
281
+ <!ATTLIST meta
282
+ %i18n;
283
+ id ID #IMPLIED
284
+ http-equiv CDATA #IMPLIED
285
+ name CDATA #IMPLIED
286
+ content CDATA #REQUIRED
287
+ scheme CDATA #IMPLIED
288
+ >
289
+
290
+ <!--
291
+ Relationship values can be used in principle:
292
+
293
+ a) for document specific toolbars/menus when used
294
+ with the link element in document head e.g.
295
+ start, contents, previous, next, index, end, help
296
+ b) to link to a separate style sheet (rel="stylesheet")
297
+ c) to make a link to a script (rel="script")
298
+ d) by stylesheets to control how collections of
299
+ html nodes are rendered into printed documents
300
+ e) to make a link to a printable version of this document
301
+ e.g. a PostScript or PDF version (rel="alternate" media="print")
302
+ -->
303
+
304
+ <!ELEMENT link EMPTY>
305
+ <!ATTLIST link
306
+ %attrs;
307
+ charset %Charset; #IMPLIED
308
+ href %URI; #IMPLIED
309
+ hreflang %LanguageCode; #IMPLIED
310
+ type %ContentType; #IMPLIED
311
+ rel %LinkTypes; #IMPLIED
312
+ rev %LinkTypes; #IMPLIED
313
+ media %MediaDesc; #IMPLIED
314
+ >
315
+
316
+ <!-- style info, which may include CDATA sections -->
317
+ <!ELEMENT style (#PCDATA)>
318
+ <!ATTLIST style
319
+ %i18n;
320
+ id ID #IMPLIED
321
+ type %ContentType; #REQUIRED
322
+ media %MediaDesc; #IMPLIED
323
+ title %Text; #IMPLIED
324
+ xml:space (preserve) #FIXED 'preserve'
325
+ >
326
+
327
+ <!-- script statements, which may include CDATA sections -->
328
+ <!ELEMENT script (#PCDATA)>
329
+ <!ATTLIST script
330
+ id ID #IMPLIED
331
+ charset %Charset; #IMPLIED
332
+ type %ContentType; #REQUIRED
333
+ src %URI; #IMPLIED
334
+ defer (defer) #IMPLIED
335
+ xml:space (preserve) #FIXED 'preserve'
336
+ >
337
+
338
+ <!-- alternate content container for non script-based rendering -->
339
+
340
+ <!ELEMENT noscript %Block;>
341
+ <!ATTLIST noscript
342
+ %attrs;
343
+ >
344
+
345
+ <!--=================== Document Body ====================================-->
346
+
347
+ <!ELEMENT body %Block;>
348
+ <!ATTLIST body
349
+ %attrs;
350
+ onload %Script; #IMPLIED
351
+ onunload %Script; #IMPLIED
352
+ >
353
+
354
+ <!ELEMENT div %Flow;> <!-- generic language/style container -->
355
+ <!ATTLIST div
356
+ %attrs;
357
+ >
358
+
359
+ <!--=================== Paragraphs =======================================-->
360
+
361
+ <!ELEMENT p %Inline;>
362
+ <!ATTLIST p
363
+ %attrs;
364
+ >
365
+
366
+ <!--=================== Headings =========================================-->
367
+
368
+ <!--
369
+ There are six levels of headings from h1 (the most important)
370
+ to h6 (the least important).
371
+ -->
372
+
373
+ <!ELEMENT h1 %Inline;>
374
+ <!ATTLIST h1
375
+ %attrs;
376
+ >
377
+
378
+ <!ELEMENT h2 %Inline;>
379
+ <!ATTLIST h2
380
+ %attrs;
381
+ >
382
+
383
+ <!ELEMENT h3 %Inline;>
384
+ <!ATTLIST h3
385
+ %attrs;
386
+ >
387
+
388
+ <!ELEMENT h4 %Inline;>
389
+ <!ATTLIST h4
390
+ %attrs;
391
+ >
392
+
393
+ <!ELEMENT h5 %Inline;>
394
+ <!ATTLIST h5
395
+ %attrs;
396
+ >
397
+
398
+ <!ELEMENT h6 %Inline;>
399
+ <!ATTLIST h6
400
+ %attrs;
401
+ >
402
+
403
+ <!--=================== Lists ============================================-->
404
+
405
+ <!-- Unordered list -->
406
+
407
+ <!ELEMENT ul (li)+>
408
+ <!ATTLIST ul
409
+ %attrs;
410
+ >
411
+
412
+ <!-- Ordered (numbered) list -->
413
+
414
+ <!ELEMENT ol (li)+>
415
+ <!ATTLIST ol
416
+ %attrs;
417
+ >
418
+
419
+ <!-- list item -->
420
+
421
+ <!ELEMENT li %Flow;>
422
+ <!ATTLIST li
423
+ %attrs;
424
+ >
425
+
426
+ <!-- definition lists - dt for term, dd for its definition -->
427
+
428
+ <!ELEMENT dl (dt|dd)+>
429
+ <!ATTLIST dl
430
+ %attrs;
431
+ >
432
+
433
+ <!ELEMENT dt %Inline;>
434
+ <!ATTLIST dt
435
+ %attrs;
436
+ >
437
+
438
+ <!ELEMENT dd %Flow;>
439
+ <!ATTLIST dd
440
+ %attrs;
441
+ >
442
+
443
+ <!--=================== Address ==========================================-->
444
+
445
+ <!-- information on author -->
446
+
447
+ <!ELEMENT address %Inline;>
448
+ <!ATTLIST address
449
+ %attrs;
450
+ >
451
+
452
+ <!--=================== Horizontal Rule ==================================-->
453
+
454
+ <!ELEMENT hr EMPTY>
455
+ <!ATTLIST hr
456
+ %attrs;
457
+ >
458
+
459
+ <!--=================== Preformatted Text ================================-->
460
+
461
+ <!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
462
+
463
+ <!ELEMENT pre %pre.content;>
464
+ <!ATTLIST pre
465
+ %attrs;
466
+ xml:space (preserve) #FIXED 'preserve'
467
+ >
468
+
469
+ <!--=================== Block-like Quotes ================================-->
470
+
471
+ <!ELEMENT blockquote %Block;>
472
+ <!ATTLIST blockquote
473
+ %attrs;
474
+ cite %URI; #IMPLIED
475
+ >
476
+
477
+ <!--=================== Inserted/Deleted Text ============================-->
478
+
479
+ <!--
480
+ ins/del are allowed in block and inline content, but its
481
+ inappropriate to include block content within an ins element
482
+ occurring in inline content.
483
+ -->
484
+ <!ELEMENT ins %Flow;>
485
+ <!ATTLIST ins
486
+ %attrs;
487
+ cite %URI; #IMPLIED
488
+ datetime %Datetime; #IMPLIED
489
+ >
490
+
491
+ <!ELEMENT del %Flow;>
492
+ <!ATTLIST del
493
+ %attrs;
494
+ cite %URI; #IMPLIED
495
+ datetime %Datetime; #IMPLIED
496
+ >
497
+
498
+ <!--================== The Anchor Element ================================-->
499
+
500
+ <!-- content is %Inline; except that anchors shouldn't be nested -->
501
+
502
+ <!ELEMENT a %a.content;>
503
+ <!ATTLIST a
504
+ %attrs;
505
+ %focus;
506
+ charset %Charset; #IMPLIED
507
+ type %ContentType; #IMPLIED
508
+ name NMTOKEN #IMPLIED
509
+ href %URI; #IMPLIED
510
+ hreflang %LanguageCode; #IMPLIED
511
+ rel %LinkTypes; #IMPLIED
512
+ rev %LinkTypes; #IMPLIED
513
+ shape %Shape; "rect"
514
+ coords %Coords; #IMPLIED
515
+ >
516
+
517
+ <!--===================== Inline Elements ================================-->
518
+
519
+ <!ELEMENT span %Inline;> <!-- generic language/style container -->
520
+ <!ATTLIST span
521
+ %attrs;
522
+ >
523
+
524
+ <!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
525
+ <!ATTLIST bdo
526
+ %coreattrs;
527
+ %events;
528
+ lang %LanguageCode; #IMPLIED
529
+ xml:lang %LanguageCode; #IMPLIED
530
+ dir (ltr|rtl) #REQUIRED
531
+ >
532
+
533
+ <!ELEMENT br EMPTY> <!-- forced line break -->
534
+ <!ATTLIST br
535
+ %coreattrs;
536
+ >
537
+
538
+ <!ELEMENT em %Inline;> <!-- emphasis -->
539
+ <!ATTLIST em %attrs;>
540
+
541
+ <!ELEMENT strong %Inline;> <!-- strong emphasis -->
542
+ <!ATTLIST strong %attrs;>
543
+
544
+ <!ELEMENT dfn %Inline;> <!-- definitional -->
545
+ <!ATTLIST dfn %attrs;>
546
+
547
+ <!ELEMENT code %Inline;> <!-- program code -->
548
+ <!ATTLIST code %attrs;>
549
+
550
+ <!ELEMENT samp %Inline;> <!-- sample -->
551
+ <!ATTLIST samp %attrs;>
552
+
553
+ <!ELEMENT kbd %Inline;> <!-- something user would type -->
554
+ <!ATTLIST kbd %attrs;>
555
+
556
+ <!ELEMENT var %Inline;> <!-- variable -->
557
+ <!ATTLIST var %attrs;>
558
+
559
+ <!ELEMENT cite %Inline;> <!-- citation -->
560
+ <!ATTLIST cite %attrs;>
561
+
562
+ <!ELEMENT abbr %Inline;> <!-- abbreviation -->
563
+ <!ATTLIST abbr %attrs;>
564
+
565
+ <!ELEMENT acronym %Inline;> <!-- acronym -->
566
+ <!ATTLIST acronym %attrs;>
567
+
568
+ <!ELEMENT q %Inline;> <!-- inlined quote -->
569
+ <!ATTLIST q
570
+ %attrs;
571
+ cite %URI; #IMPLIED
572
+ >
573
+
574
+ <!ELEMENT sub %Inline;> <!-- subscript -->
575
+ <!ATTLIST sub %attrs;>
576
+
577
+ <!ELEMENT sup %Inline;> <!-- superscript -->
578
+ <!ATTLIST sup %attrs;>
579
+
580
+ <!ELEMENT tt %Inline;> <!-- fixed pitch font -->
581
+ <!ATTLIST tt %attrs;>
582
+
583
+ <!ELEMENT i %Inline;> <!-- italic font -->
584
+ <!ATTLIST i %attrs;>
585
+
586
+ <!ELEMENT b %Inline;> <!-- bold font -->
587
+ <!ATTLIST b %attrs;>
588
+
589
+ <!ELEMENT big %Inline;> <!-- bigger font -->
590
+ <!ATTLIST big %attrs;>
591
+
592
+ <!ELEMENT small %Inline;> <!-- smaller font -->
593
+ <!ATTLIST small %attrs;>
594
+
595
+ <!--==================== Object ======================================-->
596
+ <!--
597
+ object is used to embed objects as part of HTML pages.
598
+ param elements should precede other content. Parameters
599
+ can also be expressed as attribute/value pairs on the
600
+ object element itself when brevity is desired.
601
+ -->
602
+
603
+ <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
604
+ <!ATTLIST object
605
+ %attrs;
606
+ declare (declare) #IMPLIED
607
+ classid %URI; #IMPLIED
608
+ codebase %URI; #IMPLIED
609
+ data %URI; #IMPLIED
610
+ type %ContentType; #IMPLIED
611
+ codetype %ContentType; #IMPLIED
612
+ archive %UriList; #IMPLIED
613
+ standby %Text; #IMPLIED
614
+ height %Length; #IMPLIED
615
+ width %Length; #IMPLIED
616
+ usemap %URI; #IMPLIED
617
+ name NMTOKEN #IMPLIED
618
+ tabindex %Number; #IMPLIED
619
+ >
620
+
621
+ <!--
622
+ param is used to supply a named property value.
623
+ In XML it would seem natural to follow RDF and support an
624
+ abbreviated syntax where the param elements are replaced
625
+ by attribute value pairs on the object start tag.
626
+ -->
627
+ <!ELEMENT param EMPTY>
628
+ <!ATTLIST param
629
+ id ID #IMPLIED
630
+ name CDATA #IMPLIED
631
+ value CDATA #IMPLIED
632
+ valuetype (data|ref|object) "data"
633
+ type %ContentType; #IMPLIED
634
+ >
635
+
636
+ <!--=================== Images ===========================================-->
637
+
638
+ <!--
639
+ To avoid accessibility problems for people who aren't
640
+ able to see the image, you should provide a text
641
+ description using the alt and longdesc attributes.
642
+ In addition, avoid the use of server-side image maps.
643
+ Note that in this DTD there is no name attribute. That
644
+ is only available in the transitional and frameset DTD.
645
+ -->
646
+
647
+ <!ELEMENT img EMPTY>
648
+ <!ATTLIST img
649
+ %attrs;
650
+ src %URI; #REQUIRED
651
+ alt %Text; #REQUIRED
652
+ longdesc %URI; #IMPLIED
653
+ height %Length; #IMPLIED
654
+ width %Length; #IMPLIED
655
+ usemap %URI; #IMPLIED
656
+ ismap (ismap) #IMPLIED
657
+ >
658
+
659
+ <!-- usemap points to a map element which may be in this document
660
+ or an external document, although the latter is not widely supported -->
661
+
662
+ <!--================== Client-side image maps ============================-->
663
+
664
+ <!-- These can be placed in the same document or grouped in a
665
+ separate document although this isn't yet widely supported -->
666
+
667
+ <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
668
+ <!ATTLIST map
669
+ %i18n;
670
+ %events;
671
+ id ID #REQUIRED
672
+ class CDATA #IMPLIED
673
+ style %StyleSheet; #IMPLIED
674
+ title %Text; #IMPLIED
675
+ name NMTOKEN #IMPLIED
676
+ >
677
+
678
+ <!ELEMENT area EMPTY>
679
+ <!ATTLIST area
680
+ %attrs;
681
+ %focus;
682
+ shape %Shape; "rect"
683
+ coords %Coords; #IMPLIED
684
+ href %URI; #IMPLIED
685
+ nohref (nohref) #IMPLIED
686
+ alt %Text; #REQUIRED
687
+ >
688
+
689
+ <!--================ Forms ===============================================-->
690
+ <!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
691
+
692
+ <!ATTLIST form
693
+ %attrs;
694
+ action %URI; #REQUIRED
695
+ method (get|post) "get"
696
+ enctype %ContentType; "application/x-www-form-urlencoded"
697
+ onsubmit %Script; #IMPLIED
698
+ onreset %Script; #IMPLIED
699
+ accept %ContentTypes; #IMPLIED
700
+ accept-charset %Charsets; #IMPLIED
701
+ >
702
+
703
+ <!--
704
+ Each label must not contain more than ONE field
705
+ Label elements shouldn't be nested.
706
+ -->
707
+ <!ELEMENT label %Inline;>
708
+ <!ATTLIST label
709
+ %attrs;
710
+ for IDREF #IMPLIED
711
+ accesskey %Character; #IMPLIED
712
+ onfocus %Script; #IMPLIED
713
+ onblur %Script; #IMPLIED
714
+ >
715
+
716
+ <!ENTITY % InputType
717
+ "(text | password | checkbox |
718
+ radio | submit | reset |
719
+ file | hidden | image | button)"
720
+ >
721
+
722
+ <!-- the name attribute is required for all but submit & reset -->
723
+
724
+ <!ELEMENT input EMPTY> <!-- form control -->
725
+ <!ATTLIST input
726
+ %attrs;
727
+ %focus;
728
+ type %InputType; "text"
729
+ name CDATA #IMPLIED
730
+ value CDATA #IMPLIED
731
+ checked (checked) #IMPLIED
732
+ disabled (disabled) #IMPLIED
733
+ readonly (readonly) #IMPLIED
734
+ size CDATA #IMPLIED
735
+ maxlength %Number; #IMPLIED
736
+ src %URI; #IMPLIED
737
+ alt CDATA #IMPLIED
738
+ usemap %URI; #IMPLIED
739
+ onselect %Script; #IMPLIED
740
+ onchange %Script; #IMPLIED
741
+ accept %ContentTypes; #IMPLIED
742
+ >
743
+
744
+ <!ELEMENT select (optgroup|option)+> <!-- option selector -->
745
+ <!ATTLIST select
746
+ %attrs;
747
+ name CDATA #IMPLIED
748
+ size %Number; #IMPLIED
749
+ multiple (multiple) #IMPLIED
750
+ disabled (disabled) #IMPLIED
751
+ tabindex %Number; #IMPLIED
752
+ onfocus %Script; #IMPLIED
753
+ onblur %Script; #IMPLIED
754
+ onchange %Script; #IMPLIED
755
+ >
756
+
757
+ <!ELEMENT optgroup (option)+> <!-- option group -->
758
+ <!ATTLIST optgroup
759
+ %attrs;
760
+ disabled (disabled) #IMPLIED
761
+ label %Text; #REQUIRED
762
+ >
763
+
764
+ <!ELEMENT option (#PCDATA)> <!-- selectable choice -->
765
+ <!ATTLIST option
766
+ %attrs;
767
+ selected (selected) #IMPLIED
768
+ disabled (disabled) #IMPLIED
769
+ label %Text; #IMPLIED
770
+ value CDATA #IMPLIED
771
+ >
772
+
773
+ <!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
774
+ <!ATTLIST textarea
775
+ %attrs;
776
+ %focus;
777
+ name CDATA #IMPLIED
778
+ rows %Number; #REQUIRED
779
+ cols %Number; #REQUIRED
780
+ disabled (disabled) #IMPLIED
781
+ readonly (readonly) #IMPLIED
782
+ onselect %Script; #IMPLIED
783
+ onchange %Script; #IMPLIED
784
+ >
785
+
786
+ <!--
787
+ The fieldset element is used to group form fields.
788
+ Only one legend element should occur in the content
789
+ and if present should only be preceded by whitespace.
790
+ -->
791
+ <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
792
+ <!ATTLIST fieldset
793
+ %attrs;
794
+ >
795
+
796
+ <!ELEMENT legend %Inline;> <!-- fieldset label -->
797
+ <!ATTLIST legend
798
+ %attrs;
799
+ accesskey %Character; #IMPLIED
800
+ >
801
+
802
+ <!--
803
+ Content is %Flow; excluding a, form and form controls
804
+ -->
805
+ <!ELEMENT button %button.content;> <!-- push button -->
806
+ <!ATTLIST button
807
+ %attrs;
808
+ %focus;
809
+ name CDATA #IMPLIED
810
+ value CDATA #IMPLIED
811
+ type (button|submit|reset) "submit"
812
+ disabled (disabled) #IMPLIED
813
+ >
814
+
815
+ <!--======================= Tables =======================================-->
816
+
817
+ <!-- Derived from IETF HTML table standard, see [RFC1942] -->
818
+
819
+ <!--
820
+ The border attribute sets the thickness of the frame around the
821
+ table. The default units are screen pixels.
822
+
823
+ The frame attribute specifies which parts of the frame around
824
+ the table should be rendered. The values are not the same as
825
+ CALS to avoid a name clash with the valign attribute.
826
+ -->
827
+ <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
828
+
829
+ <!--
830
+ The rules attribute defines which rules to draw between cells:
831
+
832
+ If rules is absent then assume:
833
+ "none" if border is absent or border="0" otherwise "all"
834
+ -->
835
+
836
+ <!ENTITY % TRules "(none | groups | rows | cols | all)">
837
+
838
+ <!-- horizontal alignment attributes for cell contents
839
+
840
+ char alignment char, e.g. char=':'
841
+ charoff offset for alignment char
842
+ -->
843
+ <!ENTITY % cellhalign
844
+ "align (left|center|right|justify|char) #IMPLIED
845
+ char %Character; #IMPLIED
846
+ charoff %Length; #IMPLIED"
847
+ >
848
+
849
+ <!-- vertical alignment attributes for cell contents -->
850
+ <!ENTITY % cellvalign
851
+ "valign (top|middle|bottom|baseline) #IMPLIED"
852
+ >
853
+
854
+ <!ELEMENT table
855
+ (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
856
+ <!ELEMENT caption %Inline;>
857
+ <!ELEMENT thead (tr)+>
858
+ <!ELEMENT tfoot (tr)+>
859
+ <!ELEMENT tbody (tr)+>
860
+ <!ELEMENT colgroup (col)*>
861
+ <!ELEMENT col EMPTY>
862
+ <!ELEMENT tr (th|td)+>
863
+ <!ELEMENT th %Flow;>
864
+ <!ELEMENT td %Flow;>
865
+
866
+ <!ATTLIST table
867
+ %attrs;
868
+ summary %Text; #IMPLIED
869
+ width %Length; #IMPLIED
870
+ border %Pixels; #IMPLIED
871
+ frame %TFrame; #IMPLIED
872
+ rules %TRules; #IMPLIED
873
+ cellspacing %Length; #IMPLIED
874
+ cellpadding %Length; #IMPLIED
875
+ >
876
+
877
+ <!ATTLIST caption
878
+ %attrs;
879
+ >
880
+
881
+ <!--
882
+ colgroup groups a set of col elements. It allows you to group
883
+ several semantically related columns together.
884
+ -->
885
+ <!ATTLIST colgroup
886
+ %attrs;
887
+ span %Number; "1"
888
+ width %MultiLength; #IMPLIED
889
+ %cellhalign;
890
+ %cellvalign;
891
+ >
892
+
893
+ <!--
894
+ col elements define the alignment properties for cells in
895
+ one or more columns.
896
+
897
+ The width attribute specifies the width of the columns, e.g.
898
+
899
+ width=64 width in screen pixels
900
+ width=0.5* relative width of 0.5
901
+
902
+ The span attribute causes the attributes of one
903
+ col element to apply to more than one column.
904
+ -->
905
+ <!ATTLIST col
906
+ %attrs;
907
+ span %Number; "1"
908
+ width %MultiLength; #IMPLIED
909
+ %cellhalign;
910
+ %cellvalign;
911
+ >
912
+
913
+ <!--
914
+ Use thead to duplicate headers when breaking table
915
+ across page boundaries, or for static headers when
916
+ tbody sections are rendered in scrolling panel.
917
+
918
+ Use tfoot to duplicate footers when breaking table
919
+ across page boundaries, or for static footers when
920
+ tbody sections are rendered in scrolling panel.
921
+
922
+ Use multiple tbody sections when rules are needed
923
+ between groups of table rows.
924
+ -->
925
+ <!ATTLIST thead
926
+ %attrs;
927
+ %cellhalign;
928
+ %cellvalign;
929
+ >
930
+
931
+ <!ATTLIST tfoot
932
+ %attrs;
933
+ %cellhalign;
934
+ %cellvalign;
935
+ >
936
+
937
+ <!ATTLIST tbody
938
+ %attrs;
939
+ %cellhalign;
940
+ %cellvalign;
941
+ >
942
+
943
+ <!ATTLIST tr
944
+ %attrs;
945
+ %cellhalign;
946
+ %cellvalign;
947
+ >
948
+
949
+
950
+ <!-- Scope is simpler than headers attribute for common tables -->
951
+ <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
952
+
953
+ <!-- th is for headers, td for data and for cells acting as both -->
954
+
955
+ <!ATTLIST th
956
+ %attrs;
957
+ abbr %Text; #IMPLIED
958
+ axis CDATA #IMPLIED
959
+ headers IDREFS #IMPLIED
960
+ scope %Scope; #IMPLIED
961
+ rowspan %Number; "1"
962
+ colspan %Number; "1"
963
+ %cellhalign;
964
+ %cellvalign;
965
+ >
966
+
967
+ <!ATTLIST td
968
+ %attrs;
969
+ abbr %Text; #IMPLIED
970
+ axis CDATA #IMPLIED
971
+ headers IDREFS #IMPLIED
972
+ scope %Scope; #IMPLIED
973
+ rowspan %Number; "1"
974
+ colspan %Number; "1"
975
+ %cellhalign;
976
+ %cellvalign;
977
+ >
978
+