/[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.8 by connolly, Sat Apr 9 01:02:10 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.NEXTID "INCLUDE">
43            <!ENTITY % HTML.font-phrase "INCLUDE">
44            <!ENTITY % HTML.anchorNameCDATA "INCLUDE">
45            <!ENTITY % HTML.pSeparator "INCLUDE">
46            ]]>
47    
48    <!ENTITY % HTML.pSeparator "IGNORE"
49            -- use P element as paragraph separator, rather that container.
50            This means not all paragraphs need to start with a <P> tag.
51            -->
52    
53    <!ENTITY % HTML.linkRelationships "INCLUDE"
54            -- Adding markup to links to show the relationship between
55            ends of a link
56            see http://info.cern.ch/hypertext/WWW/MarkUp/Relationships.html
57            -->
58    
59    <!ENTITY % HTML.linkMethods "INCLUDE"
60            -- Adding markup to links to show the methods supported
61            by the referent object
62            see http://info.cern.ch/hypertext/WWW/MarkUp/Elements/A.html
63            -->
64    
65    <!ENTITY % HTML.linkRedundantInfo "INCLUDE"
66            -- Adding markup to links to give redundant information
67            like URN, content type, title...
68            -->
69    
70    <!ENTITY % HTML.anchorNameCDATA "IGNORE"
71            -- Anchor names should be distinct. SGML parser can validate
72            this if the NAME attribute of the A element is declared as ID.
73            But that restricts the syntax of an anchor name to an SGML name,
74            i.e. a letter followed by letters, numbers, periods and dashes,
75            up to NAMELEN (34) characters long.
76            -->
77    
78    <!ENTITY % HTML.PLAINTEXT "IGNORE"
79            -- Support for the <PLAINTEXT> tag as a sign of the
80            end of th HTML data stream and the beginning of a stream
81            of text/plain data
82            -->
83    
84    <!ENTITY % HTML.titleCDATA "IGNORE"
85            -- Is the TITLE element #PCDATA, RCDATA, or CDATA content?
86            On Mosaic, it's #PCDATA, but in the linemode browser,
87            it's more like CDATA, but not quite.
88            -->
89    
90    <!ENTITY % HTML.NEXTID "IGNORE"
91            -- Used by the NeXT implementation to keep track of the
92            next anchor id to use
93            -->
94    
95    <!ENTITY % HTML.font-phrase "IGNORE"
96            -- allow B, I, TT, U outside PRE,
97            CITE, VAR, etc. inside PRE
98            -->
99    
100    <!ENTITY % HTML.litCDATA "IGNORE"
101            -- treat XMP, LISTING as CDATA, as per linemodeWWW
102            -->
103    
104    <!ENTITY % HTML.forms "INCLUDE"
105            -- Support for forms as per
106    http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html
107            -->
108    
109  <!-- DTD definitions -->  <!-- DTD definitions -->
110    
111  <!ENTITY % URL "CDATA"  <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
112          -- The term URL means a CDATA attribute  <!ENTITY % list " UL | OL | DIR | MENU ">
113             whose value is a Uniform Resource Locator,  <!ENTITY % literal " XMP | LISTING ">
114             as defined. (A URN may also be usable here when defined.)  
115    <!ENTITY % URI "CDATA"
116            -- The term URI means a CDATA attribute
117               whose value is a Uniform Resource Identifier,
118               as defined by
119            "Universal Resource Identifiers" by Tim Berners-Lee
120            aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
121    
122            Note that CDATA attributes are limited by the LITLEN
123            capacity (1024 in the current version of html.decl),
124            so that URIs in HTML have a bounded length.
125          -->          -->
126    
127  <!ENTITY % Content-Type "CDATA" -- meaning a MIME content type -->  <!ENTITY % Content-Type "CDATA"
128            -- meaning a MIME content type, as per RFC1341 or any of its updates.
129            -->
130    
131  <!ENTITY % linkattributes  <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
132          "HREF %URL;  #IMPLIED  <!ENTITY % anchor-name "ID">
133    
134    <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
135          REL CDATA #IMPLIED -- forward relationship type --          REL CDATA #IMPLIED -- forward relationship type --
136          REV CDATA #IMPLIED -- reversed relationship type          REV CDATA #IMPLIED -- reversed relationship type
137                                to referent data:                                to referent data:
138    
139                                  PARENT CHILD, SIBLING, NEXT, TOP,                                  PARENT CHILD, SIBLING, NEXT, TOP,
140                                  DEFINITION, UPDATE, ORIGINAL etc. --                                  DEFINITION, UPDATE, ORIGINAL etc. --
141            "> ]]>
142    <!ENTITY % linkRelAttrs "">
143    
144    <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
145          URN CDATA #IMPLIED -- universal resource number --          URN CDATA #IMPLIED -- universal resource number --
146    
147          TITLE CDATA #IMPLIED -- advisory only --          TITLE CDATA #IMPLIED -- advisory only --
148            "> ]]>
149    <!ENTITY % linkRedundantAttrs "">
150    
151    <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs "
152          METHODS NAMES #IMPLIED -- supported public methods of the object:          METHODS NAMES #IMPLIED -- supported public methods of the object:
153                                          TEXTSEARCH, GET, HEAD, ... --                                          TEXTSEARCH, GET, HEAD, ... --
154            "> ]]>
155    <!ENTITY % linkMethodAttrs "">
156    
157          --@# content-type --  <!ENTITY % linkattributes
158            "NAME %anchor-name #IMPLIED
159            HREF %URI;  #IMPLIED
160            %linkRelAttrs;
161            %linkRedundantAttrs;
162            %linkMethodAttrs;
163          ">          ">
164    
165    
166  <!-- Document Element -->  <!-- Document Element -->
167    
 <!ELEMENT HTML O O  (HEAD, BODY)>  
   
 <!-- Head -->  
   
 <!ELEMENT HEAD O O  ( TITLE?  & ISINDEX? & NEXTID? & LINK*  
                               & BASE?)>  
