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: 2002-04-08 21:19:32 $ |
|
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 |
|