1 |
connolly |
1.7 |
<!-- html.dtd |
2 |
|
|
|
3 |
connolly |
1.16 |
Document Type Definition for the HyperText Markup Language (HTML DTD) |
4 |
connolly |
1.5 |
|
5 |
connolly |
1.19 |
$Id: html.dtd,v 1.18 1994/07/20 16:24:43 connolly Exp $ |
6 |
connolly |
1.11 |
|
7 |
connolly |
1.13 |
Author: Daniel W. Connolly <connolly@hal.com> |
8 |
connolly |
1.16 |
See Also: html.decl, html-0.dtd, html-1.dtd |
9 |
|
|
http://www.hal.com/%7Econnolly/html-spec/index.html |
10 |
connolly |
1.14 |
http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html |
11 |
connolly |
1.2 |
--> |
12 |
|
|
|
13 |
connolly |
1.18 |
<!ENTITY % HTML.Version |
14 |
connolly |
1.19 |
"-//IETF//DTD HTML//EN//2.0" |
15 |
connolly |
1.13 |
|
16 |
|
|
-- Typical usage: |
17 |
|
|
|
18 |
connolly |
1.19 |
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
19 |
connolly |
1.13 |
<html> |
20 |
|
|
... |
21 |
|
|
</html> |
22 |
|
|
-- |
23 |
|
|
> |
24 |
|
|
|
25 |
|
|
|
26 |
connolly |
1.19 |
<!--================== Feature Test Entities ==============================--> |
27 |
connolly |
1.8 |
|
28 |
connolly |
1.19 |
<!ENTITY % HTML.Recommended "IGNORE" |
29 |
|
|
-- Certain features of the language are necessary for compatibility |
30 |
|
|
with widespread usage, but they may compromise the structural |
31 |
|
|
integrity of a document. This feature test entity enables |
32 |
|
|
a more prescriptive document type definition that eliminates |
33 |
|
|
the above features. |
34 |
|
|
--> |
35 |
|
|
|
36 |
|
|
<![ %HTML.Recommended [ |
37 |
|
|
<!ENTITY % HTML.Deprecated "IGNORE"> |
38 |
|
|
]]> |
39 |
|
|
|
40 |
|
|
<!ENTITY % HTML.Deprecated "INCLUDE" |
41 |
|
|
-- Certain features of the language are necessary for compatibility |
42 |
|
|
with earlier versions of the specification, but they tend |
43 |
|
|
to be used an implemented inconsistently, and their use is |
44 |
|
|
deprecated. This feature test entity enables a document type |
45 |
|
|
definition that eliminates these features. |
46 |
|
|
--> |
47 |
|
|
|
48 |
|
|
<!ENTITY % HTML.Highlighting "INCLUDE"> |
49 |
|
|
<!ENTITY % HTML.Forms "INCLUDE"> |
50 |
|
|
|
51 |
|
|
<!--================== Imported Names =====================================--> |
52 |
|
|
|
53 |
connolly |
1.8 |
<!ENTITY % Content-Type "CDATA" |
54 |
connolly |
1.12 |
-- meaning a MIME content type, as per RFC1521 |
55 |
connolly |
1.8 |
--> |
56 |
connolly |
1.2 |
|
57 |
connolly |
1.19 |
<!ENTITY % HTTP-Method "GET | POST" |
58 |
|
|
-- as per HTTP specification |
59 |
|
|
--> |
60 |
|
|
|
61 |
|
|
<!ENTITY % URI "CDATA" |
62 |
|
|
-- The term URI means a CDATA attribute |
63 |
|
|
whose value is a Uniform Resource Identifier, |
64 |
|
|
as defined by |
65 |
|
|
"Universal Resource Identifiers" by Tim Berners-Lee |
66 |
|
|
aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html |
67 |
|
|
aka RFC 1630 |
68 |
|
|
|
69 |
|
|
Note that CDATA attributes are limited by the LITLEN |
70 |
|
|
capacity (1024 in the current version of html.decl), |
71 |
|
|
so that URIs in HTML have a bounded length. |
72 |
|
|
|
73 |
|
|
--> |
74 |
|
|
|
75 |
|
|
|
76 |
|
|
<!-- DTD "macros" --> |
77 |
|
|
|
78 |
|
|
<!ENTITY % heading "H1|H2|H3|H4|H5|H6"> |
79 |
|
|
|
80 |
|
|
<!ENTITY % list " UL | OL | DIR | MENU " > |
81 |
|
|
|
82 |
|
|
|
83 |
|
|
<!--================ Character mnemonic entities ==========================--> |
84 |
|
|
|
85 |
|
|
<!ENTITY % ISOlat1 PUBLIC |
86 |
|
|
"-//IETF//ENTITIES Added Latin 1 for HTML//EN"> |
87 |
|
|
%ISOlat1; |
88 |
|
|
|
89 |
|
|
<!ENTITY amp CDATA "&" -- ampersand --> |
90 |
|
|
<!ENTITY gt CDATA ">" -- greater than --> |
91 |
|
|
<!ENTITY lt CDATA "<" -- less than --> |
92 |
|
|
<!ENTITY quot CDATA """ -- double quote --> |
93 |
|
|
|
94 |
|
|
|
95 |
|
|
<!--=================== Text Markup =======================================--> |
96 |
|
|
|
97 |
|
|
<![ %HTML.Highlighting [ |
98 |
|
|
|
99 |
|
|
<!ENTITY % font " TT | B | I "> |
100 |
|
|
|
101 |
|
|
<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE "> |
102 |
|
|
|
103 |
|
|
<!ENTITY % text "#PCDATA | A | IMG | BR | %phrase | %font"> |
104 |
|
|
|
105 |
|
|
<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase"> |
106 |
|
|
|
107 |
|
|
<!ELEMENT (%font;|%phrase) - - (%text)+> |
108 |
|
|
|
109 |
|
|
]]> |
110 |
|
|
|
111 |
|
|
<!ENTITY % text "#PCDATA | A | IMG | BR"> |
112 |
|
|
|
113 |
|
|
<!ELEMENT BR - O EMPTY> |
114 |
|
|
|
115 |
|
|
|
116 |
|
|
<!--================== Link Markup ========================================--> |
117 |
|
|
|
118 |
|
|
<![ %HTML.Recommended [ |
119 |
|
|
<!ENTITY % linkName "ID"> |
120 |
|
|
]]> |
121 |
|
|
|
122 |
|
|
<!ENTITY % linkName "CDATA"> |
123 |
|
|
|
124 |
|
|
<!ENTITY % linkType "NAME" |
125 |
|
|
-- a list of these will be specified at a later date --> |
126 |
|
|
|
127 |
|
|
<!ENTITY % linkExtraAttributes |
128 |
|
|
"REL %linkType #IMPLIED -- forward relationship type -- |
129 |
|
|
REV %linkType #IMPLIED -- reversed relationship type |
130 |
|
|
to referent data -- |
131 |
|
|
URN CDATA #IMPLIED -- universal resource number -- |
132 |
|
|
|
133 |
|
|
TITLE CDATA #IMPLIED -- advisory only -- |
134 |
|
|
METHODS NAMES #IMPLIED -- supported public methods of the object: |
135 |
|
|
TEXTSEARCH, GET, HEAD, ... -- |
136 |
|
|
"> |
137 |
|
|
|
138 |
|
|
<![ %HTML.Recommended [ |
139 |
|
|
<!ENTITY % A.content "(%text)+" |
140 |
|
|
-- <H1><a name="xxx">Heading</a></H1> |
141 |
|
|
is preferred to |
142 |
|
|
<a name="xxx"><H1>Heading</H1></a> |
143 |
|
|
--> |
144 |
|
|
]]> |
145 |
|
|
|
146 |
|
|
<!ENTITY % A.content "(%heading|%text)+"> |
147 |
|
|
|
148 |
|
|
<!ELEMENT A - - %A.content -(A)> |
149 |
|
|
|
150 |
|
|
<!ATTLIST A |
151 |
|
|
HREF %URI #IMPLIED |
152 |
|
|
NAME %linkName #IMPLIED |
153 |
|
|
%linkExtraAttributes; |
154 |
|
|
> |
155 |
|
|
|
156 |
|
|
<!--=================== Images ============================================--> |
157 |
|
|
|
158 |
|
|
<!ENTITY % img.alt.default "#IMPLIED" |
159 |
|
|
-- ALT attribute required in Level 0 docs --> |
160 |
|
|
|
161 |
|
|
<!ELEMENT IMG - O EMPTY -- Embedded image --> |
162 |
|
|
<!ATTLIST IMG |
163 |
|
|
SRC %URI; #REQUIRED -- URI of document to embed -- |
164 |
|
|
ALT CDATA %img.alt.default; |
165 |
|
|
ALIGN (top|middle|bottom) #IMPLIED |
166 |
|
|
ISMAP (ISMAP) #IMPLIED |
167 |
|
|
> |
168 |
|
|
|
169 |
|
|
|
170 |
|
|
<!--=================== Paragraphs=========================================--> |
171 |
|
|
|
172 |
|
|
<!ELEMENT P - O (%text)+> |
173 |
|
|
|
174 |
|
|
|
175 |
|
|
<!--=================== Headings, Titles, Sections ========================--> |
176 |
|
|
|
177 |
|
|
<!ELEMENT HR - O EMPTY -- horizontal rule --> |
178 |
|
|
|
179 |
|
|
<!ELEMENT ( %heading ) - - (%text;)+> |
180 |
|
|
|
181 |
|
|
<!ELEMENT TITLE - - (#PCDATA) |
182 |
|
|
-- The TITLE element is not considered part of the flow of text. |
183 |
|
|
It should be displayed, for example as the page header or |
184 |
|
|
window title. |
185 |
|
|
--> |
186 |
|
|
|
187 |
|
|
|
188 |
|
|
<!--=================== Text Flows ========================================--> |
189 |
|
|
|
190 |
|
|
<![ %HTML.Forms [ |
191 |
|
|
<!ENTITY % block.forms "| FORM | ISINDEX"> |
192 |
|
|
]]> |
193 |
|
|
|
194 |
|
|
<!ENTITY % block.forms ""> |
195 |
|
|
|
196 |
|
|
<![ %HTML.Deprecated [ |
197 |
|
|
<!ENTITY % preformatted "PRE | XMP | LISTING"> |
198 |
|
|
]]> |
199 |
|
|
|
200 |
|
|
<!ENTITY % preformatted "PRE"> |
201 |
|
|
|
202 |
|
|
<!ENTITY % block "P | %list | DL |
203 |
|
|
| %preformatted |
204 |
|
|
| BLOCKQUOTE %block.forms"> |
205 |
|
|
|
206 |
|
|
<!ENTITY % flow "(%text|%block)*"> |
207 |
|
|
|
208 |
|
|
<!ENTITY % pre.content "#PCDATA | A | HR | BR"> |
209 |
|
|
<!ELEMENT PRE - - (%pre.content)+> |
210 |
|
|
|
211 |
|
|
<!ATTLIST PRE |
212 |
|
|
WIDTH NUMBER #implied |
213 |
|
|
> |
214 |
|
|
|
215 |
|
|
<![ %HTML.Deprecated [ |
216 |
|
|
|
217 |
|
|
<!ENTITY % literal "CDATA" |
218 |
|
|
-- special non-conforming parsing mode where |
219 |
|
|
the only markup signal is the end tag |
220 |
|
|
in full |
221 |
|
|
--> |
222 |
|
|
|
223 |
|
|
<!ELEMENT XMP - - %literal> |
224 |
|
|
<!ELEMENT LISTING - - %literal> |
225 |
|
|
<!ELEMENT PLAINTEXT - O %literal> |
226 |
|
|
|
227 |
|
|
]]> |
228 |
|
|
|
229 |
|
|
|
230 |
|
|
<!--=================== Lists =============================================--> |
231 |
|
|
|
232 |
|
|
<!ELEMENT DL - - (DT*, DD?)+> |
233 |
|
|
<!ATTLIST DL |
234 |
|
|
COMPACT (COMPACT) #IMPLIED> |
235 |
|
|
|
236 |
|
|
<!ELEMENT DT - O (%text)+> |
237 |
|
|
<!ELEMENT DD - O %flow> |
238 |
|
|
|
239 |
|
|
<!ELEMENT (OL|UL) - - (LI)+> |
240 |
|
|
<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)> |
241 |
|
|
<!ATTLIST (%list) |
242 |
|
|
COMPACT (COMPACT) #IMPLIED> |
243 |
|
|
|
244 |
|
|
<!ELEMENT LI - O %flow> |
245 |
|
|
|
246 |
|
|
<!--=================== Document Body =====================================--> |
247 |
|
|
|
248 |
|
|
<![ %HTML.Recommended [ |
249 |
|
|
<!ENTITY % body.content "(%heading|%block|HR|ADDRESS)*"> |
250 |
|
|
-- <h1>Heading</h1> |
251 |
|
|
<p>Text ... |
252 |
|
|
is preferred to |
253 |
|
|
<h1>Heading</h1> |
254 |
|
|
Text ... |
255 |
|
|
--> |
256 |
|
|
]]> |
257 |
|
|
|
258 |
|
|
<!ENTITY % body.content "(%heading | %text | %block | HR | ADDRESS)*"> |
259 |
connolly |
1.8 |
|
260 |
connolly |
1.19 |
<!ELEMENT BODY O O %body.content> |
261 |
connolly |
1.8 |
|
262 |
connolly |
1.19 |
<!ELEMENT BLOCKQUOTE - - %body.content> |
263 |
connolly |
1.12 |
|
264 |
connolly |
1.19 |
<![ %HTML.Recommended [ |
265 |
|
|
<!ENTITY % address.content "(%text)*"> |
266 |
|
|
]]> |
267 |
|
|
<!ENTITY % address.content "(%text|P)*"> |
268 |
|
|
<!ELEMENT ADDRESS - - %address.content> |
269 |
connolly |
1.12 |
|
270 |
connolly |
1.6 |
|
271 |
connolly |
1.19 |
<!--================ Forms ===============================================--> |
272 |
connolly |
1.3 |
|
273 |
connolly |
1.19 |
<![ %HTML.Forms [ |
274 |
connolly |
1.8 |
|
275 |
connolly |
1.16 |
<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)> |
276 |
connolly |
1.8 |
<!ATTLIST FORM |
277 |
|
|
ACTION %URI #REQUIRED |
278 |
connolly |
1.17 |
METHOD (%HTTP-Method) GET |
279 |
|
|
ENCTYPE %Content-Type; "application/x-www-form-urlencoded" |
280 |
connolly |
1.8 |
> |
281 |
|
|
|
282 |
|
|
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | |
283 |
|
|
RADIO | SUBMIT | RESET | |
284 |
|
|
IMAGE | HIDDEN )"> |
285 |
|
|
<!ELEMENT INPUT - O EMPTY> |
286 |
|
|
<!ATTLIST INPUT |
287 |
connolly |
1.17 |
TYPE %InputType TEXT |
288 |
connolly |
1.8 |
NAME CDATA #IMPLIED -- required for all but submit and reset -- |
289 |
|
|
VALUE CDATA #IMPLIED |
290 |
|
|
SRC %URI #IMPLIED -- for image inputs -- |
291 |
connolly |
1.11 |
CHECKED (CHECKED) #IMPLIED |
292 |
connolly |
1.17 |
SIZE CDATA #IMPLIED -- like NUMBERS, |
293 |
|
|
but delimited with comma, not space -- |
294 |
connolly |
1.8 |
MAXLENGTH NUMBER #IMPLIED |
295 |
connolly |
1.17 |
ALIGN (top|middle|bottom) #IMPLIED |
296 |
connolly |
1.8 |
> |
297 |
|
|
|
298 |
|
|
<!ELEMENT SELECT - - (OPTION+)> |
299 |
|
|
<!ATTLIST SELECT |
300 |
|
|
NAME CDATA #REQUIRED |
301 |
|
|
SIZE NUMBER #IMPLIED |
302 |
connolly |
1.11 |
MULTIPLE (MULTIPLE) #IMPLIED |
303 |
connolly |
1.8 |
> |
304 |
|
|
|
305 |
|
|
<!ELEMENT OPTION - O (#PCDATA)> |
306 |
|
|
<!ATTLIST OPTION |
307 |
connolly |
1.11 |
SELECTED (SELECTED) #IMPLIED |
308 |
connolly |
1.8 |
VALUE CDATA #IMPLIED |
309 |
|
|
> |
310 |
|
|
|
311 |
|
|
<!ELEMENT TEXTAREA - - (#PCDATA)> |
312 |
|
|
<!ATTLIST TEXTAREA |
313 |
|
|
NAME CDATA #REQUIRED |
314 |
connolly |
1.17 |
ROWS NUMBER #REQUIRED |
315 |
connolly |
1.8 |
COLS NUMBER #REQUIRED |
316 |
|
|
> |
317 |
connolly |
1.2 |
|
318 |
connolly |
1.19 |
]]> |
319 |
|
|
|
320 |
|
|
|
321 |
|
|
<!--================ Document Head ========================================--> |
322 |
|
|
|
323 |
|
|
<!ENTITY % head.link "& LINK*"> |
324 |
|
|
|
325 |
|
|
<![ %HTML.Recommended [ |
326 |
|
|
<!ENTITY % head.nextid ""> |
327 |
|
|
]]> |
328 |
|
|
<!ENTITY % head.nextid "& NEXTID?"> |
329 |
|
|
|
330 |
|
|
<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & META* |
331 |
|
|
%head.nextid |
332 |
|
|
%head.link"> |
333 |
|
|
|
334 |
|
|
<!ELEMENT HEAD O O (%head.content)> |
335 |
|
|
|
336 |
|
|
<!ELEMENT LINK - O EMPTY> |
337 |
|
|
<!ATTLIST LINK |
338 |
|
|
HREF %URI #REQUIRED |
339 |
|
|
%linkExtraAttributes; > |
340 |
|
|
|
341 |
|
|
<!ELEMENT ISINDEX - O EMPTY> |
342 |
|
|
|
343 |
|
|
<!ELEMENT BASE - O EMPTY> |
344 |
|
|
<!ATTLIST BASE |
345 |
|
|
HREF %URI; #REQUIRED |
346 |
|
|
> |
347 |
|
|
|
348 |
|
|
<!ELEMENT NEXTID - O EMPTY> |
349 |
|
|
<!ATTLIST NEXTID N %linkName #REQUIRED> |
350 |
|
|
|
351 |
|
|
<!ELEMENT META - O EMPTY -- Generic Metainformation --> |
352 |
|
|
<!ATTLIST META |
353 |
|
|
HTTP-EQUIV NAME #IMPLIED -- HTTP response header name -- |
354 |
|
|
NAME NAME #IMPLIED -- metainformation name -- |
355 |
|
|
CONTENT CDATA #REQUIRED -- associated information -- |
356 |
|
|
> |
357 |
|
|
|
358 |
|
|
|
359 |
|
|
<!--================ Document Structure ===================================--> |
360 |
|
|
|
361 |
|
|
<![ %HTML.Deprecated [ |
362 |
|
|
<!ENTITY % html.content "HEAD, BODY, PLAINTEXT?"> |
363 |
|
|
]]> |
364 |
|
|
<!ENTITY % html.content "HEAD, BODY"> |
365 |
|
|
|
366 |
|
|
<!ELEMENT HTML O O (%html.content)> |
367 |
|
|
<!ENTITY % version.attr "VERSION CDATA #FIXED "%HTML.Version;""> |
368 |
|
|
|
369 |
|
|
<!ATTLIST HTML |
370 |
|
|
%version.attr;-- report DTD version to application -- |
371 |
|
|
> |
372 |
connolly |
1.12 |
|
373 |
|
|
|