/[suikacvs]/test/html.dtd
Suika

Contents of /test/html.dtd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide annotations) (download)
Wed May 18 17:23:29 1994 UTC (30 years, 6 months ago) by connolly
Branch: MAIN
CVS Tags: timbl-review
Branch point for: terry
Changes since 1.12: +23 -10 lines
diff -b -w -u -r1.5 html.decl
diff -b -w -u -r1.12 html.dtd

* Revised comments
* Moved HTML.Version to top of html.dtd

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24