home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 January / PCWorld_2001-01_cd.bin / Software / Topware / xmlspy / xmlspy35.exe / Main / strict.dtd < prev    next >
Encoding:
Text File  |  2000-11-20  |  24.4 KB  |  684 lines

  1. <!--
  2.    Extensible HTML version 1.0 Strict DTD
  3.  
  4.    This is the same as HTML 4.0 Strict except for
  5.    changes due to the differences between XML and SGML.
  6.  
  7.    Namespace = http://www.w3.org/TR/xhtml1
  8.  
  9.    For further information, see: http://www.w3.org/TR/xhtml1
  10.  
  11.    Copyright (c) 1998-1999 W3C (MIT, INRIA, Keio),
  12.    All Rights Reserved. 
  13. -->
  14. <!--================ Character mnemonic entities =========================-->
  15. <!ENTITY % HTMLlat1 PUBLIC
  16.    "-//W3C//ENTITIES Latin1//EN//HTML"
  17.    "HTMLlat1x.ent">
  18. %HTMLlat1;
  19. <!ENTITY % HTMLsymbol PUBLIC
  20.    "-//W3C//ENTITIES Symbols//EN//HTML"
  21.    "HTMLsymbolx.ent">
  22. %HTMLsymbol;
  23. <!ENTITY % HTMLspecial PUBLIC
  24.    "-//W3C//ENTITIES Special//EN//HTML"
  25.    "HTMLspecialx.ent">
  26. %HTMLspecial;
  27. <!--================== Imported Names ====================================-->
  28. <!ENTITY % ContentType "CDATA">
  29. <!-- media type, as per [RFC2045] -->
  30. <!ENTITY % ContentTypes "CDATA">
  31. <!-- comma-separated list of media types, as per [RFC2045] -->
  32. <!ENTITY % Charset "CDATA">
  33. <!-- a character encoding, as per [RFC2045] -->
  34. <!ENTITY % Charsets "CDATA">
  35. <!-- a space separated list of character encodings, as per [RFC2045] -->
  36. <!ENTITY % LanguageCode "CDATA">
  37. <!-- a language code, as per [RFC1766] -->
  38. <!ENTITY % Character "CDATA">
  39. <!-- a single character from [ISO10646] -->
  40. <!ENTITY % Number "CDATA">
  41. <!-- one or more digits -->
  42. <!ENTITY % LinkTypes "CDATA">
  43. <!-- space-separated list of link types -->
  44. <!ENTITY % MediaDesc "CDATA">
  45. <!-- single or comma-separated list of media descriptors -->
  46. <!ENTITY % URI "CDATA">
  47. <!-- a Uniform Resource Identifier, see [RFC2396] -->
  48. <!ENTITY % UriList "CDATA">
  49. <!-- a space separated list of Uniform Resource Identifiers -->
  50. <!ENTITY % Datetime "CDATA">
  51. <!-- date and time information. ISO date format -->
  52. <!ENTITY % Script "CDATA">
  53. <!-- script expression -->
  54. <!ENTITY % StyleSheet "CDATA">
  55. <!-- style sheet data -->
  56. <!ENTITY % Text "CDATA">
  57. <!-- used for titles etc. -->
  58. <!ENTITY % FrameTarget "CDATA">
  59. <!-- render in this frame -->
  60. <!ENTITY % Length "CDATA">
  61. <!-- nn for pixels or nn% for percentage length -->
  62. <!ENTITY % MultiLength "CDATA">
  63. <!-- pixel, percentage, or relative -->
  64. <!ENTITY % MultiLengths "CDATA">
  65. <!-- comma-separated list of MultiLength -->
  66. <!ENTITY % Pixels "CDATA">
  67. <!-- integer representing length in pixels -->
  68. <!-- these are used for image maps -->
  69. <!ENTITY % Shape "(rect|circle|poly|default)">
  70. <!ENTITY % Coords "CDATA">
  71. <!-- comma separated list of lengths -->
  72. <!--=================== Generic Attributes ===============================-->
  73. <!-- core attributes common to most elements
  74.   id       document-wide unique id
  75.   class    space separated list of classes
  76.   style    associated style info
  77.   title    advisory title/amplification
  78. -->
  79. <!ENTITY % coreattrs "id          ID             #IMPLIED
  80.   class       CDATA          #IMPLIED
  81.   style       %StyleSheet;   #IMPLIED
  82.   title       %Text;         #IMPLIED">
  83. <!-- internationalization attributes
  84.   lang        language code (backwards compatible)
  85.   xml:lang    language code (as per XML 1.0 spec)
  86.   dir         direction for weak/neutral text
  87. -->
  88. <!ENTITY % i18n "lang        %LanguageCode; #IMPLIED
  89.   xml:lang    %LanguageCode; #IMPLIED
  90.   dir         (ltr|rtl)      #IMPLIED">
  91. <!-- attributes for common UI events
  92.   onclick     a pointer button was clicked
  93.   ondblclick  a pointer button was double clicked
  94.   onmousedown a pointer button was pressed down
  95.   onmouseup   a pointer button was released
  96.   onmousemove a pointer was moved onto the element
  97.   onmouseout  a pointer was moved away from the element
  98.   onkeypress  a key was pressed and released
  99.   onkeydown   a key was pressed down
  100.   onkeyup     a key was released
  101. -->
  102. <!ENTITY % events "onclick     %Script;       #IMPLIED
  103.   ondblclick  %Script;       #IMPLIED
  104.   onmousedown %Script;       #IMPLIED
  105.   onmouseup   %Script;       #IMPLIED
  106.   onmouseover %Script;       #IMPLIED
  107.   onmousemove %Script;       #IMPLIED
  108.   onmouseout  %Script;       #IMPLIED
  109.   onkeypress  %Script;       #IMPLIED
  110.   onkeydown   %Script;       #IMPLIED
  111.   onkeyup     %Script;       #IMPLIED">
  112. <!-- attributes for elements that can get the focus
  113.   accesskey   accessibility key character
  114.   tabindex    position in tabbing order
  115.   onfocus     the element got the focus
  116.   onblur      the element lost the focus
  117. -->
  118. <!ENTITY % focus "accesskey   %Character;    #IMPLIED
  119.   tabindex    %Number;       #IMPLIED
  120.   onfocus     %Script;       #IMPLIED
  121.   onblur      %Script;       #IMPLIED">
  122. <!ENTITY % attrs "%coreattrs; %i18n; %events;">
  123. <!--=================== Text Elements ====================================-->
  124. <!ENTITY % special "br | span | bdo | object | img | map">
  125. <!ENTITY % fontstyle "tt | i | b | big | small">
  126. <!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
  127.                    samp | kbd | var | cite | abbr | acronym">
  128. <!ENTITY % inline.forms "input | select | textarea | label | button">
  129. <!-- these can occur at block or inline level -->
  130. <!ENTITY % misc "ins | del | script | noscript">
  131. <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
  132. <!-- %Inline; covers inline or "text-level" elements -->
  133. <!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
  134. <!--================== Block level elements ==============================-->
  135. <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
  136. <!ENTITY % lists "ul | ol | dl">
  137. <!ENTITY % blocktext "pre | hr | blockquote | address">
  138. <!ENTITY % block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
  139. <!ENTITY % Block "(%block; | form | %misc;)*">
  140. <!-- %Flow; mixes Block and Inline and is used for list items etc. -->
  141. <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
  142. <!--================== Content models for exclusions =====================-->
  143. <!-- a elements use %Inline; excluding a -->
  144. <!ENTITY % a.content "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">
  145. <!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
  146. <!ENTITY % pre.content "(#PCDATA | a | br | span | bdo | map | tt | i | b |
  147.       %phrase; | %inline.forms;)*">
  148. <!-- form uses %Block; excluding form -->
  149. <!ENTITY % form.content "(#PCDATA | %block; | %misc;)*">
  150. <!-- button uses %Flow; but excludes a, form and form controls -->
  151. <!ENTITY % button.content "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
  152.     table | %special; | %fontstyle; | %phrase; | %misc;)*">
  153. <!--================ Document Structure ==================================-->
  154. <!-- the namespace URI designates the document profile -->
  155. <!ELEMENT html (head, body)>
  156. <!ATTLIST html %i18n;>
  157. <!--  xmlns       %URI;          #FIXED        "http://www.w3.org/TR/xhtml1" -->
  158. <!--================ Document Head =======================================-->
  159. <!ENTITY % head.misc "(script|style|meta|link|object)*">
  160. <!-- content model is %head.misc; combined with a single
  161.      title and an optional base element in any order -->
  162. <!ELEMENT head (%head.misc;,
  163.      ((title, %head.misc;, (base, %head.misc;)?) |
  164.       (base, %head.misc;, (title, %head.misc;))))>
  165. <!ATTLIST head %i18n;
  166.   profile     %URI;          #IMPLIED>
  167. <!-- The title element is not considered part of the flow of text.
  168.        It should be displayed, for example as the page header or
  169.        window title. Exactly one title is required per document.
  170.     -->
  171. <!ELEMENT title (#PCDATA)>
  172. <!ATTLIST title %i18n;>
  173. <!-- document base URI -->
  174. <!ELEMENT base EMPTY>
  175. <!ATTLIST base href        %URI;          #IMPLIED>
  176. <!-- generic metainformation -->
  177. <!ELEMENT meta EMPTY>
  178. <!ATTLIST meta %i18n;
  179.   http-equiv  CDATA          #IMPLIED
  180.   name        CDATA          #IMPLIED
  181.   content     CDATA          #REQUIRED
  182.   scheme      CDATA          #IMPLIED>
  183. <!--
  184.   Relationship values can be used in principle:
  185.  
  186.    a) for document specific toolbars/menus when used
  187.       with the link element in document head e.g.
  188.         start, contents, previous, next, index, end, help
  189.    b) to link to a separate style sheet (rel="stylesheet")
  190.    c) to make a link to a script (rel="script")
  191.    d) by stylesheets to control how collections of
  192.       html nodes are rendered into printed documents
  193.    e) to make a link to a printable version of this document
  194.       e.g. a PostScript or PDF version (rel="alternate" media="print")
  195. -->
  196. <!ELEMENT link EMPTY>
  197. <!ATTLIST link %attrs;
  198.   charset     %Charset;      #IMPLIED
  199.   href        %URI;          #IMPLIED
  200.   hreflang    %LanguageCode; #IMPLIED
  201.   type        %ContentType;  #IMPLIED
  202.   rel         %LinkTypes;    #IMPLIED
  203.   rev         %LinkTypes;    #IMPLIED
  204.   media       %MediaDesc;    #IMPLIED>
  205. <!-- style info, which may include CDATA sections -->
  206. <!ELEMENT style (#PCDATA)>
  207. <!ATTLIST style %i18n;
  208.   type        %ContentType;  #REQUIRED
  209.   media       %MediaDesc;    #IMPLIED
  210.   title       %Text;         #IMPLIED
  211.   xml:space   CDATA          #FIXED     "preserve">
  212. <!-- script statements, which may include CDATA sections -->
  213. <!ELEMENT script (#PCDATA)>
  214. <!ATTLIST script charset     %Charset;      #IMPLIED
  215.   type        %ContentType;  #REQUIRED
  216.   src         %URI;          #IMPLIED
  217.   defer       (defer)        #IMPLIED
  218.   xml:space   CDATA          #FIXED     "preserve">
  219. <!-- alternate content container for non script-based rendering -->
  220. <!ELEMENT noscript %Block;>
  221. <!ATTLIST noscript %attrs;>
  222. <!--=================== Document Body ====================================-->
  223. <!ELEMENT body %Block;>
  224. <!ATTLIST body %attrs;
  225.   onload          %Script;   #IMPLIED
  226.   onunload        %Script;   #IMPLIED>
  227. <!ELEMENT div %Flow;>
  228. <!-- generic language/style container -->
  229. <!ATTLIST div %attrs;>
  230. <!--=================== Paragraphs =======================================-->
  231. <!ELEMENT p %Inline;>
  232. <!ATTLIST p %attrs;>
  233. <!--=================== Headings =========================================-->
  234. <!--
  235.   There are six levels of headings from h1 (the most important)
  236.   to h6 (the least important).
  237. -->
  238. <!ELEMENT h1 %Inline;>
  239. <!ATTLIST h1 %attrs;>
  240. <!ELEMENT h2 %Inline;>
  241. <!ATTLIST h2 %attrs;>
  242. <!ELEMENT h3 %Inline;>
  243. <!ATTLIST h3 %attrs;>
  244. <!ELEMENT h4 %Inline;>
  245. <!ATTLIST h4 %attrs;>
  246. <!ELEMENT h5 %Inline;>
  247. <!ATTLIST h5 %attrs;>
  248. <!ELEMENT h6 %Inline;>
  249. <!ATTLIST h6 %attrs;>
  250. <!--=================== Lists ============================================-->
  251. <!-- Unordered list -->
  252. <!ELEMENT ul (li)+>
  253. <!ATTLIST ul %attrs;>
  254. <!-- Ordered (numbered) list -->
  255. <!ELEMENT ol (li)+>
  256. <!ATTLIST ol %attrs;>
  257. <!-- list item -->
  258. <!ELEMENT li %Flow;>
  259. <!ATTLIST li %attrs;>
  260. <!-- definition lists - dt for term, dd for its definition -->
  261. <!ELEMENT dl (dt|dd)+>
  262. <!ATTLIST dl %attrs;>
  263. <!ELEMENT dt %Inline;>
  264. <!ATTLIST dt %attrs;>
  265. <!ELEMENT dd %Flow;>
  266. <!ATTLIST dd %attrs;>
  267. <!--=================== Address ==========================================-->
  268. <!-- information on author -->
  269. <!ELEMENT address %Inline;>
  270. <!ATTLIST address %attrs;>
  271. <!--=================== Horizontal Rule ==================================-->
  272. <!ELEMENT hr EMPTY>
  273. <!ATTLIST hr %attrs;>
  274. <!--=================== Preformatted Text ================================-->
  275. <!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
  276. <!ELEMENT pre %pre.content;>
  277. <!ATTLIST pre %attrs;
  278.   xml:space CDATA #FIXED "preserve">
  279. <!--=================== Block-like Quotes ================================-->
  280. <!ELEMENT blockquote %Block;>
  281. <!ATTLIST blockquote %attrs;
  282.   cite        %URI;          #IMPLIED>
  283. <!--=================== Inserted/Deleted Text ============================-->
  284. <!--
  285.   ins/del are allowed in block and inline content, but its
  286.   inappropriate to include block content within an ins element
  287.   occurring in inline content.
  288. -->
  289. <!ELEMENT ins %Flow;>
  290. <!ATTLIST ins %attrs;
  291.   cite        %URI;          #IMPLIED
  292.   datetime    %Datetime;     #IMPLIED>
  293. <!ELEMENT del %Flow;>
  294. <!ATTLIST del %attrs;
  295.   cite        %URI;          #IMPLIED
  296.   datetime    %Datetime;     #IMPLIED>
  297. <!--================== The Anchor Element ================================-->
  298. <!-- content is %Inline; except that anchors shouldn't be nested -->
  299. <!ELEMENT a %a.content;>
  300. <!ATTLIST a %i18n;
  301.   id          NMTOKEN        #IMPLIED
  302.   class       CDATA          #IMPLIED
  303.   style       %StyleSheet;   #IMPLIED
  304.   title       %Text;         #IMPLIED
  305.   charset     %Charset;      #IMPLIED
  306.   type        %ContentType;  #IMPLIED
  307.   name        ID             #IMPLIED
  308.   href        %URI;          #IMPLIED
  309.   hreflang    %LanguageCode; #IMPLIED
  310.   rel         %LinkTypes;    #IMPLIED
  311.   rev         %LinkTypes;    #IMPLIED
  312.   accesskey   %Character;    #IMPLIED
  313.   shape       %Shape;        "rect"
  314.   coords      %Coords;       #IMPLIED
  315.   tabindex    %Number;       #IMPLIED
  316.   onfocus     %Script;       #IMPLIED
  317.   onblur      %Script;       #IMPLIED>
  318. <!--===================== Inline Elements ================================-->
  319. <!ELEMENT span %Inline;>
  320. <!-- generic language/style container -->
  321. <!ATTLIST span %attrs;>
  322. <!ELEMENT bdo %Inline;>
  323. <!-- I18N BiDi over-ride -->
  324. <!ATTLIST bdo %coreattrs;
  325.   lang        %LanguageCode; #IMPLIED
  326.   xml:lang    %LanguageCode; #IMPLIED
  327.   dir         (ltr|rtl)      #REQUIRED>
  328. <!ELEMENT br EMPTY>
  329. <!-- forced line break -->
  330. <!ATTLIST br %coreattrs;>
  331. <!ELEMENT em %Inline;>
  332. <!-- emphasis -->
  333. <!ATTLIST em %attrs;>
  334. <!ELEMENT strong %Inline;>
  335. <!-- strong emphasis -->
  336. <!ATTLIST strong %attrs;>
  337. <!ELEMENT dfn %Inline;>
  338. <!-- definitional -->
  339. <!ATTLIST dfn %attrs;>
  340. <!ELEMENT code %Inline;>
  341. <!-- program code -->
  342. <!ATTLIST code %attrs;>
  343. <!ELEMENT samp %Inline;>
  344. <!-- sample -->
  345. <!ATTLIST samp %attrs;>
  346. <!ELEMENT kbd %Inline;>
  347. <!-- something user would type -->
  348. <!ATTLIST kbd %attrs;>
  349. <!ELEMENT var %Inline;>
  350. <!-- variable -->
  351. <!ATTLIST var %attrs;>
  352. <!ELEMENT cite %Inline;>
  353. <!-- citation -->
  354. <!ATTLIST cite %attrs;>
  355. <!ELEMENT abbr %Inline;>
  356. <!-- abbreviation -->
  357. <!ATTLIST abbr %attrs;>
  358. <!ELEMENT acronym %Inline;>
  359. <!-- acronym -->
  360. <!ATTLIST acronym %attrs;>
  361. <!ELEMENT q %Inline;>
  362. <!-- inlined quote -->
  363. <!ATTLIST q %attrs;
  364.   cite        %URI;          #IMPLIED>
  365. <!ELEMENT sub %Inline;>
  366. <!-- subscript -->
  367. <!ATTLIST sub %attrs;>
  368. <!ELEMENT sup %Inline;>
  369. <!-- superscript -->
  370. <!ATTLIST sup %attrs;>
  371. <!ELEMENT tt %Inline;>
  372. <!-- fixed pitch font -->
  373. <!ATTLIST tt %attrs;>
  374. <!ELEMENT i %Inline;>
  375. <!-- italic font -->
  376. <!ATTLIST i %attrs;>
  377. <!ELEMENT b %Inline;>
  378. <!-- bold font -->
  379. <!ATTLIST b %attrs;>
  380. <!ELEMENT big %Inline;>
  381. <!-- bigger font -->
  382. <!ATTLIST big %attrs;>
  383. <!ELEMENT small %Inline;>
  384. <!-- smaller font -->
  385. <!ATTLIST small %attrs;>
  386. <!--==================== Object ======================================-->
  387. <!--
  388.   object is used to embed objects as part of HTML pages.
  389.   param elements should precede other content. Parameters
  390.   can also be expressed as attribute/value pairs on the
  391.   object element itself when brevity is desired.
  392. -->
  393. <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
  394. <!ATTLIST object %attrs;
  395.   declare     (declare)      #IMPLIED
  396.   classid     %URI;          #IMPLIED
  397.   codebase    %URI;          #IMPLIED
  398.   data        %URI;          #IMPLIED
  399.   type        %ContentType;  #IMPLIED
  400.   codetype    %ContentType;  #IMPLIED
  401.   archive     %UriList;      #IMPLIED
  402.   standby     %Text;         #IMPLIED
  403.   height      %Length;       #IMPLIED
  404.   width       %Length;       #IMPLIED
  405.   usemap      %URI;          #IMPLIED
  406.   name        CDATA          #IMPLIED
  407.   tabindex    %Number;       #IMPLIED>
  408. <!--
  409.   param is used to supply a named property value.
  410.   In XML it would seem natural to follow RDF and support an
  411.   abbreviated syntax where the param elements are replaced
  412.   by attribute value pairs on the object start tag.
  413. -->
  414. <!ELEMENT param EMPTY>
  415. <!ATTLIST param id          ID             #IMPLIED
  416.   name        CDATA          #REQUIRED
  417.   value       CDATA          #IMPLIED
  418.   valuetype   (data|ref|object) "data"
  419.   type        %ContentType;  #IMPLIED>
  420. <!--=================== Images ===========================================-->
  421. <!--
  422.    To avoid accessibility problems for people who aren't
  423.    able to see the image, you should provide a text
  424.    description using the alt and longdesc attributes.
  425.    In addition, avoid the use of server-side image maps.
  426. -->
  427. <!ELEMENT img EMPTY>
  428. <!ATTLIST img %attrs;
  429.   src         %URI;          #REQUIRED
  430.   alt         %Text;         #REQUIRED
  431.   longdesc    %URI;          #IMPLIED
  432.   height      %Length;       #IMPLIED
  433.   width       %Length;       #IMPLIED
  434.   usemap      %URI;          #IMPLIED
  435.   ismap       (ismap)        #IMPLIED>
  436. <!-- usemap points to a map element which may be in this document
  437.   or an external document, although the latter is not widely supported -->
  438. <!--================== Client-side image maps ============================-->
  439. <!-- These can be placed in the same document or grouped in a
  440.      separate document although this isn't yet widely supported -->
  441. <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
  442. <!ATTLIST map %attrs;
  443.   name        CDATA          #REQUIRED>
  444. <!ELEMENT area EMPTY>
  445. <!ATTLIST area %attrs;
  446.   shape       %Shape;        "rect"
  447.   coords      %Coords;       #IMPLIED
  448.   href        %URI;          #IMPLIED
  449.   nohref      (nohref)       #IMPLIED
  450.   alt         %Text;         #REQUIRED
  451.   tabindex    %Number;       #IMPLIED
  452.   accesskey   %Character;    #IMPLIED
  453.   onfocus     %Script;       #IMPLIED
  454.   onblur      %Script;       #IMPLIED>
  455. <!--================ Forms ===============================================-->
  456. <!ELEMENT form %form.content;>
  457. <!-- forms shouldn't be nested -->
  458. <!ATTLIST form %attrs;
  459.   action      %URI;          #REQUIRED
  460.   method      (get|post)     "get"
  461.   enctype     %ContentType;  "application/x-www-form-urlencoded"
  462.   onsubmit    %Script;       #IMPLIED
  463.   onreset     %Script;       #IMPLIED
  464.   accept      %ContentTypes; #IMPLIED
  465.   accept-charset %Charsets;  #IMPLIED>
  466. <!--
  467.   Each label must not contain more than ONE field
  468.   Label elements shouldn't be nested.
  469. -->
  470. <!ELEMENT label %Inline;>
  471. <!ATTLIST label %attrs;
  472.   for         IDREF          #IMPLIED
  473.   accesskey   %Character;    #IMPLIED
  474.   onfocus     %Script;       #IMPLIED
  475.   onblur      %Script;       #IMPLIED>
  476. <!ENTITY % InputType "(text | password | checkbox |
  477.     radio | submit | reset |
  478.     file | hidden | image | button)">
  479. <!-- the name attribute is required for all but submit & reset -->
  480. <!ELEMENT input EMPTY>
  481. <!-- form control -->
  482. <!ATTLIST input %attrs;
  483.   type        %InputType;    "text"
  484.   name        CDATA          #IMPLIED
  485.   value       CDATA          #IMPLIED
  486.   checked     (checked)      #IMPLIED
  487.   disabled    (disabled)     #IMPLIED
  488.   readonly    (readonly)     #IMPLIED
  489.   size        CDATA          #IMPLIED
  490.   maxlength   %Number;       #IMPLIED
  491.   src         %URI;          #IMPLIED
  492.   alt         CDATA          #IMPLIED
  493.   usemap      %URI;          #IMPLIED
  494.   tabindex    %Number;       #IMPLIED
  495.   accesskey   %Character;    #IMPLIED
  496.   onfocus     %Script;       #IMPLIED
  497.   onblur      %Script;       #IMPLIED
  498.   onselect    %Script;       #IMPLIED
  499.   onchange    %Script;       #IMPLIED
  500.   accept      %ContentTypes; #IMPLIED>
  501. <!ELEMENT select (optgroup|option)+>
  502. <!-- option selector -->
  503. <!ATTLIST select %attrs;
  504.   name        CDATA          #IMPLIED
  505.   size        %Number;       #IMPLIED
  506.   multiple    (multiple)     #IMPLIED
  507.   disabled    (disabled)     #IMPLIED
  508.   tabindex    %Number;       #IMPLIED
  509.   onfocus     %Script;       #IMPLIED
  510.   onblur      %Script;       #IMPLIED
  511.   onchange    %Script;       #IMPLIED>
  512. <!ELEMENT optgroup (option)+>
  513. <!-- option group -->
  514. <!ATTLIST optgroup %attrs;
  515.   disabled    (disabled)     #IMPLIED
  516.   label       %Text;         #REQUIRED>
  517. <!ELEMENT option (#PCDATA)>
  518. <!-- selectable choice -->
  519. <!ATTLIST option %attrs;
  520.   selected    (selected)     #IMPLIED
  521.   disabled    (disabled)     #IMPLIED
  522.   label       %Text;         #IMPLIED
  523.   value       CDATA          #IMPLIED>
  524. <!ELEMENT textarea (#PCDATA)>
  525. <!-- multi-line text field -->
  526. <!ATTLIST textarea %attrs;
  527.   name        CDATA          #IMPLIED
  528.   rows        %Number;       #REQUIRED
  529.   cols        %Number;       #REQUIRED
  530.   disabled    (disabled)     #IMPLIED
  531.   readonly    (readonly)     #IMPLIED
  532.   tabindex    %Number;       #IMPLIED
  533.   accesskey   %Character;    #IMPLIED
  534.   onfocus     %Script;       #IMPLIED
  535.   onblur      %Script;       #IMPLIED
  536.   onselect    %Script;       #IMPLIED
  537.   onchange    %Script;       #IMPLIED>
  538. <!--
  539.   The fieldset element is used to group form fields.
  540.   Only one legend element should occur in the content
  541.   and if present should only be preceded by whitespace.
  542. -->
  543. <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
  544. <!ATTLIST fieldset %attrs;>
  545. <!ELEMENT legend %Inline;>
  546. <!-- fieldset label -->
  547. <!ATTLIST legend %attrs;
  548.   accesskey   %Character;    #IMPLIED>
  549. <!--
  550.  Content is %Flow; excluding a, form and form controls
  551. -->
  552. <!ELEMENT button %button.content;>
  553. <!-- push button -->
  554. <!ATTLIST button %attrs;
  555.   name        CDATA          #IMPLIED
  556.   value       CDATA          #IMPLIED
  557.   type        (button|submit|reset) "submit"
  558.   disabled    (disabled)     #IMPLIED
  559.   tabindex    %Number;       #IMPLIED
  560.   accesskey   %Character;    #IMPLIED
  561.   onfocus     %Script;       #IMPLIED
  562.   onblur      %Script;       #IMPLIED>
  563. <!--======================= Tables =======================================-->
  564. <!-- Derived from IETF HTML table standard, see [RFC1942] -->
  565. <!--
  566.  The border attribute sets the thickness of the frame around the
  567.  table. The default units are screen pixels.
  568.  
  569.  The frame attribute specifies which parts of the frame around
  570.  the table should be rendered. The values are not the same as
  571.  CALS to avoid a name clash with the valign attribute.
  572. -->
  573. <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
  574. <!--
  575.  The rules attribute defines which rules to draw between cells:
  576.  
  577.  If rules is absent then assume:
  578.      "none" if border is absent or border="0" otherwise "all"
  579. -->
  580. <!ENTITY % TRules "(none | groups | rows | cols | all)">
  581. <!-- horizontal placement of table relative to document -->
  582. <!ENTITY % TAlign "(left|center|right)">
  583. <!-- horizontal alignment attributes for cell contents
  584.  
  585.   char        alignment char, e.g. char=':'
  586.   charoff     offset for alignment char
  587. -->
  588. <!ENTITY % cellhalign "align      (left|center|right|justify|char) #IMPLIED
  589.    char       %Character;    #IMPLIED
  590.    charoff    %Length;       #IMPLIED">
  591. <!-- vertical alignment attributes for cell contents -->
  592. <!ENTITY % cellvalign "valign     (top|middle|bottom|baseline) #IMPLIED">
  593. <!ELEMENT table (caption?, (col*|colgroup*), ((thead?, tfoot?, tbody+)|(tr+)))>
  594. <!ELEMENT caption %Inline;>
  595. <!ELEMENT thead (tr)+>
  596. <!ELEMENT tfoot (tr)+>
  597. <!ELEMENT tbody (tr)+>
  598. <!ELEMENT colgroup (col)*>
  599. <!ELEMENT col EMPTY>
  600. <!ELEMENT tr (th|td)+>
  601. <!ELEMENT th %Flow;>
  602. <!ELEMENT td %Flow;>
  603. <!ATTLIST table %attrs;
  604.   summary     %Text;         #IMPLIED
  605.   width       %Length;       #IMPLIED
  606.   border      %Pixels;       #IMPLIED
  607.   frame       %TFrame;       #IMPLIED
  608.   rules       %TRules;       #IMPLIED
  609.   cellspacing %Length;       #IMPLIED
  610.   cellpadding %Length;       #IMPLIED>
  611. <!ENTITY % CAlign "(top|bottom|left|right)">
  612. <!ATTLIST caption %attrs;>
  613. <!--
  614. colgroup groups a set of col elements. It allows you to group
  615. several semantically related columns together.
  616. -->
  617. <!ATTLIST colgroup %attrs;
  618.   span        %Number;       "1"
  619.   width       %MultiLength;  #IMPLIED
  620.   %cellhalign;
  621.   %cellvalign;>
  622. <!--
  623.  col elements define the alignment properties for cells in
  624.  one or more columns.
  625.  
  626.  The width attribute specifies the width of the columns, e.g.
  627.  
  628.      width=64        width in screen pixels
  629.      width=0.5*      relative width of 0.5
  630.  
  631.  The span attribute causes the attributes of one
  632.  col element to apply to more than one column.
  633. -->
  634. <!ATTLIST col %attrs;
  635.   span        %Number;       "1"
  636.   width       %MultiLength;  #IMPLIED
  637.   %cellhalign;
  638.   %cellvalign;>
  639. <!--
  640.     Use thead to duplicate headers when breaking table
  641.     across page boundaries, or for static headers when
  642.     tbody sections are rendered in scrolling panel.
  643.  
  644.     Use tfoot to duplicate footers when breaking table
  645.     across page boundaries, or for static footers when
  646.     tbody sections are rendered in scrolling panel.
  647.  
  648.     Use multiple tbody sections when rules are needed
  649.     between groups of table rows.
  650. -->
  651. <!ATTLIST thead %attrs;
  652.   %cellhalign;
  653.   %cellvalign;>
  654. <!ATTLIST tfoot %attrs;
  655.   %cellhalign;
  656.   %cellvalign;>
  657. <!ATTLIST tbody %attrs;
  658.   %cellhalign;
  659.   %cellvalign;>
  660. <!ATTLIST tr %attrs;
  661.   %cellhalign;
  662.   %cellvalign;>
  663. <!-- Scope is simpler than headers attribute for common tables -->
  664. <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
  665. <!-- th is for headers, td for data and for cells acting as both -->
  666. <!ATTLIST th %attrs;
  667.   abbr        %Text;         #IMPLIED
  668.   axis        CDATA          #IMPLIED
  669.   headers     IDREFS         #IMPLIED
  670.   scope       %Scope;        #IMPLIED
  671.   rowspan     %Number;       "1"
  672.   colspan     %Number;       "1"
  673.   %cellhalign;
  674.   %cellvalign;>
  675. <!ATTLIST td %attrs;
  676.   abbr        %Text;         #IMPLIED
  677.   axis        CDATA          #IMPLIED
  678.   headers     IDREFS         #IMPLIED
  679.   scope       %Scope;        #IMPLIED
  680.   rowspan     %Number;       "1"
  681.   colspan     %Number;       "1"
  682.   %cellhalign;
  683.   %cellvalign;>
  684.