Extensible HTML version 1.0 Strict DTD This is the same as HTML 4 Strict except for changes due to the differences between XML and SGML. Namespace = http://www.w3.org/1999/xhtml For further information, see: http://www.w3.org/TR/xhtml1 Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" $Revision: 1.1 $ $Date: 2002/08/01 13:56:03 $ Character mnemonic entities Imported Names Generic Attributes Text Elements Block level elements Content models for exclusions Document Structure Document Head Document Body Paragraphs Headings Lists Address Horizontal Rule Preformatted Text Block-like Quotes Inserted/Deleted Text The Anchor Element Inline Elements Object Images Client-side image maps Forms Tables topCharacter mnemonic entities \u003c!ENTITY% HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "xhtml-lat1.ent"\u003e %HTMLlat1; \u003c!ENTITY% HTMLsymbol PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" "xhtml-symbol.ent"\u003e %HTMLsymbol; \u003c!ENTITY% HTMLspecial PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "xhtml-special.ent"\u003e %HTMLspecial; topImported Names \u003c!ENTITY% ContentType "CDATA"\u003e media type, as per [RFC2045] \u003c!ENTITY% ContentTypes "CDATA"\u003e comma-separated list of media types, as per [RFC2045] \u003c!ENTITY% Charset "CDATA"\u003e a character encoding, as per [RFC2045] \u003c!ENTITY% Charsets "CDATA"\u003e a space separated list of character encodings, as per [RFC2045] \u003c!ENTITY% LanguageCode "NMTOKEN"\u003e a language code, as per [RFC3066] \u003c!ENTITY% Character "CDATA"\u003e a single character, as per section 2.2 of [XML] \u003c!ENTITY% Number "CDATA"\u003e one or more digits \u003c!ENTITY% LinkTypes "CDATA"\u003e space-separated list of link types \u003c!ENTITY% MediaDesc "CDATA"\u003e single or comma-separated list of media descriptors \u003c!ENTITY% URI "CDATA"\u003e a Uniform Resource Identifier, see [RFC2396] \u003c!ENTITY% UriList "CDATA"\u003e a space separated list of Uniform Resource Identifiers \u003c!ENTITY% Datetime "CDATA"\u003e date and time information. ISO date format \u003c!ENTITY% Script "CDATA"\u003e script expression \u003c!ENTITY% StyleSheet "CDATA"\u003e style sheet data \u003c!ENTITY% Text "CDATA"\u003e used for titles etc. \u003c!ENTITY% Length "CDATA"\u003e nn for pixels or nn% for percentage length \u003c!ENTITY% MultiLength "CDATA"\u003e pixel, percentage, or relative \u003c!ENTITY% Pixels "CDATA"\u003e integer representing length in pixels these are used for image maps \u003c!ENTITY% Shape "(rect|circle|poly|default)" \u003e \u003c!ENTITY% Coords "CDATA"\u003e comma separated list of lengths topGeneric Attributes core attributes common to most elements iddocument-wide unique id classspace separated list of classes styleassociated style info titleadvisory title/amplification \u003c!ENTITY% coreattrs "idID#IMPLIED classCDATA#IMPLIED style%StyleSheet;#IMPLIED title%Text;#IMPLIED" \u003e internationalization attributes langlanguage code (backwards compatible) xml:langlanguage code (as per XML 1.0 spec) dirdirection for weak/neutral text \u003c!ENTITY% i18n "lang%LanguageCode; #IMPLIED xml:lang%LanguageCode; #IMPLIED dir(ltr|rtl)#IMPLIED" \u003e attributes for common UI events onclicka pointer button was clicked ondblclicka pointer button was double clicked onmousedowna pointer button was pressed down onmouseupa pointer button was released onmousemovea pointer was moved onto the element onmouseouta pointer was moved away from the element onkeypressa key was pressed and released onkeydowna key was pressed down onkeyupa key was released \u003c!ENTITY% events "onclick%Script;#IMPLIED ondblclick%Script;#IMPLIED onmousedown%Script;#IMPLIED onmouseup%Script;#IMPLIED onmouseover%Script;#IMPLIED onmousemove%Script;#IMPLIED onmouseout%Script;#IMPLIED onkeypress%Script;#IMPLIED onkeydown%Script;#IMPLIED onkeyup%Script;#IMPLIED" \u003e attributes for elements that can get the focus accesskeyaccessibility key character tabindexposition in tabbing order onfocusthe element got the focus onblurthe element lost the focus \u003c!ENTITY% focus "accesskey%Character;#IMPLIED tabindex%Number;#IMPLIED onfocus%Script;#IMPLIED onblur%Script;#IMPLIED" \u003e \u003c!ENTITY% attrs "%coreattrs; %i18n; %events;"\u003e topText Elements \u003c!ENTITY% special.pre "br | span | bdo | map"\u003e \u003c!ENTITY% special "%special.pre; | object | img "\u003e \u003c!ENTITY% fontstyle "tt | i | b | big | small "\u003e \u003c!ENTITY% phrase "em | strong | dfn | code | q | samp | kbd | var | cite | abbr | acronym | sub | sup "\u003e \u003c!ENTITY% inline.forms "input | select | textarea | label | button"\u003e these can occur at block or inline level \u003c!ENTITY% misc.inline "ins | del | script"\u003e these can only occur at block level \u003c!ENTITY% misc "noscript | %misc.inline;"\u003e \u003c!ENTITY% inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"\u003e %Inline; covers inline or "text-level" elements \u003c!ENTITY% Inline "(#PCDATA | %inline; | %misc.inline;)*"\u003e topBlock level elements \u003c!ENTITY% heading "h1|h2|h3|h4|h5|h6"\u003e \u003c!ENTITY% lists "ul | ol | dl"\u003e \u003c!ENTITY% blocktext "pre | hr | blockquote | address"\u003e \u003c!ENTITY% block "p | %heading; | div | %lists; | %blocktext; | fieldset | table"\u003e \u003c!ENTITY% Block "(%block; | form | %misc;)*"\u003e %Flow; mixes block and inline and is used for list items etc. \u003c!ENTITY% Flow "(#PCDATA | %block; | form | %inline; | %misc;)*"\u003e topContent models for exclusions a elements use %Inline; excluding a \u003c!ENTITY% a.content "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"\u003e pre uses %Inline excluding big, small, sup or sup \u003c!ENTITY% pre.content "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline; | %inline.forms;)*"\u003e form uses %Block; excluding form \u003c!ENTITY% form.content "(%block; | %misc;)*"\u003e button uses %Flow; but excludes a, form and form controls \u003c!ENTITY% button.content "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | table | %special; | %fontstyle; | %phrase; | %misc;)*"\u003e topDocument Structure the namespace URI designates the document profile \u003c!ELEMENThtml (head, body)\u003e \u003c!ATTLISThtml %i18n; idID#IMPLIED xmlns%URI;#FIXED 'http://www.w3.org/1999/xhtml' \u003e topDocument Head \u003c!ENTITY% head.misc "(script|style|meta|link|object)*"\u003e content model is %head.misc; combined with a single title and an optional base element in any order \u003c!ELEMENThead ( %head.misc;, ( (title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;)) ) ) \u003e \u003c!ATTLISThead %i18n; idID#IMPLIED profile%URI;#IMPLIED \u003e The title element is not considered part of the flow of text. It should be displayed, for example as the page header or window title. Exactly one title is required per document. \u003c!ELEMENTtitle (#PCDATA)\u003e \u003c!ATTLISTtitle %i18n; id ID #IMPLIED \u003e document base URI \u003c!ELEMENTbase EMPTY\u003e \u003c!ATTLISTbase href%URI;#REQUIRED idID#IMPLIED \u003e generic metainformation \u003c!ELEMENTmeta EMPTY\u003e \u003c!ATTLISTmeta %i18n; idID#IMPLIED http-equivCDATA#IMPLIED nameCDATA#IMPLIED contentCDATA#REQUIRED schemeCDATA#IMPLIED \u003e Relationship values can be used in principle: a) for document specific toolbars/menus when used with the link element in document head e.g. start, contents, previous, next, index, end, help b) to link to a separate style sheet (rel="stylesheet") c) to make a link to a script (rel="script") d) by stylesheets to control how collections of html nodes are rendered into printed documents e) to make a link to a printable version of this document e.g. a PostScript or PDF version (rel="alternate" media="print") \u003c!ELEMENTlink EMPTY\u003e \u003c!ATTLISTlink %attrs; charset%Charset;#IMPLIED href%URI;#IMPLIED hreflang%LanguageCode;#IMPLIED type%ContentType;#IMPLIED rel%LinkTypes;#IMPLIED rev%LinkTypes;#IMPLIED media%MediaDesc;#IMPLIED \u003e style info, which may include CDATA sections \u003c!ELEMENTstyle (#PCDATA)\u003e \u003c!ATTLISTstyle %i18n; idID#IMPLIED type%ContentType;#REQUIRED media%MediaDesc;#IMPLIED title%Text;#IMPLIED xml:space(preserve)#FIXED 'preserve' \u003e script statements, which may include CDATA sections \u003c!ELEMENTscript (#PCDATA)\u003e \u003c!ATTLISTscript idID#IMPLIED charset%Charset;#IMPLIED type%ContentType;#REQUIRED src%URI;#IMPLIED defer(defer)#IMPLIED xml:space(preserve)#FIXED 'preserve' \u003e alternate content container for non script-based rendering \u003c!ELEMENTnoscript %Block;\u003e \u003c!ATTLISTnoscript %attrs; \u003e topDocument Body \u003c!ELEMENTbody %Block;\u003e \u003c!ATTLISTbody %attrs; onload%Script;#IMPLIED onunload%Script;#IMPLIED \u003e \u003c!ELEMENTdiv %Flow;\u003e generic language/style container \u003c!ATTLISTdiv %attrs; \u003e topParagraphs \u003c!ELEMENTp %Inline;\u003e \u003c!ATTLISTp %attrs; \u003e topHeadings There are six levels of headings from h1 (the most important) to h6 (the least important). \u003c!ELEMENTh1 %Inline;\u003e \u003c!ATTLISTh1 %attrs; \u003e \u003c!ELEMENTh2 %Inline;\u003e \u003c!ATTLISTh2 %attrs; \u003e \u003c!ELEMENTh3 %Inline;\u003e \u003c!ATTLISTh3 %attrs; \u003e \u003c!ELEMENTh4 %Inline;\u003e \u003c!ATTLISTh4 %attrs; \u003e \u003c!ELEMENTh5 %Inline;\u003e \u003c!ATTLISTh5 %attrs; \u003e \u003c!ELEMENTh6 %Inline;\u003e \u003c!ATTLISTh6 %attrs; \u003e topLists Unordered list \u003c!ELEMENTul (li)+\u003e \u003c!ATTLISTul %attrs; \u003e Ordered (numbered) list \u003c!ELEMENTol (li)+\u003e \u003c!ATTLISTol %attrs; \u003e list item \u003c!ELEMENTli %Flow;\u003e \u003c!ATTLISTli %attrs; \u003e definition lists - dt for term, dd for its definition \u003c!ELEMENTdl (dt|dd)+\u003e \u003c!ATTLISTdl %attrs; \u003e \u003c!ELEMENTdt %Inline;\u003e \u003c!ATTLISTdt %attrs; \u003e \u003c!ELEMENTdd %Flow;\u003e \u003c!ATTLISTdd %attrs; \u003e topAddress information on author \u003c!ELEMENTaddress %Inline;\u003e \u003c!ATTLISTaddress %attrs; \u003e topHorizontal Rule \u003c!ELEMENThr EMPTY\u003e \u003c!ATTLISThr %attrs; \u003e topPreformatted Text content is %Inline; excluding "img|object|big|small|sub|sup" \u003c!ELEMENTpre %pre.content;\u003e \u003c!ATTLISTpre %attrs; xml:space (preserve) #FIXED 'preserve' \u003e topBlock-like Quotes \u003c!ELEMENTblockquote %Block;\u003e \u003c!ATTLISTblockquote %attrs; cite %URI; #IMPLIED \u003e topInserted/Deleted Text ins/del are allowed in block and inline content, but its inappropriate to include block content within an ins element occurring in inline content. \u003c!ELEMENTins %Flow;\u003e \u003c!ATTLISTins %attrs; cite%URI;#IMPLIED datetime%Datetime;#IMPLIED \u003e \u003c!ELEMENTdel %Flow;\u003e \u003c!ATTLISTdel %attrs; cite%URI;#IMPLIED datetime%Datetime;#IMPLIED \u003e topThe Anchor Element content is %Inline; except that anchors shouldn't be nested \u003c!ELEMENTa %a.content;\u003e \u003c!ATTLISTa %attrs; %focus; charset%Charset;#IMPLIED type%ContentType;#IMPLIED nameNMTOKEN#IMPLIED href%URI;#IMPLIED hreflang%LanguageCode;#IMPLIED rel%LinkTypes;#IMPLIED rev%LinkTypes;#IMPLIED shape%Shape;"rect" coords%Coords;#IMPLIED \u003e topInline Elements \u003c!ELEMENTspan %Inline;\u003e generic language/style container \u003c!ATTLISTspan %attrs; \u003e \u003c!ELEMENTbdo %Inline;\u003e I18N BiDi over-ride \u003c!ATTLISTbdo %coreattrs; %events; lang%LanguageCode;#IMPLIED xml:lang%LanguageCode;#IMPLIED dir(ltr|rtl)#REQUIRED \u003e \u003c!ELEMENTbr EMPTY\u003e forced line break \u003c!ATTLISTbr %coreattrs; \u003e \u003c!ELEMENTem %Inline;\u003e emphasis \u003c!ATTLISTem %attrs;\u003e \u003c!ELEMENTstrong %Inline;\u003e strong emphasis \u003c!ATTLISTstrong %attrs;\u003e \u003c!ELEMENTdfn %Inline;\u003e definitional \u003c!ATTLISTdfn %attrs;\u003e \u003c!ELEMENTcode %Inline;\u003e program code \u003c!ATTLISTcode %attrs;\u003e \u003c!ELEMENTsamp %Inline;\u003e sample \u003c!ATTLISTsamp %attrs;\u003e \u003c!ELEMENTkbd %Inline;\u003e something user would type \u003c!ATTLISTkbd %attrs;\u003e \u003c!ELEMENTvar %Inline;\u003e variable \u003c!ATTLISTvar %attrs;\u003e \u003c!ELEMENTcite %Inline;\u003e citation \u003c!ATTLISTcite %attrs;\u003e \u003c!ELEMENTabbr %Inline;\u003e abbreviation \u003c!ATTLISTabbr %attrs;\u003e \u003c!ELEMENTacronym %Inline;\u003e acronym \u003c!ATTLISTacronym %attrs;\u003e \u003c!ELEMENTq %Inline;\u003e inlined quote \u003c!ATTLISTq %attrs; cite %URI; #IMPLIED \u003e \u003c!ELEMENTsub %Inline;\u003e subscript \u003c!ATTLISTsub %attrs;\u003e \u003c!ELEMENTsup %Inline;\u003e superscript \u003c!ATTLISTsup %attrs;\u003e \u003c!ELEMENTtt %Inline;\u003e fixed pitch font \u003c!ATTLISTtt %attrs;\u003e \u003c!ELEMENTi %Inline;\u003e italic font \u003c!ATTLISTi %attrs;\u003e \u003c!ELEMENTb %Inline;\u003e bold font \u003c!ATTLISTb %attrs;\u003e \u003c!ELEMENTbig %Inline;\u003e bigger font \u003c!ATTLISTbig %attrs;\u003e \u003c!ELEMENTsmall %Inline;\u003e smaller font \u003c!ATTLISTsmall %attrs;\u003e topObject object is used to embed objects as part of HTML pages. param elements should precede other content. Parameters can also be expressed as attribute/value pairs on the object element itself when brevity is desired. \u003c!ELEMENTobject (#PCDATA | param | %block; | form | %inline; | %misc;)*\u003e \u003c!ATTLISTobject %attrs; declare(declare)#IMPLIED classid%URI;#IMPLIED codebase%URI;#IMPLIED data%URI;#IMPLIED type%ContentType;#IMPLIED codetype%ContentType;#IMPLIED archive%UriList;#IMPLIED standby%Text;#IMPLIED height%Length;#IMPLIED width%Length;#IMPLIED usemap%URI;#IMPLIED nameNMTOKEN#IMPLIED tabindex%Number;#IMPLIED \u003e param is used to supply a named property value. In XML it would seem natural to follow RDF and support an abbreviated syntax where the param elements are replaced by attribute value pairs on the object start tag. \u003c!ELEMENTparam EMPTY\u003e \u003c!ATTLISTparam idID#IMPLIED nameCDATA#IMPLIED valueCDATA#IMPLIED valuetype(data|ref|object)"data" type%ContentType;#IMPLIED \u003e topImages To avoid accessibility problems for people who aren't able to see the image, you should provide a text description using the alt and longdesc attributes. In addition, avoid the use of server-side image maps. Note that in this DTD there is no name attribute. That is only available in the transitional and frameset DTD. \u003c!ELEMENTimg EMPTY\u003e \u003c!ATTLISTimg %attrs; src%URI;#REQUIRED alt%Text;#REQUIRED longdesc%URI;#IMPLIED height%Length;#IMPLIED width%Length;#IMPLIED usemap%URI;#IMPLIED ismap(ismap)#IMPLIED \u003e usemap points to a map element which may be in this document or an external document, although the latter is not widely supported topClient-side image maps These can be placed in the same document or grouped in a separate document although this isn't yet widely supported \u003c!ELEMENTmap ((%block; | form | %misc;)+ | area+)\u003e \u003c!ATTLISTmap %i18n; %events; idID#REQUIRED classCDATA#IMPLIED style%StyleSheet;#IMPLIED title%Text;#IMPLIED nameNMTOKEN#IMPLIED \u003e \u003c!ELEMENTarea EMPTY\u003e \u003c!ATTLISTarea %attrs; %focus; shape%Shape;"rect" coords%Coords;#IMPLIED href%URI;#IMPLIED nohref(nohref)#IMPLIED alt%Text;#REQUIRED \u003e topForms \u003c!ELEMENTform %form.content;\u003e forms shouldn't be nested \u003c!ATTLISTform %attrs; action%URI;#REQUIRED method(get|post)"get" enctype%ContentType;"application/x-www-form-urlencoded" onsubmit%Script;#IMPLIED onreset%Script;#IMPLIED accept%ContentTypes;#IMPLIED accept-charset%Charsets;#IMPLIED \u003e Each label must not contain more than ONE field Label elements shouldn't be nested. \u003c!ELEMENTlabel %Inline;\u003e \u003c!ATTLISTlabel %attrs; forIDREF#IMPLIED accesskey%Character;#IMPLIED onfocus%Script;#IMPLIED onblur%Script;#IMPLIED \u003e \u003c!ENTITY% InputType "(text | password | checkbox | radio | submit | reset | file | hidden | image | button)" \u003e the name attribute is required for all but submit & reset \u003c!ELEMENTinput EMPTY\u003e form control \u003c!ATTLISTinput %attrs; %focus; type%InputType;"text" nameCDATA#IMPLIED valueCDATA#IMPLIED checked(checked)#IMPLIED disabled(disabled)#IMPLIED readonly(readonly)#IMPLIED sizeCDATA#IMPLIED maxlength%Number;#IMPLIED src%URI;#IMPLIED altCDATA#IMPLIED usemap%URI;#IMPLIED onselect%Script;#IMPLIED onchange%Script;#IMPLIED accept%ContentTypes;#IMPLIED \u003e \u003c!ELEMENTselect (optgroup|option)+\u003e option selector \u003c!ATTLISTselect %attrs; nameCDATA#IMPLIED size%Number;#IMPLIED multiple(multiple)#IMPLIED disabled(disabled)#IMPLIED tabindex%Number;#IMPLIED onfocus%Script;#IMPLIED onblur%Script;#IMPLIED onchange%Script;#IMPLIED \u003e \u003c!ELEMENToptgroup (option)+\u003e option group \u003c!ATTLISToptgroup %attrs; disabled(disabled)#IMPLIED label%Text;#REQUIRED \u003e \u003c!ELEMENToption (#PCDATA)\u003e selectable choice \u003c!ATTLISToption %attrs; selected(selected)#IMPLIED disabled(disabled)#IMPLIED label%Text;#IMPLIED valueCDATA#IMPLIED \u003e \u003c!ELEMENTtextarea (#PCDATA)\u003e multi-line text field \u003c!ATTLISTtextarea %attrs; %focus; nameCDATA#IMPLIED rows%Number;#REQUIRED cols%Number;#REQUIRED disabled(disabled)#IMPLIED readonly(readonly)#IMPLIED onselect%Script;#IMPLIED onchange%Script;#IMPLIED \u003e The fieldset element is used to group form fields. Only one legend element should occur in the content and if present should only be preceded by whitespace. \u003c!ELEMENTfieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*\u003e \u003c!ATTLISTfieldset %attrs; \u003e \u003c!ELEMENTlegend %Inline;\u003e fieldset label \u003c!ATTLISTlegend %attrs; accesskey %Character; #IMPLIED \u003e Content is %Flow; excluding a, form and form controls \u003c!ELEMENTbutton %button.content;\u003e push button \u003c!ATTLISTbutton %attrs; %focus; nameCDATA#IMPLIED valueCDATA#IMPLIED type(button|submit|reset)"submit" disabled(disabled)#IMPLIED \u003e topTables Derived from IETF HTML table standard, see [RFC1942] The border attribute sets the thickness of the frame around the table. The default units are screen pixels. The frame attribute specifies which parts of the frame around the table should be rendered. The values are not the same as CALS to avoid a name clash with the valign attribute. \u003c!ENTITY% TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"\u003e The rules attribute defines which rules to draw between cells: If rules is absent then assume: "none" if border is absent or border="0" otherwise "all" \u003c!ENTITY% TRules "(none | groups | rows | cols | all)"\u003e horizontal alignment attributes for cell contents charalignment char, e.g. char=':' charoffoffset for alignment char \u003c!ENTITY% cellhalign "align (left|center|right|justify|char) #IMPLIED char %Character; #IMPLIED charoff %Length; #IMPLIED" \u003e vertical alignment attributes for cell contents \u003c!ENTITY% cellvalign "valign (top|middle|bottom|baseline) #IMPLIED" \u003e \u003c!ELEMENTtable (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))\u003e \u003c!ELEMENTcaption %Inline;\u003e \u003c!ELEMENTthead (tr)+\u003e \u003c!ELEMENTtfoot (tr)+\u003e \u003c!ELEMENTtbody (tr)+\u003e \u003c!ELEMENTcolgroup (col)*\u003e \u003c!ELEMENTcol EMPTY\u003e \u003c!ELEMENTtr (th|td)+\u003e \u003c!ELEMENTth %Flow;\u003e \u003c!ELEMENTtd %Flow;\u003e \u003c!ATTLISTtable %attrs; summary%Text;#IMPLIED width%Length;#IMPLIED border%Pixels;#IMPLIED frame%TFrame;#IMPLIED rules%TRules;#IMPLIED cellspacing%Length;#IMPLIED cellpadding%Length;#IMPLIED \u003e \u003c!ATTLISTcaption %attrs; \u003e colgroup groups a set of col elements. It allows you to group several semantically related columns together. \u003c!ATTLISTcolgroup %attrs; span%Number;"1" width%MultiLength;#IMPLIED %cellhalign; %cellvalign; \u003e col elements define the alignment properties for cells in one or more columns. The width attribute specifies the width of the columns, e.g. width=64 width in screen pixels width=0.5* relative width of 0.5 The span attribute causes the attributes of one col element to apply to more than one column. \u003c!ATTLISTcol %attrs; span%Number;"1" width%MultiLength;#IMPLIED %cellhalign; %cellvalign; \u003e Use thead to duplicate headers when breaking table across page boundaries, or for static headers when tbody sections are rendered in scrolling panel. Use tfoot to duplicate footers when breaking table across page boundaries, or for static footers when tbody sections are rendered in scrolling panel. Use multiple tbody sections when rules are needed between groups of table rows. \u003c!ATTLISTthead %attrs; %cellhalign; %cellvalign; \u003e \u003c!ATTLISTtfoot %attrs; %cellhalign; %cellvalign; \u003e \u003c!ATTLISTtbody %attrs; %cellhalign; %cellvalign; \u003e \u003c!ATTLISTtr %attrs; %cellhalign; %cellvalign; \u003e Scope is simpler than headers attribute for common tables \u003c!ENTITY% Scope "(row|col|rowgroup|colgroup)"\u003e th is for headers, td for data and for cells acting as both \u003c!ATTLISTth %attrs; abbr%Text;#IMPLIED axisCDATA#IMPLIED headersIDREFS#IMPLIED scope%Scope;#IMPLIED rowspan%Number;"1" colspan%Number;"1" %cellhalign; %cellvalign; \u003e \u003c!ATTLISTtd %attrs; abbr%Text;#IMPLIED axisCDATA#IMPLIED headersIDREFS#IMPLIED scope%Scope;#IMPLIED rowspan%Number;"1" colspan%Number;"1" %cellhalign; %cellvalign; \u003e