/[suikacvs]/test/html.dtd
Suika

Contents of /test/html.dtd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (hide annotations) (download)
Sat Apr 30 03:17:56 1994 UTC (30 years, 7 months 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 connolly 1.7 <!-- html.dtd
2    
3 connolly 1.6 Document Type Definition for the HyperText Markup Language
4     as used by the World Wide Web application (HTML DTD).
5 connolly 1.5
6 connolly 1.11 $Id: html.dtd,v 1.10 1994/04/19 17:24:06 connolly Exp $
7    
8 connolly 1.2 -->
9    
10 connolly 1.8 <!-- 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 connolly 1.11 <!ENTITY % HTML.Prescriptive "IGNORE">
30 connolly 1.8
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 connolly 1.11 <!-- @@ headers inside A -->
39     <!-- @@ nested phrases, fonts -->
40 connolly 1.8 ]]>
41    
42     <![ %HTML.Obsolete [
43     <!ENTITY % HTML.titleCDATA "INCLUDE">
44     <!ENTITY % HTML.litCDATA "INCLUDE">
45     <!ENTITY % HTML.pSeparator "INCLUDE">
46     ]]>
47    
48 connolly 1.11 <![ %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 connolly 1.9 <!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 connolly 1.8 <!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 connolly 1.11 <!ENTITY % HTML.anchorNameCDATA "INCLUDE"
97 connolly 1.8 -- 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 connolly 1.11 <!ENTITY % HTML.PLAINTEXT "INCLUDE"
105 connolly 1.8 -- 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 connolly 1.9 <!ENTITY % HTML.NEXTID "INCLUDE"
117 connolly 1.8 -- Used by the NeXT implementation to keep track of the
118     next anchor id to use
119     -->
120    
121 connolly 1.11 <!ENTITY % HTML.font-phrase "INCLUDE"
122 connolly 1.8 -- 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 connolly 1.3 <!-- DTD definitions -->
136    
137 connolly 1.2 <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
138 connolly 1.6 <!ENTITY % list " UL | OL | DIR | MENU ">
139     <!ENTITY % literal " XMP | LISTING ">
140 connolly 1.2
141 connolly 1.8 <!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 connolly 1.2
157 connolly 1.8 <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
158     <!ENTITY % anchor-name "ID">
159 connolly 1.6
160 connolly 1.8 <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
161 connolly 1.6 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 connolly 1.8 "> ]]>
168     <!ENTITY % linkRelAttrs "">
169 connolly 1.6
170 connolly 1.8 <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
171 connolly 1.6 URN CDATA #IMPLIED -- universal resource number --
172    
173     TITLE CDATA #IMPLIED -- advisory only --
174 connolly 1.8 "> ]]>
175     <!ENTITY % linkRedundantAttrs "">
176 connolly 1.5
177 connolly 1.8 <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs "
178 connolly 1.6 METHODS NAMES #IMPLIED -- supported public methods of the object:
179     TEXTSEARCH, GET, HEAD, ... --
180 connolly 1.8 "> ]]>
181     <!ENTITY % linkMethodAttrs "">
182 connolly 1.3
183 connolly 1.8 <!ENTITY % linkattributes
184     "NAME %anchor-name #IMPLIED
185     HREF %URI; #IMPLIED
186     %linkRelAttrs;
187     %linkRedundantAttrs;
188     %linkMethodAttrs;
189 connolly 1.6 ">
190    
191    
192 connolly 1.4 <!-- Document Element -->
193 connolly 1.2
194    
195 connolly 1.9 <![ %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 connolly 1.8 <!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 connolly 1.6 -- 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 connolly 1.2
216     <!ELEMENT ISINDEX - O EMPTY
217 connolly 1.6 -- WWW clients should offer the option to perform a search on
218     documents containing ISINDEX.
219     -->
220    
221 connolly 1.2 <!ELEMENT NEXTID - O EMPTY>
222 connolly 1.8 <!ATTLIST NEXTID N %anchor-name #REQUIRED
223 connolly 1.6 -- 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 connolly 1.8 <!ELEMENT BASE - O EMPTY -- Reference context for URIs -->
232 connolly 1.6 <!ATTLIST BASE
233    
234 connolly 1.8 HREF %URI; #IMPLIED
235 connolly 1.6
236     >
237 connolly 1.8
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 connolly 1.3
252 connolly 1.8 <!ENTITY % inline "%phrase %obsolete-font">
253     <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
254 connolly 1.3
255 connolly 1.9 <![ %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 connolly 1.6
263     <!ENTITY % htext "A | %text" -- Plus links, no structure -->
264 connolly 1.4
265 connolly 1.8 <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
266     <!ENTITY % font-content "#PCDATA">
267     <!ELEMENT (%font;) - - (%font-content;)>
268    
269     <!ELEMENT (%phrase;) - - (%htext)+>
270 connolly 1.5
271 connolly 1.8 <!ENTITY % pre "PRE | XMP | LISTING">
272 connolly 1.6
273 connolly 1.9 <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]>
274 connolly 1.8 <!ENTITY % block-form "">
275 connolly 1.6
276 connolly 1.8 <![ %HTML.pSeparator [
277     <!ENTITY % obsolete-htext "| %htext">
278     <!ENTITY % block-p "">
279     ]]>
280     <!ENTITY % obsolete-htext "| A">
281     <!ENTITY % block-p "| P ">
282 connolly 1.4
283 connolly 1.8 <!ENTITY % block "HR | %list | DL
284     | %pre | BLOCKQUOTE | ADDRESS
285     %block-form %block-p">
286    
287    
288 connolly 1.11 <!ENTITY % body-content "%heading | %block | %htext">
289 connolly 1.8 <!ELEMENT BODY O O (%body-content)*>
290    
291    
292 connolly 1.9 <![ %HTML.aEndOmissable [ <!ENTITY % a-end "O"> ]]>
293     <!ENTITY % a-end "-">
294    
295     <!ELEMENT A - %a-end (%heading|%block|%text)+ -(A)
296 connolly 1.8 -- @# 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 connolly 1.4 <!ATTLIST A
302 connolly 1.6 %linkattributes;
303     >
304    
305     <!ELEMENT IMG - O EMPTY -- Embedded image -->
306     <!ATTLIST IMG
307 connolly 1.8 SRC %URI; #IMPLIED -- URI of document to embed --
308     ALT CDATA #IMPLIED
309     ALIGN (top|middle|bottom) #IMPLIED
310     ISMAP (ISMAP) #IMPLIED
311 connolly 1.6 >
312    
313    
314 connolly 1.8 <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
315     <!ENTITY % p-content "(%htext)+">
316     <!ELEMENT P - O %p-content>
317 connolly 1.6 <!ELEMENT HR - O EMPTY -- horizontal rule -->
318 connolly 1.8 <!ELEMENT BR - O EMPTY -- @# BR -> &br; -->
319 connolly 1.6
320     <!ELEMENT ( %heading ) - - (%htext;)+>
321    
322 connolly 1.8 <!ELEMENT DL - - (DT*, DD?)+>
323     <!ATTLIST DL
324 connolly 1.11 COMPACT (COMPACT) #IMPLIED>
325 connolly 1.8
326     <!ELEMENT DT - O (%htext)+>
327     <!ELEMENT DD - O (%htext|%block)+>
328    
329     <!ELEMENT (%list) - - (LI)+>
330 connolly 1.2
331 connolly 1.8 <!ELEMENT LI - O (%htext|%block)+>
332 connolly 1.2
333 connolly 1.9 <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
334 connolly 1.6 -- for quoting some other source -->
335 connolly 1.3
336 connolly 1.11 <!ELEMENT ADDRESS - - (%htext;|%block)+>
337 connolly 1.2
338 connolly 1.8 <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
339 connolly 1.2 <!ATTLIST PRE
340 connolly 1.6 WIDTH NUMBER #implied
341 connolly 1.2 >
342    
343 connolly 1.6 <!-- Mnemonic character entities. -->
344 connolly 1.8
345     <!ENTITY % ISOlat1 PUBLIC
346     "ISO 8879:1986//ENTITIES Added Latin 1//EN">
347     %ISOlat1;
348    
349 connolly 1.11 <!ENTITY #DEFAULT SDATA "&#38;unkown;" --display the markup-->
350 connolly 1.6 <!ENTITY amp "&#38;" -- ampersand -->
351     <!ENTITY gt "&#62;" -- greater than -->
352     <!ENTITY lt "&#60;" -- less than -->
353 connolly 1.10 <!ENTITY quot "&#34;" -- less than -->
354 connolly 1.8 <!ENTITY nbsp "<? nonbreaking-space>">
355     <!-- @# should add entites for processing instructions
356     for line break, centering, etc. -->
357 connolly 1.6
358 connolly 1.3
359 connolly 1.8 <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]>
360     <!ENTITY % lit-content "RCDATA">
361     <!ELEMENT (%literal) - - %lit-content>
362 connolly 1.2
363 connolly 1.8 <![ %HTML.PLAINTEXT [
364 connolly 1.2 <!ELEMENT PLAINTEXT - O EMPTY>
365 connolly 1.8 ]]>
366    
367    
368     <!-- Forms -->
369     <![ %HTML.forms [
370    
371     <!ENTITY % HTTP-Method "(GET | POST)">
372 connolly 1.9 <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
373 connolly 1.8 <!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 connolly 1.11 CHECKED (CHECKED) #IMPLIED
389 connolly 1.8 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 connolly 1.11 MULTIPLE (MULTIPLE) #IMPLIED
399 connolly 1.8 >
400    
401     <!ELEMENT OPTION - O (#PCDATA)>
402     <!ATTLIST OPTION
403 connolly 1.11 SELECTED (SELECTED) #IMPLIED
404 connolly 1.8 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 connolly 1.2

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24