PageRenderTime 51ms CodeModel.GetById 40ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/bundles/plugins-trunk/XML/xml/dtds/xhtml1-strict.dtd

#
Document Type Definition | 978 lines | 778 code | 200 blank | 0 comment | 0 complexity | 505f6335f88641971af05c340edb5cf2 MD5 | raw file
  1<!--
  2   Extensible HTML version 1.0 Strict DTD
  3
  4   This is the same as HTML 4 Strict 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 Strict//EN"
 17   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
 18
 19   $Revision: 291 $
 20   $Date: 2006-07-09 15:12:50 +0200 (Sun, 09 Jul 2006) $
 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 % Length "CDATA">
 89    <!-- nn for pixels or nn% for percentage length -->
 90
 91<!ENTITY % MultiLength "CDATA">
 92    <!-- pixel, percentage, or relative -->
 93
 94<!ENTITY % Pixels "CDATA">
 95    <!-- integer representing length in pixels -->
 96
 97<!-- these are used for image maps -->
 98
 99<!ENTITY % Shape "(rect|circle|poly|default)">
100
101<!ENTITY % Coords "CDATA">
102    <!-- comma separated list of lengths -->
103
104<!--=================== Generic Attributes ===============================-->
105
106<!-- core attributes common to most elements
107  id       document-wide unique id
108  class    space separated list of classes
109  style    associated style info
110  title    advisory title/amplification
111-->
112<!ENTITY % coreattrs
113 "id          ID             #IMPLIED
114  class       CDATA          #IMPLIED
115  style       %StyleSheet;   #IMPLIED
116  title       %Text;         #IMPLIED"
117  >
118
119<!-- internationalization attributes
120  lang        language code (backwards compatible)
121  xml:lang    language code (as per XML 1.0 spec)
122  dir         direction for weak/neutral text
123-->
124<!ENTITY % i18n
125 "lang        %LanguageCode; #IMPLIED
126  xml:lang    %LanguageCode; #IMPLIED
127  dir         (ltr|rtl)      #IMPLIED"
128  >
129
130<!-- attributes for common UI events
131  onclick     a pointer button was clicked
132  ondblclick  a pointer button was double clicked
133  onmousedown a pointer button was pressed down
134  onmouseup   a pointer button was released
135  onmousemove a pointer was moved onto the element
136  onmouseout  a pointer was moved away from the element
137  onkeypress  a key was pressed and released
138  onkeydown   a key was pressed down
139  onkeyup     a key was released
140-->
141<!ENTITY % events
142 "onclick     %Script;       #IMPLIED
143  ondblclick  %Script;       #IMPLIED
144  onmousedown %Script;       #IMPLIED
145  onmouseup   %Script;       #IMPLIED
146  onmouseover %Script;       #IMPLIED
147  onmousemove %Script;       #IMPLIED
148  onmouseout  %Script;       #IMPLIED
149  onkeypress  %Script;       #IMPLIED
150  onkeydown   %Script;       #IMPLIED
151  onkeyup     %Script;       #IMPLIED"
152  >
153
154<!-- attributes for elements that can get the focus
155  accesskey   accessibility key character
156  tabindex    position in tabbing order
157  onfocus     the element got the focus
158  onblur      the element lost the focus
159-->
160<!ENTITY % focus
161 "accesskey   %Character;    #IMPLIED
162  tabindex    %Number;       #IMPLIED
163  onfocus     %Script;       #IMPLIED
164  onblur      %Script;       #IMPLIED"
165  >
166
167<!ENTITY % attrs "%coreattrs; %i18n; %events;">
168
169<!--=================== Text Elements ====================================-->
170
171<!ENTITY % special.pre
172   "br | span | bdo | map">
173
174
175<!ENTITY % special
176   "%special.pre; | object | img ">
177
178<!ENTITY % fontstyle "tt | i | b | big | small ">
179
180<!ENTITY % phrase "em | strong | dfn | code | q |
181                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
182
183<!ENTITY % inline.forms "input | select | textarea | label | button">
184
185<!-- these can occur at block or inline level -->
186<!ENTITY % misc.inline "ins | del | script">
187
188<!-- these can only occur at block level -->
189<!ENTITY % misc "noscript | %misc.inline;">
190
191<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
192
193<!-- %Inline; covers inline or "text-level" elements -->
194<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
195
196<!--================== Block level elements ==============================-->
197
198<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
199<!ENTITY % lists "ul | ol | dl">
200<!ENTITY % blocktext "pre | hr | blockquote | address">
201
202<!ENTITY % block
203     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
204
205<!ENTITY % Block "(%block; | form | %misc;)*">
206
207<!-- %Flow; mixes block and inline and is used for list items etc. -->
208<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
209
210<!--================== Content models for exclusions =====================-->
211
212<!-- a elements use %Inline; excluding a -->
213
214<!ENTITY % a.content
215   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
216
217<!-- pre uses %Inline excluding big, small, sup or sup -->
218
219<!ENTITY % pre.content
220   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
221      | %inline.forms;)*">
222
223<!-- form uses %Block; excluding form -->
224
225<!ENTITY % form.content "(%block; | %misc;)*">
226
227<!-- button uses %Flow; but excludes a, form and form controls -->
228
229<!ENTITY % button.content
230   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
231    table | %special; | %fontstyle; | %phrase; | %misc;)*">
232
233<!--================ Document Structure ==================================-->
234
235<!-- the namespace URI designates the document profile -->
236
237<!ELEMENT html (head, body)>
238<!ATTLIST html
239  %i18n;
240  id          ID             #IMPLIED
241  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
242  >
243
244<!--================ Document Head =======================================-->
245
246<!ENTITY % head.misc "(script|style|meta|link|object)*">
247
248<!-- content model is %head.misc; combined with a single
249     title and an optional base element in any order -->
250
251<!ELEMENT head (%head.misc;,
252     ((title, %head.misc;, (base, %head.misc;)?) |
253      (base, %head.misc;, (title, %head.misc;))))>
254
255<!ATTLIST head
256  %i18n;
257  id          ID             #IMPLIED
258  profile     %URI;          #IMPLIED
259  >
260
261<!-- The title element is not considered part of the flow of text.
262       It should be displayed, for example as the page header or
263       window title. Exactly one title is required per document.
264    -->
265<!ELEMENT title (#PCDATA)>
266<!ATTLIST title 
267  %i18n;
268  id          ID             #IMPLIED
269  >
270
271<!-- document base URI -->
272
273<!ELEMENT base EMPTY>
274<!ATTLIST base
275  href        %URI;          #REQUIRED
276  id          ID             #IMPLIED
277  >
278
279<!-- generic metainformation -->
280<!ELEMENT meta EMPTY>
281<!ATTLIST meta
282  %i18n;
283  id          ID             #IMPLIED
284  http-equiv  CDATA          #IMPLIED
285  name        CDATA          #IMPLIED
286  content     CDATA          #REQUIRED
287  scheme      CDATA          #IMPLIED
288  >
289
290<!--
291  Relationship values can be used in principle:
292
293   a) for document specific toolbars/menus when used
294      with the link element in document head e.g.
295        start, contents, previous, next, index, end, help
296   b) to link to a separate style sheet (rel="stylesheet")
297   c) to make a link to a script (rel="script")
298   d) by stylesheets to control how collections of
299      html nodes are rendered into printed documents
300   e) to make a link to a printable version of this document
301      e.g. a PostScript or PDF version (rel="alternate" media="print")
302-->
303
304<!ELEMENT link EMPTY>
305<!ATTLIST link
306  %attrs;
307  charset     %Charset;      #IMPLIED
308  href        %URI;          #IMPLIED
309  hreflang    %LanguageCode; #IMPLIED
310  type        %ContentType;  #IMPLIED
311  rel         %LinkTypes;    #IMPLIED
312  rev         %LinkTypes;    #IMPLIED
313  media       %MediaDesc;    #IMPLIED
314  >
315
316<!-- style info, which may include CDATA sections -->
317<!ELEMENT style (#PCDATA)>
318<!ATTLIST style
319  %i18n;
320  id          ID             #IMPLIED
321  type        %ContentType;  #REQUIRED
322  media       %MediaDesc;    #IMPLIED
323  title       %Text;         #IMPLIED
324  xml:space   (preserve)     #FIXED 'preserve'
325  >
326
327<!-- script statements, which may include CDATA sections -->
328<!ELEMENT script (#PCDATA)>
329<!ATTLIST script
330  id          ID             #IMPLIED
331  charset     %Charset;      #IMPLIED
332  type        %ContentType;  #REQUIRED
333  src         %URI;          #IMPLIED
334  defer       (defer)        #IMPLIED
335  xml:space   (preserve)     #FIXED 'preserve'
336  >
337
338<!-- alternate content container for non script-based rendering -->
339
340<!ELEMENT noscript %Block;>
341<!ATTLIST noscript
342  %attrs;
343  >
344
345<!--=================== Document Body ====================================-->
346
347<!ELEMENT body %Block;>
348<!ATTLIST body
349  %attrs;
350  onload          %Script;   #IMPLIED
351  onunload        %Script;   #IMPLIED
352  >
353
354<!ELEMENT div %Flow;>  <!-- generic language/style container -->
355<!ATTLIST div
356  %attrs;
357  >
358
359<!--=================== Paragraphs =======================================-->
360
361<!ELEMENT p %Inline;>
362<!ATTLIST p
363  %attrs;
364  >
365
366<!--=================== Headings =========================================-->
367
368<!--
369  There are six levels of headings from h1 (the most important)
370  to h6 (the least important).
371-->
372
373<!ELEMENT h1  %Inline;>
374<!ATTLIST h1
375   %attrs;
376   >
377
378<!ELEMENT h2 %Inline;>
379<!ATTLIST h2
380   %attrs;
381   >
382
383<!ELEMENT h3 %Inline;>
384<!ATTLIST h3
385   %attrs;
386   >
387
388<!ELEMENT h4 %Inline;>
389<!ATTLIST h4
390   %attrs;
391   >
392
393<!ELEMENT h5 %Inline;>
394<!ATTLIST h5
395   %attrs;
396   >
397
398<!ELEMENT h6 %Inline;>
399<!ATTLIST h6
400   %attrs;
401   >
402
403<!--=================== Lists ============================================-->
404
405<!-- Unordered list -->
406
407<!ELEMENT ul (li)+>
408<!ATTLIST ul
409  %attrs;
410  >
411
412<!-- Ordered (numbered) list -->
413
414<!ELEMENT ol (li)+>
415<!ATTLIST ol
416  %attrs;
417  >
418
419<!-- list item -->
420
421<!ELEMENT li %Flow;>
422<!ATTLIST li
423  %attrs;
424  >
425
426<!-- definition lists - dt for term, dd for its definition -->
427
428<!ELEMENT dl (dt|dd)+>
429<!ATTLIST dl
430  %attrs;
431  >
432
433<!ELEMENT dt %Inline;>
434<!ATTLIST dt
435  %attrs;
436  >
437
438<!ELEMENT dd %Flow;>
439<!ATTLIST dd
440  %attrs;
441  >
442
443<!--=================== Address ==========================================-->
444
445<!-- information on author -->
446
447<!ELEMENT address %Inline;>
448<!ATTLIST address
449  %attrs;
450  >
451
452<!--=================== Horizontal Rule ==================================-->
453
454<!ELEMENT hr EMPTY>
455<!ATTLIST hr
456  %attrs;
457  >
458
459<!--=================== Preformatted Text ================================-->
460
461<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
462
463<!ELEMENT pre %pre.content;>
464<!ATTLIST pre
465  %attrs;
466  xml:space (preserve) #FIXED 'preserve'
467  >
468
469<!--=================== Block-like Quotes ================================-->
470
471<!ELEMENT blockquote %Block;>
472<!ATTLIST blockquote
473  %attrs;
474  cite        %URI;          #IMPLIED
475  >
476
477<!--=================== Inserted/Deleted Text ============================-->
478
479<!--
480  ins/del are allowed in block and inline content, but its
481  inappropriate to include block content within an ins element
482  occurring in inline content.
483-->
484<!ELEMENT ins %Flow;>
485<!ATTLIST ins
486  %attrs;
487  cite        %URI;          #IMPLIED
488  datetime    %Datetime;     #IMPLIED
489  >
490
491<!ELEMENT del %Flow;>
492<!ATTLIST del
493  %attrs;
494  cite        %URI;          #IMPLIED
495  datetime    %Datetime;     #IMPLIED
496  >
497
498<!--================== The Anchor Element ================================-->
499
500<!-- content is %Inline; except that anchors shouldn't be nested -->
501
502<!ELEMENT a %a.content;>
503<!ATTLIST a
504  %attrs;
505  %focus;
506  charset     %Charset;      #IMPLIED
507  type        %ContentType;  #IMPLIED
508  name        NMTOKEN        #IMPLIED
509  href        %URI;          #IMPLIED
510  hreflang    %LanguageCode; #IMPLIED
511  rel         %LinkTypes;    #IMPLIED
512  rev         %LinkTypes;    #IMPLIED
513  shape       %Shape;        "rect"
514  coords      %Coords;       #IMPLIED
515  >
516
517<!--===================== Inline Elements ================================-->
518
519<!ELEMENT span %Inline;> <!-- generic language/style container -->
520<!ATTLIST span
521  %attrs;
522  >
523
524<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
525<!ATTLIST bdo
526  %coreattrs;
527  %events;
528  lang        %LanguageCode; #IMPLIED
529  xml:lang    %LanguageCode; #IMPLIED
530  dir         (ltr|rtl)      #REQUIRED
531  >
532
533<!ELEMENT br EMPTY>   <!-- forced line break -->
534<!ATTLIST br
535  %coreattrs;
536  >
537
538<!ELEMENT em %Inline;>   <!-- emphasis -->
539<!ATTLIST em %attrs;>
540
541<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
542<!ATTLIST strong %attrs;>
543
544<!ELEMENT dfn %Inline;>   <!-- definitional -->
545<!ATTLIST dfn %attrs;>
546
547<!ELEMENT code %Inline;>   <!-- program code -->
548<!ATTLIST code %attrs;>
549
550<!ELEMENT samp %Inline;>   <!-- sample -->
551<!ATTLIST samp %attrs;>
552
553<!ELEMENT kbd %Inline;>  <!-- something user would type -->
554<!ATTLIST kbd %attrs;>
555
556<!ELEMENT var %Inline;>   <!-- variable -->
557<!ATTLIST var %attrs;>
558
559<!ELEMENT cite %Inline;>   <!-- citation -->
560<!ATTLIST cite %attrs;>
561
562<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
563<!ATTLIST abbr %attrs;>
564
565<!ELEMENT acronym %Inline;>   <!-- acronym -->
566<!ATTLIST acronym %attrs;>
567
568<!ELEMENT q %Inline;>   <!-- inlined quote -->
569<!ATTLIST q
570  %attrs;
571  cite        %URI;          #IMPLIED
572  >
573
574<!ELEMENT sub %Inline;> <!-- subscript -->
575<!ATTLIST sub %attrs;>
576
577<!ELEMENT sup %Inline;> <!-- superscript -->
578<!ATTLIST sup %attrs;>
579
580<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
581<!ATTLIST tt %attrs;>
582
583<!ELEMENT i %Inline;>   <!-- italic font -->
584<!ATTLIST i %attrs;>
585
586<!ELEMENT b %Inline;>   <!-- bold font -->
587<!ATTLIST b %attrs;>
588
589<!ELEMENT big %Inline;>   <!-- bigger font -->
590<!ATTLIST big %attrs;>
591
592<!ELEMENT small %Inline;>   <!-- smaller font -->
593<!ATTLIST small %attrs;>
594
595<!--==================== Object ======================================-->
596<!--
597  object is used to embed objects as part of HTML pages.
598  param elements should precede other content. Parameters
599  can also be expressed as attribute/value pairs on the
600  object element itself when brevity is desired.
601-->
602
603<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
604<!ATTLIST object
605  %attrs;
606  declare     (declare)      #IMPLIED
607  classid     %URI;          #IMPLIED
608  codebase    %URI;          #IMPLIED
609  data        %URI;          #IMPLIED
610  type        %ContentType;  #IMPLIED
611  codetype    %ContentType;  #IMPLIED
612  archive     %UriList;      #IMPLIED
613  standby     %Text;         #IMPLIED
614  height      %Length;       #IMPLIED
615  width       %Length;       #IMPLIED
616  usemap      %URI;          #IMPLIED
617  name        NMTOKEN        #IMPLIED
618  tabindex    %Number;       #IMPLIED
619  >
620
621<!--
622  param is used to supply a named property value.
623  In XML it would seem natural to follow RDF and support an
624  abbreviated syntax where the param elements are replaced
625  by attribute value pairs on the object start tag.
626-->
627<!ELEMENT param EMPTY>
628<!ATTLIST param
629  id          ID             #IMPLIED
630  name        CDATA          #IMPLIED
631  value       CDATA          #IMPLIED
632  valuetype   (data|ref|object) "data"
633  type        %ContentType;  #IMPLIED
634  >
635
636<!--=================== Images ===========================================-->
637
638<!--
639   To avoid accessibility problems for people who aren't
640   able to see the image, you should provide a text
641   description using the alt and longdesc attributes.
642   In addition, avoid the use of server-side image maps.
643   Note that in this DTD there is no name attribute. That
644   is only available in the transitional and frameset DTD.
645-->
646
647<!ELEMENT img EMPTY>
648<!ATTLIST img
649  %attrs;
650  src         %URI;          #REQUIRED
651  alt         %Text;         #REQUIRED
652  longdesc    %URI;          #IMPLIED
653  height      %Length;       #IMPLIED
654  width       %Length;       #IMPLIED
655  usemap      %URI;          #IMPLIED
656  ismap       (ismap)        #IMPLIED
657  >
658
659<!-- usemap points to a map element which may be in this document
660  or an external document, although the latter is not widely supported -->
661
662<!--================== Client-side image maps ============================-->
663
664<!-- These can be placed in the same document or grouped in a
665     separate document although this isn't yet widely supported -->
666
667<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
668<!ATTLIST map
669  %i18n;
670  %events;
671  id          ID             #REQUIRED
672  class       CDATA          #IMPLIED
673  style       %StyleSheet;   #IMPLIED
674  title       %Text;         #IMPLIED
675  name        NMTOKEN        #IMPLIED
676  >
677
678<!ELEMENT area EMPTY>
679<!ATTLIST area
680  %attrs;
681  %focus;
682  shape       %Shape;        "rect"
683  coords      %Coords;       #IMPLIED
684  href        %URI;          #IMPLIED
685  nohref      (nohref)       #IMPLIED
686  alt         %Text;         #REQUIRED
687  >
688
689<!--================ Forms ===============================================-->
690<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
691
692<!ATTLIST form
693  %attrs;
694  action      %URI;          #REQUIRED
695  method      (get|post)     "get"
696  enctype     %ContentType;  "application/x-www-form-urlencoded"
697  onsubmit    %Script;       #IMPLIED
698  onreset     %Script;       #IMPLIED
699  accept      %ContentTypes; #IMPLIED
700  accept-charset %Charsets;  #IMPLIED
701  >
702
703<!--
704  Each label must not contain more than ONE field
705  Label elements shouldn't be nested.
706-->
707<!ELEMENT label %Inline;>
708<!ATTLIST label
709  %attrs;
710  for         IDREF          #IMPLIED
711  accesskey   %Character;    #IMPLIED
712  onfocus     %Script;       #IMPLIED
713  onblur      %Script;       #IMPLIED
714  >
715
716<!ENTITY % InputType
717  "(text | password | checkbox |
718    radio | submit | reset |
719    file | hidden | image | button)"
720   >
721
722<!-- the name attribute is required for all but submit & reset -->
723
724<!ELEMENT input EMPTY>     <!-- form control -->
725<!ATTLIST input
726  %attrs;
727  %focus;
728  type        %InputType;    "text"
729  name        CDATA          #IMPLIED
730  value       CDATA          #IMPLIED
731  checked     (checked)      #IMPLIED
732  disabled    (disabled)     #IMPLIED
733  readonly    (readonly)     #IMPLIED
734  size        CDATA          #IMPLIED
735  maxlength   %Number;       #IMPLIED
736  src         %URI;          #IMPLIED
737  alt         CDATA          #IMPLIED
738  usemap      %URI;          #IMPLIED
739  onselect    %Script;       #IMPLIED
740  onchange    %Script;       #IMPLIED
741  accept      %ContentTypes; #IMPLIED
742  >
743
744<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
745<!ATTLIST select
746  %attrs;
747  name        CDATA          #IMPLIED
748  size        %Number;       #IMPLIED
749  multiple    (multiple)     #IMPLIED
750  disabled    (disabled)     #IMPLIED
751  tabindex    %Number;       #IMPLIED
752  onfocus     %Script;       #IMPLIED
753  onblur      %Script;       #IMPLIED
754  onchange    %Script;       #IMPLIED
755  >
756
757<!ELEMENT optgroup (option)+>   <!-- option group -->
758<!ATTLIST optgroup
759  %attrs;
760  disabled    (disabled)     #IMPLIED
761  label       %Text;         #REQUIRED
762  >
763
764<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
765<!ATTLIST option
766  %attrs;
767  selected    (selected)     #IMPLIED
768  disabled    (disabled)     #IMPLIED
769  label       %Text;         #IMPLIED
770  value       CDATA          #IMPLIED
771  >
772
773<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
774<!ATTLIST textarea
775  %attrs;
776  %focus;
777  name        CDATA          #IMPLIED
778  rows        %Number;       #REQUIRED
779  cols        %Number;       #REQUIRED
780  disabled    (disabled)     #IMPLIED
781  readonly    (readonly)     #IMPLIED
782  onselect    %Script;       #IMPLIED
783  onchange    %Script;       #IMPLIED
784  >
785
786<!--
787  The fieldset element is used to group form fields.
788  Only one legend element should occur in the content
789  and if present should only be preceded by whitespace.
790-->
791<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
792<!ATTLIST fieldset
793  %attrs;
794  >
795
796<!ELEMENT legend %Inline;>     <!-- fieldset label -->
797<!ATTLIST legend
798  %attrs;
799  accesskey   %Character;    #IMPLIED
800  >
801
802<!--
803 Content is %Flow; excluding a, form and form controls
804--> 
805<!ELEMENT button %button.content;>  <!-- push button -->
806<!ATTLIST button
807  %attrs;
808  %focus;
809  name        CDATA          #IMPLIED
810  value       CDATA          #IMPLIED
811  type        (button|submit|reset) "submit"
812  disabled    (disabled)     #IMPLIED
813  >
814
815<!--======================= Tables =======================================-->
816
817<!-- Derived from IETF HTML table standard, see [RFC1942] -->
818
819<!--
820 The border attribute sets the thickness of the frame around the
821 table. The default units are screen pixels.
822
823 The frame attribute specifies which parts of the frame around
824 the table should be rendered. The values are not the same as
825 CALS to avoid a name clash with the valign attribute.
826-->
827<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
828
829<!--
830 The rules attribute defines which rules to draw between cells:
831
832 If rules is absent then assume:
833     "none" if border is absent or border="0" otherwise "all"
834-->
835
836<!ENTITY % TRules "(none | groups | rows | cols | all)">
837  
838<!-- horizontal alignment attributes for cell contents
839
840  char        alignment char, e.g. char=':'
841  charoff     offset for alignment char
842-->
843<!ENTITY % cellhalign
844  "align      (left|center|right|justify|char) #IMPLIED
845   char       %Character;    #IMPLIED
846   charoff    %Length;       #IMPLIED"
847  >
848
849<!-- vertical alignment attributes for cell contents -->
850<!ENTITY % cellvalign
851  "valign     (top|middle|bottom|baseline) #IMPLIED"
852  >
853
854<!ELEMENT table
855     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
856<!ELEMENT caption  %Inline;>
857<!ELEMENT thead    (tr)+>
858<!ELEMENT tfoot    (tr)+>
859<!ELEMENT tbody    (tr)+>
860<!ELEMENT colgroup (col)*>
861<!ELEMENT col      EMPTY>
862<!ELEMENT tr       (th|td)+>
863<!ELEMENT th       %Flow;>
864<!ELEMENT td       %Flow;>
865
866<!ATTLIST table
867  %attrs;
868  summary     %Text;         #IMPLIED
869  width       %Length;       #IMPLIED
870  border      %Pixels;       #IMPLIED
871  frame       %TFrame;       #IMPLIED
872  rules       %TRules;       #IMPLIED
873  cellspacing %Length;       #IMPLIED
874  cellpadding %Length;       #IMPLIED
875  >
876
877<!ATTLIST caption
878  %attrs;
879  >
880
881<!--
882colgroup groups a set of col elements. It allows you to group
883several semantically related columns together.
884-->
885<!ATTLIST colgroup
886  %attrs;
887  span        %Number;       "1"
888  width       %MultiLength;  #IMPLIED
889  %cellhalign;
890  %cellvalign;
891  >
892
893<!--
894 col elements define the alignment properties for cells in
895 one or more columns.
896
897 The width attribute specifies the width of the columns, e.g.
898
899     width=64        width in screen pixels
900     width=0.5*      relative width of 0.5
901
902 The span attribute causes the attributes of one
903 col element to apply to more than one column.
904-->
905<!ATTLIST col
906  %attrs;
907  span        %Number;       "1"
908  width       %MultiLength;  #IMPLIED
909  %cellhalign;
910  %cellvalign;
911  >
912
913<!--
914    Use thead to duplicate headers when breaking table
915    across page boundaries, or for static headers when
916    tbody sections are rendered in scrolling panel.
917
918    Use tfoot to duplicate footers when breaking table
919    across page boundaries, or for static footers when
920    tbody sections are rendered in scrolling panel.
921
922    Use multiple tbody sections when rules are needed
923    between groups of table rows.
924-->
925<!ATTLIST thead
926  %attrs;
927  %cellhalign;
928  %cellvalign;
929  >
930
931<!ATTLIST tfoot
932  %attrs;
933  %cellhalign;
934  %cellvalign;
935  >
936
937<!ATTLIST tbody
938  %attrs;
939  %cellhalign;
940  %cellvalign;
941  >
942
943<!ATTLIST tr
944  %attrs;
945  %cellhalign;
946  %cellvalign;
947  >
948
949
950<!-- Scope is simpler than headers attribute for common tables -->
951<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
952
953<!-- th is for headers, td for data and for cells acting as both -->
954
955<!ATTLIST th
956  %attrs;
957  abbr        %Text;         #IMPLIED
958  axis        CDATA          #IMPLIED
959  headers     IDREFS         #IMPLIED
960  scope       %Scope;        #IMPLIED
961  rowspan     %Number;       "1"
962  colspan     %Number;       "1"
963  %cellhalign;
964  %cellvalign;
965  >
966
967<!ATTLIST td
968  %attrs;
969  abbr        %Text;         #IMPLIED
970  axis        CDATA          #IMPLIED
971  headers     IDREFS         #IMPLIED
972  scope       %Scope;        #IMPLIED
973  rowspan     %Number;       "1"
974  colspan     %Number;       "1"
975  %cellhalign;
976  %cellvalign;
977  >
978