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