1<!--
2   Extensible HTML version 1.0 Frameset DTD
3
4   This is the same as HTML 4.0 Frameset 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 Frameset//EN"
17   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.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">
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, frameset)>
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<!-- only one noframes element permitted per document -->
365
366<!ELEMENT frameset (frameset|frame|noframes)*>
367<!ATTLIST frameset
368  %coreattrs;
369  rows        %MultiLengths; #IMPLIED
370  cols        %MultiLengths; #IMPLIED
371  onload      %Script;       #IMPLIED
372  onunload    %Script;       #IMPLIED
373  >
374
375<!-- reserved frame names start with "_" otherwise starts with letter -->
376
377<!-- tiled window within frameset -->
378
379<!ELEMENT frame EMPTY>
380<!ATTLIST frame
381  %coreattrs;
382  longdesc    %URI;          #IMPLIED
383  name        NMTOKEN        #IMPLIED
384  src         %URI;          #IMPLIED
385  frameborder (1|0)          "1"
386  marginwidth %Pixels;       #IMPLIED
387  marginheight %Pixels;      #IMPLIED
388  noresize    (noresize)     #IMPLIED
389  scrolling   (yes|no|auto)  "auto"
390  >
391
392<!-- inline subwindow -->
393
394<!ELEMENT iframe %Flow;>
395<!ATTLIST iframe
396  %coreattrs;
397  longdesc    %URI;          #IMPLIED
398  name        NMTOKEN        #IMPLIED
399  src         %URI;          #IMPLIED
400  frameborder (1|0)          "1"
401  marginwidth %Pixels;       #IMPLIED
402  marginheight %Pixels;      #IMPLIED
403  scrolling   (yes|no|auto)  "auto"
404  align       %ImgAlign;     #IMPLIED
405  height      %Length;       #IMPLIED
406  width       %Length;       #IMPLIED
407  >
408
409<!-- alternate content container for non frame-based rendering -->
410
411<!ELEMENT noframes (body)>
412<!ATTLIST noframes
413  %attrs;
414  >
415
416<!--=================== Document Body ====================================-->
417
418<!ELEMENT body %Flow;>
419<!ATTLIST body
420  %attrs;
421  onload      %Script;       #IMPLIED
422  onunload    %Script;       #IMPLIED
423  background  %URI;          #IMPLIED
424  bgcolor     %Color;        #IMPLIED
425  text        %Color;        #IMPLIED
426  link        %Color;        #IMPLIED
427  vlink       %Color;        #IMPLIED
428  alink       %Color;        #IMPLIED
429  >
430
431<!ELEMENT div %Flow;>  <!-- generic language/style container -->
432<!ATTLIST div
433  %attrs;
434  %TextAlign;
435  >
436
437<!--=================== Paragraphs =======================================-->
438
439<!ELEMENT p %Inline;>
440<!ATTLIST p
441  %attrs;
442  %TextAlign;
443  >
444
445<!--=================== Headings =========================================-->
446
447<!--
448  There are six levels of headings from h1 (the most important)
449  to h6 (the least important).
450-->
451
452<!ELEMENT h1  %Inline;>
453<!ATTLIST h1
454  %attrs;
455  %TextAlign;
456  >
457
458<!ELEMENT h2 %Inline;>
459<!ATTLIST h2
460  %attrs;
461  %TextAlign;
462  >
463
464<!ELEMENT h3 %Inline;>
465<!ATTLIST h3
466  %attrs;
467  %TextAlign;
468  >
469
470<!ELEMENT h4 %Inline;>
471<!ATTLIST h4
472  %attrs;
473  %TextAlign;
474  >
475
476<!ELEMENT h5 %Inline;>
477<!ATTLIST h5
478  %attrs;
479  %TextAlign;
480  >
481
482<!ELEMENT h6 %Inline;>
483<!ATTLIST h6
484  %attrs;
485  %TextAlign;
486  >
487
488<!--=================== Lists ============================================-->
489
490<!-- Unordered list bullet styles -->
491
492<!ENTITY % ULStyle "(disc|square|circle)">
493
494<!-- Unordered list -->
495
496<!ELEMENT ul (li)+>
497<!ATTLIST ul
498  %attrs;
499  type        %ULStyle;     #IMPLIED
500  compact     (compact)     #IMPLIED
501  >
502
503<!-- Ordered list numbering style
504
505    1   arabic numbers      1, 2, 3, ...
506    a   lower alpha         a, b, c, ...
507    A   upper alpha         A, B, C, ...
508    i   lower roman         i, ii, iii, ...
509    I   upper roman         I, II, III, ...
510
511    The style is applied to the sequence number which by default
512    is reset to 1 for the first list item in an ordered list.
513-->
514<!ENTITY % OLStyle "CDATA">
515
516<!-- Ordered (numbered) list -->
517
518<!ELEMENT ol (li)+>
519<!ATTLIST ol
520  %attrs;
521  type        %OLStyle;      #IMPLIED
522  compact     (compact)      #IMPLIED
523  start       %Number;       #IMPLIED
524  >
525
526<!-- single column list (DEPRECATED) --> 
527<!ELEMENT menu (li)+>
528<!ATTLIST menu
529  %attrs;
530  compact     (compact)     #IMPLIED
531  >
532
533<!-- multiple column list (DEPRECATED) --> 
534<!ELEMENT dir (li)+>
535<!ATTLIST dir
536  %attrs;
537  compact     (compact)     #IMPLIED
538  >
539
540<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
541<!ENTITY % LIStyle "CDATA">
542
543<!-- list item -->
544
545<!ELEMENT li %Flow;>
546<!ATTLIST li
547  %attrs;
548  type        %LIStyle;      #IMPLIED
549  value       %Number;       #IMPLIED
550  >
551
552<!-- definition lists - dt for term, dd for its definition -->
553
554<!ELEMENT dl (dt|dd)+>
555<!ATTLIST dl
556  %attrs;
557  compact     (compact)      #IMPLIED
558  >
559
560<!ELEMENT dt %Inline;>
561<!ATTLIST dt
562  %attrs;
563  >
564
565<!ELEMENT dd %Flow;>
566<!ATTLIST dd
567  %attrs;
568  >
569
570<!--=================== Address ==========================================-->
571
572<!-- information on author -->
573
574<!ELEMENT address %Inline;>
575<!ATTLIST address
576  %attrs;
577  >
578
579<!--=================== Horizontal Rule ==================================-->
580
581<!ELEMENT hr EMPTY>
582<!ATTLIST hr
583  %attrs;
584  align       (left|center|right) #IMPLIED
585  noshade     (noshade)      #IMPLIED
586  size        %Pixels;       #IMPLIED
587  width       %Length;       #IMPLIED
588  >
589
590<!--=================== Preformatted Text ================================-->
591
592<!-- content is %Inline; excluding 
593        "img|object|applet|big|small|sub|sup|font|basefont" -->
594
595<!ELEMENT pre %pre.content;>
596<!ATTLIST pre
597  %attrs;
598  width       %Number;      #IMPLIED
599  xml:space   (preserve)    #FIXED 'preserve'
600  >
601
602<!--=================== Block-like Quotes ================================-->
603
604<!ELEMENT blockquote %Flow;>
605<!ATTLIST blockquote
606  %attrs;
607  cite        %URI;          #IMPLIED
608  >
609
610<!--=================== Text alignment ===================================-->
611
612<!-- center content -->
613<!ELEMENT center %Flow;>
614<!ATTLIST center
615  %attrs;
616  >
617
618<!--=================== Inserted/Deleted Text ============================-->
619
620
621<!--
622  ins/del are allowed in block and inline content, but its
623  inappropriate to include block content within an ins element
624  occurring in inline content.
625-->
626<!ELEMENT ins %Flow;>
627<!ATTLIST ins
628  %attrs;
629  cite        %URI;          #IMPLIED
630  datetime    %Datetime;     #IMPLIED
631  >
632
633<!ELEMENT del %Flow;>
634<!ATTLIST del
635  %attrs;
636  cite        %URI;          #IMPLIED
637  datetime    %Datetime;     #IMPLIED
638  >
639
640<!--================== The Anchor Element ================================-->
641
642<!-- content is %Inline; except that anchors shouldn't be nested -->
643
644<!ELEMENT a %a.content;>
645<!ATTLIST a
646  %attrs;
647  charset     %Charset;      #IMPLIED
648  type        %ContentType;  #IMPLIED
649  name        NMTOKEN        #IMPLIED
650  href        %URI;          #IMPLIED
651  hreflang    %LanguageCode; #IMPLIED
652  rel         %LinkTypes;    #IMPLIED
653  rev         %LinkTypes;    #IMPLIED
654  accesskey   %Character;    #IMPLIED
655  shape       %Shape;        "rect"
656  coords      %Coords;       #IMPLIED
657  tabindex    %Number;       #IMPLIED
658  onfocus     %Script;       #IMPLIED
659  onblur      %Script;       #IMPLIED
660  target      %FrameTarget;  #IMPLIED
661  >
662
663<!--===================== Inline Elements ================================-->
664
665<!ELEMENT span %Inline;> <!-- generic language/style container -->
666<!ATTLIST span
667  %attrs;
668  >
669
670<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
671<!ATTLIST bdo
672  %coreattrs;
673  %events;
674  lang        %LanguageCode; #IMPLIED
675  xml:lang    %LanguageCode; #IMPLIED
676  dir         (ltr|rtl)      #REQUIRED
677  >
678
679<!ELEMENT br EMPTY>   <!-- forced line break -->
680<!ATTLIST br
681  %coreattrs;
682  clear       (left|all|right|none) "none"
683  >
684
685<!ELEMENT em %Inline;>   <!-- emphasis -->
686<!ATTLIST em %attrs;>
687
688<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
689<!ATTLIST strong %attrs;>
690
691<!ELEMENT dfn %Inline;>   <!-- definitional -->
692<!ATTLIST dfn %attrs;>
693
694<!ELEMENT code %Inline;>   <!-- program code -->
695<!ATTLIST code %attrs;>
696
697<!ELEMENT samp %Inline;>   <!-- sample -->
698<!ATTLIST samp %attrs;>
699
700<!ELEMENT kbd %Inline;>  <!-- something user would type -->
701<!ATTLIST kbd %attrs;>
702
703<!ELEMENT var %Inline;>   <!-- variable -->
704<!ATTLIST var %attrs;>
705
706<!ELEMENT cite %Inline;>   <!-- citation -->
707<!ATTLIST cite %attrs;>
708
709<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
710<!ATTLIST abbr %attrs;>
711
712<!ELEMENT acronym %Inline;>   <!-- acronym -->
713<!ATTLIST acronym %attrs;>
714
715<!ELEMENT q %Inline;>   <!-- inlined quote -->
716<!ATTLIST q
717   %attrs;
718  cite        %URI;          #IMPLIED
719   >
720
721<!ELEMENT sub %Inline;> <!-- subscript -->
722<!ATTLIST sub %attrs;>
723
724<!ELEMENT sup %Inline;> <!-- superscript -->
725<!ATTLIST sup %attrs;>
726
727<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
728<!ATTLIST tt %attrs;>
729
730<!ELEMENT i %Inline;>   <!-- italic font -->
731<!ATTLIST i %attrs;>
732
733<!ELEMENT b %Inline;>   <!-- bold font -->
734<!ATTLIST b %attrs;>
735
736<!ELEMENT big %Inline;>   <!-- bigger font -->
737<!ATTLIST big %attrs;>
738
739<!ELEMENT small %Inline;>   <!-- smaller font -->
740<!ATTLIST small %attrs;>
741
742<!ELEMENT u %Inline;>   <!-- underline -->
743<!ATTLIST u %attrs;>
744
745<!ELEMENT s %Inline;>   <!-- strike-through -->
746<!ATTLIST s %attrs;>
747
748<!ELEMENT strike %Inline;>   <!-- strike-through -->
749<!ATTLIST strike %attrs;>
750
751<!ELEMENT basefont EMPTY>  <!-- base font size -->
752<!ATTLIST basefont
753  id          ID             #IMPLIED
754  size        CDATA          #REQUIRED
755  color       %Color;        #IMPLIED
756  face        CDATA          #IMPLIED
757  >
758
759<!ELEMENT font %Inline;> <!-- local change to font -->
760<!ATTLIST font
761  %coreattrs;
762  %i18n;
763  size        CDATA          #IMPLIED
764  color       %Color;        #IMPLIED
765  face        CDATA          #IMPLIED
766  >
767
768<!--==================== Object ======================================-->
769<!--
770  object is used to embed objects as part of HTML pages.
771  param elements should precede other content. Parameters
772  can also be expressed as attribute/value pairs on the
773  object element itself when brevity is desired.
774-->
775
776<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>
777<!ATTLIST object
778  %attrs;
779  declare     (declare)      #IMPLIED
780  classid     %URI;          #IMPLIED
781  codebase    %URI;          #IMPLIED
782  data        %URI;          #IMPLIED
783  type        %ContentType;  #IMPLIED
784  codetype    %ContentType;  #IMPLIED
785  archive     %UriList;      #IMPLIED
786  standby     %Text;         #IMPLIED
787  height      %Length;       #IMPLIED
788  width       %Length;       #IMPLIED
789  usemap      %URI;          #IMPLIED
790  name        NMTOKEN        #IMPLIED
791  tabindex    %Number;       #IMPLIED
792  align       %ImgAlign;     #IMPLIED
793  border      %Pixels;       #IMPLIED
794  hspace      %Pixels;       #IMPLIED
795  vspace      %Pixels;       #IMPLIED
796  >
797
798<!--
799  param is used to supply a named property value.
800  In XML it would seem natural to follow RDF and support an
801  abbreviated syntax where the param elements are replaced
802  by attribute value pairs on the object start tag.
803-->
804<!ELEMENT param EMPTY>
805<!ATTLIST param
806  id          ID             #IMPLIED
807  name        CDATA          #REQUIRED
808  value       CDATA          #IMPLIED
809  valuetype   (data|ref|object) "data"
810  type        %ContentType;  #IMPLIED
811  >
812
813<!--=================== Java applet ==================================-->
814<!--
815  One of code or object attributes must be present.
816  Place param elements before other content.
817-->
818<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
819<!ATTLIST applet
820  %coreattrs;
821  codebase    %URI;          #IMPLIED
822  archive     CDATA          #IMPLIED
823  code        CDATA          #IMPLIED
824  object      CDATA          #IMPLIED
825  alt         %Text;         #IMPLIED
826  name        NMTOKEN        #IMPLIED
827  width       %Length;       #REQUIRED
828  height      %Length;       #REQUIRED
829  align       %ImgAlign;     #IMPLIED
830  hspace      %Pixels;       #IMPLIED
831  vspace      %Pixels;       #IMPLIED
832  >
833
834<!--=================== Images ===========================================-->
835
836<!--
837   To avoid accessibility problems for people who aren't
838   able to see the image, you should provide a text
839   description using the alt and longdesc attributes.
840   In addition, avoid the use of server-side image maps.
841-->
842
843<!ELEMENT img EMPTY>
844<!ATTLIST img
845  %attrs;
846  src         %URI;          #REQUIRED
847  alt         %Text;         #REQUIRED
848  name        NMTOKEN        #IMPLIED
849  longdesc    %URI;          #IMPLIED
850  height      %Length;       #IMPLIED
851  width       %Length;       #IMPLIED
852  usemap      %URI;          #IMPLIED
853  ismap       (ismap)        #IMPLIED
854  align       %ImgAlign;     #IMPLIED
855  border      %Pixels;       #IMPLIED
856  hspace      %Pixels;       #IMPLIED
857  vspace      %Pixels;       #IMPLIED
858  >
859
860<!-- usemap points to a map element which may be in this document
861  or an external document, although the latter is not widely supported -->
862
863<!--================== Client-side image maps ============================-->
864
865<!-- These can be placed in the same document or grouped in a
866     separate document although this isn't yet widely supported -->
867
868<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
869<!ATTLIST map
870  %i18n;
871  %events;
872  id          ID             #REQUIRED
873  class       CDATA          #IMPLIED
874  style       %StyleSheet;   #IMPLIED
875  title       %Text;         #IMPLIED
876  name        NMTOKEN        #IMPLIED
877  >
878
879<!ELEMENT area EMPTY>
880<!ATTLIST area
881  %attrs;
882  shape       %Shape;        "rect"
883  coords      %Coords;       #IMPLIED
884  href        %URI;          #IMPLIED
885  nohref      (nohref)       #IMPLIED
886  alt         %Text;         #REQUIRED
887  tabindex    %Number;       #IMPLIED
888  accesskey   %Character;    #IMPLIED
889  onfocus     %Script;       #IMPLIED
890  onblur      %Script;       #IMPLIED
891  target      %FrameTarget;  #IMPLIED
892  >
893
894<!--================ Forms ===============================================-->
895
896<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
897
898<!ATTLIST form
899  %attrs;
900  action      %URI;          #REQUIRED
901  method      (get|post)     "get"
902  name        NMTOKEN        #IMPLIED
903  enctype     %ContentType;  "application/x-www-form-urlencoded"
904  onsubmit    %Script;       #IMPLIED
905  onreset     %Script;       #IMPLIED
906  accept      %ContentTypes; #IMPLIED
907  accept-charset %Charsets;  #IMPLIED
908  target      %FrameTarget;  #IMPLIED
909  >
910
911<!--
912  Each label must not contain more than ONE field
913  Label elements shouldn't be nested.
914-->
915<!ELEMENT label %Inline;>
916<!ATTLIST label
917  %attrs;
918  for         IDREF          #IMPLIED
919  accesskey   %Character;    #IMPLIED
920  onfocus     %Script;       #IMPLIED
921  onblur      %Script;       #IMPLIED
922  >
923
924<!ENTITY % InputType
925  "(text | password | checkbox |
926    radio | submit | reset |
927    file | hidden | image | button)"
928   >
929
930<!-- the name attribute is required for all but submit & reset -->
931
932<!ELEMENT input EMPTY>     <!-- form control -->
933<!ATTLIST input
934  %attrs;
935  type        %InputType;    "text"
936  name        CDATA          #IMPLIED
937  value       CDATA          #IMPLIED
938  checked     (checked)      #IMPLIED
939  disabled    (disabled)     #IMPLIED
940  readonly    (readonly)     #IMPLIED
941  size        CDATA          #IMPLIED
942  maxlength   %Number;       #IMPLIED
943  src         %URI;          #IMPLIED
944  alt         CDATA          #IMPLIED
945  usemap      %URI;          #IMPLIED
946  tabindex    %Number;       #IMPLIED
947  accesskey   %Character;    #IMPLIED
948  onfocus     %Script;       #IMPLIED
949  onblur      %Script;       #IMPLIED
950  onselect    %Script;       #IMPLIED
951  onchange    %Script;       #IMPLIED
952  accept      %ContentTypes; #IMPLIED
953  align       %ImgAlign;     #IMPLIED
954  >
955
956<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
957<!ATTLIST select
958  %attrs;
959  name        CDATA          #IMPLIED
960  size        %Number;       #IMPLIED
961  multiple    (multiple)     #IMPLIED
962  disabled    (disabled)     #IMPLIED
963  tabindex    %Number;       #IMPLIED
964  onfocus     %Script;       #IMPLIED
965  onblur      %Script;       #IMPLIED
966  onchange    %Script;       #IMPLIED
967  >
968
969<!ELEMENT optgroup (option)+>   <!-- option group -->
970<!ATTLIST optgroup
971  %attrs;
972  disabled    (disabled)     #IMPLIED
973  label       %Text;         #REQUIRED
974  >
975
976<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
977<!ATTLIST option
978  %attrs;
979  selected    (selected)     #IMPLIED
980  disabled    (disabled)     #IMPLIED
981  label       %Text;         #IMPLIED
982  value       CDATA          #IMPLIED
983  >
984
985<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
986<!ATTLIST textarea
987  %attrs;
988  name        CDATA          #IMPLIED
989  rows        %Number;       #REQUIRED
990  cols        %Number;       #REQUIRED
991  disabled    (disabled)     #IMPLIED
992  readonly    (readonly)     #IMPLIED
993  tabindex    %Number;       #IMPLIED
994  accesskey   %Character;    #IMPLIED
995  onfocus     %Script;       #IMPLIED
996  onblur      %Script;       #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  name        CDATA          #IMPLIED
1027  value       CDATA          #IMPLIED
1028  type        (button|submit|reset) "submit"
1029  disabled    (disabled)     #IMPLIED
1030  tabindex    %Number;       #IMPLIED
1031  accesskey   %Character;    #IMPLIED
1032  onfocus     %Script;       #IMPLIED
1033  onblur      %Script;       #IMPLIED
1034  >
1035
1036<!-- single-line text input control (DEPRECATED) -->
1037<!ELEMENT isindex EMPTY>
1038<!ATTLIST isindex
1039  %coreattrs;
1040  %i18n;
1041  prompt      %Text;         #IMPLIED
1042  >
1043
1044<!--======================= Tables =======================================-->
1045
1046<!-- Derived from IETF HTML table standard, see [RFC1942] -->
1047
1048<!--
1049 The border attribute sets the thickness of the frame around the
1050 table. The default units are screen pixels.
1051
1052 The frame attribute specifies which parts of the frame around
1053 the table should be rendered. The values are not the same as
1054 CALS to avoid a name clash with the valign attribute.
1055-->
1056<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
1057
1058<!--
1059 The rules attribute defines which rules to draw between cells:
1060
1061 If rules is absent then assume:
1062     "none" if border is absent or border="0" otherwise "all"
1063-->
1064
1065<!ENTITY % TRules "(none | groups | rows | cols | all)">
1066  
1067<!-- horizontal placement of table relative to document -->
1068<!ENTITY % TAlign "(left|center|right)">
1069
1070<!-- horizontal alignment attributes for cell contents
1071
1072  char        alignment char, e.g. char=":"
1073  charoff     offset for alignment char
1074-->
1075<!ENTITY % cellhalign
1076  "align      (left|center|right|justify|char) #IMPLIED
1077   char       %Character;    #IMPLIED
1078   charoff    %Length;       #IMPLIED"
1079  >
1080
1081<!-- vertical alignment attributes for cell contents -->
1082<!ENTITY % cellvalign
1083  "valign     (top|middle|bottom|baseline) #IMPLIED"
1084  >
1085
1086<!ELEMENT table
1087     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
1088<!ELEMENT caption  %Inline;>
1089<!ELEMENT thead    (tr)+>
1090<!ELEMENT tfoot    (tr)+>
1091<!ELEMENT tbody    (tr)+>
1092<!ELEMENT colgroup (col)*>
1093<!ELEMENT col      EMPTY>
1094<!ELEMENT tr       (th|td)+>
1095<!ELEMENT th       %Flow;>
1096<!ELEMENT td       %Flow;>
1097
1098<!ATTLIST table
1099  %attrs;
1100  summary     %Text;         #IMPLIED
1101  width       %Length;       #IMPLIED
1102  border      %Pixels;       #IMPLIED
1103  frame       %TFrame;       #IMPLIED
1104  rules       %TRules;       #IMPLIED
1105  cellspacing %Length;       #IMPLIED
1106  cellpadding %Length;       #IMPLIED
1107  align       %TAlign;       #IMPLIED
1108  bgcolor     %Color;        #IMPLIED
1109  >
1110
1111<!ENTITY % CAlign "(top|bottom|left|right)">
1112
1113<!ATTLIST caption
1114  %attrs;
1115  align       %CAlign;       #IMPLIED
1116  >
1117
1118<!--
1119colgroup groups a set of col elements. It allows you to group
1120several semantically related columns together.
1121-->
1122<!ATTLIST colgroup
1123  %attrs;
1124  span        %Number;       "1"
1125  width       %MultiLength;  #IMPLIED
1126  %cellhalign;
1127  %cellvalign;
1128  >
1129
1130<!--
1131 col elements define the alignment properties for cells in
1132 one or more columns.
1133
1134 The width attribute specifies the width of the columns, e.g.
1135
1136     width=64        width in screen pixels
1137     width=0.5*      relative width of 0.5
1138
1139 The span attribute causes the attributes of one
1140 col element to apply to more than one column.
1141-->
1142<!ATTLIST col
1143  %attrs;
1144  span        %Number;       "1"
1145  width       %MultiLength;  #IMPLIED
1146  %cellhalign;
1147  %cellvalign;
1148  >
1149
1150<!--
1151    Use thead to duplicate headers when breaking table
1152    across page boundaries, or for static headers when
1153    tbody sections are rendered in scrolling panel.
1154
1155    Use tfoot to duplicate footers when breaking table
1156    across page boundaries, or for static footers when
1157    tbody sections are rendered in scrolling panel.
1158
1159    Use multiple tbody sections when rules are needed
1160    between groups of table rows.
1161-->
1162<!ATTLIST thead
1163  %attrs;
1164  %cellhalign;
1165  %cellvalign;
1166  >
1167
1168<!ATTLIST tfoot
1169  %attrs;
1170  %cellhalign;
1171  %cellvalign;
1172  >
1173
1174<!ATTLIST tbody
1175  %attrs;
1176  %cellhalign;
1177  %cellvalign;
1178  >
1179
1180<!ATTLIST tr
1181  %attrs;
1182  %cellhalign;
1183  %cellvalign;
1184  bgcolor     %Color;        #IMPLIED
1185  >
1186
1187<!-- Scope is simpler than headers attribute for common tables -->
1188<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
1189
1190<!-- th is for headers, td for data and for cells acting as both -->
1191
1192<!ATTLIST th
1193  %attrs;
1194  abbr        %Text;         #IMPLIED
1195  axis        CDATA          #IMPLIED
1196  headers     IDREFS         #IMPLIED
1197  scope       %Scope;        #IMPLIED
1198  rowspan     %Number;       "1"
1199  colspan     %Number;       "1"
1200  %cellhalign;
1201  %cellvalign;
1202  nowrap      (nowrap)       #IMPLIED
1203  bgcolor     %Color;        #IMPLIED
1204  width       %Pixels;       #IMPLIED
1205  height      %Pixels;       #IMPLIED
1206  >
1207
1208<!ATTLIST td
1209  %attrs;
1210  abbr        %Text;         #IMPLIED
1211  axis        CDATA          #IMPLIED
1212  headers     IDREFS         #IMPLIED
1213  scope       %Scope;        #IMPLIED
1214  rowspan     %Number;       "1"
1215  colspan     %Number;       "1"
1216  %cellhalign;
1217  %cellvalign;
1218  nowrap      (nowrap)       #IMPLIED
1219  bgcolor     %Color;        #IMPLIED
1220  width       %Pixels;       #IMPLIED
1221  height      %Pixels;       #IMPLIED
1222  >
1223
1224