/[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.9 by connolly, Thu Apr 14 01:23:26 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    <!-- 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    <!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    <!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    <!ENTITY % HTML.NEXTID "INCLUDE"
99            -- 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  <!-- DTD definitions -->  <!-- DTD definitions -->
118    
119  <!ENTITY % URL "CDATA"  <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
120          -- The term URL means a CDATA attribute  <!ENTITY % list " UL | OL | DIR | MENU ">
121             whose value is a Uniform Resource Locator,  <!ENTITY % literal " XMP | LISTING ">
122             as defined. (A URN may also be usable here when defined.)  
123    <!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" -- meaning a MIME content type -->  <!ENTITY % Content-Type "CDATA"
136            -- meaning a MIME content type, as per RFC1341 or any of its updates.
137            -->
138    
139  <!ENTITY % linkattributes  <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
140          "HREF %URL;  #IMPLIED  <!ENTITY % anchor-name "ID">
141    
142    <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
143          REL CDATA #IMPLIED -- forward relationship type --          REL CDATA #IMPLIED -- forward relationship type --
144          REV CDATA #IMPLIED -- reversed relationship type          REV CDATA #IMPLIED -- reversed relationship type
145                                to referent data:                                to referent data:
146    
147                                  PARENT CHILD, SIBLING, NEXT, TOP,                                  PARENT CHILD, SIBLING, NEXT, TOP,
148                                  DEFINITION, UPDATE, ORIGINAL etc. --                                  DEFINITION, UPDATE, ORIGINAL etc. --
149            "> ]]>
150    <!ENTITY % linkRelAttrs "">
151    
152    <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
153          URN CDATA #IMPLIED -- universal resource number --          URN CDATA #IMPLIED -- universal resource number --
154    
155          TITLE CDATA #IMPLIED -- advisory only --          TITLE CDATA #IMPLIED -- advisory only --
156            "> ]]>
157    <!ENTITY % linkRedundantAttrs "">
158    
159    <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs "
160          METHODS NAMES #IMPLIED -- supported public methods of the object:          METHODS NAMES #IMPLIED -- supported public methods of the object:
161                                          TEXTSEARCH, GET, HEAD, ... --                                          TEXTSEARCH, GET, HEAD, ... --
162            "> ]]>
163    <!ENTITY % linkMethodAttrs "">
164    
165          --@# content-type --  <!ENTITY % linkattributes
166            "NAME %anchor-name #IMPLIED
167            HREF %URI;  #IMPLIED
168            %linkRelAttrs;
169            %linkRedundantAttrs;
170            %linkMethodAttrs;
171          ">          ">
172    
173    
174  <!-- Document Element -->  <!-- Document Element -->
175    
 <!ELEMENT HTML O O  (HEAD, BODY)>  
   
 <!-- Head -->  
   
 <!ELEMENT HEAD O O  ( TITLE?  & ISINDEX? & NEXTID? & LINK*  
                               & BASE?)>  
176    
177  <!ELEMENT NEXTID - O EMPTY -- @# obsolete -->  <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]>
178  <!ATTLIST NEXTID  <!ENTITY % obsolete-plaintext "">
179          N ID #REQUIRED -- next available id -->  <![ %HTML.isindexAtEnd [ <!ENTITY % end-isindex ", ISINDEX?"> ]]>
180    <!ENTITY % end-isindex "">
181  <!ELEMENT TITLE - -  (#PCDATA)  
182    <!ENTITY % html-content "HEAD, BODY %obsolete-plaintext; %end-isindex">
183    <!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            -- The TITLE element is not considered part of the flow of text.            -- The TITLE element is not considered part of the flow of text.
194               It should be displayed, for example as the page header or               It should be displayed, for example as the page header or
195               window title.               window title.
# Line 61  Line 200 
200               documents containing ISINDEX.               documents containing ISINDEX.
201            -->            -->
202    
203    <!ELEMENT NEXTID - O EMPTY>
204    <!ATTLIST NEXTID N %anchor-name #REQUIRED
205              -- 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>  <!ELEMENT LINK - O EMPTY>
210  <!ATTLIST LINK  <!ATTLIST LINK
211          %linkattributes          %linkattributes>
         >  
212                    
213  <!ELEMENT BASE - O EMPTY    -- Reference context for URLS -->  <!ELEMENT BASE - O EMPTY    -- Reference context for URIs -->
214  <!ATTLIST BASE  <!ATTLIST BASE
215          HREF %URL; #IMPLIED  
216            HREF %URI; #IMPLIED
217    
218          >          >
219    
220    <!ENTITY % font "TT | B | I | U ">
221    <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | KEY | VAR | DFN | CITE">
222    
223  <!-- Body -->  <![ %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    
234    <!ENTITY % inline "%phrase %obsolete-font">
235    <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
236    
237    <![ %HTML.GO [
238            <!ELEMENT GO - O EMPTY>
239            <!ENTITY % go-text "| GO">
240            ]]>
241    <!ENTITY % go-text "">
242    
243  <!ELEMENT BODY O O  ANY -- empty P version @# -->  <!ENTITY % text "#PCDATA | IMG | %inline | BR %go-text %obsolete-p">
244    
245  <!-- Text -->  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->
246    
247  <!ENTITY % inline "EM | STRONG |  <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
248                          CODE | SAMP | KBD | KEY | VAR | DFN | CITE "  <!ENTITY % font-content "#PCDATA">
249          >  <!ELEMENT (%font;) - - (%font-content;)>
 <!ENTITY % fonts "B | I | U | TT">  
250    
251  <!ENTITY % text "#PCDATA | IMG | %inline; | %fonts; | BR | P"  <!ELEMENT (%phrase;) - - (%htext)+>
         -- @# yuk: P in textflows --  
          --@# BR -> &br; --  
          --@# yuk: fonts -- >  
252    
253  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->  <!ENTITY % pre "PRE | XMP | LISTING">
254    
255  <!ELEMENT (%inline;) - - (%htext)+>  <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]>
256  <!ELEMENT (%fonts;)  - - (%htext)+>  <!ENTITY % block-form "">
257    
258  <!ELEMENT A     - -  ANY -(A)>  <![ %HTML.pSeparator [
259            <!ENTITY % obsolete-htext "| %htext">
260            <!ENTITY % block-p "">
261            ]]>
262    <!ENTITY % obsolete-htext "| A">
263    <!ENTITY % block-p "| P ">
264    
265    <!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    <![ %HTML.aEndOmissable [ <!ENTITY % a-end "O"> ]]>
275    <!ENTITY % a-end "-">
276    
277    <!ELEMENT A     - %a-end (%heading|%block|%text)+ -(A)
278            -- @# 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  <!ATTLIST A  <!ATTLIST A
284          NAME NMTOKEN #IMPLIED -- @# dangit! this should be ID! --          %linkattributes;
         %linkattributes;  
285          >          >
286    
287  <!ELEMENT IMG    - O EMPTY --  Embedded image -->  <!ELEMENT IMG    - O EMPTY --  Embedded image -->
288  <!ATTLIST IMG  <!ATTLIST IMG
289          SRC %URL;  #IMPLIED     -- URL of document to embed --          SRC %URI;  #IMPLIED     -- URI of document to embed --
290          ALT CDATA #IMPLIED          ALT CDATA #IMPLIED
291          ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--          ALIGN (top|middle|bottom) #IMPLIED
292            ISMAP (ISMAP) #IMPLIED
293          >          >
294    
295    
296  <!ELEMENT P     - O EMPTY -- paragraph separator @# -->  <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
297    <!ENTITY % p-content "(%htext)+">
298    <!ELEMENT P     - O %p-content>
299  <!ELEMENT HR    - O EMPTY -- horizontal rule -->  <!ELEMENT HR    - O EMPTY -- horizontal rule -->
300  <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->  <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->
301    
 <!-- Headings -->  
   
 <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >  
302  <!ELEMENT ( %heading )  - -  (%htext;)+>  <!ELEMENT ( %heading )  - -  (%htext;)+>
303    
   
 <!-- 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">  
   
304  <!ELEMENT DL    - -  (DT*, DD?)+>  <!ELEMENT DL    - -  (DT*, DD?)+>
305  <!ATTLIST DL  <!ATTLIST DL
306          STYLE (COMPACT) #IMPLIED>          STYLE (COMPACT) #IMPLIED>
# Line 148  Line 309 
309  <!ELEMENT DD    - O (%htext|%block)+>  <!ELEMENT DD    - O (%htext|%block)+>
310    
311  <!ELEMENT (%list) - -  (LI)+>  <!ELEMENT (%list) - -  (LI)+>
312    
313  <!ELEMENT LI    - O (%htext|%block)+>  <!ELEMENT LI    - O (%htext|%block)+>
314    
315  <!ELEMENT BLOCKQUOTE - - ((%htext)+, ADDRESS?)+ -- @# Hmm... --  <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
316          -- for quoting some other source -->          -- for quoting some other source -->
317    
318  <!ELEMENT ADDRESS - - (%htext;)+>  <!ELEMENT ADDRESS - - (%htext;)+>
319    
320  <!ELEMENT FIG - - (%htext;)+>  <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
321    <!ATTLIST PRE
322            WIDTH NUMBER #implied
323            >
324    
325    <!-- Mnemonic character entities. -->
326    
327    <!ENTITY % ISOlat1 PUBLIC
328      "ISO 8879:1986//ENTITIES Added Latin 1//EN">
329    %ISOlat1;
330    
331    <!ENTITY amp "&#38;"     -- ampersand -->
332    <!ENTITY gt "&#62;"      -- greater than -->
333    <!ENTITY lt "&#60;"      -- less than -->
334    <!ENTITY nbsp "<? nonbreaking-space>">
335    <!-- @# should add entites for processing instructions
336            for line break, centering, etc. -->
337    
338    
339    <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]>
340    <!ENTITY % lit-content "RCDATA">
341    <!ELEMENT (%literal) - -  %lit-content>
342    
343    <![ %HTML.PLAINTEXT [
344    <!ELEMENT PLAINTEXT - O EMPTY>
345    ]]>
346    
347    
348  <!-- Forms  -->  <!-- Forms  -->
349    <![ %HTML.forms [
350    
351  <!ENTITY % HTTP-Method "(GET | POST)">  <!ENTITY % HTTP-Method "(GET | POST)">
352  <!ELEMENT FORM - - ANY -(FORM) +(INPUT|SELECT|TEXTAREA)>  <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
353  <!ATTLIST FORM  <!ATTLIST FORM
354          ACTION %URL #REQUIRED          ACTION %URI #REQUIRED
355          METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --          METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --
356          ENCTYPE %Content-Type; #IMPLIED          ENCTYPE %Content-Type; #IMPLIED
357          >          >
# Line 175  Line 364 
364          TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --          TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --
365          NAME CDATA #IMPLIED -- required for all but submit and reset --          NAME CDATA #IMPLIED -- required for all but submit and reset --
366          VALUE CDATA #IMPLIED          VALUE CDATA #IMPLIED
367          SRC %URL #IMPLIED -- for image inputs --          SRC %URI #IMPLIED -- for image inputs --
368          STATE (CHECKED) #IMPLIED          STATE (CHECKED) #IMPLIED
369          SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --          SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --
370          MAXLENGTH NUMBER #IMPLIED          MAXLENGTH NUMBER #IMPLIED
# Line 201  Line 390 
390          ROWS NUMBER #REQUIRED -- @#implied? --          ROWS NUMBER #REQUIRED -- @#implied? --
391          COLS NUMBER #REQUIRED          COLS NUMBER #REQUIRED
392          >          >
393    ]]>
 <!-- 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. -->  
394    

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24