168    
169  <!ELEMENT NEXTID - O EMPTY -- @# obsolete -->  <![ %HTML.PLAINTEXT [ <!ENTITY % html-content "(HEAD, BODY), PLAINTEXT?"> ]]>
170  <!ATTLIST NEXTID  <!ENTITY % html-content "HEAD, BODY">
171          N ID #REQUIRED -- next available id -->  <!ELEMENT HTML O O  (%html-content)>
172    
173  <!ELEMENT TITLE - -  (#PCDATA)  <![ %HTML.NEXTID [  <!ENTITY % head-content "TITLE? & ISINDEX? & LINK* & BASE?
174                            & NEXTID?"> ]]>
175    <!ENTITY % head-content "TITLE & ISINDEX? & LINK* & BASE?">
176    <!ELEMENT HEAD O O  (%head-content)>
177    
178    <![ %HTML.titleCDATA [ <!ENTITY % title-content "CDATA"> ]]>
179    <!ENTITY % title-content "(#PCDATA)">
180    <!ELEMENT TITLE - -  %title-content
181            -- The TITLE element is not considered part of the flow of text.            -- The TITLE element is not considered part of the flow of text.
182               It should be displayed, for example as the page header or               It should be displayed, for example as the page header or
183               window title.               window title.
# Line 61  Line 188 
188               documents containing ISINDEX.               documents containing ISINDEX.
189            -->            -->
190    
191    <!ELEMENT NEXTID - O EMPTY>
192    <!ATTLIST NEXTID N %anchor-name #REQUIRED
193              -- The number should be a name suitable for use
194                 for the ID of a new element. When used, the value
195                 has its numeric part incremented. EG Z67 becomes Z68
196              -->
197  <!ELEMENT LINK - O EMPTY>  <!ELEMENT LINK - O EMPTY>
198  <!ATTLIST LINK  <!ATTLIST LINK
199          %linkattributes          %linkattributes>
         >  
200                    
201  <!ELEMENT BASE - O EMPTY    -- Reference context for URLS -->  <!ELEMENT BASE - O EMPTY    -- Reference context for URIs -->
202  <!ATTLIST BASE  <!ATTLIST BASE
         HREF %URL; #IMPLIED  
         >  
203    
204            HREF %URI; #IMPLIED
205    
206  <!-- Body -->          >
207    
208  <!ELEMENT BODY O O  ANY -- empty P version @# -->  <!ENTITY % font "TT | B | I | U ">
209    <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | KEY | VAR | DFN | CITE">
210    
211  <!-- Text -->  <![ %HTML.font-phrase [
212            <!ENTITY % obsolete-font "| %font">
213            <!ENTITY % obsolete-phrase "| %phrase">
214            ]]>
215    <!ENTITY % obsolete-font "">
216    <!ENTITY % obsolete-phrase "">
217    <![ %HTML.pSeparator [
218            <!ENTITY % obsolete-p "| P">
219            ]]>
220    <!ENTITY % obsolete-p "">
221    
222  <!ENTITY % inline "EM | STRONG |  <!ENTITY % inline "%phrase %obsolete-font">
223                          CODE | SAMP | KBD | KEY | VAR | DFN | CITE "  <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
         >  
 <!ENTITY % fonts "B | I | U | TT">  
224    
225  <!ENTITY % text "#PCDATA | IMG | %inline; | %fonts; | BR | P"  <!ENTITY % text "#PCDATA | IMG | %inline | BR %obsolete-p">
         -- @# yuk: P in textflows --  
          --@# BR -> &br; --  
          --@# yuk: fonts -- >  
226    
227  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->
228    
229  <!ELEMENT (%inline;) - - (%htext)+>  <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
230  <!ELEMENT (%fonts;)  - - (%htext)+>  <!ENTITY % font-content "#PCDATA">
231    <!ELEMENT (%font;) - - (%font-content;)>
232    
233  <!ELEMENT A     - -  ANY -(A)>  <!ELEMENT (%phrase;) - - (%htext)+>
 <!ATTLIST A  
         NAME NMTOKEN #IMPLIED -- @# dangit! this should be ID! --  
         %linkattributes;  
         >  
234    
235  <!ELEMENT IMG    - O EMPTY --  Embedded image -->  <!ENTITY % pre "PRE | XMP | LISTING">
 <!ATTLIST IMG  
         SRC %URL;  #IMPLIED     -- URL of document to embed --  
         ALT CDATA #IMPLIED  
         ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--  
         >  
236    
237    <![ %HTML.forms [ <!ENTITY % block-form "| FORM"> ]]>
238    <!ENTITY % block-form "">
239    
240  <!ELEMENT P     - O EMPTY -- paragraph separator @# -->  <![ %HTML.pSeparator [
241  <!ELEMENT HR    - O EMPTY -- horizontal rule -->          <!ENTITY % obsolete-htext "| %htext">
242  <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->          <!ENTITY % block-p "">
243            ]]>
244    <!ENTITY % obsolete-htext "| A">
245    <!ENTITY % block-p "| P ">
246    
247  <!-- Headings -->  <!ENTITY % block "HR | %list | DL
248                    | %pre | BLOCKQUOTE | ADDRESS
249                    %block-form %block-p">
250    
 <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >  
 <!ELEMENT ( %heading )  - -  (%htext;)+>  
