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