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