251    
252    <!ENTITY % body-content "%heading | %block %obsolete-htext">
253    <!ELEMENT BODY O O  (%body-content)*>
254    
 <!-- Pre-formatted Text -->  
255    
256  <!ENTITY % pre "PRE | XMP | LISTING" -- @# treat XMP like pre? -->  <!ELEMENT A     - -  (%heading|%block|%text)+ -(A)
257            -- @# Technically, this allows silliness like:
258                    <H2><A>xyz<H1>h1</H1></A></H2>
259            The right way to do anchors outside of %htext is more like:
260                    <as id=z1><H2>lkjlkj</h2><ae start=z1>
261            -->
262    <!ATTLIST A
263            %linkattributes;
264            >
265    
266  <!ELEMENT PRE - - (#PCDATA | %fonts | %inline | A | BR)+>  <!ELEMENT IMG    - O EMPTY --  Embedded image -->
267                  <!-- @# yuk: VAR, CITE etc. in PRE -->  <!ATTLIST IMG
268                  <!-- @# P in PRE ??-->          SRC %URI;  #IMPLIED     -- URI of document to embed --
269                  <!-- @# BR -> &br; -->          ALT CDATA #IMPLIED
270  <!ELEMENT (XMP|LISTING) - - RCDATA>          ALIGN (top|middle|bottom) #IMPLIED
271  <!-- @# PLAINTEXT?? -->          ISMAP (ISMAP) #IMPLIED
 <!ATTLIST (%pre;)  
         WIDTH NUMBER #implied  
272          >          >
273    
 <!-- Block Elements -->  
274    
275  <!ENTITY % list " UL | OL | DIR | MENU ">  <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
276    <!ENTITY % p-content "(%htext)+">
277    <!ELEMENT P     - O %p-content>
278    <!ELEMENT HR    - O EMPTY -- horizontal rule -->
279    <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->
280    
281  <!ENTITY % block                -- as htext but also nested structure --  <!ELEMENT ( %heading )  - -  (%htext;)+>
                         "HR | %list | DL  
                         | %pre; | BLOCKQUOTE | FIG | ADDRESS  
                         | FORM">  
282    
283  <!ELEMENT DL    - -  (DT*, DD?)+>  <!ELEMENT DL    - -  (DT*, DD?)+>
284  <!ATTLIST DL  <!ATTLIST DL
# Line 148  Line 288 
288  <!ELEMENT DD    - O (%htext|%block)+>  <!ELEMENT DD    - O (%htext|%block)+>
289    
290  <!ELEMENT (%list) - -  (LI)+>  <!ELEMENT (%list) - -  (LI)+>
291    
292  <!ELEMENT LI    - O (%htext|%block)+>  <!ELEMENT LI    - O (%htext|%block)+>
293    
294  <!ELEMENT BLOCKQUOTE - - ((%htext)+, ADDRESS?)+ -- @# Hmm... --  <!ELEMENT BLOCKQUOTE - - ((%htext)+, ADDRESS?)+ -- @# Hmm... --
# Line 155  Line 296 
296    
297  <!ELEMENT ADDRESS - - (%htext;)+>  <!ELEMENT ADDRESS - - (%htext;)+>
298    
299  <!ELEMENT FIG - - (%htext;)+>  <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
300    <!ATTLIST PRE
301            WIDTH NUMBER #implied
302            >
303    
304    <!-- Mnemonic character entities. -->
305    
306    <!ENTITY % ISOlat1 PUBLIC
307      "ISO 8879:1986//ENTITIES Added Latin 1//EN">
308    %ISOlat1;
309    
310    <!ENTITY amp "&#38;"     -- ampersand -->
311    <!ENTITY gt "&#62;"      -- greater than -->
312    <!ENTITY lt "&#60;"      -- less than -->
313    <!ENTITY nbsp "<? nonbreaking-space>">
314    <!-- @# should add entites for processing instructions
315            for line break, centering, etc. -->
316    
317    
318    <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]>
319    <!ENTITY % lit-content "RCDATA">
320    <!ELEMENT (%literal) - -  %lit-content>
321    
322    <![ %HTML.PLAINTEXT [
323    <!ELEMENT PLAINTEXT - O EMPTY>
324    ]]>
325    
326    
327  <!-- Forms  -->  <!-- Forms  -->
328    <![ %HTML.forms [
329    
330  <!ENTITY % HTTP-Method "(GET | POST)">  <!ENTITY % HTTP-Method "(GET | POST)">
331  <!ELEMENT FORM - - ANY -(FORM) +(INPUT|SELECT|TEXTAREA)>  <!ELEMENT FORM - - (%body-content) -(FORM) +(INPUT|SELECT|TEXTAREA)>
332  <!ATTLIST FORM  <!ATTLIST FORM
333          ACTION %URL #REQUIRED          ACTION %URI #REQUIRED
334          METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --          METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --
335          ENCTYPE %Content-Type; #IMPLIED          ENCTYPE %Content-Type; #IMPLIED
336          >          >
# Line 175  Line 343 
343          TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --          TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --
344          NAME CDATA #IMPLIED -- required for all but submit and reset --          NAME CDATA #IMPLIED -- required for all but submit and reset --
345          VALUE CDATA #IMPLIED          VALUE CDATA #IMPLIED
346          SRC %URL #IMPLIED -- for image inputs --          SRC %URI #IMPLIED -- for image inputs --
347          STATE (CHECKED) #IMPLIED          STATE (CHECKED) #IMPLIED
348          SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --          SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --
349          MAXLENGTH NUMBER #IMPLIED          MAXLENGTH NUMBER #IMPLIED
# Line 201  Line 369 
369          ROWS NUMBER #REQUIRED -- @#implied? --          ROWS NUMBER #REQUIRED -- @#implied? --
370          COLS NUMBER #REQUIRED          COLS NUMBER #REQUIRED
371          >          >
372    ]]>
 <!-- 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. -->  
373    

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24