/[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.9 by connolly, Thu Apr 14 01:23:26 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.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          The role of SGML document entity is filled by this DTD,  <!ENTITY % HTML.linkRelationships "INCLUDE"
62          followed by the conventional HTML data stream.          -- 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 % heading "H1|H2|H3|H4|H5|H6" >  <!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
120  <!ENTITY % list "UL|OL|DIR|MENU">  <!ENTITY % list " UL | OL | DIR | MENU ">
121  <!ENTITY % literal "XMP|LISTING">  <!ENTITY % literal " XMP | LISTING ">
122    
123  <!ENTITY % headelement  <!ENTITY % URI "CDATA"
124           "TITLE | NEXTID | ISINDEX" >          -- 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 % bodyelement  <!ENTITY % Content-Type "CDATA"
136           "P | A | %heading |          -- meaning a MIME content type, as per RFC1341 or any of its updates.
137           %list | DL | HEADERS | ADDRESS | PRE | BLOCKQUOTE          -->
         | %literal">  
138    
139  <!ENTITY % oldstyle "%headelement | %bodyelement | #PCDATA">  <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
140    <!ENTITY % anchor-name "ID">
141    
142  <!-- Characters from various Latin alphabets. -->  <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
143  <!ENTITY % ISOlat1 PUBLIC          REL CDATA #IMPLIED -- forward relationship type --
144          "ISO 8879:1986//ENTITIES Added Latin 1//EN">          REV CDATA #IMPLIED -- reversed relationship type
145  %ISOlat1;                                to referent data:
146    
147                                    PARENT CHILD, SIBLING, NEXT, TOP,
148                                    DEFINITION, UPDATE, ORIGINAL etc. --
149            "> ]]>
150    <!ENTITY % linkRelAttrs "">
151    
152    <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
153            URN CDATA #IMPLIED -- universal resource number --
154    
155            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:
161                                            TEXTSEARCH, GET, HEAD, ... --
162            "> ]]>
163    <!ENTITY % linkMethodAttrs "">
164    
165    <!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 | %oldstyle)*>  
   
 <!ELEMENT HEAD - -  (TITLE? & ISINDEX? & NEXTID?)>  
 <!-- LINK element (from timbl) -->  
 <!ATTLIST HEAD  
         EXPIRES NUMBER #IMPLIED -- expiration date  
                                 in ISO format: yyyymmddhhmmssZ --  
         >  
