/[pub]/test/html.dtd
Suika

Contents of /test/html.dtd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (show annotations) (download)
Sat Apr 30 03:17:56 1994 UTC (30 years ago) by connolly
Branch: MAIN
Changes since 1.10: +32 -13 lines
Makefile:
* doctype-mosaic.sgml is obsolete: The "default" version of
the DTD parses everything now... (after a few tweaks here and there)

html.dtd:
* Changed BODY to allow %htext, making <P> start tags not necessary,
but keeping <P> as a container. This means I don't really need
a separate mosaid mode any more.

* Moved several of the features that are incompatible with extant
docs under a %HTML.Prescriptive feature set.

* Added HTML.Version entity, for use by code generation tools.
This entity varies according to the feature set used.

* Changed the "default" mode of some features:
+<!ENTITY % HTML.anchorNameCDATA "INCLUDE"
+<!ENTITY % HTML.PLAINTEXT "INCLUDE"
+<!ENTITY % HTML.font-phrase "INCLUDE"

* Changed several attribute names to coincide with their
values, for a hacked version of attribute minimization
support in libwww.

* Added %block to ADDRESS content


* Added a #DEFAULT entity so that undefined entities are legal
(Hmmm...)

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24