validate-website 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +2 -1
- data/Rakefile +1 -1
- data/bin/validate-website +7 -6
- data/lib/validate_website.rb +39 -30
- data/lib/validator.rb +13 -12
- data/lib/xhtml/frameset.dtd +37 -0
- data/lib/xhtml/loose.dtd +1093 -0
- data/lib/xhtml/strict.dtd +870 -0
- data/lib/xhtml/xhtml-basic11.dtd +239 -0
- metadata +9 -5
@@ -0,0 +1,870 @@
|
|
1
|
+
<!--
|
2
|
+
This is HTML 4.01 Strict DTD, which excludes the presentation
|
3
|
+
attributes and elements that W3C expects to phase out as
|
4
|
+
support for style sheets matures. Authors should use the Strict
|
5
|
+
DTD when possible, but may use the Transitional DTD when support
|
6
|
+
for presentation attribute and elements is required.
|
7
|
+
|
8
|
+
HTML 4 includes mechanisms for style sheets, scripting,
|
9
|
+
embedding objects, improved support for right to left and mixed
|
10
|
+
direction text, and enhancements to forms for improved
|
11
|
+
accessibility for people with disabilities.
|
12
|
+
|
13
|
+
Draft: $Date: 1999/12/24 23:37:48 $
|
14
|
+
|
15
|
+
Authors:
|
16
|
+
Dave Raggett <dsr@w3.org>
|
17
|
+
Arnaud Le Hors <lehors@w3.org>
|
18
|
+
Ian Jacobs <ij@w3.org>
|
19
|
+
|
20
|
+
Further information about HTML 4.01 is available at:
|
21
|
+
|
22
|
+
http://www.w3.org/TR/1999/REC-html401-19991224
|
23
|
+
|
24
|
+
|
25
|
+
The HTML 4.01 specification includes additional
|
26
|
+
syntactic constraints that cannot be expressed within
|
27
|
+
the DTDs.
|
28
|
+
|
29
|
+
-->
|
30
|
+
<!--
|
31
|
+
Typical usage:
|
32
|
+
|
33
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
34
|
+
"http://www.w3.org/TR/html4/strict.dtd">
|
35
|
+
<html>
|
36
|
+
<head>
|
37
|
+
...
|
38
|
+
</head>
|
39
|
+
<body>
|
40
|
+
...
|
41
|
+
</body>
|
42
|
+
</html>
|
43
|
+
|
44
|
+
The URI used as a system identifier with the public identifier allows
|
45
|
+
the user agent to download the DTD and entity sets as needed.
|
46
|
+
|
47
|
+
The FPI for the Transitional HTML 4.01 DTD is:
|
48
|
+
|
49
|
+
"-//W3C//DTD HTML 4.01 Transitional//EN"
|
50
|
+
|
51
|
+
This version of the transitional DTD is:
|
52
|
+
|
53
|
+
http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd
|
54
|
+
|
55
|
+
If you are writing a document that includes frames, use
|
56
|
+
the following FPI:
|
57
|
+
|
58
|
+
"-//W3C//DTD HTML 4.01 Frameset//EN"
|
59
|
+
|
60
|
+
This version of the frameset DTD is:
|
61
|
+
|
62
|
+
http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
|
63
|
+
|
64
|
+
Use the following (relative) URIs to refer to
|
65
|
+
the DTDs and entity definitions of this specification:
|
66
|
+
|
67
|
+
"strict.dtd"
|
68
|
+
"loose.dtd"
|
69
|
+
"frameset.dtd"
|
70
|
+
"HTMLlat1.ent"
|
71
|
+
"HTMLsymbol.ent"
|
72
|
+
"HTMLspecial.ent"
|
73
|
+
|
74
|
+
-->
|
75
|
+
|
76
|
+
<!--================== Imported Names ====================================-->
|
77
|
+
<!-- Feature Switch for frameset documents -->
|
78
|
+
<!ENTITY % HTML.Frameset "IGNORE">
|
79
|
+
|
80
|
+
<!ENTITY % ContentType "CDATA"
|
81
|
+
-- media type, as per [RFC2045]
|
82
|
+
-->
|
83
|
+
|
84
|
+
<!ENTITY % ContentTypes "CDATA"
|
85
|
+
-- comma-separated list of media types, as per [RFC2045]
|
86
|
+
-->
|
87
|
+
|
88
|
+
<!ENTITY % Charset "CDATA"
|
89
|
+
-- a character encoding, as per [RFC2045]
|
90
|
+
-->
|
91
|
+
|
92
|
+
<!ENTITY % Charsets "CDATA"
|
93
|
+
-- a space-separated list of character encodings, as per [RFC2045]
|
94
|
+
-->
|
95
|
+
|
96
|
+
<!ENTITY % LanguageCode "NAME"
|
97
|
+
-- a language code, as per [RFC1766]
|
98
|
+
-->
|
99
|
+
|
100
|
+
<!ENTITY % Character "CDATA"
|
101
|
+
-- a single character from [ISO10646]
|
102
|
+
-->
|
103
|
+
|
104
|
+
<!ENTITY % LinkTypes "CDATA"
|
105
|
+
-- space-separated list of link types
|
106
|
+
-->
|
107
|
+
|
108
|
+
<!ENTITY % MediaDesc "CDATA"
|
109
|
+
-- single or comma-separated list of media descriptors
|
110
|
+
-->
|
111
|
+
|
112
|
+
<!ENTITY % URI "CDATA"
|
113
|
+
-- a Uniform Resource Identifier,
|
114
|
+
see [URI]
|
115
|
+
-->
|
116
|
+
|
117
|
+
<!ENTITY % Datetime "CDATA" -- date and time information. ISO date format -->
|
118
|
+
|
119
|
+
|
120
|
+
<!ENTITY % Script "CDATA" -- script expression -->
|
121
|
+
|
122
|
+
<!ENTITY % StyleSheet "CDATA" -- style sheet data -->
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
<!ENTITY % Text "CDATA">
|
127
|
+
|
128
|
+
|
129
|
+
<!-- Parameter Entities -->
|
130
|
+
|
131
|
+
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
|
132
|
+
|
133
|
+
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
|
134
|
+
|
135
|
+
<!ENTITY % list "UL | OL">
|
136
|
+
|
137
|
+
<!ENTITY % preformatted "PRE">
|
138
|
+
|
139
|
+
|
140
|
+
<!--================ Character mnemonic entities =========================-->
|
141
|
+
|
142
|
+
<!ENTITY % HTMLlat1 PUBLIC
|
143
|
+
"-//W3C//ENTITIES Latin1//EN//HTML"
|
144
|
+
"HTMLlat1.ent">
|
145
|
+
%HTMLlat1;
|
146
|
+
|
147
|
+
<!ENTITY % HTMLsymbol PUBLIC
|
148
|
+
"-//W3C//ENTITIES Symbols//EN//HTML"
|
149
|
+
"HTMLsymbol.ent">
|
150
|
+
%HTMLsymbol;
|
151
|
+
|
152
|
+
<!ENTITY % HTMLspecial PUBLIC
|
153
|
+
"-//W3C//ENTITIES Special//EN//HTML"
|
154
|
+
"HTMLspecial.ent">
|
155
|
+
%HTMLspecial;
|
156
|
+
<!--=================== Generic Attributes ===============================-->
|
157
|
+
|
158
|
+
<!ENTITY % coreattrs
|
159
|
+
"id ID #IMPLIED -- document-wide unique id --
|
160
|
+
class CDATA #IMPLIED -- space-separated list of classes --
|
161
|
+
style %StyleSheet; #IMPLIED -- associated style info --
|
162
|
+
title %Text; #IMPLIED -- advisory title --"
|
163
|
+
>
|
164
|
+
|
165
|
+
<!ENTITY % i18n
|
166
|
+
"lang %LanguageCode; #IMPLIED -- language code --
|
167
|
+
dir (ltr|rtl) #IMPLIED -- direction for weak/neutral text --"
|
168
|
+
>
|
169
|
+
|
170
|
+
<!ENTITY % events
|
171
|
+
"onclick %Script; #IMPLIED -- a pointer button was clicked --
|
172
|
+
ondblclick %Script; #IMPLIED -- a pointer button was double clicked--
|
173
|
+
onmousedown %Script; #IMPLIED -- a pointer button was pressed down --
|
174
|
+
onmouseup %Script; #IMPLIED -- a pointer button was released --
|
175
|
+
onmouseover %Script; #IMPLIED -- a pointer was moved onto --
|
176
|
+
onmousemove %Script; #IMPLIED -- a pointer was moved within --
|
177
|
+
onmouseout %Script; #IMPLIED -- a pointer was moved away --
|
178
|
+
onkeypress %Script; #IMPLIED -- a key was pressed and released --
|
179
|
+
onkeydown %Script; #IMPLIED -- a key was pressed down --
|
180
|
+
onkeyup %Script; #IMPLIED -- a key was released --"
|
181
|
+
>
|
182
|
+
|
183
|
+
<!-- Reserved Feature Switch -->
|
184
|
+
<!ENTITY % HTML.Reserved "IGNORE">
|
185
|
+
|
186
|
+
<!-- The following attributes are reserved for possible future use -->
|
187
|
+
<![ %HTML.Reserved; [
|
188
|
+
<!ENTITY % reserved
|
189
|
+
"datasrc %URI; #IMPLIED -- a single or tabular Data Source --
|
190
|
+
datafld CDATA #IMPLIED -- the property or column name --
|
191
|
+
dataformatas (plaintext|html) plaintext -- text or html --"
|
192
|
+
>
|
193
|
+
]]>
|
194
|
+
|
195
|
+
<!ENTITY % reserved "">
|
196
|
+
|
197
|
+
<!ENTITY % attrs "%coreattrs; %i18n; %events;">
|
198
|
+
|
199
|
+
|
200
|
+
<!--=================== Text Markup ======================================-->
|
201
|
+
|
202
|
+
<!ENTITY % fontstyle
|
203
|
+
"TT | I | B | BIG | SMALL">
|
204
|
+
|
205
|
+
<!ENTITY % phrase "EM | STRONG | DFN | CODE |
|
206
|
+
SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
|
207
|
+
|
208
|
+
<!ENTITY % special
|
209
|
+
"A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
|
210
|
+
|
211
|
+
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
|
212
|
+
|
213
|
+
<!-- %inline; covers inline or "text-level" elements -->
|
214
|
+
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
|
215
|
+
|
216
|
+
<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
|
217
|
+
<!ATTLIST (%fontstyle;|%phrase;)
|
218
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
219
|
+
>
|
220
|
+
|
221
|
+
<!ELEMENT (SUB|SUP) - - (%inline;)* -- subscript, superscript -->
|
222
|
+
<!ATTLIST (SUB|SUP)
|
223
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
224
|
+
>
|
225
|
+
|
226
|
+
<!ELEMENT SPAN - - (%inline;)* -- generic language/style container -->
|
227
|
+
<!ATTLIST SPAN
|
228
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
229
|
+
%reserved; -- reserved for possible future use --
|
230
|
+
>
|
231
|
+
|
232
|
+
<!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride -->
|
233
|
+
<!ATTLIST BDO
|
234
|
+
%coreattrs; -- id, class, style, title --
|
235
|
+
lang %LanguageCode; #IMPLIED -- language code --
|
236
|
+
dir (ltr|rtl) #REQUIRED -- directionality --
|
237
|
+
>
|
238
|
+
|
239
|
+
|
240
|
+
<!ELEMENT BR - O EMPTY -- forced line break -->
|
241
|
+
<!ATTLIST BR
|
242
|
+
%coreattrs; -- id, class, style, title --
|
243
|
+
>
|
244
|
+
|
245
|
+
<!--================== HTML content models ===============================-->
|
246
|
+
|
247
|
+
<!--
|
248
|
+
HTML has two basic content models:
|
249
|
+
|
250
|
+
%inline; character level elements and text strings
|
251
|
+
%block; block-like elements e.g. paragraphs and lists
|
252
|
+
-->
|
253
|
+
|
254
|
+
<!ENTITY % block
|
255
|
+
"P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
|
256
|
+
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
|
257
|
+
|
258
|
+
<!ENTITY % flow "%block; | %inline;">
|
259
|
+
|
260
|
+
<!--=================== Document Body ====================================-->
|
261
|
+
|
262
|
+
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
|
263
|
+
<!ATTLIST BODY
|
264
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
265
|
+
onload %Script; #IMPLIED -- the document has been loaded --
|
266
|
+
onunload %Script; #IMPLIED -- the document has been removed --
|
267
|
+
>
|
268
|
+
|
269
|
+
<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
|
270
|
+
<!ATTLIST ADDRESS
|
271
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
272
|
+
>
|
273
|
+
|
274
|
+
<!ELEMENT DIV - - (%flow;)* -- generic language/style container -->
|
275
|
+
<!ATTLIST DIV
|
276
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
277
|
+
%reserved; -- reserved for possible future use --
|
278
|
+
>
|
279
|
+
|
280
|
+
|
281
|
+
<!--================== The Anchor Element ================================-->
|
282
|
+
|
283
|
+
<!ENTITY % Shape "(rect|circle|poly|default)">
|
284
|
+
<!ENTITY % Coords "CDATA" -- comma-separated list of lengths -->
|
285
|
+
|
286
|
+
<!ELEMENT A - - (%inline;)* -(A) -- anchor -->
|
287
|
+
<!ATTLIST A
|
288
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
289
|
+
charset %Charset; #IMPLIED -- char encoding of linked resource --
|
290
|
+
type %ContentType; #IMPLIED -- advisory content type --
|
291
|
+
name CDATA #IMPLIED -- named link end --
|
292
|
+
href %URI; #IMPLIED -- URI for linked resource --
|
293
|
+
hreflang %LanguageCode; #IMPLIED -- language code --
|
294
|
+
rel %LinkTypes; #IMPLIED -- forward link types --
|
295
|
+
rev %LinkTypes; #IMPLIED -- reverse link types --
|
296
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
297
|
+
shape %Shape; rect -- for use with client-side image maps --
|
298
|
+
coords %Coords; #IMPLIED -- for use with client-side image maps --
|
299
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
300
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
301
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
302
|
+
>
|
303
|
+
|
304
|
+
<!--================== Client-side image maps ============================-->
|
305
|
+
|
306
|
+
<!-- These can be placed in the same document or grouped in a
|
307
|
+
separate document although this isn't yet widely supported -->
|
308
|
+
|
309
|
+
<!ELEMENT MAP - - ((%block;) | AREA)+ -- client-side image map -->
|
310
|
+
<!ATTLIST MAP
|
311
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
312
|
+
name CDATA #REQUIRED -- for reference by usemap --
|
313
|
+
>
|
314
|
+
|
315
|
+
<!ELEMENT AREA - O EMPTY -- client-side image map area -->
|
316
|
+
<!ATTLIST AREA
|
317
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
318
|
+
shape %Shape; rect -- controls interpretation of coords --
|
319
|
+
coords %Coords; #IMPLIED -- comma-separated list of lengths --
|
320
|
+
href %URI; #IMPLIED -- URI for linked resource --
|
321
|
+
nohref (nohref) #IMPLIED -- this region has no action --
|
322
|
+
alt %Text; #REQUIRED -- short description --
|
323
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
324
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
325
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
326
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
327
|
+
>
|
328
|
+
|
329
|
+
<!--================== The LINK Element ==================================-->
|
330
|
+
|
331
|
+
<!--
|
332
|
+
Relationship values can be used in principle:
|
333
|
+
|
334
|
+
a) for document specific toolbars/menus when used
|
335
|
+
with the LINK element in document head e.g.
|
336
|
+
start, contents, previous, next, index, end, help
|
337
|
+
b) to link to a separate style sheet (rel=stylesheet)
|
338
|
+
c) to make a link to a script (rel=script)
|
339
|
+
d) by stylesheets to control how collections of
|
340
|
+
html nodes are rendered into printed documents
|
341
|
+
e) to make a link to a printable version of this document
|
342
|
+
e.g. a postscript or pdf version (rel=alternate media=print)
|
343
|
+
-->
|
344
|
+
|
345
|
+
<!ELEMENT LINK - O EMPTY -- a media-independent link -->
|
346
|
+
<!ATTLIST LINK
|
347
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
348
|
+
charset %Charset; #IMPLIED -- char encoding of linked resource --
|
349
|
+
href %URI; #IMPLIED -- URI for linked resource --
|
350
|
+
hreflang %LanguageCode; #IMPLIED -- language code --
|
351
|
+
type %ContentType; #IMPLIED -- advisory content type --
|
352
|
+
rel %LinkTypes; #IMPLIED -- forward link types --
|
353
|
+
rev %LinkTypes; #IMPLIED -- reverse link types --
|
354
|
+
media %MediaDesc; #IMPLIED -- for rendering on these media --
|
355
|
+
>
|
356
|
+
|
357
|
+
<!--=================== Images ===========================================-->
|
358
|
+
|
359
|
+
<!-- Length defined in strict DTD for cellpadding/cellspacing -->
|
360
|
+
<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
|
361
|
+
<!ENTITY % MultiLength "CDATA" -- pixel, percentage, or relative -->
|
362
|
+
|
363
|
+
<![ %HTML.Frameset; [
|
364
|
+
<!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength -->
|
365
|
+
]]>
|
366
|
+
|
367
|
+
<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
|
368
|
+
|
369
|
+
|
370
|
+
<!-- To avoid problems with text-only UAs as well as
|
371
|
+
to make image content understandable and navigable
|
372
|
+
to users of non-visual UAs, you need to provide
|
373
|
+
a description with ALT, and avoid server-side image maps -->
|
374
|
+
<!ELEMENT IMG - O EMPTY -- Embedded image -->
|
375
|
+
<!ATTLIST IMG
|
376
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
377
|
+
src %URI; #REQUIRED -- URI of image to embed --
|
378
|
+
alt %Text; #REQUIRED -- short description --
|
379
|
+
longdesc %URI; #IMPLIED -- link to long description
|
380
|
+
(complements alt) --
|
381
|
+
name CDATA #IMPLIED -- name of image for scripting --
|
382
|
+
height %Length; #IMPLIED -- override height --
|
383
|
+
width %Length; #IMPLIED -- override width --
|
384
|
+
usemap %URI; #IMPLIED -- use client-side image map --
|
385
|
+
ismap (ismap) #IMPLIED -- use server-side image map --
|
386
|
+
>
|
387
|
+
|
388
|
+
<!-- USEMAP points to a MAP element which may be in this document
|
389
|
+
or an external document, although the latter is not widely supported -->
|
390
|
+
|
391
|
+
<!--==================== OBJECT ======================================-->
|
392
|
+
<!--
|
393
|
+
OBJECT is used to embed objects as part of HTML pages
|
394
|
+
PARAM elements should precede other content. SGML mixed content
|
395
|
+
model technicality precludes specifying this formally ...
|
396
|
+
-->
|
397
|
+
|
398
|
+
<!ELEMENT OBJECT - - (PARAM | %flow;)*
|
399
|
+
-- generic embedded object -->
|
400
|
+
<!ATTLIST OBJECT
|
401
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
402
|
+
declare (declare) #IMPLIED -- declare but don't instantiate flag --
|
403
|
+
classid %URI; #IMPLIED -- identifies an implementation --
|
404
|
+
codebase %URI; #IMPLIED -- base URI for classid, data, archive--
|
405
|
+
data %URI; #IMPLIED -- reference to object's data --
|
406
|
+
type %ContentType; #IMPLIED -- content type for data --
|
407
|
+
codetype %ContentType; #IMPLIED -- content type for code --
|
408
|
+
archive CDATA #IMPLIED -- space-separated list of URIs --
|
409
|
+
standby %Text; #IMPLIED -- message to show while loading --
|
410
|
+
height %Length; #IMPLIED -- override height --
|
411
|
+
width %Length; #IMPLIED -- override width --
|
412
|
+
usemap %URI; #IMPLIED -- use client-side image map --
|
413
|
+
name CDATA #IMPLIED -- submit as part of form --
|
414
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
415
|
+
%reserved; -- reserved for possible future use --
|
416
|
+
>
|
417
|
+
|
418
|
+
<!ELEMENT PARAM - O EMPTY -- named property value -->
|
419
|
+
<!ATTLIST PARAM
|
420
|
+
id ID #IMPLIED -- document-wide unique id --
|
421
|
+
name CDATA #REQUIRED -- property name --
|
422
|
+
value CDATA #IMPLIED -- property value --
|
423
|
+
valuetype (DATA|REF|OBJECT) DATA -- How to interpret value --
|
424
|
+
type %ContentType; #IMPLIED -- content type for value
|
425
|
+
when valuetype=ref --
|
426
|
+
>
|
427
|
+
|
428
|
+
|
429
|
+
<!--=================== Horizontal Rule ==================================-->
|
430
|
+
|
431
|
+
<!ELEMENT HR - O EMPTY -- horizontal rule -->
|
432
|
+
<!ATTLIST HR
|
433
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
434
|
+
>
|
435
|
+
|
436
|
+
<!--=================== Paragraphs =======================================-->
|
437
|
+
|
438
|
+
<!ELEMENT P - O (%inline;)* -- paragraph -->
|
439
|
+
<!ATTLIST P
|
440
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
441
|
+
>
|
442
|
+
|
443
|
+
<!--=================== Headings =========================================-->
|
444
|
+
|
445
|
+
<!--
|
446
|
+
There are six levels of headings from H1 (the most important)
|
447
|
+
to H6 (the least important).
|
448
|
+
-->
|
449
|
+
|
450
|
+
<!ELEMENT (%heading;) - - (%inline;)* -- heading -->
|
451
|
+
<!ATTLIST (%heading;)
|
452
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
453
|
+
>
|
454
|
+
|
455
|
+
<!--=================== Preformatted Text ================================-->
|
456
|
+
|
457
|
+
<!-- excludes markup for images and changes in font size -->
|
458
|
+
<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
|
459
|
+
|
460
|
+
<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text -->
|
461
|
+
<!ATTLIST PRE
|
462
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
463
|
+
>
|
464
|
+
|
465
|
+
<!--===================== Inline Quotes ==================================-->
|
466
|
+
|
467
|
+
<!ELEMENT Q - - (%inline;)* -- short inline quotation -->
|
468
|
+
<!ATTLIST Q
|
469
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
470
|
+
cite %URI; #IMPLIED -- URI for source document or msg --
|
471
|
+
>
|
472
|
+
|
473
|
+
<!--=================== Block-like Quotes ================================-->
|
474
|
+
|
475
|
+
<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- long quotation -->
|
476
|
+
<!ATTLIST BLOCKQUOTE
|
477
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
478
|
+
cite %URI; #IMPLIED -- URI for source document or msg --
|
479
|
+
>
|
480
|
+
|
481
|
+
<!--=================== Inserted/Deleted Text ============================-->
|
482
|
+
|
483
|
+
|
484
|
+
<!-- INS/DEL are handled by inclusion on BODY -->
|
485
|
+
<!ELEMENT (INS|DEL) - - (%flow;)* -- inserted text, deleted text -->
|
486
|
+
<!ATTLIST (INS|DEL)
|
487
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
488
|
+
cite %URI; #IMPLIED -- info on reason for change --
|
489
|
+
datetime %Datetime; #IMPLIED -- date and time of change --
|
490
|
+
>
|
491
|
+
|
492
|
+
<!--=================== Lists ============================================-->
|
493
|
+
|
494
|
+
<!-- definition lists - DT for term, DD for its definition -->
|
495
|
+
|
496
|
+
<!ELEMENT DL - - (DT|DD)+ -- definition list -->
|
497
|
+
<!ATTLIST DL
|
498
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
499
|
+
>
|
500
|
+
|
501
|
+
<!ELEMENT DT - O (%inline;)* -- definition term -->
|
502
|
+
<!ELEMENT DD - O (%flow;)* -- definition description -->
|
503
|
+
<!ATTLIST (DT|DD)
|
504
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
505
|
+
>
|
506
|
+
|
507
|
+
|
508
|
+
<!ELEMENT OL - - (LI)+ -- ordered list -->
|
509
|
+
<!ATTLIST OL
|
510
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
511
|
+
>
|
512
|
+
|
513
|
+
<!-- Unordered Lists (UL) bullet styles -->
|
514
|
+
<!ELEMENT UL - - (LI)+ -- unordered list -->
|
515
|
+
<!ATTLIST UL
|
516
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
517
|
+
>
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
<!ELEMENT LI - O (%flow;)* -- list item -->
|
522
|
+
<!ATTLIST LI
|
523
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
524
|
+
>
|
525
|
+
|
526
|
+
<!--================ Forms ===============================================-->
|
527
|
+
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
|
528
|
+
<!ATTLIST FORM
|
529
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
530
|
+
action %URI; #REQUIRED -- server-side form handler --
|
531
|
+
method (GET|POST) GET -- HTTP method used to submit the form--
|
532
|
+
enctype %ContentType; "application/x-www-form-urlencoded"
|
533
|
+
accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
|
534
|
+
name CDATA #IMPLIED -- name of form for scripting --
|
535
|
+
onsubmit %Script; #IMPLIED -- the form was submitted --
|
536
|
+
onreset %Script; #IMPLIED -- the form was reset --
|
537
|
+
accept-charset %Charsets; #IMPLIED -- list of supported charsets --
|
538
|
+
>
|
539
|
+
|
540
|
+
<!-- Each label must not contain more than ONE field -->
|
541
|
+
<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
|
542
|
+
<!ATTLIST LABEL
|
543
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
544
|
+
for IDREF #IMPLIED -- matches field ID value --
|
545
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
546
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
547
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
548
|
+
>
|
549
|
+
|
550
|
+
<!ENTITY % InputType
|
551
|
+
"(TEXT | PASSWORD | CHECKBOX |
|
552
|
+
RADIO | SUBMIT | RESET |
|
553
|
+
FILE | HIDDEN | IMAGE | BUTTON)"
|
554
|
+
>
|
555
|
+
|
556
|
+
<!-- attribute name required for all but submit and reset -->
|
557
|
+
<!ELEMENT INPUT - O EMPTY -- form control -->
|
558
|
+
<!ATTLIST INPUT
|
559
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
560
|
+
type %InputType; TEXT -- what kind of widget is needed --
|
561
|
+
name CDATA #IMPLIED -- submit as part of form --
|
562
|
+
value CDATA #IMPLIED -- Specify for radio buttons and checkboxes --
|
563
|
+
checked (checked) #IMPLIED -- for radio buttons and check boxes --
|
564
|
+
disabled (disabled) #IMPLIED -- unavailable in this context --
|
565
|
+
readonly (readonly) #IMPLIED -- for text and passwd --
|
566
|
+
size CDATA #IMPLIED -- specific to each type of field --
|
567
|
+
maxlength NUMBER #IMPLIED -- max chars for text fields --
|
568
|
+
src %URI; #IMPLIED -- for fields with images --
|
569
|
+
alt CDATA #IMPLIED -- short description --
|
570
|
+
usemap %URI; #IMPLIED -- use client-side image map --
|
571
|
+
ismap (ismap) #IMPLIED -- use server-side image map --
|
572
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
573
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
574
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
575
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
576
|
+
onselect %Script; #IMPLIED -- some text was selected --
|
577
|
+
onchange %Script; #IMPLIED -- the element value was changed --
|
578
|
+
accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
|
579
|
+
%reserved; -- reserved for possible future use --
|
580
|
+
>
|
581
|
+
|
582
|
+
<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector -->
|
583
|
+
<!ATTLIST SELECT
|
584
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
585
|
+
name CDATA #IMPLIED -- field name --
|
586
|
+
size NUMBER #IMPLIED -- rows visible --
|
587
|
+
multiple (multiple) #IMPLIED -- default is single selection --
|
588
|
+
disabled (disabled) #IMPLIED -- unavailable in this context --
|
589
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
590
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
591
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
592
|
+
onchange %Script; #IMPLIED -- the element value was changed --
|
593
|
+
%reserved; -- reserved for possible future use --
|
594
|
+
>
|
595
|
+
|
596
|
+
<!ELEMENT OPTGROUP - - (OPTION)+ -- option group -->
|
597
|
+
<!ATTLIST OPTGROUP
|
598
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
599
|
+
disabled (disabled) #IMPLIED -- unavailable in this context --
|
600
|
+
label %Text; #REQUIRED -- for use in hierarchical menus --
|
601
|
+
>
|
602
|
+
|
603
|
+
<!ELEMENT OPTION - O (#PCDATA) -- selectable choice -->
|
604
|
+
<!ATTLIST OPTION
|
605
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
606
|
+
selected (selected) #IMPLIED
|
607
|
+
disabled (disabled) #IMPLIED -- unavailable in this context --
|
608
|
+
label %Text; #IMPLIED -- for use in hierarchical menus --
|
609
|
+
value CDATA #IMPLIED -- defaults to element content --
|
610
|
+
>
|
611
|
+
|
612
|
+
<!ELEMENT TEXTAREA - - (#PCDATA) -- multi-line text field -->
|
613
|
+
<!ATTLIST TEXTAREA
|
614
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
615
|
+
name CDATA #IMPLIED
|
616
|
+
rows NUMBER #REQUIRED
|
617
|
+
cols NUMBER #REQUIRED
|
618
|
+
disabled (disabled) #IMPLIED -- unavailable in this context --
|
619
|
+
readonly (readonly) #IMPLIED
|
620
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
621
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
622
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
623
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
624
|
+
onselect %Script; #IMPLIED -- some text was selected --
|
625
|
+
onchange %Script; #IMPLIED -- the element value was changed --
|
626
|
+
%reserved; -- reserved for possible future use --
|
627
|
+
>
|
628
|
+
|
629
|
+
<!--
|
630
|
+
#PCDATA is to solve the mixed content problem,
|
631
|
+
per specification only whitespace is allowed there!
|
632
|
+
-->
|
633
|
+
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
|
634
|
+
<!ATTLIST FIELDSET
|
635
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
636
|
+
>
|
637
|
+
|
638
|
+
<!ELEMENT LEGEND - - (%inline;)* -- fieldset legend -->
|
639
|
+
|
640
|
+
<!ATTLIST LEGEND
|
641
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
642
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
643
|
+
>
|
644
|
+
|
645
|
+
<!ELEMENT BUTTON - -
|
646
|
+
(%flow;)* -(A|%formctrl;|FORM|FIELDSET)
|
647
|
+
-- push button -->
|
648
|
+
<!ATTLIST BUTTON
|
649
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
650
|
+
name CDATA #IMPLIED
|
651
|
+
value CDATA #IMPLIED -- sent to server when submitted --
|
652
|
+
type (button|submit|reset) submit -- for use as form button --
|
653
|
+
disabled (disabled) #IMPLIED -- unavailable in this context --
|
654
|
+
tabindex NUMBER #IMPLIED -- position in tabbing order --
|
655
|
+
accesskey %Character; #IMPLIED -- accessibility key character --
|
656
|
+
onfocus %Script; #IMPLIED -- the element got the focus --
|
657
|
+
onblur %Script; #IMPLIED -- the element lost the focus --
|
658
|
+
%reserved; -- reserved for possible future use --
|
659
|
+
>
|
660
|
+
|
661
|
+
<!--======================= Tables =======================================-->
|
662
|
+
|
663
|
+
<!-- IETF HTML table standard, see [RFC1942] -->
|
664
|
+
|
665
|
+
<!--
|
666
|
+
The BORDER attribute sets the thickness of the frame around the
|
667
|
+
table. The default units are screen pixels.
|
668
|
+
|
669
|
+
The FRAME attribute specifies which parts of the frame around
|
670
|
+
the table should be rendered. The values are not the same as
|
671
|
+
CALS to avoid a name clash with the VALIGN attribute.
|
672
|
+
|
673
|
+
The value "border" is included for backwards compatibility with
|
674
|
+
<TABLE BORDER> which yields frame=border and border=implied
|
675
|
+
For <TABLE BORDER=1> you get border=1 and frame=implied. In this
|
676
|
+
case, it is appropriate to treat this as frame=border for backwards
|
677
|
+
compatibility with deployed browsers.
|
678
|
+
-->
|
679
|
+
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
|
680
|
+
|
681
|
+
<!--
|
682
|
+
The RULES attribute defines which rules to draw between cells:
|
683
|
+
|
684
|
+
If RULES is absent then assume:
|
685
|
+
"none" if BORDER is absent or BORDER=0 otherwise "all"
|
686
|
+
-->
|
687
|
+
|
688
|
+
<!ENTITY % TRules "(none | groups | rows | cols | all)">
|
689
|
+
|
690
|
+
<!-- horizontal placement of table relative to document -->
|
691
|
+
<!ENTITY % TAlign "(left|center|right)">
|
692
|
+
|
693
|
+
<!-- horizontal alignment attributes for cell contents -->
|
694
|
+
<!ENTITY % cellhalign
|
695
|
+
"align (left|center|right|justify|char) #IMPLIED
|
696
|
+
char %Character; #IMPLIED -- alignment char, e.g. char=':' --
|
697
|
+
charoff %Length; #IMPLIED -- offset for alignment char --"
|
698
|
+
>
|
699
|
+
|
700
|
+
<!-- vertical alignment attributes for cell contents -->
|
701
|
+
<!ENTITY % cellvalign
|
702
|
+
"valign (top|middle|bottom|baseline) #IMPLIED"
|
703
|
+
>
|
704
|
+
|
705
|
+
<!ELEMENT TABLE - -
|
706
|
+
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
|
707
|
+
<!ELEMENT CAPTION - - (%inline;)* -- table caption -->
|
708
|
+
<!ELEMENT THEAD - O (TR)+ -- table header -->
|
709
|
+
<!ELEMENT TFOOT - O (TR)+ -- table footer -->
|
710
|
+
<!ELEMENT TBODY O O (TR)+ -- table body -->
|
711
|
+
<!ELEMENT COLGROUP - O (COL)* -- table column group -->
|
712
|
+
<!ELEMENT COL - O EMPTY -- table column -->
|
713
|
+
<!ELEMENT TR - O (TH|TD)+ -- table row -->
|
714
|
+
<!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell-->
|
715
|
+
|
716
|
+
<!ATTLIST TABLE -- table element --
|
717
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
718
|
+
summary %Text; #IMPLIED -- purpose/structure for speech output--
|
719
|
+
width %Length; #IMPLIED -- table width --
|
720
|
+
border %Pixels; #IMPLIED -- controls frame width around table --
|
721
|
+
frame %TFrame; #IMPLIED -- which parts of frame to render --
|
722
|
+
rules %TRules; #IMPLIED -- rulings between rows and cols --
|
723
|
+
cellspacing %Length; #IMPLIED -- spacing between cells --
|
724
|
+
cellpadding %Length; #IMPLIED -- spacing within cells --
|
725
|
+
%reserved; -- reserved for possible future use --
|
726
|
+
datapagesize CDATA #IMPLIED -- reserved for possible future use --
|
727
|
+
>
|
728
|
+
|
729
|
+
|
730
|
+
<!ATTLIST CAPTION
|
731
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
732
|
+
>
|
733
|
+
|
734
|
+
<!--
|
735
|
+
COLGROUP groups a set of COL elements. It allows you to group
|
736
|
+
several semantically related columns together.
|
737
|
+
-->
|
738
|
+
<!ATTLIST COLGROUP
|
739
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
740
|
+
span NUMBER 1 -- default number of columns in group --
|
741
|
+
width %MultiLength; #IMPLIED -- default width for enclosed COLs --
|
742
|
+
%cellhalign; -- horizontal alignment in cells --
|
743
|
+
%cellvalign; -- vertical alignment in cells --
|
744
|
+
>
|
745
|
+
|
746
|
+
<!--
|
747
|
+
COL elements define the alignment properties for cells in
|
748
|
+
one or more columns.
|
749
|
+
|
750
|
+
The WIDTH attribute specifies the width of the columns, e.g.
|
751
|
+
|
752
|
+
width=64 width in screen pixels
|
753
|
+
width=0.5* relative width of 0.5
|
754
|
+
|
755
|
+
The SPAN attribute causes the attributes of one
|
756
|
+
COL element to apply to more than one column.
|
757
|
+
-->
|
758
|
+
<!ATTLIST COL -- column groups and properties --
|
759
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
760
|
+
span NUMBER 1 -- COL attributes affect N columns --
|
761
|
+
width %MultiLength; #IMPLIED -- column width specification --
|
762
|
+
%cellhalign; -- horizontal alignment in cells --
|
763
|
+
%cellvalign; -- vertical alignment in cells --
|
764
|
+
>
|
765
|
+
|
766
|
+
<!--
|
767
|
+
Use THEAD to duplicate headers when breaking table
|
768
|
+
across page boundaries, or for static headers when
|
769
|
+
TBODY sections are rendered in scrolling panel.
|
770
|
+
|
771
|
+
Use TFOOT to duplicate footers when breaking table
|
772
|
+
across page boundaries, or for static footers when
|
773
|
+
TBODY sections are rendered in scrolling panel.
|
774
|
+
|
775
|
+
Use multiple TBODY sections when rules are needed
|
776
|
+
between groups of table rows.
|
777
|
+
-->
|
778
|
+
<!ATTLIST (THEAD|TBODY|TFOOT) -- table section --
|
779
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
780
|
+
%cellhalign; -- horizontal alignment in cells --
|
781
|
+
%cellvalign; -- vertical alignment in cells --
|
782
|
+
>
|
783
|
+
|
784
|
+
<!ATTLIST TR -- table row --
|
785
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
786
|
+
%cellhalign; -- horizontal alignment in cells --
|
787
|
+
%cellvalign; -- vertical alignment in cells --
|
788
|
+
>
|
789
|
+
|
790
|
+
|
791
|
+
<!-- Scope is simpler than headers attribute for common tables -->
|
792
|
+
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
|
793
|
+
|
794
|
+
<!-- TH is for headers, TD for data, but for cells acting as both use TD -->
|
795
|
+
<!ATTLIST (TH|TD) -- header or data cell --
|
796
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
797
|
+
abbr %Text; #IMPLIED -- abbreviation for header cell --
|
798
|
+
axis CDATA #IMPLIED -- comma-separated list of related headers--
|
799
|
+
headers IDREFS #IMPLIED -- list of id's for header cells --
|
800
|
+
scope %Scope; #IMPLIED -- scope covered by header cells --
|
801
|
+
rowspan NUMBER 1 -- number of rows spanned by cell --
|
802
|
+
colspan NUMBER 1 -- number of cols spanned by cell --
|
803
|
+
%cellhalign; -- horizontal alignment in cells --
|
804
|
+
%cellvalign; -- vertical alignment in cells --
|
805
|
+
>
|
806
|
+
|
807
|
+
|
808
|
+
<!--================ Document Head =======================================-->
|
809
|
+
<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
|
810
|
+
<!ENTITY % head.content "TITLE & BASE?">
|
811
|
+
|
812
|
+
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
|
813
|
+
<!ATTLIST HEAD
|
814
|
+
%i18n; -- lang, dir --
|
815
|
+
profile %URI; #IMPLIED -- named dictionary of meta info --
|
816
|
+
>
|
817
|
+
|
818
|
+
<!-- The TITLE element is not considered part of the flow of text.
|
819
|
+
It should be displayed, for example as the page header or
|
820
|
+
window title. Exactly one title is required per document.
|
821
|
+
-->
|
822
|
+
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
|
823
|
+
<!ATTLIST TITLE %i18n>
|
824
|
+
|
825
|
+
|
826
|
+
<!ELEMENT BASE - O EMPTY -- document base URI -->
|
827
|
+
<!ATTLIST BASE
|
828
|
+
href %URI; #REQUIRED -- URI that acts as base URI --
|
829
|
+
>
|
830
|
+
|
831
|
+
<!ELEMENT META - O EMPTY -- generic metainformation -->
|
832
|
+
<!ATTLIST META
|
833
|
+
%i18n; -- lang, dir, for use with content --
|
834
|
+
http-equiv NAME #IMPLIED -- HTTP response header name --
|
835
|
+
name NAME #IMPLIED -- metainformation name --
|
836
|
+
content CDATA #REQUIRED -- associated information --
|
837
|
+
scheme CDATA #IMPLIED -- select form of content --
|
838
|
+
>
|
839
|
+
|
840
|
+
<!ELEMENT STYLE - - %StyleSheet -- style info -->
|
841
|
+
<!ATTLIST STYLE
|
842
|
+
%i18n; -- lang, dir, for use with title --
|
843
|
+
type %ContentType; #REQUIRED -- content type of style language --
|
844
|
+
media %MediaDesc; #IMPLIED -- designed for use with these media --
|
845
|
+
title %Text; #IMPLIED -- advisory title --
|
846
|
+
>
|
847
|
+
|
848
|
+
<!ELEMENT SCRIPT - - %Script; -- script statements -->
|
849
|
+
<!ATTLIST SCRIPT
|
850
|
+
charset %Charset; #IMPLIED -- char encoding of linked resource --
|
851
|
+
type %ContentType; #REQUIRED -- content type of script language --
|
852
|
+
src %URI; #IMPLIED -- URI for an external script --
|
853
|
+
defer (defer) #IMPLIED -- UA may defer execution of script --
|
854
|
+
event CDATA #IMPLIED -- reserved for possible future use --
|
855
|
+
for %URI; #IMPLIED -- reserved for possible future use --
|
856
|
+
>
|
857
|
+
|
858
|
+
<!ELEMENT NOSCRIPT - - (%block;)+
|
859
|
+
-- alternate content container for non script-based rendering -->
|
860
|
+
<!ATTLIST NOSCRIPT
|
861
|
+
%attrs; -- %coreattrs, %i18n, %events --
|
862
|
+
>
|
863
|
+
|
864
|
+
<!--================ Document Structure ==================================-->
|
865
|
+
<!ENTITY % html.content "HEAD, BODY">
|
866
|
+
|
867
|
+
<!ELEMENT HTML O O (%html.content;) -- document root element -->
|
868
|
+
<!ATTLIST HTML
|
869
|
+
%i18n; -- lang, dir --
|
870
|
+
>
|