xhtml1-strict.dtd 25 KB

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