/[pub]/test/html.dtd
Suika

Contents of /test/html.dtd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (hide 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 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.9 $Id: html.dtd,v 1.8 1994/04/09 01:02:10 connolly Exp $
7 connolly 1.2 -->
8    
9 connolly 1.8 <!-- 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 connolly 1.9 <!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 connolly 1.8 <!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 connolly 1.9 <!ENTITY % HTML.NEXTID "INCLUDE"
99 connolly 1.8 -- 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 connolly 1.3 <!-- DTD definitions -->
118    
119 connolly 1.2 <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
120 connolly 1.6 <!ENTITY % list " UL | OL | DIR | MENU ">
121     <!ENTITY % literal " XMP | LISTING ">
122 connolly 1.2
123 connolly 1.8 <!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 connolly 1.2
139 connolly 1.8 <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
140     <!ENTITY % anchor-name "ID">
141 connolly 1.6
142 connolly 1.8 <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
143 connolly 1.6 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 connolly 1.8 "> ]]>
150     <!ENTITY % linkRelAttrs "">
151 connolly 1.6
152 connolly 1.8 <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
153 connolly 1.6 URN CDATA #IMPLIED -- universal resource number --
154    
155     TITLE CDATA #IMPLIED -- advisory only --
156 connolly 1.8 "> ]]>
157     <!ENTITY % linkRedundantAttrs "">
158 connolly 1.5
159 connolly 1.8 <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs "
160 connolly 1.6 METHODS NAMES #IMPLIED -- supported public methods of the object:
161     TEXTSEARCH, GET, HEAD, ... --
162 connolly 1.8 "> ]]>
163     <!ENTITY % linkMethodAttrs "">
164 connolly 1.3
165 connolly 1.8 <!ENTITY % linkattributes
166     "NAME %anchor-name #IMPLIED
167     HREF %URI; #IMPLIED
168     %linkRelAttrs;
169     %linkRedundantAttrs;
170     %linkMethodAttrs;
171 connolly 1.6 ">
172    
173    
174 connolly 1.4 <!-- Document Element -->
175 connolly 1.2
176    
177 connolly 1.9 <![ %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 connolly 1.8 <!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 connolly 1.6 -- 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 connolly 1.2
198     <!ELEMENT ISINDEX - O EMPTY
199 connolly 1.6 -- WWW clients should offer the option to perform a search on
200     documents containing ISINDEX.
201     -->
202    
203 connolly 1.2 <!ELEMENT NEXTID - O EMPTY>
204 connolly 1.8 <!ATTLIST NEXTID N %anchor-name #REQUIRED
205 connolly 1.6 -- 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 connolly 1.8 <!ELEMENT BASE - O EMPTY -- Reference context for URIs -->
214 connolly 1.6 <!ATTLIST BASE
215    
216 connolly 1.8 HREF %URI; #IMPLIED
217 connolly 1.6
218     >
219 connolly 1.8
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 connolly 1.3
234 connolly 1.8 <!ENTITY % inline "%phrase %obsolete-font">
235     <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
236 connolly 1.3
237 connolly 1.9 <![ %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 connolly 1.6
245     <!ENTITY % htext "A | %text" -- Plus links, no structure -->
246 connolly 1.4
247 connolly 1.8 <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
248     <!ENTITY % font-content "#PCDATA">
249     <!ELEMENT (%font;) - - (%font-content;)>
250    
251     <!ELEMENT (%phrase;) - - (%htext)+>
252 connolly 1.5
253 connolly 1.8 <!ENTITY % pre "PRE | XMP | LISTING">
254 connolly 1.6
255 connolly 1.9 <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]>
256 connolly 1.8 <!ENTITY % block-form "">
257 connolly 1.6
258 connolly 1.8 <![ %HTML.pSeparator [
259     <!ENTITY % obsolete-htext "| %htext">
260     <!ENTITY % block-p "">
261     ]]>
262     <!ENTITY % obsolete-htext "| A">
263     <!ENTITY % block-p "| P ">
264 connolly 1.4
265 connolly 1.8 <!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 connolly 1.9 <![ %HTML.aEndOmissable [ <!ENTITY % a-end "O"> ]]>
275     <!ENTITY % a-end "-">
276    
277     <!ELEMENT A - %a-end (%heading|%block|%text)+ -(A)
278 connolly 1.8 -- @# 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 connolly 1.4 <!ATTLIST A
284 connolly 1.6 %linkattributes;
285     >
286    
287     <!ELEMENT IMG - O EMPTY -- Embedded image -->
288     <!ATTLIST IMG
289 connolly 1.8 SRC %URI; #IMPLIED -- URI of document to embed --
290     ALT CDATA #IMPLIED
291     ALIGN (top|middle|bottom) #IMPLIED
292     ISMAP (ISMAP) #IMPLIED
293 connolly 1.6 >
294    
295    
296 connolly 1.8 <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
297     <!ENTITY % p-content "(%htext)+">
298     <!ELEMENT P - O %p-content>
299 connolly 1.6 <!ELEMENT HR - O EMPTY -- horizontal rule -->
300 connolly 1.8 <!ELEMENT BR - O EMPTY -- @# BR -> &br; -->
301 connolly 1.6
302     <!ELEMENT ( %heading ) - - (%htext;)+>
303    
304 connolly 1.8 <!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 connolly 1.2
313 connolly 1.8 <!ELEMENT LI - O (%htext|%block)+>
314 connolly 1.2
315 connolly 1.9 <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
316 connolly 1.6 -- for quoting some other source -->
317 connolly 1.3
318 connolly 1.8 <!ELEMENT ADDRESS - - (%htext;)+>
319 connolly 1.2
320 connolly 1.8 <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
321 connolly 1.2 <!ATTLIST PRE
322 connolly 1.6 WIDTH NUMBER #implied
323 connolly 1.2 >
324    
325 connolly 1.6 <!-- Mnemonic character entities. -->
326 connolly 1.8
327     <!ENTITY % ISOlat1 PUBLIC
328     "ISO 8879:1986//ENTITIES Added Latin 1//EN">
329     %ISOlat1;
330    
331 connolly 1.6 <!ENTITY amp "&#38;" -- ampersand -->
332     <!ENTITY gt "&#62;" -- greater than -->
333     <!ENTITY lt "&#60;" -- less than -->
334 connolly 1.8 <!ENTITY nbsp "<? nonbreaking-space>">
335     <!-- @# should add entites for processing instructions
336     for line break, centering, etc. -->
337 connolly 1.6
338 connolly 1.3
339 connolly 1.8 <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]>
340     <!ENTITY % lit-content "RCDATA">
341     <!ELEMENT (%literal) - - %lit-content>
342 connolly 1.2
343 connolly 1.8 <![ %HTML.PLAINTEXT [
344 connolly 1.2 <!ELEMENT PLAINTEXT - O EMPTY>
345 connolly 1.8 ]]>
346    
347    
348     <!-- Forms -->
349     <![ %HTML.forms [
350    
351     <!ENTITY % HTTP-Method "(GET | POST)">
352 connolly 1.9 <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
353 connolly 1.8 <!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 connolly 1.2

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24