markup_validity 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/CHANGELOG.rdoc +10 -0
  2. data/Manifest.txt +88 -0
  3. data/Rakefile +7 -11
  4. data/lib/markup_validity.rb +1 -1
  5. data/lib/markup_validity/MarkUp.html +1095 -0
  6. data/lib/markup_validity/SCHEMA.html +90 -0
  7. data/lib/markup_validity/assertions.rb +8 -1
  8. data/lib/markup_validity/examples.html +25 -0
  9. data/lib/markup_validity/rspec.rb +19 -0
  10. data/lib/markup_validity/templates.html +15 -0
  11. data/lib/markup_validity/validator.rb +27 -1
  12. data/lib/markup_validity/xframes-1.xsd +166 -0
  13. data/lib/markup_validity/xhtml-access-1.xsd +43 -0
  14. data/lib/markup_validity/xhtml-applet-1.xsd +66 -0
  15. data/lib/markup_validity/xhtml-attribs-1.xsd +67 -0
  16. data/lib/markup_validity/xhtml-base-1.xsd +31 -0
  17. data/lib/markup_validity/xhtml-basic-form-1.xsd +195 -0
  18. data/lib/markup_validity/xhtml-basic-table-1.xsd +169 -0
  19. data/lib/markup_validity/xhtml-basic10-model-1.xsd +385 -0
  20. data/lib/markup_validity/xhtml-basic10-module-redefines-1.xsd +61 -0
  21. data/lib/markup_validity/xhtml-basic10-modules-1.xsd +233 -0
  22. data/lib/markup_validity/xhtml-basic10.xsd +99 -0
  23. data/lib/markup_validity/xhtml-basic11-model-1.xsd +622 -0
  24. data/lib/markup_validity/xhtml-basic11-modules-1.xsd +508 -0
  25. data/lib/markup_validity/xhtml-basic11.xsd +105 -0
  26. data/lib/markup_validity/xhtml-bdo-1.xsd +72 -0
  27. data/lib/markup_validity/xhtml-blkphras-1.xsd +155 -0
  28. data/lib/markup_validity/xhtml-blkpres-1.xsd +32 -0
  29. data/lib/markup_validity/xhtml-blkstruct-1.xsd +44 -0
  30. data/lib/markup_validity/xhtml-charent-1.xsd +38 -0
  31. data/lib/markup_validity/xhtml-copyright-1.xsd +29 -0
  32. data/lib/markup_validity/xhtml-csismap-1.xsd +91 -0
  33. data/lib/markup_validity/xhtml-datatypes-1.xsd +177 -0
  34. data/lib/markup_validity/xhtml-edit-1.xsd +34 -0
  35. data/lib/markup_validity/xhtml-events-1.xsd +130 -0
  36. data/lib/markup_validity/xhtml-form-1.xsd +321 -0
  37. data/lib/markup_validity/xhtml-frames-1.xsd +113 -0
  38. data/lib/markup_validity/xhtml-framework-1.xsd +62 -0
  39. data/lib/markup_validity/xhtml-hypertext-1.xsd +47 -0
  40. data/lib/markup_validity/xhtml-iframe-1.xsd +68 -0
  41. data/lib/markup_validity/xhtml-image-1.xsd +40 -0
  42. data/lib/markup_validity/xhtml-inlphras-1.xsd +158 -0
  43. data/lib/markup_validity/xhtml-inlpres-1.xsd +34 -0
  44. data/lib/markup_validity/xhtml-inlstruct-1.xsd +45 -0
  45. data/lib/markup_validity/xhtml-inlstyle-1.xsd +22 -0
  46. data/lib/markup_validity/xhtml-inputmode-1.xsd +35 -0
  47. data/lib/markup_validity/xhtml-lat1.ent +196 -0
  48. data/lib/markup_validity/xhtml-legacy-1.xsd +97 -0
  49. data/lib/markup_validity/xhtml-link-1.xsd +45 -0
  50. data/lib/markup_validity/xhtml-list-1.xsd +94 -0
  51. data/lib/markup_validity/xhtml-meta-1.xsd +54 -0
  52. data/lib/markup_validity/xhtml-metaAttributes-1.xsd +39 -0
  53. data/lib/markup_validity/xhtml-misc-1.xsd +441 -0
  54. data/lib/markup_validity/xhtml-nameident-1.xsd +63 -0
  55. data/lib/markup_validity/xhtml-notations-1.xsd +69 -0
  56. data/lib/markup_validity/xhtml-object-1.xsd +71 -0
  57. data/lib/markup_validity/xhtml-param-1.xsd +46 -0
  58. data/lib/markup_validity/xhtml-pres-1.xsd +46 -0
  59. data/lib/markup_validity/xhtml-print-1.xsd +85 -0
  60. data/lib/markup_validity/xhtml-print-model-1.xsd +604 -0
  61. data/lib/markup_validity/xhtml-print-modules-1.xsd +422 -0
  62. data/lib/markup_validity/xhtml-rdfa-1.dtd +438 -0
  63. data/lib/markup_validity/xhtml-rdfa-1.xsd +116 -0
  64. data/lib/markup_validity/xhtml-rdfa-model-1.xsd +461 -0
  65. data/lib/markup_validity/xhtml-rdfa-modules-1.xsd +548 -0
  66. data/lib/markup_validity/xhtml-ruby-1.xsd +170 -0
  67. data/lib/markup_validity/xhtml-ruby-basic-1.xsd +84 -0
  68. data/lib/markup_validity/xhtml-script-1.xsd +65 -0
  69. data/lib/markup_validity/xhtml-special.ent +80 -0
  70. data/lib/markup_validity/xhtml-ssismap-1.xsd +38 -0
  71. data/lib/markup_validity/xhtml-struct-1.xsd +85 -0
  72. data/lib/markup_validity/xhtml-style-1.xsd +47 -0
  73. data/lib/markup_validity/xhtml-symbol.ent +237 -0
  74. data/lib/markup_validity/xhtml-table-1.xsd +267 -0
  75. data/lib/markup_validity/xhtml-target-1.xsd +49 -0
  76. data/lib/markup_validity/xhtml-text-1.xsd +62 -0
  77. data/lib/markup_validity/xhtml1-strict.dtd +978 -0
  78. data/lib/markup_validity/xhtml1-transitional.dtd +1201 -0
  79. data/lib/markup_validity/xhtml11-model-1.xsd +715 -0
  80. data/lib/markup_validity/xhtml11-module-redefines-1.xsd +335 -0
  81. data/lib/markup_validity/xhtml11-modules-1.xsd +605 -0
  82. data/lib/markup_validity/xhtml11.xsd +107 -0
  83. data/lib/markup_validity/xhtml2.xsd +21 -0
  84. data/lib/markup_validity/xml-events-1.xsd +73 -0
  85. data/lib/markup_validity/xml-events-2.xsd +73 -0
  86. data/lib/markup_validity/xml-events-attribs-1.xsd +73 -0
  87. data/lib/markup_validity/xml-events-attribs-2.xsd +75 -0
  88. data/lib/markup_validity/xml-events-copyright-1.xsd +34 -0
  89. data/lib/markup_validity/xml-events-copyright-2.xsd +34 -0
  90. data/lib/markup_validity/xml-handlers-1.xsd +136 -0
  91. data/lib/markup_validity/xml-handlers-2.xsd +98 -0
  92. data/lib/markup_validity/xml-script-1.xsd +38 -0
  93. data/spec/matcher_spec.rb +8 -0
  94. data/test/assets/invalid_entity.xhtml +109 -0
  95. data/test/assets/invalid_entity_transitional.xhtml +109 -0
  96. data/test/helper.rb +48 -0
  97. data/test/test_markup_validity.rb +19 -0
  98. metadata +90 -3
