~ubuntu-branches/ubuntu/precise/xom/precise

« back to all changes in this revision

Viewing changes to data/dtd/xhtml1-strict.dtd

  • Committer: Bazaar Package Importer
  • Author(s): Varun Hiremath
  • Date: 2007-11-25 15:50:40 UTC
  • Revision ID: james.westby@ubuntu.com-20071125155040-r75ikcqf1vu0cei7
Tags: upstream-1.1
ImportĀ upstreamĀ versionĀ 1.1

Show diffs side-by-side

added added

removed removed

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