/[pub]/test/html.dtd
Suika

Contents of /test/html.dtd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (show annotations) (download)
Thu Apr 14 01:23:26 1994 UTC (30 years ago) by connolly
Branch: MAIN
Changes since 1.8: +31 -10 lines
After testing a few more files, inc. some from ORA GNN.

Added a few new feature test entities:
> 	-- The GO element used in ORA GNN. What is this??? -->
>
> <!ENTITY % HTML.aEndOmissable "IGNORE"
> 	-- infer </A> tags, as in ORA GNN stuff -->
>
> <!ENTITY % HTML.isindexAtEnd "IGNORE"
> 	-- allow ISINDEX after HEAD and BODY, as in ORA GNN stuff -->

NEXTID is "on" by default -- it doesn't hurt anything, I guess.

ISINDEX is allowed in %body-content if HTML.forms is "on"
@@ Hmmm... this means one must search the whole doc, not just
the head, to see if it's an index. Bad.

Expanded the BLOCKQUOTE content model to include all sorts
of %block stuff -- not just P and ADDRESS.

Fixed missing * in FORM content model.

1 <!-- html.dtd
2
3 Document Type Definition for the HyperText Markup Language
4 as used by the World Wide Web application (HTML DTD).
5
6 $Id: html.dtd,v 1.8 1994/04/09 01:02:10 connolly Exp $
7 -->
8
9 <!-- Feature Test Entities -->
10
11 <!-- To use these, write your document like:
12 <!DOCTYPE HTML [
13 <!ENTITY % HTML.Optional "INCLUDE">
14 <!ENTITY % html PUBLIC "-//connolly hal.com//DTD WWW HTML 1.8//EN">
15 %html;
16 ]>
17 <TITLE>Here's my doc</TITLE>
18 <p>It uses lots of optional features
19
20 In practice, if you're using sgmls to validate your docs,
21 you can stick the <!DOCTYPE [...]> in a separate file and
22 validate with:
23 sgmls -s doctype.sgml foo.html
24 -->
25
26 <!ENTITY % HTML.Minimal "IGNORE">
27 <!ENTITY % HTML.Obsolete "IGNORE">
28
29 <![ %HTML.Minimal [
30 <!ENTITY % HTML.linkRelationships "IGNORE">
31 <!ENTITY % HTML.linkMethods "IGNORE">
32 <!ENTITY % HTML.linkRedundantInfo "IGNORE">
33 <!ENTITY % HTML.forms "IGNORE">
34 <!-- @@ nested lists -->
35 <!-- @@ phrases -->
36 ]]>
37
38 <![ %HTML.Obsolete [
39 <!ENTITY % HTML.PLAINTEXT "INCLUDE">
40 <!ENTITY % HTML.titleCDATA "INCLUDE">
41 <!ENTITY % HTML.litCDATA "INCLUDE">
42 <!ENTITY % HTML.font-phrase "INCLUDE">
43 <!ENTITY % HTML.anchorNameCDATA "INCLUDE">
44 <!ENTITY % HTML.pSeparator "INCLUDE">
45 ]]>
46
47 <!ENTITY % HTML.GO "IGNORE"
48 -- The GO element used in ORA GNN. What is this??? -->
49
50 <!ENTITY % HTML.aEndOmissable "IGNORE"
51 -- infer </A> tags, as in ORA GNN stuff -->
52
53 <!ENTITY % HTML.isindexAtEnd "IGNORE"
54 -- allow ISINDEX after HEAD and BODY, as in ORA GNN stuff -->
55
56 <!ENTITY % HTML.pSeparator "IGNORE"
57 -- use P element as paragraph separator, rather that container.
58 This means not all paragraphs need to start with a <P> tag.
59 -->
60
61 <!ENTITY % HTML.linkRelationships "INCLUDE"
62 -- Adding markup to links to show the relationship between
63 ends of a link
64 see http://info.cern.ch/hypertext/WWW/MarkUp/Relationships.html
65 -->
66
67 <!ENTITY % HTML.linkMethods "INCLUDE"
68 -- Adding markup to links to show the methods supported
69 by the referent object
70 see http://info.cern.ch/hypertext/WWW/MarkUp/Elements/A.html
71 -->
72
73 <!ENTITY % HTML.linkRedundantInfo "INCLUDE"
74 -- Adding markup to links to give redundant information
75 like URN, content type, title...
76 -->
77
78 <!ENTITY % HTML.anchorNameCDATA "IGNORE"
79 -- Anchor names should be distinct. SGML parser can validate
80 this if the NAME attribute of the A element is declared as ID.
81 But that restricts the syntax of an anchor name to an SGML name,
82 i.e. a letter followed by letters, numbers, periods and dashes,
83 up to NAMELEN (34) characters long.
84 -->
85
86 <!ENTITY % HTML.PLAINTEXT "IGNORE"
87 -- Support for the <PLAINTEXT> tag as a sign of the
88 end of th HTML data stream and the beginning of a stream
89 of text/plain data
90 -->
91
92 <!ENTITY % HTML.titleCDATA "IGNORE"
93 -- Is the TITLE element #PCDATA, RCDATA, or CDATA content?
94 On Mosaic, it's #PCDATA, but in the linemode browser,
95 it's more like CDATA, but not quite.
96 -->
97
98 <!ENTITY % HTML.NEXTID "INCLUDE"
99 -- Used by the NeXT implementation to keep track of the
100 next anchor id to use
101 -->
102
103 <!ENTITY % HTML.font-phrase "IGNORE"
104 -- allow B, I, TT, U outside PRE,
105 CITE, VAR, etc. inside PRE
106 -->
107
108 <!ENTITY % HTML.litCDATA "IGNORE"
109 -- treat XMP, LISTING as CDATA, as per linemodeWWW
110 -->
111
112 <!ENTITY % HTML.forms "INCLUDE"
113 -- Support for forms as per
114 http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html
115 -->
116
117 <!-- DTD definitions -->
118
119 <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
120 <!ENTITY % list " UL | OL | DIR | MENU ">
121 <!ENTITY % literal " XMP | LISTING ">
122
123 <!ENTITY % URI "CDATA"
124 -- The term URI means a CDATA attribute
125 whose value is a Uniform Resource Identifier,
126 as defined by
127 "Universal Resource Identifiers" by Tim Berners-Lee
128 aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
129
130 Note that CDATA attributes are limited by the LITLEN
131 capacity (1024 in the current version of html.decl),
132 so that URIs in HTML have a bounded length.
133 -->
134
135 <!ENTITY % Content-Type "CDATA"
136 -- meaning a MIME content type, as per RFC1341 or any of its updates.
137 -->
138
139 <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
140 <!ENTITY % anchor-name "ID">
141
142 <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
143 REL CDATA #IMPLIED -- forward relationship type --
144 REV CDATA #IMPLIED -- reversed relationship type
145 to referent data:
146
147 PARENT CHILD, SIBLING, NEXT, TOP,
148 DEFINITION, UPDATE, ORIGINAL etc. --
149 "> ]]>
150 <!ENTITY % linkRelAttrs "">
151
152 <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
153 URN CDATA #IMPLIED -- universal resource number --
154
155 TITLE CDATA #IMPLIED -- advisory only --
156 "> ]]>
157 <!ENTITY % linkRedundantAttrs "">
158
159 <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs "
160 METHODS NAMES #IMPLIED -- supported public methods of the object:
161 TEXTSEARCH, GET, HEAD, ... --
162 "> ]]>
163 <!ENTITY % linkMethodAttrs "">
164
165 <!ENTITY % linkattributes
166 "NAME %anchor-name #IMPLIED
167 HREF %URI; #IMPLIED
168 %linkRelAttrs;
169 %linkRedundantAttrs;
170 %linkMethodAttrs;
171 ">
172
173
174 <!-- Document Element -->
175
176
177 <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]>
178 <!ENTITY % obsolete-plaintext "">
179 <![ %HTML.isindexAtEnd [ <!ENTITY % end-isindex ", ISINDEX?"> ]]>
180 <!ENTITY % end-isindex "">
181
182 <!ENTITY % html-content "HEAD, BODY %obsolete-plaintext; %end-isindex">
183 <!ELEMENT HTML O O (%html-content)>
184
185 <![ %HTML.NEXTID [ <!ENTITY % head-content "TITLE? & ISINDEX? & LINK* & BASE?
186 & NEXTID?"> ]]>
187 <!ENTITY % head-content "TITLE & ISINDEX? & LINK* & BASE?">
188 <!ELEMENT HEAD O O (%head-content)>
189
190 <![ %HTML.titleCDATA [ <!ENTITY % title-content "CDATA"> ]]>
191 <!ENTITY % title-content "(#PCDATA)">
192 <!ELEMENT TITLE - - %title-content
193 -- The TITLE element is not considered part of the flow of text.
194 It should be displayed, for example as the page header or
195 window title.
196 -->
197
198 <!ELEMENT ISINDEX - O EMPTY
199 -- WWW clients should offer the option to perform a search on
200 documents containing ISINDEX.
201 -->
202
203 <!ELEMENT NEXTID - O EMPTY>
204 <!ATTLIST NEXTID N %anchor-name #REQUIRED
205 -- The number should be a name suitable for use
206 for the ID of a new element. When used, the value
207 has its numeric part incremented. EG Z67 becomes Z68
208 -->
209 <!ELEMENT LINK - O EMPTY>
210 <!ATTLIST LINK
211 %linkattributes>
212
213 <!ELEMENT BASE - O EMPTY -- Reference context for URIs -->
214 <!ATTLIST BASE
215
216 HREF %URI; #IMPLIED
217
218 >
219
220 <!ENTITY % font "TT | B | I | U ">
221 <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | KEY | VAR | DFN | CITE">
222
223 <![ %HTML.font-phrase [
224 <!ENTITY % obsolete-font "| %font">
225 <!ENTITY % obsolete-phrase "| %phrase">
226 ]]>
227 <!ENTITY % obsolete-font "">
228 <!ENTITY % obsolete-phrase "">
229 <![ %HTML.pSeparator [
230 <!ENTITY % obsolete-p "| P">
231 ]]>
232 <!ENTITY % obsolete-p "">
233
234 <!ENTITY % inline "%phrase %obsolete-font">
235 <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
236
237 <![ %HTML.GO [
238 <!ELEMENT GO - O EMPTY>
239 <!ENTITY % go-text "| GO">
240 ]]>
241 <!ENTITY % go-text "">
242
243 <!ENTITY % text "#PCDATA | IMG | %inline | BR %go-text %obsolete-p">
244
245 <!ENTITY % htext "A | %text" -- Plus links, no structure -->
246
247 <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
248 <!ENTITY % font-content "#PCDATA">
249 <!ELEMENT (%font;) - - (%font-content;)>
250
251 <!ELEMENT (%phrase;) - - (%htext)+>
252
253 <!ENTITY % pre "PRE | XMP | LISTING">
254
255 <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]>
256 <!ENTITY % block-form "">
257
258 <![ %HTML.pSeparator [
259 <!ENTITY % obsolete-htext "| %htext">
260 <!ENTITY % block-p "">
261 ]]>
262 <!ENTITY % obsolete-htext "| A">
263 <!ENTITY % block-p "| P ">
264
265 <!ENTITY % block "HR | %list | DL
266 | %pre | BLOCKQUOTE | ADDRESS
267 %block-form %block-p">
268
269
270 <!ENTITY % body-content "%heading | %block %obsolete-htext">
271 <!ELEMENT BODY O O (%body-content)*>
272
273
274 <![ %HTML.aEndOmissable [ <!ENTITY % a-end "O"> ]]>
275 <!ENTITY % a-end "-">
276
277 <!ELEMENT A - %a-end (%heading|%block|%text)+ -(A)
278 -- @# Technically, this allows silliness like:
279 <H2><A>xyz<H1>h1</H1></A></H2>
280 The right way to do anchors outside of %htext is more like:
281 <as id=z1><H2>lkjlkj</h2><ae start=z1>
282 -->
283 <!ATTLIST A
284 %linkattributes;
285 >
286
287 <!ELEMENT IMG - O EMPTY -- Embedded image -->
288 <!ATTLIST IMG
289 SRC %URI; #IMPLIED -- URI of document to embed --
290 ALT CDATA #IMPLIED
291 ALIGN (top|middle|bottom) #IMPLIED
292 ISMAP (ISMAP) #IMPLIED
293 >
294
295
296 <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
297 <!ENTITY % p-content "(%htext)+">
298 <!ELEMENT P - O %p-content>
299 <!ELEMENT HR - O EMPTY -- horizontal rule -->
300 <!ELEMENT BR - O EMPTY -- @# BR -> &br; -->
301
302 <!ELEMENT ( %heading ) - - (%htext;)+>
303
304 <!ELEMENT DL - - (DT*, DD?)+>
305 <!ATTLIST DL
306 STYLE (COMPACT) #IMPLIED>
307
308 <!ELEMENT DT - O (%htext)+>
309 <!ELEMENT DD - O (%htext|%block)+>
310
311 <!ELEMENT (%list) - - (LI)+>
312
313 <!ELEMENT LI - O (%htext|%block)+>
314
315 <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
316 -- for quoting some other source -->
317
318 <!ELEMENT ADDRESS - - (%htext;)+>
319
320 <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
321 <!ATTLIST PRE
322 WIDTH NUMBER #implied
323 >
324
325 <!-- Mnemonic character entities. -->
326
327 <!ENTITY % ISOlat1 PUBLIC
328 "ISO 8879:1986//ENTITIES Added Latin 1//EN">
329 %ISOlat1;
330
331 <!ENTITY amp "&#38;" -- ampersand -->
332 <!ENTITY gt "&#62;" -- greater than -->
333 <!ENTITY lt "&#60;" -- less than -->
334 <!ENTITY nbsp "<? nonbreaking-space>">
335 <!-- @# should add entites for processing instructions
336 for line break, centering, etc. -->
337
338
339 <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]>
340 <!ENTITY % lit-content "RCDATA">
341 <!ELEMENT (%literal) - - %lit-content>
342
343 <![ %HTML.PLAINTEXT [
344 <!ELEMENT PLAINTEXT - O EMPTY>
345 ]]>
346
347
348 <!-- Forms -->
349 <![ %HTML.forms [
350
351 <!ENTITY % HTTP-Method "(GET | POST)">
352 <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
353 <!ATTLIST FORM
354 ACTION %URI #REQUIRED
355 METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --
356 ENCTYPE %Content-Type; #IMPLIED
357 >
358
359 <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
360 RADIO | SUBMIT | RESET |
361 IMAGE | HIDDEN )">
362 <!ELEMENT INPUT - O EMPTY>
363 <!ATTLIST INPUT
364 TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --
365 NAME CDATA #IMPLIED -- required for all but submit and reset --
366 VALUE CDATA #IMPLIED
367 SRC %URI #IMPLIED -- for image inputs --
368 STATE (CHECKED) #IMPLIED
369 SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --
370 MAXLENGTH NUMBER #IMPLIED
371 ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--
372 >
373
374 <!ELEMENT SELECT - - (OPTION+)>
375 <!ATTLIST SELECT
376 NAME CDATA #REQUIRED
377 SIZE NUMBER #IMPLIED
378 SELECTIONS (MULTIPLE) #IMPLIED
379 >
380
381 <!ELEMENT OPTION - O (#PCDATA)>
382 <!ATTLIST OPTION
383 STATE (SELECTED) #IMPLIED
384 VALUE CDATA #IMPLIED
385 >
386
387 <!ELEMENT TEXTAREA - - (#PCDATA)>
388 <!ATTLIST TEXTAREA
389 NAME CDATA #REQUIRED
390 ROWS NUMBER #REQUIRED -- @#implied? --
391 COLS NUMBER #REQUIRED
392 >
393 ]]>
394

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24