2 This is HTML 4.0 Strict DTD, which excludes the presentation
3 attributes and elements that W3C expects to phase out as
4 support for style sheets matures. Authors should use the Strict
5 DTD when possible, but may use the Transitional DTD when support
6 for presentation attribute and elements is required.
8 HTML 4.0 includes mechanisms for style sheets, scripting,
9 embedding objects, improved support for right to left and mixed
10 direction text, and enhancements to forms for improved
11 accessibility for people with disabilities.
13 Draft: $Date: 1999/11/04 08:36:15 $
16 Dave Raggett <dsr@w3.org>
17 Arnaud Le Hors <lehors@w3.org>
18 Ian Jacobs <ij@w3.org>
20 Further information about HTML 4.0 is available at:
22 http://www.w3.org/TR/REC-html40
27 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
28 "http://www.w3.org/TR/REC-html40/strict.dtd">
38 The URI used as a system identifier with the public identifier allows
39 the user agent to download the DTD and entity sets as needed.
41 The FPI for the Transitional HTML 4.0 DTD is:
43 "-//W3C//DTD HTML 4.0 Transitional//EN
47 http://www.w3.org/TR/REC-html40/loose.dtd
49 If you are writing a document that includes frames, use
52 "-//W3C//DTD HTML 4.0 Frameset//EN"
56 http://www.w3.org/TR/REC-html40/frameset.dtd
58 The following URIs are supported in relation to HTML 4.0
60 "http://www.w3.org/TR/REC-html40/strict.dtd" (Strict DTD)
61 "http://www.w3.org/TR/REC-html40/loose.dtd" (Loose DTD)
62 "http://www.w3.org/TR/REC-html40/frameset.dtd" (Frameset DTD)
63 "http://www.w3.org/TR/REC-html40/HTMLlat1.ent" (Latin-1 entities)
64 "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent" (Symbol entities)
65 "http://www.w3.org/TR/REC-html40/HTMLspecial.ent" (Special entities)
67 These URIs point to the latest version of each file. To reference
68 this specific revision use the following URIs:
70 "http://www.w3.org/TR/REC-html40-971218/strict.dtd"
71 "http://www.w3.org/TR/REC-html40-971218/loose.dtd"
72 "http://www.w3.org/TR/REC-html40-971218/frameset.dtd"
73 "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent"
74 "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent"
75 "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent"
79 <!--================== Imported Names ====================================-->
81 <!ENTITY % ContentType "CDATA"
82 -- media type, as per [RFC2045]
85 <!ENTITY % ContentTypes "CDATA"
86 -- comma-separated list of media types, as per [RFC2045]
89 <!ENTITY % Charset "CDATA"
90 -- a character encoding, as per [RFC2045]
93 <!ENTITY % Charsets "CDATA"
94 -- a space separated list of character encodings, as per [RFC2045]
97 <!ENTITY % LanguageCode "NAME"
98 -- a language code, as per [RFC1766]
101 <!ENTITY % Character "CDATA"
102 -- a single character from [ISO10646]
105 <!ENTITY % LinkTypes "CDATA"
106 -- space-separated list of link types
109 <!ENTITY % MediaDesc "CDATA"
110 -- single or comma-separated list of media descriptors
113 <!ENTITY % URI "CDATA"
114 -- a Uniform Resource Identifier,
118 <!ENTITY % Datetime "CDATA" -- date and time information. ISO date format -->
121 <!ENTITY % Script "CDATA" -- script expression -->
123 <!ENTITY % StyleSheet "CDATA" -- style sheet data -->
127 <!ENTITY % Text "CDATA">
130 <!-- Parameter Entities -->
132 <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
134 <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
136 <!ENTITY % list "UL | OL">
138 <!ENTITY % preformatted "PRE">
141 <!--================ Character mnemonic entities =========================-->
143 <!ENTITY % HTMLlat1 PUBLIC
144 "-//W3C//ENTITIES Latin1//EN//HTML"
145 "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent">
148 <!ENTITY % HTMLsymbol PUBLIC
149 "-//W3C//ENTITIES Symbols//EN//HTML"
150 "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent">
153 <!ENTITY % HTMLspecial PUBLIC
154 "-//W3C//ENTITIES Special//EN//HTML"
155 "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent">
157 <!--=================== Generic Attributes ===============================-->
160 "id ID #IMPLIED -- document-wide unique id --
161 class CDATA #IMPLIED -- space separated list of classes --
162 style %StyleSheet; #IMPLIED -- associated style info --
163 title %Text; #IMPLIED -- advisory title/amplification --"
167 "lang %LanguageCode; #IMPLIED -- language code --
168 dir (ltr|rtl) #IMPLIED -- direction for weak/neutral text --"
172 "onclick %Script; #IMPLIED -- a pointer button was clicked --
173 ondblclick %Script; #IMPLIED -- a pointer button was double clicked--
174 onmousedown %Script; #IMPLIED -- a pointer button was pressed down --
175 onmouseup %Script; #IMPLIED -- a pointer button was released --
176 onmouseover %Script; #IMPLIED -- a pointer was moved onto --
177 onmousemove %Script; #IMPLIED -- a pointer was moved within --
178 onmouseout %Script; #IMPLIED -- a pointer was moved away --
179 onkeypress %Script; #IMPLIED -- a key was pressed and released --
180 onkeydown %Script; #IMPLIED -- a key was pressed down --
181 onkeyup %Script; #IMPLIED -- a key was released --"
184 <!-- Reserved Feature Switch -->
185 <!ENTITY % HTML.Reserved "IGNORE">
187 <!-- The following attributes are reserved for possible future use -->
188 <![ %HTML.Reserved; [
190 "datasrc %URI; #IMPLIED -- a single or tabular Data Source --
191 datafld CDATA #IMPLIED -- the property or column name --
192 dataformatas (plaintext|html) plaintext -- text or html --"
196 <!ENTITY % reserved "">
198 <!ENTITY % attrs "%coreattrs; %i18n; %events;">
201 <!--=================== Text Markup ======================================-->
204 "TT | I | B | BIG | SMALL">
206 <!ENTITY % phrase "EM | STRONG | DFN | CODE |
207 SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
210 "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
212 <!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
214 <!-- %inline; covers inline or "text-level" elements -->
215 <!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
217 <!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
218 <!ATTLIST (%fontstyle;|%phrase;)
219 %attrs; -- %coreattrs, %i18n, %events --
222 <!ELEMENT (SUB|SUP) - - (%inline;)* -- subscript, superscript -->
224 %attrs; -- %coreattrs, %i18n, %events --
227 <!ELEMENT SPAN - - (%inline;)* -- generic language/style container -->
229 %attrs; -- %coreattrs, %i18n, %events --
230 %reserved; -- reserved for possible future use --
233 <!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride -->
235 %coreattrs; -- id, class, style, title --
236 lang %LanguageCode; #IMPLIED -- language code --
237 dir (ltr|rtl) #REQUIRED -- directionality --
241 <!ELEMENT BR - O EMPTY -- forced line break -->
243 %coreattrs; -- id, class, style, title --
246 <!--================== HTML content models ===============================-->
249 HTML has two basic content models:
251 %inline; character level elements and text strings
252 %block; block-like elements e.g. paragraphs and lists
256 "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
257 BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
259 <!ENTITY % flow "%block; | %inline;">
261 <!--=================== Document Body ====================================-->
263 <!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
265 %attrs; -- %coreattrs, %i18n, %events --
266 onload %Script; #IMPLIED -- the document has been loaded --
267 onunload %Script; #IMPLIED -- the document has been removed --
270 <!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
272 %attrs; -- %coreattrs, %i18n, %events --
275 <!ELEMENT DIV - - (%flow;)* -- generic language/style container -->
277 %attrs; -- %coreattrs, %i18n, %events --
278 %reserved; -- reserved for possible future use --
282 <!--================== The Anchor Element ================================-->
284 <!ENTITY % Shape "(rect|circle|poly|default)">
285 <!ENTITY % Coords "CDATA" -- comma separated list of lengths -->
287 <!ELEMENT A - - (%inline;)* -(A) -- anchor -->
289 %attrs; -- %coreattrs, %i18n, %events --
290 charset %Charset; #IMPLIED -- char encoding of linked resource --
291 type %ContentType; #IMPLIED -- advisory content type --
292 name CDATA #IMPLIED -- named link end --
293 href %URI; #IMPLIED -- URI for linked resource --
294 hreflang %LanguageCode; #IMPLIED -- language code --
295 rel %LinkTypes; #IMPLIED -- forward link types --
296 rev %LinkTypes; #IMPLIED -- reverse link types --
297 accesskey %Character; #IMPLIED -- accessibility key character --
298 shape %Shape; rect -- for use with client-side image maps --
299 coords %Coords; #IMPLIED -- for use with client-side image maps --
300 tabindex NUMBER #IMPLIED -- position in tabbing order --
301 onfocus %Script; #IMPLIED -- the element got the focus --
302 onblur %Script; #IMPLIED -- the element lost the focus --
305 <!--================== Client-side image maps ============================-->
307 <!-- These can be placed in the same document or grouped in a
308 separate document although this isn't yet widely supported -->
310 <!ELEMENT MAP - - ((%block;)+ | AREA+) -- client-side image map -->
312 %attrs; -- %coreattrs, %i18n, %events --
313 name CDATA #REQUIRED -- for reference by usemap --
316 <!ELEMENT AREA - O EMPTY -- client-side image map area -->
318 %attrs; -- %coreattrs, %i18n, %events --
319 shape %Shape; rect -- controls interpretation of coords --
320 coords %Coords; #IMPLIED -- comma separated list of lengths --
321 href %URI; #IMPLIED -- URI for linked resource --
322 nohref (nohref) #IMPLIED -- this region has no action --
323 alt %Text; #REQUIRED -- short description --
324 tabindex NUMBER #IMPLIED -- position in tabbing order --
325 accesskey %Character; #IMPLIED -- accessibility key character --
326 onfocus %Script; #IMPLIED -- the element got the focus --
327 onblur %Script; #IMPLIED -- the element lost the focus --
330 <!--================== The LINK Element ==================================-->
333 Relationship values can be used in principle:
335 a) for document specific toolbars/menus when used
336 with the LINK element in document head e.g.
337 start, contents, previous, next, index, end, help
338 b) to link to a separate style sheet (rel=stylesheet)
339 c) to make a link to a script (rel=script)
340 d) by stylesheets to control how collections of
341 html nodes are rendered into printed documents
342 e) to make a link to a printable version of this document
343 e.g. a postscript or pdf version (rel=alternate media=print)
346 <!ELEMENT LINK - O EMPTY -- a media-independent link -->
348 %attrs; -- %coreattrs, %i18n, %events --
349 charset %Charset; #IMPLIED -- char encoding of linked resource --
350 href %URI; #IMPLIED -- URI for linked resource --
351 hreflang %LanguageCode; #IMPLIED -- language code --
352 type %ContentType; #IMPLIED -- advisory content type --
353 rel %LinkTypes; #IMPLIED -- forward link types --
354 rev %LinkTypes; #IMPLIED -- reverse link types --
355 media %MediaDesc; #IMPLIED -- for rendering on these media --
358 <!--=================== Images ===========================================-->
360 <!-- Length defined in strict DTD for cellpadding/cellspacing -->
361 <!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
362 <!ENTITY % MultiLength "CDATA" -- pixel, percentage, or relative -->
364 <!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength -->
366 <!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
369 <!-- To avoid problems with text-only UAs as well as
370 to make image content understandable and navigable
371 to users of non-visual UAs, you need to provide
372 a description with ALT, and avoid server-side image maps -->
373 <!ELEMENT IMG - O EMPTY -- Embedded image -->
375 %attrs; -- %coreattrs, %i18n, %events --
376 src %URI; #REQUIRED -- URI of image to embed --
377 alt %Text; #REQUIRED -- short description --
378 longdesc %URI; #IMPLIED -- link to long description
380 height %Length; #IMPLIED -- override height --
381 width %Length; #IMPLIED -- override width --
382 usemap %URI; #IMPLIED -- use client-side image map --
383 ismap (ismap) #IMPLIED -- use server-side image map --
386 <!-- USEMAP points to a MAP element which may be in this document
387 or an external document, although the latter is not widely supported -->
389 <!--==================== OBJECT ======================================-->
391 OBJECT is used to embed objects as part of HTML pages
392 PARAM elements should precede other content. SGML mixed content
393 model technicality precludes specifying this formally ...
396 <!ELEMENT OBJECT - - (PARAM | %flow;)*
397 -- generic embedded object -->
399 %attrs; -- %coreattrs, %i18n, %events --
400 declare (declare) #IMPLIED -- declare but don't instantiate flag --
401 classid %URI; #IMPLIED -- identifies an implementation --
402 codebase %URI; #IMPLIED -- base URI for classid, data, archive--
403 data %URI; #IMPLIED -- reference to object's data --
404 type %ContentType; #IMPLIED -- content type for data --
405 codetype %ContentType; #IMPLIED -- content type for code --
406 archive %URI; #IMPLIED -- space separated archive list --
407 standby %Text; #IMPLIED -- message to show while loading --
408 height %Length; #IMPLIED -- override height --
409 width %Length; #IMPLIED -- override width --
410 usemap %URI; #IMPLIED -- use client-side image map --
411 name CDATA #IMPLIED -- submit as part of form --
412 tabindex NUMBER #IMPLIED -- position in tabbing order --
413 %reserved; -- reserved for possible future use --
416 <!ELEMENT PARAM - O EMPTY -- named property value -->
418 id ID #IMPLIED -- document-wide unique id --
419 name CDATA #REQUIRED -- property name --
420 value CDATA #IMPLIED -- property value --
421 valuetype (DATA|REF|OBJECT) DATA -- How to interpret value --
422 type %ContentType; #IMPLIED -- content type for value
423 when valuetype=ref --
427 <!--=================== Horizontal Rule ==================================-->
429 <!ELEMENT HR - O EMPTY -- horizontal rule -->
431 %coreattrs; -- id, class, style, title --
435 <!--=================== Paragraphs =======================================-->
437 <!ELEMENT P - O (%inline;)* -- paragraph -->
439 %attrs; -- %coreattrs, %i18n, %events --
442 <!--=================== Headings =========================================-->
445 There are six levels of headings from H1 (the most important)
446 to H6 (the least important).
449 <!ELEMENT (%heading;) - - (%inline;)* -- heading -->
450 <!ATTLIST (%heading;)
451 %attrs; -- %coreattrs, %i18n, %events --
454 <!--=================== Preformatted Text ================================-->
456 <!-- excludes markup for images and changes in font size -->
457 <!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
459 <!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text -->
461 %attrs; -- %coreattrs, %i18n, %events --
464 <!--===================== Inline Quotes ==================================-->
466 <!ELEMENT Q - - (%inline;)* -- short inline quotation -->
468 %attrs; -- %coreattrs, %i18n, %events --
469 cite %URI; #IMPLIED -- URI for source document or msg --
472 <!--=================== Block-like Quotes ================================-->
474 <!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- long quotation -->
476 %attrs; -- %coreattrs, %i18n, %events --
477 cite %URI; #IMPLIED -- URI for source document or msg --
480 <!--=================== Inserted/Deleted Text ============================-->
483 <!-- INS/DEL are handled by inclusion on BODY -->
484 <!ELEMENT (INS|DEL) - - (%flow;)* -- inserted text, deleted text -->
486 %attrs; -- %coreattrs, %i18n, %events --
487 cite %URI; #IMPLIED -- info on reason for change --
488 datetime %Datetime; #IMPLIED -- date and time of change --
491 <!--=================== Lists ============================================-->
493 <!-- definition lists - DT for term, DD for its definition -->
495 <!ELEMENT DL - - (DT|DD)+ -- definition list -->
497 %attrs; -- %coreattrs, %i18n, %events --
500 <!ELEMENT DT - O (%inline;)* -- definition term -->
501 <!ELEMENT DD - O (%flow;)* -- definition description -->
503 %attrs; -- %coreattrs, %i18n, %events --
507 <!ELEMENT OL - - (LI)+ -- ordered list -->
509 %attrs; -- %coreattrs, %i18n, %events --
512 <!-- Unordered Lists (UL) bullet styles -->
513 <!ELEMENT UL - - (LI)+ -- unordered list -->
515 %attrs; -- %coreattrs, %i18n, %events --
520 <!ELEMENT LI - O (%flow;)* -- list item -->
522 %attrs; -- %coreattrs, %i18n, %events --
525 <!--================ Forms ===============================================-->
526 <!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
528 %attrs; -- %coreattrs, %i18n, %events --
529 action %URI; #REQUIRED -- server-side form handler --
530 method (GET|POST) GET -- HTTP method used to submit the form--
531 enctype %ContentType; "application/x-www-form-urlencoded"
532 onsubmit %Script; #IMPLIED -- the form was submitted --
533 onreset %Script; #IMPLIED -- the form was reset --
534 accept-charset %Charsets; #IMPLIED -- list of supported charsets --
537 <!-- Each label must not contain more than ONE field -->
538 <!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
540 %attrs; -- %coreattrs, %i18n, %events --
541 for IDREF #IMPLIED -- matches field ID value --
542 accesskey %Character; #IMPLIED -- accessibility key character --
543 onfocus %Script; #IMPLIED -- the element got the focus --
544 onblur %Script; #IMPLIED -- the element lost the focus --
548 "(TEXT | PASSWORD | CHECKBOX |
549 RADIO | SUBMIT | RESET |
550 FILE | HIDDEN | IMAGE | BUTTON)"
553 <!-- attribute name required for all but submit & reset -->
554 <!ELEMENT INPUT - O EMPTY -- form control -->
556 %attrs; -- %coreattrs, %i18n, %events --
557 type %InputType; TEXT -- what kind of widget is needed --
558 name CDATA #IMPLIED -- submit as part of form --
559 value CDATA #IMPLIED -- required for radio and checkboxes --
560 checked (checked) #IMPLIED -- for radio buttons and check boxes --
561 disabled (disabled) #IMPLIED -- unavailable in this context --
562 readonly (readonly) #IMPLIED -- for text and passwd --
563 size CDATA #IMPLIED -- specific to each type of field --
564 maxlength NUMBER #IMPLIED -- max chars for text fields --
565 src %URI; #IMPLIED -- for fields with images --
566 alt CDATA #IMPLIED -- short description --
567 usemap %URI; #IMPLIED -- use client-side image map --
568 tabindex NUMBER #IMPLIED -- position in tabbing order --
569 accesskey %Character; #IMPLIED -- accessibility key character --
570 onfocus %Script; #IMPLIED -- the element got the focus --
571 onblur %Script; #IMPLIED -- the element lost the focus --
572 onselect %Script; #IMPLIED -- some text was selected --
573 onchange %Script; #IMPLIED -- the element value was changed --
574 accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
575 %reserved; -- reserved for possible future use --
578 <!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector -->
580 %attrs; -- %coreattrs, %i18n, %events --
581 name CDATA #IMPLIED -- field name --
582 size NUMBER #IMPLIED -- rows visible --
583 multiple (multiple) #IMPLIED -- default is single selection --
584 disabled (disabled) #IMPLIED -- unavailable in this context --
585 tabindex NUMBER #IMPLIED -- position in tabbing order --
586 onfocus %Script; #IMPLIED -- the element got the focus --
587 onblur %Script; #IMPLIED -- the element lost the focus --
588 onchange %Script; #IMPLIED -- the element value was changed --
589 %reserved; -- reserved for possible future use --
592 <!ELEMENT OPTGROUP - - (OPTION)+ -- option group -->
594 %attrs; -- %coreattrs, %i18n, %events --
595 disabled (disabled) #IMPLIED -- unavailable in this context --
596 label %Text; #REQUIRED -- for use in hierarchical menus --
599 <!ELEMENT OPTION - O (#PCDATA) -- selectable choice -->
601 %attrs; -- %coreattrs, %i18n, %events --
602 selected (selected) #IMPLIED
603 disabled (disabled) #IMPLIED -- unavailable in this context --
604 label %Text; #IMPLIED -- for use in hierarchical menus --
605 value CDATA #IMPLIED -- defaults to element content --
608 <!ELEMENT TEXTAREA - - (#PCDATA) -- multi-line text field -->
610 %attrs; -- %coreattrs, %i18n, %events --
612 rows NUMBER #REQUIRED
613 cols NUMBER #REQUIRED
614 disabled (disabled) #IMPLIED -- unavailable in this context --
615 readonly (readonly) #IMPLIED
616 tabindex NUMBER #IMPLIED -- position in tabbing order --
617 accesskey %Character; #IMPLIED -- accessibility key character --
618 onfocus %Script; #IMPLIED -- the element got the focus --
619 onblur %Script; #IMPLIED -- the element lost the focus --
620 onselect %Script; #IMPLIED -- some text was selected --
621 onchange %Script; #IMPLIED -- the element value was changed --
622 %reserved; -- reserved for possible future use --
626 #PCDATA is to solve the mixed content problem,
627 per specification only whitespace is allowed there!
629 <!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
631 %attrs; -- %coreattrs, %i18n, %events --
634 <!ELEMENT LEGEND - - (%inline;)* -- fieldset legend -->
635 <!ENTITY % LAlign "(top|bottom|left|right)">
638 %attrs; -- %coreattrs, %i18n, %events --
639 accesskey %Character; #IMPLIED -- accessibility key character --
643 (%flow;)* -(A|%formctrl;|FORM|FIELDSET)
646 %attrs; -- %coreattrs, %i18n, %events --
648 value CDATA #IMPLIED -- sent to server when submitted --
649 type (button|submit|reset) submit -- for use as form button --
650 disabled (disabled) #IMPLIED -- unavailable in this context --
651 tabindex NUMBER #IMPLIED -- position in tabbing order --
652 accesskey %Character; #IMPLIED -- accessibility key character --
653 onfocus %Script; #IMPLIED -- the element got the focus --
654 onblur %Script; #IMPLIED -- the element lost the focus --
655 %reserved; -- reserved for possible future use --
658 <!--======================= Tables =======================================-->
660 <!-- IETF HTML table standard, see [RFC1942] -->
663 The BORDER attribute sets the thickness of the frame around the
664 table. The default units are screen pixels.
666 The FRAME attribute specifies which parts of the frame around
667 the table should be rendered. The values are not the same as
668 CALS to avoid a name clash with the VALIGN attribute.
670 The value "border" is included for backwards compatibility with
671 <TABLE BORDER> which yields frame=border and border=implied
672 For <TABLE BORDER=1> you get border=1 and frame=implied. In this
673 case, it is appropriate to treat this as frame=border for backwards
674 compatibility with deployed browsers.
676 <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
679 The RULES attribute defines which rules to draw between cells:
681 If RULES is absent then assume:
682 "none" if BORDER is absent or BORDER=0 otherwise "all"
685 <!ENTITY % TRules "(none | groups | rows | cols | all)">
687 <!-- horizontal placement of table relative to document -->
688 <!ENTITY % TAlign "(left|center|right)">
690 <!-- horizontal alignment attributes for cell contents -->
691 <!ENTITY % cellhalign
692 "align (left|center|right|justify|char) #IMPLIED
693 char %Character; #IMPLIED -- alignment char, e.g. char=':' --
694 charoff %Length; #IMPLIED -- offset for alignment char --"
697 <!-- vertical alignment attributes for cell contents -->
698 <!ENTITY % cellvalign
699 "valign (top|middle|bottom|baseline) #IMPLIED"
703 (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
704 <!ELEMENT CAPTION - - (%inline;)* -- table caption -->
705 <!ELEMENT THEAD - O (TR)+ -- table header -->
706 <!ELEMENT TFOOT - O (TR)+ -- table footer -->
707 <!ELEMENT TBODY O O (TR)+ -- table body -->
708 <!ELEMENT COLGROUP - O (col)* -- table column group -->
709 <!ELEMENT COL - O EMPTY -- table column -->
710 <!ELEMENT TR - O (TH|TD)+ -- table row -->
711 <!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell-->
713 <!ATTLIST TABLE -- table element --
714 %attrs; -- %coreattrs, %i18n, %events --
715 summary %Text; #IMPLIED -- purpose/structure for speech output--
716 width %Length; #IMPLIED -- table width --
717 border %Pixels; #IMPLIED -- controls frame width around table --
718 frame %TFrame; #IMPLIED -- which parts of frame to render --
719 rules %TRules; #IMPLIED -- rulings between rows and cols --
720 cellspacing %Length; #IMPLIED -- spacing between cells --
721 cellpadding %Length; #IMPLIED -- spacing within cells --
722 %reserved; -- reserved for possible future use --
723 datapagesize CDATA #IMPLIED -- reserved for possible future use --
726 <!ENTITY % CAlign "(top|bottom|left|right)">
729 %attrs; -- %coreattrs, %i18n, %events --
733 COLGROUP groups a set of COL elements. It allows you to group
734 several semantically related columns together.
737 %attrs; -- %coreattrs, %i18n, %events --
738 span NUMBER 1 -- default number of columns in group --
739 width %MultiLength; #IMPLIED -- default width for enclosed COLs --
740 %cellhalign; -- horizontal alignment in cells --
741 %cellvalign; -- vertical alignment in cells --
745 COL elements define the alignment properties for cells in
748 The WIDTH attribute specifies the width of the columns, e.g.
750 width=64 width in screen pixels
751 width=0.5* relative width of 0.5
753 The SPAN attribute causes the attributes of one
754 COL element to apply to more than one column.
756 <!ATTLIST COL -- column groups and properties --
757 %attrs; -- %coreattrs, %i18n, %events --
758 span NUMBER 1 -- COL attributes affect N columns --
759 width %MultiLength; #IMPLIED -- column width specification --
760 %cellhalign; -- horizontal alignment in cells --
761 %cellvalign; -- vertical alignment in cells --
765 Use THEAD to duplicate headers when breaking table
766 across page boundaries, or for static headers when
767 TBODY sections are rendered in scrolling panel.
769 Use TFOOT to duplicate footers when breaking table
770 across page boundaries, or for static footers when
771 TBODY sections are rendered in scrolling panel.
773 Use multiple TBODY sections when rules are needed
774 between groups of table rows.
776 <!ATTLIST (THEAD|TBODY|TFOOT) -- table section --
777 %attrs; -- %coreattrs, %i18n, %events --
778 %cellhalign; -- horizontal alignment in cells --
779 %cellvalign; -- vertical alignment in cells --
782 <!ATTLIST TR -- table row --
783 %attrs; -- %coreattrs, %i18n, %events --
784 %cellhalign; -- horizontal alignment in cells --
785 %cellvalign; -- vertical alignment in cells --
789 <!-- Scope is simpler than axes attribute for common tables -->
790 <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
792 <!-- TH is for headers, TD for data, but for cells acting as both use TD -->
793 <!ATTLIST (TH|TD) -- header or data cell --
794 %attrs; -- %coreattrs, %i18n, %events --
795 abbr %Text; #IMPLIED -- abbreviation for header cell --
796 axis CDATA #IMPLIED -- names groups of related headers--
797 headers IDREFS #IMPLIED -- list of id's for header cells --
798 scope %Scope; #IMPLIED -- scope covered by header cells --
799 rowspan NUMBER 1 -- number of rows spanned by cell --
800 colspan NUMBER 1 -- number of cols spanned by cell --
801 %cellhalign; -- horizontal alignment in cells --
802 %cellvalign; -- vertical alignment in cells --
806 <!--================ Document Head =======================================-->
807 <!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
808 <!ENTITY % head.content "TITLE & BASE?">
810 <!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
812 %i18n; -- lang, dir --
813 profile %URI; #IMPLIED -- named dictionary of meta info --
816 <!-- The TITLE element is not considered part of the flow of text.
817 It should be displayed, for example as the page header or
818 window title. Exactly one title is required per document.
820 <!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
821 <!ATTLIST TITLE %i18n>
824 <!ELEMENT BASE - O EMPTY -- document base URI -->
826 href %URI; #REQUIRED -- URI that acts as base URI --
829 <!ELEMENT META - O EMPTY -- generic metainformation -->
831 %i18n; -- lang, dir, for use with content --
832 http-equiv NAME #IMPLIED -- HTTP response header name --
833 name NAME #IMPLIED -- metainformation name --
834 content CDATA #REQUIRED -- associated information --
835 scheme CDATA #IMPLIED -- select form of content --
838 <!ELEMENT STYLE - - %StyleSheet -- style info -->
840 %i18n; -- lang, dir, for use with title --
841 type %ContentType; #REQUIRED -- content type of style language --
842 media %MediaDesc; #IMPLIED -- designed for use with these media --
843 title %Text; #IMPLIED -- advisory title --
846 <!ELEMENT SCRIPT - - %Script; -- script statements -->
848 charset %Charset; #IMPLIED -- char encoding of linked resource --
849 type %ContentType; #REQUIRED -- content type of script language --
850 language CDATA #IMPLIED -- predefined script language name --
851 src %URI; #IMPLIED -- URI for an external script --
852 defer (defer) #IMPLIED -- UA may defer execution of script --
853 event CDATA #IMPLIED -- reserved for possible future use --
854 for %URI; #IMPLIED -- reserved for possible future use --
857 <!ELEMENT NOSCRIPT - - (%block;)+
858 -- alternate content container for non script-based rendering -->
860 %attrs; -- %coreattrs, %i18n, %events --
863 <!--================ Document Structure ==================================-->
864 <!ENTITY % html.content "HEAD, BODY">
866 <!ELEMENT HTML O O (%html.content;) -- document root element -->
868 %i18n; -- lang, dir --