/[pub]/test/html.dtd
Suika

Diff of /test/html.dtd

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7.2.4 by connolly, Thu Apr 7 00:33:25 1994 UTC revision 1.11 by connolly, Sat Apr 30 03:17:56 1994 UTC
# Line 3  Line 3 
3          Document Type Definition for the HyperText Markup Language          Document Type Definition for the HyperText Markup Language
4          as used by the World Wide Web application (HTML DTD).          as used by the World Wide Web application (HTML DTD).
5    
6          $Id$          $Id$
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 -->  <!-- DTD definitions -->
136    
137  <!ENTITY % URL "CDATA"  <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
138          -- The term URL means a CDATA attribute  <!ENTITY % list " UL | OL | DIR | MENU ">
139             whose value is a Uniform Resource Locator,  <!ENTITY % literal " XMP | LISTING ">
140             as defined. (A URN may also be usable here when defined.)  
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" -- meaning a MIME content type -->  <!ENTITY % Content-Type "CDATA"
154            -- meaning a MIME content type, as per RFC1341 or any of its updates.
155            -->
156    
157  <!ENTITY % linkattributes  <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
158          "HREF %URL;  #IMPLIED  <!ENTITY % anchor-name "ID">
159    
160    <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
161          REL CDATA #IMPLIED -- forward relationship type --          REL CDATA #IMPLIED -- forward relationship type --
162          REV CDATA #IMPLIED -- reversed relationship type          REV CDATA #IMPLIED -- reversed relationship type
163                                to referent data:                                to referent data:
164    
165                                  PARENT CHILD, SIBLING, NEXT, TOP,                                  PARENT CHILD, SIBLING, NEXT, TOP,
166                                  DEFINITION, UPDATE, ORIGINAL etc. --                                  DEFINITION, UPDATE, ORIGINAL etc. --
167            "> ]]>
168    <!ENTITY % linkRelAttrs "">
169    
170    <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
171          URN CDATA #IMPLIED -- universal resource number --          URN CDATA #IMPLIED -- universal resource number --
172    
173          TITLE CDATA #IMPLIED -- advisory only --          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:          METHODS NAMES #IMPLIED -- supported public methods of the object:
179                                          TEXTSEARCH, GET, HEAD, ... --                                          TEXTSEARCH, GET, HEAD, ... --
180            "> ]]>
181    <!ENTITY % linkMethodAttrs "">
182    
183          --@# content-type --  <!ENTITY % linkattributes
184            "NAME %anchor-name #IMPLIED
185            HREF %URI;  #IMPLIED
186            %linkRelAttrs;
187            %linkRedundantAttrs;
188            %linkMethodAttrs;
189          ">          ">
190    
191    
192  <!-- Document Element -->  <!-- Document Element -->
193    
 <!ELEMENT HTML O O  (HEAD, BODY)>  
   
 <!-- Head -->  
   
 <!ELEMENT HEAD O O  ( TITLE?  & ISINDEX? & NEXTID? & LINK*  
                               & BASE?)>  
