dom/tests/mochitest/dom-level2-html/files/xhtml1-strict.dtd

Thu, 15 Jan 2015 15:55:04 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:55:04 +0100
branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
permissions
-rw-r--r--

Back out 97036ab72558 which inappropriately compared turds to third parties.

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

mercurial