Initial Commit
[packages] / xemacs-packages / psgml-dtds / etc / html-3.2.dtd
1 <!--
2         W3C Document Type Definition for the HyperText Markup Language
3         version 3.2 as ratified by a vote of W3C member companies.
4         For more information on W3C look at  URL http://www.w3.org/
5
6         Date: Tuesday January 14th 1997
7
8         Author: Dave Raggett <dsr@w3.org>
9
10         HTML 3.2 aims to capture recommended practice as of early '96
11         and as such to be used as a replacement for HTML 2.0 (RFC 1866).
12         Widely deployed rendering attributes are included where they
13         have been shown to be interoperable. SCRIPT and STYLE are
14         included to smooth the introduction of client-side scripts
15         and style sheets. Browsers must avoid showing the contents
16         of these element Otherwise support for them is not required.
17         ID, CLASS and STYLE attributes are not included in this version
18         of HTML.
19 -->
20
21 <!ENTITY % HTML.Version
22         "-//W3C//DTD HTML 3.2 Final//EN"
23
24         -- Typical usage:
25
26             <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
27             <html>
28             ...
29             </html>
30         --
31         >
32
33 <!--================== Deprecated Features Switch =========================-->
34
35 <!ENTITY % HTML.Deprecated "INCLUDE">
36
37 <!--================== Imported Names =====================================-->
38
39 <!ENTITY % Content-Type "CDATA"
40         -- meaning a MIME content type, as per RFC1521
41         -->
42
43 <!ENTITY % HTTP-Method "GET | POST"
44         -- as per HTTP specification
45         -->
46
47 <!ENTITY % URL "CDATA"
48         -- The term URL means a CDATA attribute
49            whose value is a Uniform Resource Locator,
50            See RFC1808 (June 95) and RFC1738 (Dec 94).
51         -->
52
53 <!-- Parameter Entities -->
54
55 <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->
56
57 <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
58
59 <!ENTITY % list "UL | OL |  DIR | MENU">
60
61 <![ %HTML.Deprecated [
62     <!ENTITY % preformatted "PRE | XMP | LISTING">
63 ]]>
64
65 <!ENTITY % preformatted "PRE">
66
67 <!--================ Character mnemonic entities ==========================-->
68
69 <!ENTITY % ISOlat1 PUBLIC
70        "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
71 %ISOlat1;
72
73 <!--================ Entities for special symbols =========================-->
74 <!-- &trade and &cbsp are not widely deployed and so not included here -->
75
76 <!ENTITY amp    CDATA "&#38;"   -- ampersand          -->
77 <!ENTITY gt     CDATA "&#62;"   -- greater than       -->
78 <!ENTITY lt     CDATA "&#60;"   -- less than          -->
79
80 <!--=================== Text Markup =======================================-->
81
82 <!ENTITY % font "TT | I | B  | U | STRIKE | BIG | SMALL | SUB | SUP">
83
84 <!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">
85
86 <!ENTITY % special "A | IMG | APPLET | FONT | BASEFONT | BR | SCRIPT | MAP">
87
88 <!ENTITY % form "INPUT | SELECT | TEXTAREA">
89
90 <!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
91
92 <!ELEMENT (%font|%phrase) - - (%text)*>
93
94 <!-- there are also 16 widely known color names although
95   the resulting colors are implementation dependent:
96
97    aqua, black, blue, fuchsia, gray, green, lime, maroon,
98    navy, olive, purple, red, silver, teal, white, and yellow
99
100  These colors were originally picked as being the standard
101  16 colors supported with the Windows VGA palette.
102  -->
103
104 <!ELEMENT FONT - - (%text)*     -- local change to font -->
105 <!ATTLIST FONT
106     size    CDATA   #IMPLIED    -- [+]nn e.g. size="+1", size=4 --
107     color   CDATA   #IMPLIED    -- #RRGGBB in hex, e.g. red: color="#FF0000" --
108     >
109
110 <!ELEMENT BASEFONT - O EMPTY    -- base font size (1 to 7)-->
111 <!ATTLIST BASEFONT
112     size    CDATA   #IMPLIED    -- e.g. size=3 --
113     >
114
115 <!ELEMENT BR    - O EMPTY    -- forced line break -->
116 <!ATTLIST BR
117         clear (left|all|right|none) none -- control of text flow --
118         >
119
120 <!--================== HTML content models ================================-->
121 <!--
122     HTML has three basic content models:
123
124         %text       character level elements and text strings
125         %flow       block-like elements e.g. paragraphs and lists
126         %bodytext   as %flow plus headers H1-H6 and ADDRESS
127 -->
128
129 <!ENTITY % block
130      "P | %list | %preformatted | DL | DIV | CENTER |
131       BLOCKQUOTE | FORM | ISINDEX | HR | TABLE">
132
133 <!-- %flow is used for DD and LI -->
134
135 <!ENTITY % flow "(%text | %block)*">
136
137 <!--=================== Document Body =====================================-->
138
139 <!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">
140
141 <!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
142
143 <!ENTITY % body-color-attrs "
144         bgcolor %color #IMPLIED
145         text %color #IMPLIED
146         link %color #IMPLIED
147         vlink %color #IMPLIED
148         alink %color #IMPLIED
149         ">
150
151 <!ELEMENT BODY O O  %body.content>
152 <!ATTLIST BODY
153         background %URL #IMPLIED  -- texture tile for document background --
154         %body-color-attrs;  -- bgcolor, text, link, vlink, alink --
155         >
156
157 <!ENTITY % address.content "((%text;) | P)*">
158
159 <!ELEMENT ADDRESS - - %address.content>
160
161 <!ELEMENT DIV - - %body.content>
162 <!ATTLIST DIV
163         align   (left|center|right) #IMPLIED -- alignment of following text --
164         >
165
166 <!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
167 <!ELEMENT center - - %body.content>
168
169 <!--================== The Anchor Element =================================-->
170
171 <!ELEMENT A - - (%text)* -(A)>
172 <!ATTLIST A
173         name    CDATA   #IMPLIED    -- named link end --
174         href    %URL    #IMPLIED    -- URL for linked resource --
175         rel     CDATA   #IMPLIED    -- forward link types --
176         rev     CDATA   #IMPLIED    -- reverse link types --
177         title   CDATA   #IMPLIED    -- advisory title string --
178         >
179
180 <!--================== Client-side image maps ============================-->
181
182 <!-- These can be placed in the same document or grouped in a
183      separate document although this isn't yet widely supported -->
184
185 <!ENTITY % SHAPE "(rect|circle|poly)">
186 <!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
187
188 <!ELEMENT MAP - - (AREA)*>
189 <!ATTLIST MAP
190     name    CDATA   #IMPLIED
191     >
192
193 <!ELEMENT AREA - O EMPTY>
194 <!ATTLIST AREA
195     shape   %SHAPE  rect
196     coords  %COORDS #IMPLIED  -- defines coordinates for shape --
197     href    %URL    #IMPLIED  -- this region acts as hypertext link --
198     nohref (nohref) #IMPLIED  -- this region has no action --
199     alt     CDATA   #REQUIRED -- needed for non-graphical user agents --
200     >
201
202 <!--================== The LINK Element ==================================-->
203
204 <!ENTITY % Types "CDATA"
205         -- See Internet Draft: draft-ietf-html-relrev-00.txt
206            LINK has been part of HTML since the early days
207            although few browsers as yet take advantage of it.
208
209            Relationship values can be used in principle:
210
211                 a) for document specific toolbars/menus when used
212                    with the LINK element in the document head:
213                 b) to link to a separate style sheet
214                 c) to make a link to a script
215                 d) by stylesheets to control how collections of
216                    html nodes are rendered into printed documents
217                 e) to make a link to a printable version of this document
218                    e.g. a postscript or pdf version
219 -->
220
221 <!ELEMENT LINK - O EMPTY>
222 <!ATTLIST LINK
223         href    %URL    #IMPLIED    -- URL for linked resource --
224         rel     %Types  #IMPLIED    -- forward link types --
225         rev     %Types  #IMPLIED    -- reverse link types --
226         title   CDATA   #IMPLIED    -- advisory title string --
227         >
228
229 <!--=================== Images ============================================-->
230
231 <!ENTITY % Length "CDATA"   -- nn for pixels or nn% for percentage length -->
232 <!ENTITY % Pixels "NUMBER"  -- integer representing length in pixels -->
233
234 <!-- Suggested widths are used for negotiating image size
235      with the module responsible for painting the image.
236      align=left or right cause image to float to margin
237      and for subsequent text to wrap around image -->
238
239 <!ENTITY % IAlign "(top|middle|bottom|left|right)">
240
241 <!ELEMENT IMG    - O EMPTY --  Embedded image -->
242 <!ATTLIST IMG
243         src     %URL     #REQUIRED  -- URL of image to embed --
244         alt     CDATA    #IMPLIED   -- for display in place of image --
245         align   %IAlign  #IMPLIED   -- vertical or horizontal alignment --
246         height  %Pixels  #IMPLIED   -- suggested height in pixels --
247         width   %Pixels  #IMPLIED   -- suggested width in pixels --
248         border  %Pixels  #IMPLIED   -- suggested link border width --
249         hspace  %Pixels  #IMPLIED   -- suggested horizontal gutter --
250         vspace  %Pixels  #IMPLIED   -- suggested vertical gutter --
251         usemap  %URL     #IMPLIED   -- use client-side image map --
252         ismap   (ismap)  #IMPLIED   -- use server image map --
253         >
254
255 <!-- USEMAP points to a MAP element which may be in this document
256   or an external document, although the latter is not widely supported -->
257
258 <!--=================== Java APPLET tag ===================================-->
259 <!--
260   This tag is supported by all Java enabled browsers. Applet resources
261   (including their classes) are normally loaded relative to the document
262   URL (or <BASE> element if it is defined). The CODEBASE attribute is used
263   to change this default behavior. If the CODEBASE attribute is defined then
264   it specifies a different location to find applet resources. The value
265   can be an absolute URL or a relative URL. The absolute URL is used as is
266   without modification and is not effected by the documents <BASE> element.
267   When the codebase attribute is relative, then it is relative to the
268   document URL (or <BASE> tag if defined).
269 -->
270 <!ELEMENT APPLET - - (PARAM | %text)*>
271 <!ATTLIST APPLET
272         codebase %URL     #IMPLIED   -- code base --
273         code     CDATA    #REQUIRED  -- class file --
274         alt      CDATA    #IMPLIED   -- for display in place of applet --
275         name     CDATA    #IMPLIED   -- applet name --
276         width    %Pixels  #REQUIRED  -- suggested width in pixels --
277         height   %Pixels  #REQUIRED  -- suggested height in pixels --
278         align    %IAlign  #IMPLIED   -- vertical or horizontal alignment --
279         hspace   %Pixels  #IMPLIED   -- suggested horizontal gutter --
280         vspace   %Pixels  #IMPLIED   -- suggested vertical gutter --
281         >
282
283 <!ELEMENT PARAM - O EMPTY>
284 <!ATTLIST PARAM
285         name    NMTOKEN   #REQUIRED  -- The name of the parameter --
286         value   CDATA     #IMPLIED   -- The value of the parameter --
287         >
288
289 <!--
290 Here is an example:
291
292     <applet codebase="applets/NervousText"
293         code=NervousText.class
294         width=300
295         height=50>
296     <param name=text value="Java is Cool!">
297     <img src=sorry.gif alt="This looks better with Java support">
298     </applet>
299 -->
300
301 <!--=================== Horizontal Rule ===================================-->
302
303 <!ELEMENT HR    - O EMPTY>
304 <!ATTLIST HR
305         align (left|right|center) #IMPLIED
306         noshade (noshade) #IMPLIED
307         size  %Pixels #IMPLIED
308         width %Length #IMPLIED
309         >
310 <!--=================== Paragraphs=========================================-->
311
312 <!ELEMENT P     - O (%text)*>
313 <!ATTLIST P
314         align  (left|center|right) #IMPLIED
315         >
316
317 <!--=================== Headings ==========================================-->
318
319 <!--
320   There are six levels of headers from H1 (the most important)
321   to H6 (the least important).
322 -->
323
324 <!ELEMENT ( %heading )  - -  (%text;)*>
325 <!ATTLIST ( %heading )
326         align  (left|center|right) #IMPLIED
327         >
328
329 <!--=================== Preformatted Text =================================-->
330
331 <!-- excludes images and changes in font size -->
332
333 <!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
334
335 <!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
336 <!ATTLIST PRE
337         width NUMBER #implied -- is this widely supported? --
338         >
339
340 <![ %HTML.Deprecated [
341
342 <!ENTITY % literal "CDATA"
343         -- historical, non-conforming parsing mode where
344            the only markup signal is the end tag
345            in full
346         -->
347
348 <!ELEMENT (XMP|LISTING) - -  %literal>
349 <!ELEMENT PLAINTEXT - O %literal>
350
351 ]]>
352
353 <!--=================== Block-like Quotes =================================-->
354
355 <!ELEMENT BLOCKQUOTE - - %body.content>
356
357 <!--=================== Lists =============================================-->
358
359 <!--
360     HTML 3.2 allows you to control the sequence number for ordered lists.
361     You can set the sequence number with the START and VALUE attributes.
362     The TYPE attribute may be used to specify the rendering of ordered
363     and unordered lists.
364 -->
365
366 <!-- definition lists - DT for term, DD for its definition -->
367
368 <!ELEMENT DL    - -  (DT|DD)+>
369 <!ATTLIST DL
370         compact (compact) #IMPLIED -- more compact style --
371         >
372
373 <!ELEMENT DT - O  (%text)*>
374 <!ELEMENT DD - O  %flow;>
375
376 <!-- Ordered lists OL, and unordered lists UL -->
377 <!ELEMENT (OL|UL) - -  (LI)+>
378
379 <!--
380        Numbering style
381     1   arablic numbers     1, 2, 3, ...
382     a   lower alpha         a, b, c, ...
383     A   upper alpha         A, B, C, ...
384     i   lower roman         i, ii, iii, ...
385     I   upper roman         I, II, III, ...
386
387     The style is applied to the sequence number which by default
388     is reset to 1 for the first list item in an ordered list.
389
390     This can't be expressed directly in SGML due to case folding.
391 -->
392
393 <!ENTITY % OLStyle "CDATA" -- constrained to: [1|a|A|i|I] -->
394
395 <!ATTLIST OL -- ordered lists --
396         type      %OLStyle   #IMPLIED   -- numbering style --
397         start     NUMBER     #IMPLIED   -- starting sequence number --
398         compact  (compact)   #IMPLIED   -- reduced interitem spacing --
399         >
400
401 <!-- bullet styles -->
402
403 <!ENTITY % ULStyle "disc|square|circle">
404
405 <!ATTLIST UL -- unordered lists --
406         type    (%ULStyle)   #IMPLIED   -- bullet style --
407         compact (compact)    #IMPLIED   -- reduced interitem spacing --
408         >
409
410 <!ELEMENT (DIR|MENU) - -  (LI)+ -(%block)>
411 <!ATTLIST DIR
412         compact (compact) #IMPLIED
413         >
414 <!ATTLIST MENU
415         compact (compact) #IMPLIED
416         >
417
418 <!-- <DIR>              Directory list                  -->
419 <!-- <DIR COMPACT>      Compact list style              -->
420 <!-- <MENU>             Menu list                       -->
421 <!-- <MENU COMPACT>     Compact list style              -->
422
423 <!-- The type attribute can be used to change the bullet style
424      in unordered lists and the numbering style in ordered lists -->
425
426 <!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
427
428 <!ELEMENT LI - O %flow -- list item -->
429 <!ATTLIST LI
430         type    %LIStyle     #IMPLIED   -- list item style --
431         value    NUMBER      #IMPLIED   -- reset sequence number --
432         >
433
434 <!--================ Forms ===============================================-->
435
436 <!ELEMENT FORM - - %body.content -(FORM)>
437 <!ATTLIST FORM
438         action %URL #IMPLIED  -- server-side form handler --
439         method (%HTTP-Method) GET -- see HTTP specification --
440         enctype %Content-Type; "application/x-www-form-urlencoded"
441         >
442
443 <!ENTITY % InputType
444         "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
445             | RESET | FILE | HIDDEN | IMAGE)">
446
447 <!ELEMENT INPUT - O EMPTY>
448 <!ATTLIST INPUT
449         type %InputType TEXT     -- what kind of widget is needed --
450         name  CDATA #IMPLIED     -- required for all but submit and reset --
451         value CDATA #IMPLIED     -- required for radio and checkboxes --
452         checked (checked) #IMPLIED -- for radio buttons and check boxes --
453         size CDATA  #IMPLIED     -- specific to each type of field --
454         maxlength NUMBER #IMPLIED
455         src   %URL  #IMPLIED     -- for fields with background images --
456         align  (top|middle|bottom|left|right) top -- image alignment --
457         >
458
459 <!ELEMENT SELECT - - (OPTION+)>
460 <!ATTLIST SELECT
461         name CDATA #REQUIRED
462         size NUMBER #IMPLIED
463         multiple (multiple) #IMPLIED
464         >
465
466 <!ELEMENT OPTION - O (#PCDATA)*>
467 <!ATTLIST OPTION
468         selected (selected) #IMPLIED
469         value  CDATA  #IMPLIED -- defaults to element content --
470         >
471
472 <!-- Multi-line text input field. -->
473
474 <!ELEMENT TEXTAREA - - (#PCDATA)*>
475 <!ATTLIST TEXTAREA
476         name CDATA #REQUIRED
477         rows NUMBER #REQUIRED
478         cols NUMBER #REQUIRED
479         >
480
481 <!--======================= Tables ========================================-->
482
483 <!-- Widely deployed subset of the full table standard, see RFC 1942
484      e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->
485
486 <!-- horizontal placement of table relative to window -->
487 <!ENTITY % Where "(left|center|right)">
488
489 <!-- horizontal alignment attributes for cell contents -->
490 <!ENTITY % cell.halign
491         "align  (left|center|right) #IMPLIED"
492         >
493
494 <!-- vertical alignment attributes for cell contents -->
495 <!ENTITY % cell.valign
496         "valign  (top|middle|bottom)  #IMPLIED"
497         >
498
499 <!ELEMENT table - - (caption?, tr+)>
500 <!ELEMENT tr - O (th|td)*>
501 <!ELEMENT (th|td) - O %body.content>
502
503 <!ATTLIST table                       -- table element --
504         align     %Where;   #IMPLIED  -- table position relative to window --
505         width     %Length   #IMPLIED  -- table width relative to window --
506         border    %Pixels   #IMPLIED  -- controls frame width around table --
507         cellspacing %Pixels #IMPLIED  -- spacing between cells --
508         cellpadding %Pixels #IMPLIED  -- spacing within cells --
509         >
510
511 <!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->
512 <!ATTLIST CAPTION
513         align (top|bottom) #IMPLIED
514         >
515
516 <!ATTLIST tr                       -- table row --
517         %cell.halign;              -- horizontal alignment in cells --
518         %cell.valign;              -- vertical alignment in cells --
519         >
520
521 <!ATTLIST (th|td)                  -- header or data cell --
522         nowrap (nowrap)  #IMPLIED  -- suppress word wrap --
523         rowspan NUMBER   1         -- number of rows spanned by cell --
524         colspan NUMBER   1         -- number of cols spanned by cell --
525         %cell.halign;              -- horizontal alignment in cell --
526         %cell.valign;              -- vertical alignment in cell --
527         width   %Pixels  #IMPLIED  -- suggested width for cell --
528         height  %Pixels  #IMPLIED  -- suggested height for cell --
529         >
530
531 <!--================ Document Head ========================================-->
532
533 <!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->
534
535 <!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
536
537 <!ELEMENT HEAD O O  (%head.content) +(%head.misc)>
538
539 <!ELEMENT TITLE - -  (#PCDATA)* -(%head.misc)
540           -- The TITLE element is not considered part of the flow of text.
541              It should be displayed, for example as the page header or
542              window title.
543           -->
544
545 <!ELEMENT ISINDEX - O EMPTY>
546 <!ATTLIST ISINDEX
547         prompt CDATA #IMPLIED -- prompt message -->
548
549 <!--
550     The BASE element gives an absolute URL for dereferencing relative
551     URLs, e.g.
552
553          <BASE href="http://foo.com/index.html">
554          ...
555          <IMG SRC="images/bar.gif">
556
557     The image is deferenced to
558
559          http://foo.com/images/bar.gif
560
561    In the absence of a BASE element the document URL should be used.
562    Note that this is not necessarily the same as the URL used to
563    request the document, as the base URL may be overridden by an HTTP
564    header accompanying the document.
565 -->
566
567 <!ELEMENT BASE - O EMPTY>
568 <!ATTLIST BASE
569         href %URL  #REQUIRED
570         >
571
572 <!ELEMENT META - O EMPTY -- Generic Metainformation -->
573 <!ATTLIST META
574         http-equiv  NAME    #IMPLIED  -- HTTP response header name  --
575         name        NAME    #IMPLIED  -- metainformation name       --
576         content     CDATA   #REQUIRED -- associated information     --
577         >
578
579 <!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
580
581 <!ELEMENT STYLE  - - (#PCDATA)*  -(%head.misc) -- style info -->
582 <!ELEMENT SCRIPT - - (#PCDATA)*  -(%head.misc) -- script statements -->
583
584 <!--================ Document Structure ===================================-->
585
586 <!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
587
588 <![ %HTML.Deprecated [
589     <!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
590 ]]>
591
592 <!ENTITY % html.content "HEAD, BODY">
593
594 <!ELEMENT HTML O O  (%html.content)>
595 <!ATTLIST HTML
596         %version.attr;
597         >
598