/[pub]/test/html.dtd
Suika

Diff of /test/html.dtd

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

revision 1.5 by connolly, Wed Mar 30 02:28:06 1994 UTC revision 1.8 by connolly, Sat Apr 9 01:02:10 1994 UTC
# Line 1  Line 1 
1  <!SGML  "ISO 8879:1986"  <!--    html.dtd
2  --  
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          NOTE: This is a definition of HTML with respect to          $Id$
         SGML, and assumes an understaning of SGML terms.  
   
         For a description of HTML in layman's terms, see  
   
         "HTML: A Representation for Nodes in the World Wide Web"  
                 by Dan Connolly.  
   
         aka  
   
         http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html  
                 by <connolly@convex.com>  
 --  
   
 CHARSET  
          BASESET  "ISO 646:1983//CHARSET  
                    International Reference Version (IRV)//ESC 2/5 4/0"  
          DESCSET  0   9   UNUSED  
                   9   2   9  
                   11  2   UNUSED  
                   13  1   13  
                   14  18  UNUSED  
                   32  95  32  
                   127 1   UNUSED  
   
 CAPACITY        SGMLREF  
                 TOTALCAP        150000  
                 GRPCAP          150000  
     
 SCOPE    DOCUMENT  
 SYNTAX    
          SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  
                            19 20 21 22 23 24 25 26 27 28 29 30 31 127 255  
          BASESET  "ISO 646:1983//CHARSET  
                    International Reference Version (IRV)//ESC 2/5 4/0"  
          DESCSET  0 128 0  
          FUNCTION RE          13  
                   RS          10  
                   SPACE       32  
                   TAB SEPCHAR  9  
          NAMING   LCNMSTRT ""  
                   UCNMSTRT ""  
                   LCNMCHAR ".-"  
                   UCNMCHAR ".-"  
                   NAMECASE GENERAL YES  
                            ENTITY  NO  
          DELIM    GENERAL  SGMLREF  
                   SHORTREF SGMLREF  
          NAMES    SGMLREF  
          QUANTITY SGMLREF  
                   NAMELEN  34  
                   TAGLVL   100  
                   LITLEN   1024  
                   GRPGTCNT 150  
                   GRPCNT   64                    
   
 FEATURES  
   MINIMIZE  
     DATATAG  NO  
     OMITTAG  NO  
     RANK     NO  
     SHORTTAG NO  
   LINK  
     SIMPLE   NO  
     IMPLICIT NO  
     EXPLICIT NO  
   OTHER  
     CONCUR   NO  
     SUBDOC   NO  
     FORMAL   YES  
   APPINFO    NONE  
 >  
   
 <!DOCTYPE HTML [  
 <!--  
  $Id$  
7  -->  -->
8    
9  <!--    Regarding clause 6.1, SGML Document:  <!-- Feature Test Entities -->
10    
11          [1] SGML document = SGML document entity,  <!-- To use these, write your document like:
12              (SGML subdocument entity |          <!DOCTYPE HTML [
13              SGML text entity | non-SGML data entity)*          <!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          The role of SGML document entity is filled by this DTD,  <!ENTITY % HTML.linkRelationships "INCLUDE"
54          followed by the conventional HTML data stream.          -- 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 % heading "H1|H2|H3|H4|H5|H6" >  <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
112  <!ENTITY % list "UL|OL|DIR|MENU">  <!ENTITY % list " UL | OL | DIR | MENU ">
113  <!ENTITY % literal "XMP|LISTING">  <!ENTITY % literal " XMP | LISTING ">
114    
115  <!ENTITY % headelement  <!ENTITY % URI "CDATA"
116           "TITLE | NEXTID | ISINDEX" >          -- 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 % bodyelement  <!ENTITY % Content-Type "CDATA"
128           "P | A | %heading |          -- meaning a MIME content type, as per RFC1341 or any of its updates.
129           %list | DL | HEADERS | ADDRESS | PRE | BLOCKQUOTE          -->
         | %literal">  
130    
131  <!ENTITY % oldstyle "%headelement | %bodyelement | #PCDATA">  <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
132    <!ENTITY % anchor-name "ID">
133    
134  <!-- Characters from various Latin alphabets. -->  <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
135  <!ENTITY % ISOlat1 PUBLIC          REL CDATA #IMPLIED -- forward relationship type --
136          "ISO 8879:1986//ENTITIES Added Latin 1//EN">          REV CDATA #IMPLIED -- reversed relationship type
137  %ISOlat1;                                to referent data:
138    
139                                    PARENT CHILD, SIBLING, NEXT, TOP,
140                                    DEFINITION, UPDATE, ORIGINAL etc. --
141            "> ]]>
142    <!ENTITY % linkRelAttrs "">
143    
144    <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
145            URN CDATA #IMPLIED -- universal resource number --
146    
147            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:
153                                            TEXTSEARCH, GET, HEAD, ... --
154            "> ]]>
155    <!ENTITY % linkMethodAttrs "">
156    
157    <!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 | %oldstyle)*>  
   
 <!ELEMENT HEAD - -  (TITLE? & ISINDEX? & NEXTID?)>  
 <!-- LINK element (from timbl) -->  
 <!ATTLIST HEAD  
         EXPIRES NUMBER #IMPLIED -- expiration date  
                                 in ISO format: yyyymmddhhmmssZ --  
         >  
168    
169  <!ELEMENT TITLE - -  RCDATA  <![ %HTML.PLAINTEXT [ <!ENTITY % html-content "(HEAD, BODY), PLAINTEXT?"> ]]>
170            -- The TITLE element is not considered part of the flow of text.  <!ENTITY % html-content "HEAD, BODY">
171               It should be displayed, for example as the page header or  <!ELEMENT HTML O O  (%html-content)>
172               window title.  
173            -->  <![ %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.
182                 It should be displayed, for example as the page header or
183                 window title.
184              -->
185    
186  <!ELEMENT ISINDEX - O EMPTY  <!ELEMENT ISINDEX - O EMPTY
187            -- WWW clients should offer the option to perform a search on            -- WWW clients should offer the option to perform a search on
188               documents containing ISINDEX.               documents containing ISINDEX.
189            -->            -->
190    
191  <!ELEMENT NEXTID - O EMPTY>  <!ELEMENT NEXTID - O EMPTY>
192  <!ATTLIST NEXTID N NUMBER #REQUIRED  <!ATTLIST NEXTID N %anchor-name #REQUIRED
193            -- The number should be the highest number that appears in            -- The number should be a name suitable for use
194               any NAME attribute in the document.               for the ID of a new element. When used, the value
195            -->               has its numeric part incremented. EG Z67 becomes Z68
196                      -->
197  <!ENTITY % inline "EM | TT | STRONG | B | I | U |  <!ELEMENT LINK - O EMPTY>
198                          CODE | SAMP | KBD | KEY | VAR | DFN | CITE "  <!ATTLIST LINK
199          >          %linkattributes>
200            
201    <!ELEMENT BASE - O EMPTY    -- Reference context for URIs -->
202    <!ATTLIST BASE
203    
204  <!ELEMENT (%inline;) - - (#PCDATA)>          HREF %URI; #IMPLIED
205    
206  <!ENTITY % text "#PCDATA | %inline;">          >
207    
208  <!ELEMENT BODY - -  (%bodyelement|%text;)*>  <!ENTITY % font "TT | B | I | U ">
209    <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | KEY | VAR | DFN | CITE">
210    
211  <!ENTITY % URL "CDATA"  <![ %HTML.font-phrase [
212          -- The term URL means a CDATA attribute          <!ENTITY % obsolete-font "| %font">
213             whose value is a Universal Resource Locator,          <!ENTITY % obsolete-phrase "| %phrase">
214             as defined in ftp://info.cern.ch/pub/www/doc/url3.txt          ]]>
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 "%phrase %obsolete-font">
223    <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
224    
225    <!ENTITY % text "#PCDATA | IMG | %inline | BR %obsolete-p">
226    
227    <!ENTITY % htext "A | %text"    -- Plus links, no structure -->
228    
229  <!ELEMENT A     - -  (#PCDATA)>  <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
230    <!ENTITY % font-content "#PCDATA">
231    <!ELEMENT (%font;) - - (%font-content;)>
232    
233    <!ELEMENT (%phrase;) - - (%htext)+>
234    
235    <!ENTITY % pre "PRE | XMP | LISTING">
236    
237    <![ %HTML.forms [ <!ENTITY % block-form "| FORM"> ]]>
238    <!ENTITY % block-form "">
239    
240    <![ %HTML.pSeparator [
241            <!ENTITY % obsolete-htext "| %htext">
242            <!ENTITY % block-p "">
243            ]]>
244    <!ENTITY % obsolete-htext "| A">
245    <!ENTITY % block-p "| P ">
246    
247    <!ENTITY % block "HR | %list | DL
248                    | %pre | BLOCKQUOTE | ADDRESS
249                    %block-form %block-p">
250    
251    
252    <!ENTITY % body-content "%heading | %block %obsolete-htext">
253    <!ELEMENT BODY O O  (%body-content)*>
254    
255    
256    <!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  <!ATTLIST A
263          NAME NMTOKEN #IMPLIED          %linkattributes;
264          HREF %URL; #IMPLIED          >
         TYPE NAME #IMPLIED -- type of relashionship to referent data:  
                                 PARENT CHILD, SIBLING, NEXT, TOP,  
                                  DEFINITION, UPDATE, ORIGINAL etc. --  
         URN CDATA #IMPLIED -- universal resource number. unique doc id --  
         TITLE CDATA #IMPLIED -- advisory only --  
         METHODS NAMES #IMPLIED -- supported methods of the object:  
                                         TEXTSEARCH, GET, HEAD, ... --  
         >  
265    
266  <!ELEMENT P     - O EMPTY -- separates paragraphs -->  <!ELEMENT IMG    - O EMPTY --  Embedded image -->
267    <!ATTLIST IMG
268            SRC %URI;  #IMPLIED     -- URI of document to embed --
269            ALT CDATA #IMPLIED
270            ALIGN (top|middle|bottom) #IMPLIED
271            ISMAP (ISMAP) #IMPLIED
272            >
273    
 <!ELEMENT (%heading)    - -  (%text;|A)+>  
274    
275  <!ELEMENT HEADERS - - (DT | #PCDATA | DD | A)+>  <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
276  <!ELEMENT DL    - -  (DT | DD | A | P | %text;)*>  <!ENTITY % p-content "(%htext)+">
277  <!--    Content should match ((DT,(A|%text;)+)+,(DD,(A|%text;)+))  <!ELEMENT P     - O %p-content>
278          But mixed content is messy.  <!ELEMENT HR    - O EMPTY -- horizontal rule -->
279    -->  <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->
   
 <!ELEMENT DT    - O EMPTY>  
 <!ELEMENT DD    - O EMPTY>  
   
 <!ELEMENT (%list) - -  (%text;|LI|A|P)+>  
 <!--    Content should match ((LI,(A|%text;)+)+)  
         But mixed content is messy.  
   -->  
 <!ATTLIST (%list)  
         STYLE NAME #IMPLIED -- COMPACT, etc.--  
         >  
280    
281  <!ELEMENT LI    - O EMPTY>  <!ELEMENT ( %heading )  - -  (%htext;)+>
282    
283  <!ELEMENT BLOCKQUOTE - - (%text;|A|P|ADDRESS)+  <!ELEMENT DL    - -  (DT*, DD?)+>
284          -- for quoting some other source -->  <!ATTLIST DL
285  <!ATTLIST BLOCKQUOTE          STYLE (COMPACT) #IMPLIED>
286          SOURCE CDATA #IMPLIED  
287          >  <!ELEMENT DT    - O (%htext)+>
288    <!ELEMENT DD    - O (%htext|%block)+>
289    
290    <!ELEMENT (%list) - -  (LI)+>
291    
292    <!ELEMENT LI    - O (%htext|%block)+>
293    
294  <!ELEMENT ADDRESS - - (%text;|A|P)+>  <!ELEMENT BLOCKQUOTE - - ((%htext)+, ADDRESS?)+ -- @# Hmm... --
295            -- for quoting some other source -->
296    
297  <!ELEMENT PRE - - (#PCDATA|A|P)+>  <!ELEMENT ADDRESS - - (%htext;)+>
298    
299    <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
300  <!ATTLIST PRE  <!ATTLIST PRE
301          WIDTH NUMBER #implied          WIDTH NUMBER #implied
302          >          >
303    
304  <!-- deprecated elements -->  <!-- 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    
 <!ELEMENT (%literal) - -  RCDATA>  
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>  <!ELEMENT PLAINTEXT - O EMPTY>
324    ]]>
325    
326    
327    <!-- Forms  -->
328    <![ %HTML.forms [
329    
330    <!ENTITY % HTTP-Method "(GET | POST)">
331    <!ELEMENT FORM - - (%body-content) -(FORM) +(INPUT|SELECT|TEXTAREA)>
332    <!ATTLIST FORM
333            ACTION %URI #REQUIRED
334            METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --
335            ENCTYPE %Content-Type; #IMPLIED
336            >
337    
338    <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
339                            RADIO | SUBMIT | RESET |
340                            IMAGE | HIDDEN )">
341    <!ELEMENT INPUT - O EMPTY>
342    <!ATTLIST INPUT
343            TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --
344            NAME CDATA #IMPLIED -- required for all but submit and reset --
345            VALUE CDATA #IMPLIED
346            SRC %URI #IMPLIED -- for image inputs --
347            STATE (CHECKED) #IMPLIED
348            SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --
349            MAXLENGTH NUMBER #IMPLIED
350            ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--
351            >
352    
353    <!ELEMENT SELECT - - (OPTION+)>
354    <!ATTLIST SELECT
355            NAME CDATA #REQUIRED
356            SIZE NUMBER #IMPLIED
357            SELECTIONS (MULTIPLE) #IMPLIED
358            >
359    
360    <!ELEMENT OPTION - O (#PCDATA)>
361    <!ATTLIST OPTION
362            STATE (SELECTED) #IMPLIED
363            VALUE CDATA #IMPLIED
364            >
365    
366    <!ELEMENT TEXTAREA - - (#PCDATA)>
367    <!ATTLIST TEXTAREA
368            NAME CDATA #REQUIRED
369            ROWS NUMBER #REQUIRED -- @#implied? --
370            COLS NUMBER #REQUIRED
371            >
372    ]]>
373    
 <!-- Local Variables: -->  
 <!-- mode: sgml -->  
 <!-- compile-command: "sgmls -s -p " -->  
 <!-- end: -->  
 ]>  

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24