1 |
<!-- html.dtd |
2 |
|
3 |
Document Type Definition for the HyperText Markup Language (HTML DTD) |
4 |
|
5 |
$Id: html.dtd,v 1.19 1994/09/23 22:46:51 connolly Exp $ |
6 |
|
7 |
Author: Daniel W. Connolly <connolly@hal.com> |
8 |
See Also: html.decl, html-0.dtd, html-1.dtd |
9 |
http://www.hal.com/%7Econnolly/html-spec/index.html |
10 |
http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html |
11 |
--> |
12 |
|
13 |
<!ENTITY % HTML.Version |
14 |
"-//IETF//DTD HTML//EN//2.0" |
15 |
|
16 |
-- Typical usage: |
17 |
|
18 |
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
19 |
<html> |
20 |
... |
21 |
</html> |
22 |
-- |
23 |
> |
24 |
|
25 |
|
26 |
<!--================== Feature Test Entities ==============================--> |
27 |
|
28 |
<!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 |
<!ENTITY % Content-Type "CDATA" |
54 |
-- meaning a MIME content type, as per RFC1521 |
55 |
--> |
56 |
|
57 |
<!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 |
|
260 |
<!ELEMENT BODY O O %body.content> |
261 |
|
262 |
<!ELEMENT BLOCKQUOTE - - %body.content> |
263 |
|
264 |
<![ %HTML.Recommended [ |
265 |
<!ENTITY % address.content "(%text)*"> |
266 |
]]> |
267 |
<!ENTITY % address.content "(%text|P)*"> |
268 |
<!ELEMENT ADDRESS - - %address.content> |
269 |
|
270 |
|
271 |
<!--================ Forms ===============================================--> |
272 |
|
273 |
<![ %HTML.Forms [ |
274 |
|
275 |
<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)> |
276 |
<!ATTLIST FORM |
277 |
ACTION %URI #REQUIRED |
278 |
METHOD (%HTTP-Method) GET |
279 |
ENCTYPE %Content-Type; "application/x-www-form-urlencoded" |
280 |
> |
281 |
|
282 |
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | |
283 |
RADIO | SUBMIT | RESET | |
284 |
IMAGE | HIDDEN )"> |
285 |
<!ELEMENT INPUT - O EMPTY> |
286 |
<!ATTLIST INPUT |
287 |
TYPE %InputType TEXT |
288 |
NAME CDATA #IMPLIED -- required for all but submit and reset -- |
289 |
VALUE CDATA #IMPLIED |
290 |
SRC %URI #IMPLIED -- for image inputs -- |
291 |
CHECKED (CHECKED) #IMPLIED |
292 |
SIZE CDATA #IMPLIED -- like NUMBERS, |
293 |
but delimited with comma, not space -- |
294 |
MAXLENGTH NUMBER #IMPLIED |
295 |
ALIGN (top|middle|bottom) #IMPLIED |
296 |
> |
297 |
|
298 |
<!ELEMENT SELECT - - (OPTION+)> |
299 |
<!ATTLIST SELECT |
300 |
NAME CDATA #REQUIRED |
301 |
SIZE NUMBER #IMPLIED |
302 |
MULTIPLE (MULTIPLE) #IMPLIED |
303 |
> |
304 |
|
305 |
<!ELEMENT OPTION - O (#PCDATA)> |
306 |
<!ATTLIST OPTION |
307 |
SELECTED (SELECTED) #IMPLIED |
308 |
VALUE CDATA #IMPLIED |
309 |
> |
310 |
|
311 |
<!ELEMENT TEXTAREA - - (#PCDATA)> |
312 |
<!ATTLIST TEXTAREA |
313 |
NAME CDATA #REQUIRED |
314 |
ROWS NUMBER #REQUIRED |
315 |
COLS NUMBER #REQUIRED |
316 |
> |
317 |
|
318 |
]]> |
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 |
|
373 |
|