@@ -0,0 +1,1201 @@
1
+ <!--
2
+ Extensible HTML version 1.0 Transitional DTD
3
+
4
+ This is the same as HTML 4 Transitional 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 Transitional//EN"
17
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
18
+
19
+ $Revision: 1.2 $
20
+ $Date: 2002/08/01 18:37:55 $
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 % FrameTarget "NMTOKEN">
89
+ <!-- render in this frame -->
90
+
91
+ <!ENTITY % Length "CDATA">
92
+ <!-- nn for pixels or nn% for percentage length -->
93
+
94
+ <!ENTITY % MultiLength "CDATA">
95
+ <!-- pixel, percentage, or relative -->
96
+
97
+ <!ENTITY % Pixels "CDATA">
98
+ <!-- integer representing length in pixels -->
99
+
100
+ <!-- these are used for image maps -->
101
+
102
+ <!ENTITY % Shape "(rect|circle|poly|default)">
103
+
104
+ <!ENTITY % Coords "CDATA">
105
+ <!-- comma separated list of lengths -->
106
+
107
+ <!-- used for object, applet, img, input and iframe -->
108
+ <!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
109
+
110
+ <!-- a color using sRGB: #RRGGBB as Hex values -->
111
+ <!ENTITY % Color "CDATA">
112
+
113
+ <!-- There are also 16 widely known color names with their sRGB values:
114
+
115
+ Black = #000000 Green = #008000
116
+ Silver = #C0C0C0 Lime = #00FF00
117
+ Gray = #808080 Olive = #808000
118
+ White = #FFFFFF Yellow = #FFFF00
119
+ Maroon = #800000 Navy = #000080
120
+ Red = #FF0000 Blue = #0000FF
121
+ Purple = #800080 Teal = #008080
122
+ Fuchsia= #FF00FF Aqua = #00FFFF
123
+ -->
124
+
125
+ <!--=================== Generic Attributes ===============================-->
126
+
127
+ <!-- core attributes common to most elements
128
+ id document-wide unique id
129
+ class space separated list of classes
130
+ style associated style info
131
+ title advisory title/amplification
132
+ -->
133
+ <!ENTITY % coreattrs
134
+ "id ID #IMPLIED
135
+ class CDATA #IMPLIED
136
+ style %StyleSheet; #IMPLIED
137
+ title %Text; #IMPLIED"
138
+ >
139
+
140
+ <!-- internationalization attributes
141
+ lang language code (backwards compatible)
142
+ xml:lang language code (as per XML 1.0 spec)
143
+ dir direction for weak/neutral text
144
+ -->
145
+ <!ENTITY % i18n
146
+ "lang %LanguageCode; #IMPLIED
147
+ xml:lang %LanguageCode; #IMPLIED
148
+ dir (ltr|rtl) #IMPLIED"
149
+ >
150
+
151
+ <!-- attributes for common UI events
152
+ onclick a pointer button was clicked
153
+ ondblclick a pointer button was double clicked
154
+ onmousedown a pointer button was pressed down
155
+ onmouseup a pointer button was released
156
+ onmousemove a pointer was moved onto the element
157
+ onmouseout a pointer was moved away from the element
158
+ onkeypress a key was pressed and released
159
+ onkeydown a key was pressed down
160
+ onkeyup a key was released
161
+ -->
162
+ <!ENTITY % events
163
+ "onclick %Script; #IMPLIED
164
+ ondblclick %Script; #IMPLIED
165
+ onmousedown %Script; #IMPLIED
166
+ onmouseup %Script; #IMPLIED
167
+ onmouseover %Script; #IMPLIED
168
+ onmousemove %Script; #IMPLIED
169
+ onmouseout %Script; #IMPLIED
170
+ onkeypress %Script; #IMPLIED
171
+ onkeydown %Script; #IMPLIED
172
+ onkeyup %Script; #IMPLIED"
173
+ >
174
+
175
+ <!-- attributes for elements that can get the focus
176
+ accesskey accessibility key character
177
+ tabindex position in tabbing order
178
+ onfocus the element got the focus
179
+ onblur the element lost the focus
180
+ -->
181
+ <!ENTITY % focus
182
+ "accesskey %Character; #IMPLIED
183
+ tabindex %Number; #IMPLIED
184
+ onfocus %Script; #IMPLIED
185
+ onblur %Script; #IMPLIED"
186
+ >
187
+
188
+ <!ENTITY % attrs "%coreattrs; %i18n; %events;">
189
+
190
+ <!-- text alignment for p, div, h1-h6. The default is
191
+ align="left" for ltr headings, "right" for rtl -->
192
+
193
+ <!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
194
+
195
+ <!--=================== Text Elements ====================================-->
196
+
197
+ <!ENTITY % special.extra
198
+ "object | applet | img | map | iframe">
199
+
200
+ <!ENTITY % special.basic
201
+ "br | span | bdo">
202
+
203
+ <!ENTITY % special
204
+ "%special.basic; | %special.extra;">
205
+
206
+ <!ENTITY % fontstyle.extra "big | small | font | basefont">
207
+
208
+ <!ENTITY % fontstyle.basic "tt | i | b | u
209
+ | s | strike ">
210
+
211
+ <!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
212
+
213
+ <!ENTITY % phrase.extra "sub | sup">
214
+ <!ENTITY % phrase.basic "em | strong | dfn | code | q |
215
+ samp | kbd | var | cite | abbr | acronym">
216
+
217
+ <!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
218
+
219
+ <!ENTITY % inline.forms "input | select | textarea | label | button">
220
+
221
+ <!-- these can occur at block or inline level -->
222
+ <!ENTITY % misc.inline "ins | del | script">
223
+
224
+ <!-- these can only occur at block level -->
225
+ <!ENTITY % misc "noscript | %misc.inline;">
226
+
227
+ <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
228
+
229
+ <!-- %Inline; covers inline or "text-level" elements -->
230
+ <!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
231
+
232
+ <!--================== Block level elements ==============================-->
233
+
234
+ <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
235
+ <!ENTITY % lists "ul | ol | dl | menu | dir">
236
+ <!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
237
+
238
+ <!ENTITY % block
239
+ "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
240
+
241
+ <!-- %Flow; mixes block and inline and is used for list items etc. -->
242
+ <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
243
+
244
+ <!--================== Content models for exclusions =====================-->
245
+
246
+ <!-- a elements use %Inline; excluding a -->
247
+
248
+ <!ENTITY % a.content
249
+ "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
250
+
251
+ <!-- pre uses %Inline excluding img, object, applet, big, small,
252
+ font, or basefont -->
253
+
254
+ <!ENTITY % pre.content
255
+ "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
256
+ %inline.forms; | %misc.inline;)*">
257
+
258
+ <!-- form uses %Flow; excluding form -->
259
+
260
+ <!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
261
+
262
+ <!-- button uses %Flow; but excludes a, form, form controls, iframe -->
263
+
264
+ <!ENTITY % button.content
265
+ "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
266
+ table | br | span | bdo | object | applet | img | map |
267
+ %fontstyle; | %phrase; | %misc;)*">
268
+
269
+ <!--================ Document Structure ==================================-->
270
+
271
+ <!-- the namespace URI designates the document profile -->
272
+
273
+ <!ELEMENT html (head, body)>
274
+ <!ATTLIST html
275
+ %i18n;
276
+ id ID #IMPLIED
277
+ xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
278
+ >
279
+
280
+ <!--================ Document Head =======================================-->
281
+
282
+ <!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
283
+
284
+ <!-- content model is %head.misc; combined with a single
285
+ title and an optional base element in any order -->
286
+
287
+ <!ELEMENT head (%head.misc;,
288
+ ((title, %head.misc;, (base, %head.misc;)?) |
289
+ (base, %head.misc;, (title, %head.misc;))))>
290
+
291
+ <!ATTLIST head
292
+ %i18n;
293
+ id ID #IMPLIED
294
+ profile %URI; #IMPLIED
295
+ >
296
+
297
+ <!-- The title element is not considered part of the flow of text.
298
+ It should be displayed, for example as the page header or
299
+ window title. Exactly one title is required per document.
300
+ -->
301
+ <!ELEMENT title (#PCDATA)>
302
+ <!ATTLIST title
303
+ %i18n;
304
+ id ID #IMPLIED
305
+ >
306
+
307
+ <!-- document base URI -->
308
+
309
+ <!ELEMENT base EMPTY>
310
+ <!ATTLIST base
311
+ id ID #IMPLIED
312
+ href %URI; #IMPLIED
313
+ target %FrameTarget; #IMPLIED
314
+ >
315
+
316
+ <!-- generic metainformation -->
317
+ <!ELEMENT meta EMPTY>
318
+ <!ATTLIST meta
319
+ %i18n;
320
+ id ID #IMPLIED
321
+ http-equiv CDATA #IMPLIED
322
+ name CDATA #IMPLIED
323
+ content CDATA #REQUIRED
324
+ scheme CDATA #IMPLIED
325
+ >
326
+
327
+ <!--
328
+ Relationship values can be used in principle:
329
+
330
+ a) for document specific toolbars/menus when used
331
+ with the link element in document head e.g.
332
+ start, contents, previous, next, index, end, help
333
+ b) to link to a separate style sheet (rel="stylesheet")
334
+ c) to make a link to a script (rel="script")
335
+ d) by stylesheets to control how collections of
336
+ html nodes are rendered into printed documents
337
+ e) to make a link to a printable version of this document
338
+ e.g. a PostScript or PDF version (rel="alternate" media="print")
339
+ -->
340
+
341
+ <!ELEMENT link EMPTY>
342
+ <!ATTLIST link
343
+ %attrs;
344
+ charset %Charset; #IMPLIED
345
+ href %URI; #IMPLIED
346
+ hreflang %LanguageCode; #IMPLIED
347
+ type %ContentType; #IMPLIED
348
+ rel %LinkTypes; #IMPLIED
349
+ rev %LinkTypes; #IMPLIED
350
+ media %MediaDesc; #IMPLIED
351
+ target %FrameTarget; #IMPLIED
352
+ >
353
+
354
+ <!-- style info, which may include CDATA sections -->
355
+ <!ELEMENT style (#PCDATA)>
356
+ <!ATTLIST style
357
+ %i18n;
358
+ id ID #IMPLIED
359
+ type %ContentType; #REQUIRED
360
+ media %MediaDesc; #IMPLIED
361
+ title %Text; #IMPLIED
362
+ xml:space (preserve) #FIXED 'preserve'
363
+ >
364
+
365
+ <!-- script statements, which may include CDATA sections -->
366
+ <!ELEMENT script (#PCDATA)>
367
+ <!ATTLIST script
368
+ id ID #IMPLIED
369
+ charset %Charset; #IMPLIED
370
+ type %ContentType; #REQUIRED
371
+ language CDATA #IMPLIED
372
+ src %URI; #IMPLIED
373
+ defer (defer) #IMPLIED
374
+ xml:space (preserve) #FIXED 'preserve'
375
+ >
376
+
377
+ <!-- alternate content container for non script-based rendering -->
378
+
379
+ <!ELEMENT noscript %Flow;>
380
+ <!ATTLIST noscript
381
+ %attrs;
382
+ >
383
+
384
+ <!--======================= Frames =======================================-->
385
+
386
+ <!-- inline subwindow -->
387
+
388
+ <!ELEMENT iframe %Flow;>
389
+ <!ATTLIST iframe
390
+ %coreattrs;
391
+ longdesc %URI; #IMPLIED
392
+ name NMTOKEN #IMPLIED
393
+ src %URI; #IMPLIED
394
+ frameborder (1|0) "1"
395
+ marginwidth %Pixels; #IMPLIED
396
+ marginheight %Pixels; #IMPLIED
397
+ scrolling (yes|no|auto) "auto"
398
+ align %ImgAlign; #IMPLIED
399
+ height %Length; #IMPLIED
400
+ width %Length; #IMPLIED
401
+ >
402
+
403
+ <!-- alternate content container for non frame-based rendering -->
404
+
405
+ <!ELEMENT noframes %Flow;>
406
+ <!ATTLIST noframes
407
+ %attrs;
408
+ >
409
+
410
+ <!--=================== Document Body ====================================-->
411
+
412
+ <!ELEMENT body %Flow;>
413
+ <!ATTLIST body
414
+ %attrs;
415
+ onload %Script; #IMPLIED
416
+ onunload %Script; #IMPLIED
417
+ background %URI; #IMPLIED
418
+ bgcolor %Color; #IMPLIED
419
+ text %Color; #IMPLIED
420
+ link %Color; #IMPLIED
421
+ vlink %Color; #IMPLIED
422
+ alink %Color; #IMPLIED
423
+ >
424
+
425
+ <!ELEMENT div %Flow;> <!-- generic language/style container -->
426
+ <!ATTLIST div
427
+ %attrs;
428
+ %TextAlign;
429
+ >
430
+
431
+ <!--=================== Paragraphs =======================================-->
432
+
433
+ <!ELEMENT p %Inline;>
434
+ <!ATTLIST p
435
+ %attrs;
436
+ %TextAlign;
437
+ >
438
+
439
+ <!--=================== Headings =========================================-->
440
+
441
+ <!--
442
+ There are six levels of headings from h1 (the most important)
443
+ to h6 (the least important).
444
+ -->
445
+
446
+ <!ELEMENT h1 %Inline;>
447
+ <!ATTLIST h1
448
+ %attrs;
449
+ %TextAlign;
450
+ >
451
+
452
+ <!ELEMENT h2 %Inline;>
453
+ <!ATTLIST h2
454
+ %attrs;
455
+ %TextAlign;
456
+ >
457
+
458
+ <!ELEMENT h3 %Inline;>
459
+ <!ATTLIST h3
460
+ %attrs;
461
+ %TextAlign;
462
+ >
463
+
464
+ <!ELEMENT h4 %Inline;>
465
+ <!ATTLIST h4
466
+ %attrs;
467
+ %TextAlign;
468
+ >
469
+
470
+ <!ELEMENT h5 %Inline;>
471
+ <!ATTLIST h5
472
+ %attrs;
473
+ %TextAlign;
474
+ >
475
+
476
+ <!ELEMENT h6 %Inline;>
477
+ <!ATTLIST h6
478
+ %attrs;
479
+ %TextAlign;
480
+ >
481
+
482
+ <!--=================== Lists ============================================-->
483
+
484
+ <!-- Unordered list bullet styles -->
485
+
486
+ <!ENTITY % ULStyle "(disc|square|circle)">
487
+
488
+ <!-- Unordered list -->
489
+
490
+ <!ELEMENT ul (li)+>
491
+ <!ATTLIST ul
492
+ %attrs;
493
+ type %ULStyle; #IMPLIED
494
+ compact (compact) #IMPLIED
495
+ >
496
+
497
+ <!-- Ordered list numbering style
498
+
499
+ 1 arabic numbers 1, 2, 3, ...
500
+ a lower alpha a, b, c, ...
501
+ A upper alpha A, B, C, ...
502
+ i lower roman i, ii, iii, ...
503
+ I upper roman I, II, III, ...
504
+
505
+ The style is applied to the sequence number which by default
506
+ is reset to 1 for the first list item in an ordered list.
507
+ -->
508
+ <!ENTITY % OLStyle "CDATA">
509
+
510
+ <!-- Ordered (numbered) list -->
511
+
512
+ <!ELEMENT ol (li)+>
513
+ <!ATTLIST ol
514
+ %attrs;
515
+ type %OLStyle; #IMPLIED
516
+ compact (compact) #IMPLIED
517
+ start %Number; #IMPLIED
518
+ >
519
+
520
+ <!-- single column list (DEPRECATED) -->
521
+ <!ELEMENT menu (li)+>
522
+ <!ATTLIST menu
523
+ %attrs;
524
+ compact (compact) #IMPLIED
525
+ >
526
+
527
+ <!-- multiple column list (DEPRECATED) -->
528
+ <!ELEMENT dir (li)+>
529
+ <!ATTLIST dir
530
+ %attrs;
531
+ compact (compact) #IMPLIED
532
+ >
533
+
534
+ <!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
535
+ <!ENTITY % LIStyle "CDATA">
536
+
537
+ <!-- list item -->
538
+
539
+ <!ELEMENT li %Flow;>
540
+ <!ATTLIST li
541
+ %attrs;
542
+ type %LIStyle; #IMPLIED
543
+ value %Number; #IMPLIED
544
+ >
545
+
546
+ <!-- definition lists - dt for term, dd for its definition -->
547
+
548
+ <!ELEMENT dl (dt|dd)+>
549
+ <!ATTLIST dl
550
+ %attrs;
551
+ compact (compact) #IMPLIED
552
+ >
553
+
554
+ <!ELEMENT dt %Inline;>
555
+ <!ATTLIST dt
556
+ %attrs;
557
+ >
558
+
559
+ <!ELEMENT dd %Flow;>
560
+ <!ATTLIST dd
561
+ %attrs;
562
+ >
563
+
564
+ <!--=================== Address ==========================================-->
565
+
566
+ <!-- information on author -->
567
+
568
+ <!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
569
+ <!ATTLIST address
570
+ %attrs;
571
+ >
572
+
573
+ <!--=================== Horizontal Rule ==================================-->
574
+
575
+ <!ELEMENT hr EMPTY>
576
+ <!ATTLIST hr
577
+ %attrs;
578
+ align (left|center|right) #IMPLIED
579
+ noshade (noshade) #IMPLIED
580
+ size %Pixels; #IMPLIED
581
+ width %Length; #IMPLIED
582
+ >
583
+
584
+ <!--=================== Preformatted Text ================================-->
585
+
586
+ <!-- content is %Inline; excluding
587
+ "img|object|applet|big|small|sub|sup|font|basefont" -->
588
+
589
+ <!ELEMENT pre %pre.content;>
590
+ <!ATTLIST pre
591
+ %attrs;
592
+ width %Number; #IMPLIED
593
+ xml:space (preserve) #FIXED 'preserve'
594
+ >
595
+
596
+ <!--=================== Block-like Quotes ================================-->
597
+
598
+ <!ELEMENT blockquote %Flow;>
599
+ <!ATTLIST blockquote
600
+ %attrs;
601
+ cite %URI; #IMPLIED
602
+ >
603
+
604
+ <!--=================== Text alignment ===================================-->
605
+
606
+ <!-- center content -->
607
+ <!ELEMENT center %Flow;>
608
+ <!ATTLIST center
609
+ %attrs;
610
+ >
611
+
612
+ <!--=================== Inserted/Deleted Text ============================-->
613
+
614
+ <!--
615
+ ins/del are allowed in block and inline content, but its
616
+ inappropriate to include block content within an ins element
617
+ occurring in inline content.
618
+ -->
619
+ <!ELEMENT ins %Flow;>
620
+ <!ATTLIST ins
621
+ %attrs;
622
+ cite %URI; #IMPLIED
623
+ datetime %Datetime; #IMPLIED
624
+ >
625
+
626
+ <!ELEMENT del %Flow;>
627
+ <!ATTLIST del
628
+ %attrs;
629
+ cite %URI; #IMPLIED
630
+ datetime %Datetime; #IMPLIED
631
+ >
632
+
633
+ <!--================== The Anchor Element ================================-->
634
+
635
+ <!-- content is %Inline; except that anchors shouldn't be nested -->
636
+
637
+ <!ELEMENT a %a.content;>
638
+ <!ATTLIST a
639
+ %attrs;
640
+ %focus;
641
+ charset %Charset; #IMPLIED
642
+ type %ContentType; #IMPLIED
643
+ name NMTOKEN #IMPLIED
644
+ href %URI; #IMPLIED
645
+ hreflang %LanguageCode; #IMPLIED
646
+ rel %LinkTypes; #IMPLIED
647
+ rev %LinkTypes; #IMPLIED
648
+ shape %Shape; "rect"
649
+ coords %Coords; #IMPLIED
650
+ target %FrameTarget; #IMPLIED
651
+ >
652
+
653
+ <!--===================== Inline Elements ================================-->
654
+
655
+ <!ELEMENT span %Inline;> <!-- generic language/style container -->
656
+ <!ATTLIST span
657
+ %attrs;
658
+ >
659
+
660
+ <!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
661
+ <!ATTLIST bdo
662
+ %coreattrs;
663
+ %events;
664
+ lang %LanguageCode; #IMPLIED
665
+ xml:lang %LanguageCode; #IMPLIED
666
+ dir (ltr|rtl) #REQUIRED
667
+ >
668
+
669
+ <!ELEMENT br EMPTY> <!-- forced line break -->
670
+ <!ATTLIST br
671
+ %coreattrs;
672
+ clear (left|all|right|none) "none"
673
+ >
674
+
675
+ <!ELEMENT em %Inline;> <!-- emphasis -->
676
+ <!ATTLIST em %attrs;>
677
+
678
+ <!ELEMENT strong %Inline;> <!-- strong emphasis -->
679
+ <!ATTLIST strong %attrs;>
680
+
681
+ <!ELEMENT dfn %Inline;> <!-- definitional -->
682
+ <!ATTLIST dfn %attrs;>
683
+
684
+ <!ELEMENT code %Inline;> <!-- program code -->
685
+ <!ATTLIST code %attrs;>
686
+
687
+ <!ELEMENT samp %Inline;> <!-- sample -->
688
+ <!ATTLIST samp %attrs;>
689
+
690
+ <!ELEMENT kbd %Inline;> <!-- something user would type -->
691
+ <!ATTLIST kbd %attrs;>
692
+
693
+ <!ELEMENT var %Inline;> <!-- variable -->
694
+ <!ATTLIST var %attrs;>
695
+
696
+ <!ELEMENT cite %Inline;> <!-- citation -->
697
+ <!ATTLIST cite %attrs;>
698
+
699
+ <!ELEMENT abbr %Inline;> <!-- abbreviation -->
700
+ <!ATTLIST abbr %attrs;>
701
+
702
+ <!ELEMENT acronym %Inline;> <!-- acronym -->
703
+ <!ATTLIST acronym %attrs;>
704
+
705
+ <!ELEMENT q %Inline;> <!-- inlined quote -->
706
+ <!ATTLIST q
707
+ %attrs;
708
+ cite %URI; #IMPLIED
709
+ >
710
+
711
+ <!ELEMENT sub %Inline;> <!-- subscript -->
712
+ <!ATTLIST sub %attrs;>
713
+
714
+ <!ELEMENT sup %Inline;> <!-- superscript -->
715
+ <!ATTLIST sup %attrs;>
716
+
717
+ <!ELEMENT tt %Inline;> <!-- fixed pitch font -->
718
+ <!ATTLIST tt %attrs;>
719
+
720
+ <!ELEMENT i %Inline;> <!-- italic font -->
721
+ <!ATTLIST i %attrs;>
722
+
723
+ <!ELEMENT b %Inline;> <!-- bold font -->
724
+ <!ATTLIST b %attrs;>
725
+
726
+ <!ELEMENT big %Inline;> <!-- bigger font -->
727
+ <!ATTLIST big %attrs;>
728
+
729
+ <!ELEMENT small %Inline;> <!-- smaller font -->
730
+ <!ATTLIST small %attrs;>
731
+
732
+ <!ELEMENT u %Inline;> <!-- underline -->
733
+ <!ATTLIST u %attrs;>
734
+
735
+ <!ELEMENT s %Inline;> <!-- strike-through -->
736
+ <!ATTLIST s %attrs;>
737
+
738
+ <!ELEMENT strike %Inline;> <!-- strike-through -->
739
+ <!ATTLIST strike %attrs;>
740
+
741
+ <!ELEMENT basefont EMPTY> <!-- base font size -->
742
+ <!ATTLIST basefont
743
+ id ID #IMPLIED
744
+ size CDATA #REQUIRED
745
+ color %Color; #IMPLIED
746
+ face CDATA #IMPLIED
747
+ >
748
+
749
+ <!ELEMENT font %Inline;> <!-- local change to font -->
750
+ <!ATTLIST font
751
+ %coreattrs;
752
+ %i18n;
753
+ size CDATA #IMPLIED
754
+ color %Color; #IMPLIED
755
+ face CDATA #IMPLIED
756
+ >
757
+
758
+ <!--==================== Object ======================================-->
759
+ <!--
760
+ object is used to embed objects as part of HTML pages.
761
+ param elements should precede other content. Parameters
762
+ can also be expressed as attribute/value pairs on the
763
+ object element itself when brevity is desired.
764
+ -->
765
+
766
+ <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
767
+ <!ATTLIST object
768
+ %attrs;
769
+ declare (declare) #IMPLIED
770
+ classid %URI; #IMPLIED
771
+ codebase %URI; #IMPLIED
772
+ data %URI; #IMPLIED
773
+ type %ContentType; #IMPLIED
774
+ codetype %ContentType; #IMPLIED
775
+ archive %UriList; #IMPLIED
776
+ standby %Text; #IMPLIED
777
+ height %Length; #IMPLIED
778
+ width %Length; #IMPLIED
779
+ usemap %URI; #IMPLIED
780
+ name NMTOKEN #IMPLIED
781
+ tabindex %Number; #IMPLIED
782
+ align %ImgAlign; #IMPLIED
783
+ border %Pixels; #IMPLIED
784
+ hspace %Pixels; #IMPLIED
785
+ vspace %Pixels; #IMPLIED
786
+ >
787
+
788
+ <!--
789
+ param is used to supply a named property value.
790
+ In XML it would seem natural to follow RDF and support an
791
+ abbreviated syntax where the param elements are replaced
792
+ by attribute value pairs on the object start tag.
793
+ -->
794
+ <!ELEMENT param EMPTY>
795
+ <!ATTLIST param
796
+ id ID #IMPLIED
797
+ name CDATA #REQUIRED
798
+ value CDATA #IMPLIED
799
+ valuetype (data|ref|object) "data"
800
+ type %ContentType; #IMPLIED
801
+ >
802
+
803
+ <!--=================== Java applet ==================================-->
804
+ <!--
805
+ One of code or object attributes must be present.
806
+ Place param elements before other content.
807
+ -->
808
+ <!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
809
+ <!ATTLIST applet
810
+ %coreattrs;
811
+ codebase %URI; #IMPLIED
812
+ archive CDATA #IMPLIED
813
+ code CDATA #IMPLIED
814
+ object CDATA #IMPLIED
815
+ alt %Text; #IMPLIED
816
+ name NMTOKEN #IMPLIED
817
+ width %Length; #REQUIRED
818
+ height %Length; #REQUIRED
819
+ align %ImgAlign; #IMPLIED
820
+ hspace %Pixels; #IMPLIED
821
+ vspace %Pixels; #IMPLIED
822
+ >
823
+
824
+ <!--=================== Images ===========================================-->
825
+
826
+ <!--
827
+ To avoid accessibility problems for people who aren't
828
+ able to see the image, you should provide a text
829
+ description using the alt and longdesc attributes.
830
+ In addition, avoid the use of server-side image maps.
831
+ -->
832
+
833
+ <!ELEMENT img EMPTY>
834
+ <!ATTLIST img
835
+ %attrs;
836
+ src %URI; #REQUIRED
837
+ alt %Text; #REQUIRED
838
+ name NMTOKEN #IMPLIED
839
+ longdesc %URI; #IMPLIED
840
+ height %Length; #IMPLIED
841
+ width %Length; #IMPLIED
842
+ usemap %URI; #IMPLIED
843
+ ismap (ismap) #IMPLIED
844
+ align %ImgAlign; #IMPLIED
845
+ border %Length; #IMPLIED
846
+ hspace %Pixels; #IMPLIED
847
+ vspace %Pixels; #IMPLIED
848
+ >
849
+
850
+ <!-- usemap points to a map element which may be in this document
851
+ or an external document, although the latter is not widely supported -->
852
+
853
+ <!--================== Client-side image maps ============================-->
854
+
855
+ <!-- These can be placed in the same document or grouped in a
856
+ separate document although this isn't yet widely supported -->
857
+
858
+ <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
859
+ <!ATTLIST map
860
+ %i18n;
861
+ %events;
862
+ id ID #REQUIRED
863
+ class CDATA #IMPLIED
864
+ style %StyleSheet; #IMPLIED
865
+ title %Text; #IMPLIED
866
+ name CDATA #IMPLIED
867
+ >
868
+
869
+ <!ELEMENT area EMPTY>
870
+ <!ATTLIST area
871
+ %attrs;
872
+ %focus;
873
+ shape %Shape; "rect"
874
+ coords %Coords; #IMPLIED
875
+ href %URI; #IMPLIED
876
+ nohref (nohref) #IMPLIED
877
+ alt %Text; #REQUIRED
878
+ target %FrameTarget; #IMPLIED
879
+ >
880
+
881
+ <!--================ Forms ===============================================-->
882
+
883
+ <!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
884
+
885
+ <!ATTLIST form
886
+ %attrs;
887
+ action %URI; #REQUIRED
888
+ method (get|post) "get"
889
+ name NMTOKEN #IMPLIED
890
+ enctype %ContentType; "application/x-www-form-urlencoded"
891
+ onsubmit %Script; #IMPLIED
892
+ onreset %Script; #IMPLIED
893
+ accept %ContentTypes; #IMPLIED
894
+ accept-charset %Charsets; #IMPLIED
895
+ target %FrameTarget; #IMPLIED
896
+ >
897
+
898
+ <!--
899
+ Each label must not contain more than ONE field
900
+ Label elements shouldn't be nested.
901
+ -->
902
+ <!ELEMENT label %Inline;>
903
+ <!ATTLIST label
904
+ %attrs;
905
+ for IDREF #IMPLIED
906
+ accesskey %Character; #IMPLIED
907
+ onfocus %Script; #IMPLIED
908
+ onblur %Script; #IMPLIED
909
+ >
910
+
911
+ <!ENTITY % InputType
912
+ "(text | password | checkbox |
913
+ radio | submit | reset |
914
+ file | hidden | image | button)"
915
+ >
916
+
917
+ <!-- the name attribute is required for all but submit & reset -->
918
+
919
+ <!ELEMENT input EMPTY> <!-- form control -->
920
+ <!ATTLIST input
921
+ %attrs;
922
+ %focus;
923
+ type %InputType; "text"
924
+ name CDATA #IMPLIED
925
+ value CDATA #IMPLIED
926
+ checked (checked) #IMPLIED
927
+ disabled (disabled) #IMPLIED
928
+ readonly (readonly) #IMPLIED
929
+ size CDATA #IMPLIED
930
+ maxlength %Number; #IMPLIED
931
+ src %URI; #IMPLIED
932
+ alt CDATA #IMPLIED
933
+ usemap %URI; #IMPLIED
934
+ onselect %Script; #IMPLIED
935
+ onchange %Script; #IMPLIED
936
+ accept %ContentTypes; #IMPLIED
937
+ align %ImgAlign; #IMPLIED
938
+ >
939
+
940
+ <!ELEMENT select (optgroup|option)+> <!-- option selector -->
941
+ <!ATTLIST select
942
+ %attrs;
943
+ name CDATA #IMPLIED
944
+ size %Number; #IMPLIED
945
+ multiple (multiple) #IMPLIED
946
+ disabled (disabled) #IMPLIED
947
+ tabindex %Number; #IMPLIED
948
+ onfocus %Script; #IMPLIED
949
+ onblur %Script; #IMPLIED
950
+ onchange %Script; #IMPLIED
951
+ >
952
+
953
+ <!ELEMENT optgroup (option)+> <!-- option group -->
954
+ <!ATTLIST optgroup
955
+ %attrs;
956
+ disabled (disabled) #IMPLIED
957
+ label %Text; #REQUIRED
958
+ >
959
+
960
+ <!ELEMENT option (#PCDATA)> <!-- selectable choice -->
961
+ <!ATTLIST option
962
+ %attrs;
963
+ selected (selected) #IMPLIED
964
+ disabled (disabled) #IMPLIED
965
+ label %Text; #IMPLIED
966
+ value CDATA #IMPLIED
967
+ >
968
+
969
+ <!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
970
+ <!ATTLIST textarea
971
+ %attrs;
972
+ %focus;
973
+ name CDATA #IMPLIED
974
+ rows %Number; #REQUIRED
975
+ cols %Number; #REQUIRED
976
+ disabled (disabled) #IMPLIED
977
+ readonly (readonly) #IMPLIED
978
+ onselect %Script; #IMPLIED
979
+ onchange %Script; #IMPLIED
980
+ >
981
+
982
+ <!--
983
+ The fieldset element is used to group form fields.
984
+ Only one legend element should occur in the content
985
+ and if present should only be preceded by whitespace.
986
+ -->
987
+ <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
988
+ <!ATTLIST fieldset
989
+ %attrs;
990
+ >
991
+
992
+ <!ENTITY % LAlign "(top|bottom|left|right)">
993
+
994
+ <!ELEMENT legend %Inline;> <!-- fieldset label -->
995
+ <!ATTLIST legend
996
+ %attrs;
997
+ accesskey %Character; #IMPLIED
998
+ align %LAlign; #IMPLIED
999
+ >
1000
+
1001
+ <!--
1002
+ Content is %Flow; excluding a, form, form controls, iframe
1003
+ -->
1004
+ <!ELEMENT button %button.content;> <!-- push button -->
1005
+ <!ATTLIST button
1006
+ %attrs;
1007
+ %focus;
1008
+ name CDATA #IMPLIED
1009
+ value CDATA #IMPLIED
1010
+ type (button|submit|reset) "submit"
1011
+ disabled (disabled) #IMPLIED
1012
+ >
1013
+
1014
+ <!-- single-line text input control (DEPRECATED) -->
1015
+ <!ELEMENT isindex EMPTY>
1016
+ <!ATTLIST isindex
1017
+ %coreattrs;
1018
+ %i18n;
1019
+ prompt %Text; #IMPLIED
1020
+ >
1021
+
1022
+ <!--======================= Tables =======================================-->
1023
+
1024
+ <!-- Derived from IETF HTML table standard, see [RFC1942] -->
1025
+
1026
+ <!--
1027
+ The border attribute sets the thickness of the frame around the
1028
+ table. The default units are screen pixels.
1029
+
1030
+ The frame attribute specifies which parts of the frame around
1031
+ the table should be rendered. The values are not the same as
1032
+ CALS to avoid a name clash with the valign attribute.
1033
+ -->
1034
+ <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
1035
+
1036
+ <!--
1037
+ The rules attribute defines which rules to draw between cells:
1038
+
1039
+ If rules is absent then assume:
1040
+ "none" if border is absent or border="0" otherwise "all"
1041
+ -->
1042
+
1043
+ <!ENTITY % TRules "(none | groups | rows | cols | all)">
1044
+
1045
+ <!-- horizontal placement of table relative to document -->
1046
+ <!ENTITY % TAlign "(left|center|right)">
1047
+
1048
+ <!-- horizontal alignment attributes for cell contents
1049
+
1050
+ char alignment char, e.g. char=':'
1051
+ charoff offset for alignment char
1052
+ -->
1053
+ <!ENTITY % cellhalign
1054
+ "align (left|center|right|justify|char) #IMPLIED
1055
+ char %Character; #IMPLIED
1056
+ charoff %Length; #IMPLIED"
1057
+ >
1058
+
1059
+ <!-- vertical alignment attributes for cell contents -->
1060
+ <!ENTITY % cellvalign
1061
+ "valign (top|middle|bottom|baseline) #IMPLIED"
1062
+ >
1063
+
1064
+ <!ELEMENT table
1065
+ (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
1066
+ <!ELEMENT caption %Inline;>
1067
+ <!ELEMENT thead (tr)+>
1068
+ <!ELEMENT tfoot (tr)+>
1069
+ <!ELEMENT tbody (tr)+>
1070
+ <!ELEMENT colgroup (col)*>
1071
+ <!ELEMENT col EMPTY>
1072
+ <!ELEMENT tr (th|td)+>
1073
+ <!ELEMENT th %Flow;>
1074
+ <!ELEMENT td %Flow;>
1075
+
1076
+ <!ATTLIST table
1077
+ %attrs;
1078
+ summary %Text; #IMPLIED
1079
+ width %Length; #IMPLIED
1080
+ border %Pixels; #IMPLIED
1081
+ frame %TFrame; #IMPLIED
1082
+ rules %TRules; #IMPLIED
1083
+ cellspacing %Length; #IMPLIED
1084
+ cellpadding %Length; #IMPLIED
1085
+ align %TAlign; #IMPLIED
1086
+ bgcolor %Color; #IMPLIED
1087
+ >
1088
+
1089
+ <!ENTITY % CAlign "(top|bottom|left|right)">
1090
+
1091
+ <!ATTLIST caption
1092
+ %attrs;
1093
+ align %CAlign; #IMPLIED
1094
+ >
1095
+
1096
+ <!--
1097
+ colgroup groups a set of col elements. It allows you to group
1098
+ several semantically related columns together.
1099
+ -->
1100
+ <!ATTLIST colgroup
1101
+ %attrs;
1102
+ span %Number; "1"
1103
+ width %MultiLength; #IMPLIED
1104
+ %cellhalign;
1105
+ %cellvalign;
1106
+ >
1107
+
1108
+ <!--
1109
+ col elements define the alignment properties for cells in
1110
+ one or more columns.
1111
+
1112
+ The width attribute specifies the width of the columns, e.g.
1113
+
1114
+ width=64 width in screen pixels
1115
+ width=0.5* relative width of 0.5
1116
+
1117
+ The span attribute causes the attributes of one
1118
+ col element to apply to more than one column.
1119
+ -->
1120
+ <!ATTLIST col
1121
+ %attrs;
1122
+ span %Number; "1"
1123
+ width %MultiLength; #IMPLIED
1124
+ %cellhalign;
1125
+ %cellvalign;
1126
+ >
1127
+
1128
+ <!--
1129
+ Use thead to duplicate headers when breaking table
1130
+ across page boundaries, or for static headers when
1131
+ tbody sections are rendered in scrolling panel.
1132
+
1133
+ Use tfoot to duplicate footers when breaking table
1134
+ across page boundaries, or for static footers when
1135
+ tbody sections are rendered in scrolling panel.
1136
+
1137
+ Use multiple tbody sections when rules are needed
1138
+ between groups of table rows.
1139
+ -->
1140
+ <!ATTLIST thead
1141
+ %attrs;
1142
+ %cellhalign;
1143
+ %cellvalign;
1144
+ >
1145
+
1146
+ <!ATTLIST tfoot
1147
+ %attrs;
1148
+ %cellhalign;
1149
+ %cellvalign;
1150
+ >
1151
+
1152
+ <!ATTLIST tbody
1153
+ %attrs;
1154
+ %cellhalign;
1155
+ %cellvalign;
1156
+ >
1157
+
1158
+ <!ATTLIST tr
1159
+ %attrs;
1160
+ %cellhalign;
1161
+ %cellvalign;
1162
+ bgcolor %Color; #IMPLIED
1163
+ >
1164
+
1165
+ <!-- Scope is simpler than headers attribute for common tables -->
1166
+ <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
1167
+
1168
+ <!-- th is for headers, td for data and for cells acting as both -->
1169
+
1170
+ <!ATTLIST th
1171
+ %attrs;
1172
+ abbr %Text; #IMPLIED
1173
+ axis CDATA #IMPLIED
1174
+ headers IDREFS #IMPLIED
1175
+ scope %Scope; #IMPLIED
1176
+ rowspan %Number; "1"
1177
+ colspan %Number; "1"
1178
+ %cellhalign;
1179
+ %cellvalign;
1180
+ nowrap (nowrap) #IMPLIED
1181
+ bgcolor %Color; #IMPLIED
1182
+ width %Length; #IMPLIED
1183
+ height %Length; #IMPLIED
1184
+ >
1185
+
1186
+ <!ATTLIST td
1187
+ %attrs;
1188
+ abbr %Text; #IMPLIED
1189
+ axis CDATA #IMPLIED
1190
+ headers IDREFS #IMPLIED
1191
+ scope %Scope; #IMPLIED
1192
+ rowspan %Number; "1"
1193
+ colspan %Number; "1"
1194
+ %cellhalign;
1195
+ %cellvalign;
1196
+ nowrap (nowrap) #IMPLIED
1197
+ bgcolor %Color; #IMPLIED
1198
+ width %Length; #IMPLIED
1199
+ height %Length; #IMPLIED
1200
+ >
1201
+