tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

xhtml1-transitional.dtd (32111B)


      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: 1.1 $
     20   $Date: 2007/02/24 01:51:16 $
     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  >