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