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