Admin/website/dtd/xhtml1-strict.dtd
changeset 20110 c2ffa1783319
parent 20109 47fef41c68fb
child 20111 ba1676dd3546
equal deleted inserted replaced
20109:47fef41c68fb 20110:c2ffa1783319
     1 <!--
       
     2    Extensible HTML version 1.0 Strict DTD
       
     3 
       
     4    This is the same as HTML 4 Strict 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 Strict//EN"
       
    17    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
       
    18 
       
    19    $Revision$
       
    20    $Date$
       
    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 % Length "CDATA">
       
    89     <!-- nn for pixels or nn% for percentage length -->
       
    90 
       
    91 <!ENTITY % MultiLength "CDATA">
       
    92     <!-- pixel, percentage, or relative -->
       
    93 
       
    94 <!ENTITY % Pixels "CDATA">
       
    95     <!-- integer representing length in pixels -->
       
    96 
       
    97 <!-- these are used for image maps -->
       
    98 
       
    99 <!ENTITY % Shape "(rect|circle|poly|default)">
       
   100 
       
   101 <!ENTITY % Coords "CDATA">
       
   102     <!-- comma separated list of lengths -->
       
   103 
       
   104 <!--=================== Generic Attributes ===============================-->
       
   105 
       
   106 <!-- core attributes common to most elements
       
   107   id       document-wide unique id
       
   108   class    space separated list of classes
       
   109   style    associated style info
       
   110   title    advisory title/amplification
       
   111 -->
       
   112 <!ENTITY % coreattrs
       
   113  "id          ID             #IMPLIED
       
   114   class       CDATA          #IMPLIED
       
   115   style       %StyleSheet;   #IMPLIED
       
   116   title       %Text;         #IMPLIED"
       
   117   >
       
   118 
       
   119 <!-- internationalization attributes
       
   120   lang        language code (backwards compatible)
       
   121   xml:lang    language code (as per XML 1.0 spec)
       
   122   dir         direction for weak/neutral text
       
   123 -->
       
   124 <!ENTITY % i18n
       
   125  "lang        %LanguageCode; #IMPLIED
       
   126   xml:lang    %LanguageCode; #IMPLIED
       
   127   dir         (ltr|rtl)      #IMPLIED"
       
   128   >
       
   129 
       
   130 <!-- attributes for common UI events
       
   131   onclick     a pointer button was clicked
       
   132   ondblclick  a pointer button was double clicked
       
   133   onmousedown a pointer button was pressed down
       
   134   onmouseup   a pointer button was released
       
   135   onmousemove a pointer was moved onto the element
       
   136   onmouseout  a pointer was moved away from the element
       
   137   onkeypress  a key was pressed and released
       
   138   onkeydown   a key was pressed down
       
   139   onkeyup     a key was released
       
   140 -->
       
   141 <!ENTITY % events
       
   142  "onclick     %Script;       #IMPLIED
       
   143   ondblclick  %Script;       #IMPLIED
       
   144   onmousedown %Script;       #IMPLIED
       
   145   onmouseup   %Script;       #IMPLIED
       
   146   onmouseover %Script;       #IMPLIED
       
   147   onmousemove %Script;       #IMPLIED
       
   148   onmouseout  %Script;       #IMPLIED
       
   149   onkeypress  %Script;       #IMPLIED
       
   150   onkeydown   %Script;       #IMPLIED
       
   151   onkeyup     %Script;       #IMPLIED"
       
   152   >
       
   153 
       
   154 <!-- attributes for elements that can get the focus
       
   155   accesskey   accessibility key character
       
   156   tabindex    position in tabbing order
       
   157   onfocus     the element got the focus
       
   158   onblur      the element lost the focus
       
   159 -->
       
   160 <!ENTITY % focus
       
   161  "accesskey   %Character;    #IMPLIED
       
   162   tabindex    %Number;       #IMPLIED
       
   163   onfocus     %Script;       #IMPLIED
       
   164   onblur      %Script;       #IMPLIED"
       
   165   >
       
   166 
       
   167 <!ENTITY % attrs "%coreattrs; %i18n; %events;">
       
   168 
       
   169 <!--=================== Text Elements ====================================-->
       
   170 
       
   171 <!ENTITY % special.pre
       
   172    "br | span | bdo | map">
       
   173 
       
   174 
       
   175 <!ENTITY % special
       
   176    "%special.pre; | object | img ">
       
   177 
       
   178 <!ENTITY % fontstyle "tt | i | b | big | small ">
       
   179 
       
   180 <!ENTITY % phrase "em | strong | dfn | code | q |
       
   181                    samp | kbd | var | cite | abbr | acronym | sub | sup ">
       
   182 
       
   183 <!ENTITY % inline.forms "input | select | textarea | label | button">
       
   184 
       
   185 <!-- these can occur at block or inline level -->
       
   186 <!ENTITY % misc.inline "ins | del | script">
       
   187 
       
   188 <!-- these can only occur at block level -->
       
   189 <!ENTITY % misc "noscript | %misc.inline;">
       
   190 
       
   191 <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
       
   192 
       
   193 <!-- %Inline; covers inline or "text-level" elements -->
       
   194 <!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
       
   195 
       
   196 <!--================== Block level elements ==============================-->
       
   197 
       
   198 <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
       
   199 <!ENTITY % lists "ul | ol | dl">
       
   200 <!ENTITY % blocktext "pre | hr | blockquote | address">
       
   201 
       
   202 <!ENTITY % block
       
   203      "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
       
   204 
       
   205 <!ENTITY % Block "(%block; | form | %misc;)*">
       
   206 
       
   207 <!-- %Flow; mixes block and inline and is used for list items etc. -->
       
   208 <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
       
   209 
       
   210 <!--================== Content models for exclusions =====================-->
       
   211 
       
   212 <!-- a elements use %Inline; excluding a -->
       
   213 
       
   214 <!ENTITY % a.content
       
   215    "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
       
   216 
       
   217 <!-- pre uses %Inline excluding big, small, sup or sup -->
       
   218 
       
   219 <!ENTITY % pre.content
       
   220    "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
       
   221       | %inline.forms;)*">
       
   222 
       
   223 <!-- form uses %Block; excluding form -->
       
   224 
       
   225 <!ENTITY % form.content "(%block; | %misc;)*">
       
   226 
       
   227 <!-- button uses %Flow; but excludes a, form and form controls -->
       
   228 
       
   229 <!ENTITY % button.content
       
   230    "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
       
   231     table | %special; | %fontstyle; | %phrase; | %misc;)*">
       
   232 
       
   233 <!--================ Document Structure ==================================-->
       
   234 
       
   235 <!-- the namespace URI designates the document profile -->
       
   236 
       
   237 <!ELEMENT html (head, body)>
       
   238 <!ATTLIST html
       
   239   %i18n;
       
   240   id          ID             #IMPLIED
       
   241   xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
       
   242   >
       
   243 
       
   244 <!--================ Document Head =======================================-->
       
   245 
       
   246 <!ENTITY % head.misc "(script|style|meta|link|object)*">
       
   247 
       
   248 <!-- content model is %head.misc; combined with a single
       
   249      title and an optional base element in any order -->
       
   250 
       
   251 <!ELEMENT head (%head.misc;,
       
   252      ((title, %head.misc;, (base, %head.misc;)?) |
       
   253       (base, %head.misc;, (title, %head.misc;))))>
       
   254 
       
   255 <!ATTLIST head
       
   256   %i18n;
       
   257   id          ID             #IMPLIED
       
   258   profile     %URI;          #IMPLIED
       
   259   >
       
   260 
       
   261 <!-- The title element is not considered part of the flow of text.
       
   262        It should be displayed, for example as the page header or
       
   263        window title. Exactly one title is required per document.
       
   264     -->
       
   265 <!ELEMENT title (#PCDATA)>
       
   266 <!ATTLIST title 
       
   267   %i18n;
       
   268   id          ID             #IMPLIED
       
   269   >
       
   270 
       
   271 <!-- document base URI -->
       
   272 
       
   273 <!ELEMENT base EMPTY>
       
   274 <!ATTLIST base
       
   275   href        %URI;          #REQUIRED
       
   276   id          ID             #IMPLIED
       
   277   >
       
   278 
       
   279 <!-- generic metainformation -->
       
   280 <!ELEMENT meta EMPTY>
       
   281 <!ATTLIST meta
       
   282   %i18n;
       
   283   id          ID             #IMPLIED
       
   284   http-equiv  CDATA          #IMPLIED
       
   285   name        CDATA          #IMPLIED
       
   286   content     CDATA          #REQUIRED
       
   287   scheme      CDATA          #IMPLIED
       
   288   >
       
   289 
       
   290 <!--
       
   291   Relationship values can be used in principle:
       
   292 
       
   293    a) for document specific toolbars/menus when used
       
   294       with the link element in document head e.g.
       
   295         start, contents, previous, next, index, end, help
       
   296    b) to link to a separate style sheet (rel="stylesheet")
       
   297    c) to make a link to a script (rel="script")
       
   298    d) by stylesheets to control how collections of
       
   299       html nodes are rendered into printed documents
       
   300    e) to make a link to a printable version of this document
       
   301       e.g. a PostScript or PDF version (rel="alternate" media="print")
       
   302 -->
       
   303 
       
   304 <!ELEMENT link EMPTY>
       
   305 <!ATTLIST link
       
   306   %attrs;
       
   307   charset     %Charset;      #IMPLIED
       
   308   href        %URI;          #IMPLIED
       
   309   hreflang    %LanguageCode; #IMPLIED
       
   310   type        %ContentType;  #IMPLIED
       
   311   rel         %LinkTypes;    #IMPLIED
       
   312   rev         %LinkTypes;    #IMPLIED
       
   313   media       %MediaDesc;    #IMPLIED
       
   314   >
       
   315 
       
   316 <!-- style info, which may include CDATA sections -->
       
   317 <!ELEMENT style (#PCDATA)>
       
   318 <!ATTLIST style
       
   319   %i18n;
       
   320   id          ID             #IMPLIED
       
   321   type        %ContentType;  #REQUIRED
       
   322   media       %MediaDesc;    #IMPLIED
       
   323   title       %Text;         #IMPLIED
       
   324   xml:space   (preserve)     #FIXED 'preserve'
       
   325   >
       
   326 
       
   327 <!-- script statements, which may include CDATA sections -->
       
   328 <!ELEMENT script (#PCDATA)>
       
   329 <!ATTLIST script
       
   330   id          ID             #IMPLIED
       
   331   charset     %Charset;      #IMPLIED
       
   332   type        %ContentType;  #REQUIRED
       
   333   src         %URI;          #IMPLIED
       
   334   defer       (defer)        #IMPLIED
       
   335   xml:space   (preserve)     #FIXED 'preserve'
       
   336   >
       
   337 
       
   338 <!-- alternate content container for non script-based rendering -->
       
   339 
       
   340 <!ELEMENT noscript %Block;>
       
   341 <!ATTLIST noscript
       
   342   %attrs;
       
   343   >
       
   344 
       
   345 <!--=================== Document Body ====================================-->
       
   346 
       
   347 <!ELEMENT body %Block;>
       
   348 <!ATTLIST body
       
   349   %attrs;
       
   350   onload          %Script;   #IMPLIED
       
   351   onunload        %Script;   #IMPLIED
       
   352   >
       
   353 
       
   354 <!ELEMENT div %Flow;>  <!-- generic language/style container -->
       
   355 <!ATTLIST div
       
   356   %attrs;
       
   357   >
       
   358 
       
   359 <!--=================== Paragraphs =======================================-->
       
   360 
       
   361 <!ELEMENT p %Inline;>
       
   362 <!ATTLIST p
       
   363   %attrs;
       
   364   >
       
   365 
       
   366 <!--=================== Headings =========================================-->
       
   367 
       
   368 <!--
       
   369   There are six levels of headings from h1 (the most important)
       
   370   to h6 (the least important).
       
   371 -->
       
   372 
       
   373 <!ELEMENT h1  %Inline;>
       
   374 <!ATTLIST h1
       
   375    %attrs;
       
   376    >
       
   377 
       
   378 <!ELEMENT h2 %Inline;>
       
   379 <!ATTLIST h2
       
   380    %attrs;
       
   381    >
       
   382 
       
   383 <!ELEMENT h3 %Inline;>
       
   384 <!ATTLIST h3
       
   385    %attrs;
       
   386    >
       
   387 
       
   388 <!ELEMENT h4 %Inline;>
       
   389 <!ATTLIST h4
       
   390    %attrs;
       
   391    >
       
   392 
       
   393 <!ELEMENT h5 %Inline;>
       
   394 <!ATTLIST h5
       
   395    %attrs;
       
   396    >
       
   397 
       
   398 <!ELEMENT h6 %Inline;>
       
   399 <!ATTLIST h6
       
   400    %attrs;
       
   401    >
       
   402 
       
   403 <!--=================== Lists ============================================-->
       
   404 
       
   405 <!-- Unordered list -->
       
   406 
       
   407 <!ELEMENT ul (li)+>
       
   408 <!ATTLIST ul
       
   409   %attrs;
       
   410   >
       
   411 
       
   412 <!-- Ordered (numbered) list -->
       
   413 
       
   414 <!ELEMENT ol (li)+>
       
   415 <!ATTLIST ol
       
   416   %attrs;
       
   417   >
       
   418 
       
   419 <!-- list item -->
       
   420 
       
   421 <!ELEMENT li %Flow;>
       
   422 <!ATTLIST li
       
   423   %attrs;
       
   424   >
       
   425 
       
   426 <!-- definition lists - dt for term, dd for its definition -->
       
   427 
       
   428 <!ELEMENT dl (dt|dd)+>
       
   429 <!ATTLIST dl
       
   430   %attrs;
       
   431   >
       
   432 
       
   433 <!ELEMENT dt %Inline;>
       
   434 <!ATTLIST dt
       
   435   %attrs;
       
   436   >
       
   437 
       
   438 <!ELEMENT dd %Flow;>
       
   439 <!ATTLIST dd
       
   440   %attrs;
       
   441   >
       
   442 
       
   443 <!--=================== Address ==========================================-->
       
   444 
       
   445 <!-- information on author -->
       
   446 
       
   447 <!ELEMENT address %Inline;>
       
   448 <!ATTLIST address
       
   449   %attrs;
       
   450   >
       
   451 
       
   452 <!--=================== Horizontal Rule ==================================-->
       
   453 
       
   454 <!ELEMENT hr EMPTY>
       
   455 <!ATTLIST hr
       
   456   %attrs;
       
   457   >
       
   458 
       
   459 <!--=================== Preformatted Text ================================-->
       
   460 
       
   461 <!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
       
   462 
       
   463 <!ELEMENT pre %pre.content;>
       
   464 <!ATTLIST pre
       
   465   %attrs;
       
   466   xml:space (preserve) #FIXED 'preserve'
       
   467   >
       
   468 
       
   469 <!--=================== Block-like Quotes ================================-->
       
   470 
       
   471 <!ELEMENT blockquote %Block;>
       
   472 <!ATTLIST blockquote
       
   473   %attrs;
       
   474   cite        %URI;          #IMPLIED
       
   475   >
       
   476 
       
   477 <!--=================== Inserted/Deleted Text ============================-->
       
   478 
       
   479 <!--
       
   480   ins/del are allowed in block and inline content, but its
       
   481   inappropriate to include block content within an ins element
       
   482   occurring in inline content.
       
   483 -->
       
   484 <!ELEMENT ins %Flow;>
       
   485 <!ATTLIST ins
       
   486   %attrs;
       
   487   cite        %URI;          #IMPLIED
       
   488   datetime    %Datetime;     #IMPLIED
       
   489   >
       
   490 
       
   491 <!ELEMENT del %Flow;>
       
   492 <!ATTLIST del
       
   493   %attrs;
       
   494   cite        %URI;          #IMPLIED
       
   495   datetime    %Datetime;     #IMPLIED
       
   496   >
       
   497 
       
   498 <!--================== The Anchor Element ================================-->
       
   499 
       
   500 <!-- content is %Inline; except that anchors shouldn't be nested -->
       
   501 
       
   502 <!ELEMENT a %a.content;>
       
   503 <!ATTLIST a
       
   504   %attrs;
       
   505   %focus;
       
   506   charset     %Charset;      #IMPLIED
       
   507   type        %ContentType;  #IMPLIED
       
   508   name        NMTOKEN        #IMPLIED
       
   509   href        %URI;          #IMPLIED
       
   510   hreflang    %LanguageCode; #IMPLIED
       
   511   rel         %LinkTypes;    #IMPLIED
       
   512   rev         %LinkTypes;    #IMPLIED
       
   513   shape       %Shape;        "rect"
       
   514   coords      %Coords;       #IMPLIED
       
   515   >
       
   516 
       
   517 <!--===================== Inline Elements ================================-->
       
   518 
       
   519 <!ELEMENT span %Inline;> <!-- generic language/style container -->
       
   520 <!ATTLIST span
       
   521   %attrs;
       
   522   >
       
   523 
       
   524 <!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
       
   525 <!ATTLIST bdo
       
   526   %coreattrs;
       
   527   %events;
       
   528   lang        %LanguageCode; #IMPLIED
       
   529   xml:lang    %LanguageCode; #IMPLIED
       
   530   dir         (ltr|rtl)      #REQUIRED
       
   531   >
       
   532 
       
   533 <!ELEMENT br EMPTY>   <!-- forced line break -->
       
   534 <!ATTLIST br
       
   535   %coreattrs;
       
   536   >
       
   537 
       
   538 <!ELEMENT em %Inline;>   <!-- emphasis -->
       
   539 <!ATTLIST em %attrs;>
       
   540 
       
   541 <!ELEMENT strong %Inline;>   <!-- strong emphasis -->
       
   542 <!ATTLIST strong %attrs;>
       
   543 
       
   544 <!ELEMENT dfn %Inline;>   <!-- definitional -->
       
   545 <!ATTLIST dfn %attrs;>
       
   546 
       
   547 <!ELEMENT code %Inline;>   <!-- program code -->
       
   548 <!ATTLIST code %attrs;>
       
   549 
       
   550 <!ELEMENT samp %Inline;>   <!-- sample -->
       
   551 <!ATTLIST samp %attrs;>
       
   552 
       
   553 <!ELEMENT kbd %Inline;>  <!-- something user would type -->
       
   554 <!ATTLIST kbd %attrs;>
       
   555 
       
   556 <!ELEMENT var %Inline;>   <!-- variable -->
       
   557 <!ATTLIST var %attrs;>
       
   558 
       
   559 <!ELEMENT cite %Inline;>   <!-- citation -->
       
   560 <!ATTLIST cite %attrs;>
       
   561 
       
   562 <!ELEMENT abbr %Inline;>   <!-- abbreviation -->
       
   563 <!ATTLIST abbr %attrs;>
       
   564 
       
   565 <!ELEMENT acronym %Inline;>   <!-- acronym -->
       
   566 <!ATTLIST acronym %attrs;>
       
   567 
       
   568 <!ELEMENT q %Inline;>   <!-- inlined quote -->
       
   569 <!ATTLIST q
       
   570   %attrs;
       
   571   cite        %URI;          #IMPLIED
       
   572   >
       
   573 
       
   574 <!ELEMENT sub %Inline;> <!-- subscript -->
       
   575 <!ATTLIST sub %attrs;>
       
   576 
       
   577 <!ELEMENT sup %Inline;> <!-- superscript -->
       
   578 <!ATTLIST sup %attrs;>
       
   579 
       
   580 <!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
       
   581 <!ATTLIST tt %attrs;>
       
   582 
       
   583 <!ELEMENT i %Inline;>   <!-- italic font -->
       
   584 <!ATTLIST i %attrs;>
       
   585 
       
   586 <!ELEMENT b %Inline;>   <!-- bold font -->
       
   587 <!ATTLIST b %attrs;>
       
   588 
       
   589 <!ELEMENT big %Inline;>   <!-- bigger font -->
       
   590 <!ATTLIST big %attrs;>
       
   591 
       
   592 <!ELEMENT small %Inline;>   <!-- smaller font -->
       
   593 <!ATTLIST small %attrs;>
       
   594 
       
   595 <!--==================== Object ======================================-->
       
   596 <!--
       
   597   object is used to embed objects as part of HTML pages.
       
   598   param elements should precede other content. Parameters
       
   599   can also be expressed as attribute/value pairs on the
       
   600   object element itself when brevity is desired.
       
   601 -->
       
   602 
       
   603 <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
       
   604 <!ATTLIST object
       
   605   %attrs;
       
   606   declare     (declare)      #IMPLIED
       
   607   classid     %URI;          #IMPLIED
       
   608   codebase    %URI;          #IMPLIED
       
   609   data        %URI;          #IMPLIED
       
   610   type        %ContentType;  #IMPLIED
       
   611   codetype    %ContentType;  #IMPLIED
       
   612   archive     %UriList;      #IMPLIED
       
   613   standby     %Text;         #IMPLIED
       
   614   height      %Length;       #IMPLIED
       
   615   width       %Length;       #IMPLIED
       
   616   usemap      %URI;          #IMPLIED
       
   617   name        NMTOKEN        #IMPLIED
       
   618   tabindex    %Number;       #IMPLIED
       
   619   >
       
   620 
       
   621 <!--
       
   622   param is used to supply a named property value.
       
   623   In XML it would seem natural to follow RDF and support an
       
   624   abbreviated syntax where the param elements are replaced
       
   625   by attribute value pairs on the object start tag.
       
   626 -->
       
   627 <!ELEMENT param EMPTY>
       
   628 <!ATTLIST param
       
   629   id          ID             #IMPLIED
       
   630   name        CDATA          #IMPLIED
       
   631   value       CDATA          #IMPLIED
       
   632   valuetype   (data|ref|object) "data"
       
   633   type        %ContentType;  #IMPLIED
       
   634   >
       
   635 
       
   636 <!--=================== Images ===========================================-->
       
   637 
       
   638 <!--
       
   639    To avoid accessibility problems for people who aren't
       
   640    able to see the image, you should provide a text
       
   641    description using the alt and longdesc attributes.
       
   642    In addition, avoid the use of server-side image maps.
       
   643    Note that in this DTD there is no name attribute. That
       
   644    is only available in the transitional and frameset DTD.
       
   645 -->
       
   646 
       
   647 <!ELEMENT img EMPTY>
       
   648 <!ATTLIST img
       
   649   %attrs;
       
   650   src         %URI;          #REQUIRED
       
   651   alt         %Text;         #REQUIRED
       
   652   longdesc    %URI;          #IMPLIED
       
   653   height      %Length;       #IMPLIED
       
   654   width       %Length;       #IMPLIED
       
   655   usemap      %URI;          #IMPLIED
       
   656   ismap       (ismap)        #IMPLIED
       
   657   >
       
   658 
       
   659 <!-- usemap points to a map element which may be in this document
       
   660   or an external document, although the latter is not widely supported -->
       
   661 
       
   662 <!--================== Client-side image maps ============================-->
       
   663 
       
   664 <!-- These can be placed in the same document or grouped in a
       
   665      separate document although this isn't yet widely supported -->
       
   666 
       
   667 <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
       
   668 <!ATTLIST map
       
   669   %i18n;
       
   670   %events;
       
   671   id          ID             #REQUIRED
       
   672   class       CDATA          #IMPLIED
       
   673   style       %StyleSheet;   #IMPLIED
       
   674   title       %Text;         #IMPLIED
       
   675   name        NMTOKEN        #IMPLIED
       
   676   >
       
   677 
       
   678 <!ELEMENT area EMPTY>
       
   679 <!ATTLIST area
       
   680   %attrs;
       
   681   %focus;
       
   682   shape       %Shape;        "rect"
       
   683   coords      %Coords;       #IMPLIED
       
   684   href        %URI;          #IMPLIED
       
   685   nohref      (nohref)       #IMPLIED
       
   686   alt         %Text;         #REQUIRED
       
   687   >
       
   688 
       
   689 <!--================ Forms ===============================================-->
       
   690 <!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
       
   691 
       
   692 <!ATTLIST form
       
   693   %attrs;
       
   694   action      %URI;          #REQUIRED
       
   695   method      (get|post)     "get"
       
   696   enctype     %ContentType;  "application/x-www-form-urlencoded"
       
   697   onsubmit    %Script;       #IMPLIED
       
   698   onreset     %Script;       #IMPLIED
       
   699   accept      %ContentTypes; #IMPLIED
       
   700   accept-charset %Charsets;  #IMPLIED
       
   701   >
       
   702 
       
   703 <!--
       
   704   Each label must not contain more than ONE field
       
   705   Label elements shouldn't be nested.
       
   706 -->
       
   707 <!ELEMENT label %Inline;>
       
   708 <!ATTLIST label
       
   709   %attrs;
       
   710   for         IDREF          #IMPLIED
       
   711   accesskey   %Character;    #IMPLIED
       
   712   onfocus     %Script;       #IMPLIED
       
   713   onblur      %Script;       #IMPLIED
       
   714   >
       
   715 
       
   716 <!ENTITY % InputType
       
   717   "(text | password | checkbox |
       
   718     radio | submit | reset |
       
   719     file | hidden | image | button)"
       
   720    >
       
   721 
       
   722 <!-- the name attribute is required for all but submit & reset -->
       
   723 
       
   724 <!ELEMENT input EMPTY>     <!-- form control -->
       
   725 <!ATTLIST input
       
   726   %attrs;
       
   727   %focus;
       
   728   type        %InputType;    "text"
       
   729   name        CDATA          #IMPLIED
       
   730   value       CDATA          #IMPLIED
       
   731   checked     (checked)      #IMPLIED
       
   732   disabled    (disabled)     #IMPLIED
       
   733   readonly    (readonly)     #IMPLIED
       
   734   size        CDATA          #IMPLIED
       
   735   maxlength   %Number;       #IMPLIED
       
   736   src         %URI;          #IMPLIED
       
   737   alt         CDATA          #IMPLIED
       
   738   usemap      %URI;          #IMPLIED
       
   739   onselect    %Script;       #IMPLIED
       
   740   onchange    %Script;       #IMPLIED
       
   741   accept      %ContentTypes; #IMPLIED
       
   742   >
       
   743 
       
   744 <!ELEMENT select (optgroup|option)+>  <!-- option selector -->
       
   745 <!ATTLIST select
       
   746   %attrs;
       
   747   name        CDATA          #IMPLIED
       
   748   size        %Number;       #IMPLIED
       
   749   multiple    (multiple)     #IMPLIED
       
   750   disabled    (disabled)     #IMPLIED
       
   751   tabindex    %Number;       #IMPLIED
       
   752   onfocus     %Script;       #IMPLIED
       
   753   onblur      %Script;       #IMPLIED
       
   754   onchange    %Script;       #IMPLIED
       
   755   >
       
   756 
       
   757 <!ELEMENT optgroup (option)+>   <!-- option group -->
       
   758 <!ATTLIST optgroup
       
   759   %attrs;
       
   760   disabled    (disabled)     #IMPLIED
       
   761   label       %Text;         #REQUIRED
       
   762   >
       
   763 
       
   764 <!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
       
   765 <!ATTLIST option
       
   766   %attrs;
       
   767   selected    (selected)     #IMPLIED
       
   768   disabled    (disabled)     #IMPLIED
       
   769   label       %Text;         #IMPLIED
       
   770   value       CDATA          #IMPLIED
       
   771   >
       
   772 
       
   773 <!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
       
   774 <!ATTLIST textarea
       
   775   %attrs;
       
   776   %focus;
       
   777   name        CDATA          #IMPLIED
       
   778   rows        %Number;       #REQUIRED
       
   779   cols        %Number;       #REQUIRED
       
   780   disabled    (disabled)     #IMPLIED
       
   781   readonly    (readonly)     #IMPLIED
       
   782   onselect    %Script;       #IMPLIED
       
   783   onchange    %Script;       #IMPLIED
       
   784   >
       
   785 
       
   786 <!--
       
   787   The fieldset element is used to group form fields.
       
   788   Only one legend element should occur in the content
       
   789   and if present should only be preceded by whitespace.
       
   790 -->
       
   791 <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
       
   792 <!ATTLIST fieldset
       
   793   %attrs;
       
   794   >
       
   795 
       
   796 <!ELEMENT legend %Inline;>     <!-- fieldset label -->
       
   797 <!ATTLIST legend
       
   798   %attrs;
       
   799   accesskey   %Character;    #IMPLIED
       
   800   >
       
   801 
       
   802 <!--
       
   803  Content is %Flow; excluding a, form and form controls
       
   804 --> 
       
   805 <!ELEMENT button %button.content;>  <!-- push button -->
       
   806 <!ATTLIST button
       
   807   %attrs;
       
   808   %focus;
       
   809   name        CDATA          #IMPLIED
       
   810   value       CDATA          #IMPLIED
       
   811   type        (button|submit|reset) "submit"
       
   812   disabled    (disabled)     #IMPLIED
       
   813   >
       
   814 
       
   815 <!--======================= Tables =======================================-->
       
   816 
       
   817 <!-- Derived from IETF HTML table standard, see [RFC1942] -->
       
   818 
       
   819 <!--
       
   820  The border attribute sets the thickness of the frame around the
       
   821  table. The default units are screen pixels.
       
   822 
       
   823  The frame attribute specifies which parts of the frame around
       
   824  the table should be rendered. The values are not the same as
       
   825  CALS to avoid a name clash with the valign attribute.
       
   826 -->
       
   827 <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
       
   828 
       
   829 <!--
       
   830  The rules attribute defines which rules to draw between cells:
       
   831 
       
   832  If rules is absent then assume:
       
   833      "none" if border is absent or border="0" otherwise "all"
       
   834 -->
       
   835 
       
   836 <!ENTITY % TRules "(none | groups | rows | cols | all)">
       
   837   
       
   838 <!-- horizontal alignment attributes for cell contents
       
   839 
       
   840   char        alignment char, e.g. char=':'
       
   841   charoff     offset for alignment char
       
   842 -->
       
   843 <!ENTITY % cellhalign
       
   844   "align      (left|center|right|justify|char) #IMPLIED
       
   845    char       %Character;    #IMPLIED
       
   846    charoff    %Length;       #IMPLIED"
       
   847   >
       
   848 
       
   849 <!-- vertical alignment attributes for cell contents -->
       
   850 <!ENTITY % cellvalign
       
   851   "valign     (top|middle|bottom|baseline) #IMPLIED"
       
   852   >
       
   853 
       
   854 <!ELEMENT table
       
   855      (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
       
   856 <!ELEMENT caption  %Inline;>
       
   857 <!ELEMENT thead    (tr)+>
       
   858 <!ELEMENT tfoot    (tr)+>
       
   859 <!ELEMENT tbody    (tr)+>
       
   860 <!ELEMENT colgroup (col)*>
       
   861 <!ELEMENT col      EMPTY>
       
   862 <!ELEMENT tr       (th|td)+>
       
   863 <!ELEMENT th       %Flow;>
       
   864 <!ELEMENT td       %Flow;>
       
   865 
       
   866 <!ATTLIST table
       
   867   %attrs;
       
   868   summary     %Text;         #IMPLIED
       
   869   width       %Length;       #IMPLIED
       
   870   border      %Pixels;       #IMPLIED
       
   871   frame       %TFrame;       #IMPLIED
       
   872   rules       %TRules;       #IMPLIED
       
   873   cellspacing %Length;       #IMPLIED
       
   874   cellpadding %Length;       #IMPLIED
       
   875   >
       
   876 
       
   877 <!ATTLIST caption
       
   878   %attrs;
       
   879   >
       
   880 
       
   881 <!--
       
   882 colgroup groups a set of col elements. It allows you to group
       
   883 several semantically related columns together.
       
   884 -->
       
   885 <!ATTLIST colgroup
       
   886   %attrs;
       
   887   span        %Number;       "1"
       
   888   width       %MultiLength;  #IMPLIED
       
   889   %cellhalign;
       
   890   %cellvalign;
       
   891   >
       
   892 
       
   893 <!--
       
   894  col elements define the alignment properties for cells in
       
   895  one or more columns.
       
   896 
       
   897  The width attribute specifies the width of the columns, e.g.
       
   898 
       
   899      width=64        width in screen pixels
       
   900      width=0.5*      relative width of 0.5
       
   901 
       
   902  The span attribute causes the attributes of one
       
   903  col element to apply to more than one column.
       
   904 -->
       
   905 <!ATTLIST col
       
   906   %attrs;
       
   907   span        %Number;       "1"
       
   908   width       %MultiLength;  #IMPLIED
       
   909   %cellhalign;
       
   910   %cellvalign;
       
   911   >
       
   912 
       
   913 <!--
       
   914     Use thead to duplicate headers when breaking table
       
   915     across page boundaries, or for static headers when
       
   916     tbody sections are rendered in scrolling panel.
       
   917 
       
   918     Use tfoot to duplicate footers when breaking table
       
   919     across page boundaries, or for static footers when
       
   920     tbody sections are rendered in scrolling panel.
       
   921 
       
   922     Use multiple tbody sections when rules are needed
       
   923     between groups of table rows.
       
   924 -->
       
   925 <!ATTLIST thead
       
   926   %attrs;
       
   927   %cellhalign;
       
   928   %cellvalign;
       
   929   >
       
   930 
       
   931 <!ATTLIST tfoot
       
   932   %attrs;
       
   933   %cellhalign;
       
   934   %cellvalign;
       
   935   >
       
   936 
       
   937 <!ATTLIST tbody
       
   938   %attrs;
       
   939   %cellhalign;
       
   940   %cellvalign;
       
   941   >
       
   942 
       
   943 <!ATTLIST tr
       
   944   %attrs;
       
   945   %cellhalign;
       
   946   %cellvalign;
       
   947   >
       
   948 
       
   949 
       
   950 <!-- Scope is simpler than headers attribute for common tables -->
       
   951 <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
       
   952 
       
   953 <!-- th is for headers, td for data and for cells acting as both -->
       
   954 
       
   955 <!ATTLIST th
       
   956   %attrs;
       
   957   abbr        %Text;         #IMPLIED
       
   958   axis        CDATA          #IMPLIED
       
   959   headers     IDREFS         #IMPLIED
       
   960   scope       %Scope;        #IMPLIED
       
   961   rowspan     %Number;       "1"
       
   962   colspan     %Number;       "1"
       
   963   %cellhalign;
       
   964   %cellvalign;
       
   965   >
       
   966 
       
   967 <!ATTLIST td
       
   968   %attrs;
       
   969   abbr        %Text;         #IMPLIED
       
   970   axis        CDATA          #IMPLIED
       
   971   headers     IDREFS         #IMPLIED
       
   972   scope       %Scope;        #IMPLIED
       
   973   rowspan     %Number;       "1"
       
   974   colspan     %Number;       "1"
       
   975   %cellhalign;
       
   976   %cellvalign;
       
   977   >
       
   978