176    
177  <!ELEMENT TITLE - -  RCDATA  <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]>
178            -- The TITLE element is not considered part of the flow of text.  <!ENTITY % obsolete-plaintext "">
179               It should be displayed, for example as the page header or  <![ %HTML.isindexAtEnd [ <!ENTITY % end-isindex ", ISINDEX?"> ]]>
180               window title.  <!ENTITY % end-isindex "">
181            -->  
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.
194                 It should be displayed, for example as the page header or
195                 window title.
196              -->
197    
198  <!ELEMENT ISINDEX - O EMPTY  <!ELEMENT ISINDEX - O EMPTY
199            -- WWW clients should offer the option to perform a search on            -- WWW clients should offer the option to perform a search on
200               documents containing ISINDEX.               documents containing ISINDEX.
201            -->            -->
202    
203  <!ELEMENT NEXTID - O EMPTY>  <!ELEMENT NEXTID - O EMPTY>
204  <!ATTLIST NEXTID N NUMBER #REQUIRED  <!ATTLIST NEXTID N %anchor-name #REQUIRED
205            -- The number should be the highest number that appears in            -- The number should be a name suitable for use
206               any NAME attribute in the document.               for the ID of a new element. When used, the value
207            -->               has its numeric part incremented. EG Z67 becomes Z68
208                      -->
209  <!ENTITY % inline "EM | TT | STRONG | B | I | U |  <!ELEMENT LINK - O EMPTY>
210                          CODE | SAMP | KBD | KEY | VAR | DFN | CITE "  <!ATTLIST LINK
211          >          %linkattributes>
212            
213    <!ELEMENT BASE - O EMPTY    -- Reference context for URIs -->
214    <!ATTLIST BASE
215    
216  <!ELEMENT (%inline;) - - (#PCDATA)>          HREF %URI; #IMPLIED
217    
218  <!ENTITY % text "#PCDATA | %inline;">          >
219    
220  <!ELEMENT BODY - -  (%bodyelement|%text;)*>  <!ENTITY % font "TT | B | I | U ">
221    <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | KEY | VAR | DFN | CITE">
222    
223  <!ENTITY % URL "CDATA"  <![ %HTML.font-phrase [
224          -- The term URL means a CDATA attribute          <!ENTITY % obsolete-font "| %font">
225             whose value is a Universal Resource Locator,          <!ENTITY % obsolete-phrase "| %phrase">
226             as defined in ftp://info.cern.ch/pub/www/doc/url3.txt          ]]>
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    <!ENTITY % text "#PCDATA | IMG | %inline | BR %go-text %obsolete-p">
244    
245    <!ENTITY % htext "A | %text"    -- Plus links, no structure -->
246    
247  <!ELEMENT A     - -  (#PCDATA)>  <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
248    <!ENTITY % font-content "#PCDATA">
249    <!ELEMENT (%font;) - - (%font-content;)>
250    
251    <!ELEMENT (%phrase;) - - (%htext)+>
252    
253    <!ENTITY % pre "PRE | XMP | LISTING">
254    
255    <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]>
256    <!ENTITY % block-form "">
257    
258    <![ %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          %linkattributes;
285          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, ... --  
         >  
286    
287  <!ELEMENT P     - O EMPTY -- separates paragraphs -->  <!ELEMENT IMG    - O EMPTY --  Embedded image -->
288    <!ATTLIST IMG
289            SRC %URI;  #IMPLIED     -- URI of document to embed --
290            ALT CDATA #IMPLIED
291            ALIGN (top|middle|bottom) #IMPLIED
292            ISMAP (ISMAP) #IMPLIED
293            >
294    
 <!ELEMENT (%heading)    - -  (%text;|A)+>  
295    
296  <!ELEMENT HEADERS - - (DT | #PCDATA | DD | A)+>  <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
297  <!ELEMENT DL    - -  (DT | DD | A | P | %text;)*>  <!ENTITY % p-content "(%htext)+">
298  <!--    Content should match ((DT,(A|%text;)+)+,(DD,(A|%text;)+))  <!ELEMENT P     - O %p-content>
299          But mixed content is messy.  <!ELEMENT HR    - O EMPTY -- horizontal rule -->
300    -->  <!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.--  
         >  
301    
302  <!ELEMENT LI    - O EMPTY>  <!ELEMENT ( %heading )  - -  (%htext;)+>
303    
304  <!ELEMENT BLOCKQUOTE - - (%text;|A|P|ADDRESS)+  <!ELEMENT DL    - -  (DT*, DD?)+>
305          -- for quoting some other source -->  <!ATTLIST DL
306  <!ATTLIST BLOCKQUOTE          STYLE (COMPACT) #IMPLIED>
307          SOURCE CDATA #IMPLIED  
308          >  <!ELEMENT DT    - O (%htext)+>
309    <!ELEMENT DD    - O (%htext|%block)+>
310    
311    <!ELEMENT (%list) - -  (LI)+>
312    
313    <!ELEMENT LI    - O (%htext|%block)+>
314    
315  <!ELEMENT ADDRESS - - (%text;|A|P)+>  <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
316            -- for quoting some other source -->
317    
318  <!ELEMENT PRE - - (#PCDATA|A|P)+>  <!ELEMENT ADDRESS - - (%htext;)+>
319    
320    <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
321  <!ATTLIST PRE  <!ATTLIST PRE
322          WIDTH NUMBER #implied          WIDTH NUMBER #implied
323          >          >
324    
325  <!-- deprecated elements -->  <!-- 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    
 <!ELEMENT (%literal) - -  RCDATA>  
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>  <!ELEMENT PLAINTEXT - O EMPTY>
345    ]]>
346    
347    
348    <!-- Forms  -->
349    <![ %HTML.forms [
350    
351    <!ENTITY % HTTP-Method "(GET | POST)">
352    <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
353    <!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    
 <!-- Local Variables: -->  
 <!-- mode: sgml -->  
 <!-- compile-command: "sgmls -s -p " -->  
 <!-- end: -->  
 ]>  

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24