]> mj.ucw.cz Git - temple.git/blob - example/bin/dtd/strict.dtd
Added an example and Temple::Links from MJ's home page.
[temple.git] / example / bin / dtd / strict.dtd
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: 2005/09/12 09:13:56 $
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   >