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