194    
195  <!ELEMENT NEXTID - O EMPTY -- @# obsolete -->  <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]>
196  <!ATTLIST NEXTID  <!ENTITY % obsolete-plaintext "">
197          N ID #REQUIRED -- next available id -->  <![ %HTML.isindexAtEnd [ <!ENTITY % end-isindex ", ISINDEX?"> ]]>
198    <!ENTITY % end-isindex "">
199  <!ELEMENT TITLE - -  (#PCDATA)  
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.            -- The TITLE element is not considered part of the flow of text.
212               It should be displayed, for example as the page header or               It should be displayed, for example as the page header or
213               window title.               window title.
# Line 61  Line 218 
218               documents containing ISINDEX.               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>  <!ELEMENT LINK - O EMPTY>
228  <!ATTLIST LINK  <!ATTLIST LINK
229          %linkattributes          %linkattributes>
         >  
230                    
231  <!ELEMENT BASE - O EMPTY    -- Reference context for URLS -->  <!ELEMENT BASE - O EMPTY    -- Reference context for URIs -->
232  <!ATTLIST BASE  <!ATTLIST BASE
233          HREF %URL; #IMPLIED  
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  <!-- Body -->  <![ %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  <!ELEMENT BODY O O  ANY -- empty P version @# -->  <!ENTITY % text "#PCDATA | IMG | %inline | BR %go-text %obsolete-p">
262    
263  <!-- Text -->  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->
264    
265  <!ENTITY % inline "EM | STRONG |  <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
266                          CODE | SAMP | KBD | KEY | VAR | DFN | CITE "  <!ENTITY % font-content "#PCDATA">
267          >  <!ELEMENT (%font;) - - (%font-content;)>
 <!ENTITY % fonts "B | I | U | TT">  
268    
269  <!ENTITY % text "#PCDATA | IMG | %inline; | %fonts; | BR | P"  <!ELEMENT (%phrase;) - - (%htext)+>
         -- @# yuk: P in textflows --  
          --@# BR -> &br; --  
          --@# yuk: fonts -- >  
270    
271  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->  <!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    
 <!ELEMENT (%inline;) - - (%htext)+>  
 <!ELEMENT (%fonts;)  - - (%htext)+>  
291    
292  <!ELEMENT A     - -  ANY -(A)>  <![ %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  <!ATTLIST A
302          NAME NMTOKEN #IMPLIED -- @# dangit! this should be ID! --          %linkattributes;
         %linkattributes;  
303          >          >
304    
305  <!ELEMENT IMG    - O EMPTY --  Embedded image -->  <!ELEMENT IMG    - O EMPTY --  Embedded image -->
306  <!ATTLIST IMG  <!ATTLIST IMG
307          SRC %URL;  #IMPLIED     -- URL of document to embed --          SRC %URI;  #IMPLIED     -- URI of document to embed --
308          ALT CDATA #IMPLIED          ALT CDATA #IMPLIED
309          ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--          ALIGN (top|middle|bottom) #IMPLIED
310            ISMAP (ISMAP) #IMPLIED
311          >          >
312    
313    
314  <!ELEMENT P     - O EMPTY -- paragraph separator @# -->  <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
315    <!ENTITY % p-content "(%htext)+">
316    <!ELEMENT P     - O %p-content>
317  <!ELEMENT HR    - O EMPTY -- horizontal rule -->  <!ELEMENT HR    - O EMPTY -- horizontal rule -->
318  <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->  <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->
319    
 <!-- Headings -->  
   
 <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >  
320  <!ELEMENT ( %heading )  - -  (%htext;)+>  <!ELEMENT ( %heading )  - -  (%htext;)+>
321    
   
 <!-- Pre-formatted Text -->  
   
 <!ENTITY % pre "PRE | XMP | LISTING" -- @# treat XMP like pre? -->  
   
 <!ELEMENT PRE - - (#PCDATA | %fonts | %inline | A | BR)+>  
                 <!-- @# yuk: VAR, CITE etc. in PRE -->  
                 <!-- @# P in PRE ??-->  
                 <!-- @# BR -> &br; -->  
 <!ELEMENT (XMP|LISTING) - - RCDATA>  
 <!-- @# PLAINTEXT?? -->  
 <!ATTLIST (%pre;)  
         WIDTH NUMBER #implied  
         >  
   
 <!-- Block Elements -->  
   
 <!ENTITY % list " UL | OL | DIR | MENU ">  
   
 <!ENTITY % block                -- as htext but also nested structure --  
                         "HR | %list | DL  
                         | %pre; | BLOCKQUOTE | FIG | ADDRESS  
                         | FORM">  
   
322  <!ELEMENT DL    - -  (DT*, DD?)+>  <!ELEMENT DL    - -  (DT*, DD?)+>
323  <!ATTLIST DL  <!ATTLIST DL
324          STYLE (COMPACT) #IMPLIED>          COMPACT (COMPACT) #IMPLIED>
325    
326  <!ELEMENT DT    - O (%htext)+>  <!ELEMENT DT    - O (%htext)+>
327  <!ELEMENT DD    - O (%htext|%block)+>  <!ELEMENT DD    - O (%htext|%block)+>
328    
329  <!ELEMENT (%list) - -  (LI)+>  <!ELEMENT (%list) - -  (LI)+>
330    
331  <!ELEMENT LI    - O (%htext|%block)+>  <!ELEMENT LI    - O (%htext|%block)+>
332    
333  <!ELEMENT BLOCKQUOTE - - ((%htext)+, ADDRESS?)+ -- @# Hmm... --  <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
334          -- for quoting some other source -->          -- for quoting some other source -->
335    
336  <!ELEMENT ADDRESS - - (%htext;)+>  <!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    
 <!ELEMENT FIG - - (%htext;)+>  
367    
368  <!-- Forms  -->  <!-- Forms  -->
369    <![ %HTML.forms [
370    
371  <!ENTITY % HTTP-Method "(GET | POST)">  <!ENTITY % HTTP-Method "(GET | POST)">
372  <!ELEMENT FORM - - ANY -(FORM) +(INPUT|SELECT|TEXTAREA)>  <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
373  <!ATTLIST FORM  <!ATTLIST FORM
374          ACTION %URL #REQUIRED          ACTION %URI #REQUIRED
375          METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --          METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --
376          ENCTYPE %Content-Type; #IMPLIED          ENCTYPE %Content-Type; #IMPLIED
377          >          >
# Line 175  Line 384 
384          TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --          TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --
385          NAME CDATA #IMPLIED -- required for all but submit and reset --          NAME CDATA #IMPLIED -- required for all but submit and reset --
386          VALUE CDATA #IMPLIED          VALUE CDATA #IMPLIED
387          SRC %URL #IMPLIED -- for image inputs --          SRC %URI #IMPLIED -- for image inputs --
388          STATE (CHECKED) #IMPLIED          CHECKED (CHECKED) #IMPLIED
389          SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --          SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --
390          MAXLENGTH NUMBER #IMPLIED          MAXLENGTH NUMBER #IMPLIED
391          ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--          ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--
# Line 186  Line 395 
395  <!ATTLIST SELECT  <!ATTLIST SELECT
396          NAME CDATA #REQUIRED          NAME CDATA #REQUIRED
397          SIZE NUMBER #IMPLIED          SIZE NUMBER #IMPLIED
398          SELECTIONS (MULTIPLE) #IMPLIED          MULTIPLE (MULTIPLE) #IMPLIED
399          >          >
400    
401  <!ELEMENT OPTION - O (#PCDATA)>  <!ELEMENT OPTION - O (#PCDATA)>
402  <!ATTLIST OPTION  <!ATTLIST OPTION
403          STATE (SELECTED) #IMPLIED          SELECTED (SELECTED) #IMPLIED
404          VALUE CDATA #IMPLIED          VALUE CDATA #IMPLIED
405          >          >
406    
# Line 201  Line 410 
410          ROWS NUMBER #REQUIRED -- @#implied? --          ROWS NUMBER #REQUIRED -- @#implied? --
411          COLS NUMBER #REQUIRED          COLS NUMBER #REQUIRED
412          >          >
413    ]]>
 <!-- Mnemonic character entities. -->  
   
 <!ENTITY % ISOlat1 PUBLIC  
   "ISO 8879:1986//ENTITIES Added Latin 1//EN">  
 %ISOlat1;  
   
 <!ENTITY amp "&#38;"     -- ampersand -->  
 <!ENTITY gt "&#62;"      -- greater than -->  
 <!ENTITY lt "&#60;"      -- less than -->  
 <!ENTITY nbsp "<? nonbreaking-space>">  
 <!-- @# should add entites for processing instructions  
         for line break, centering, etc. -->  
414    

Legend:
Removed from v.1.7.2.4  
changed lines
  Added in v.1.11

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24