/[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.3 by connolly, Mon Apr 4 23:58:38 1994 UTC revision 1.15 by connolly, Fri Jun 3 22:09:14 1994 UTC
# Line 1  Line 1 
1  <!--    html.dtd  <!--    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 (HTML DTD).
5    
6          $Id$          $Id$
7    
8            Author: Daniel W. Connolly <connolly@hal.com>
9            See Also: http://www.hal.com/%7Econnolly/html-spec/HTML.html
10                      http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
11  -->  -->
12    
13    <!ENTITY HTML.Version
14            "-//W3O//DTD WWW HTML 2.0//EN"
15            -- public identifier for "current pracitice" version             --
16    
17            -- Typical usage:
18    
19                <!DOCTYPE HTML PUBLIC "-//W3O//DTD WWW HTML 2.0//EN">
20                <html>
21                ...
22                </html>
23            --
24            >
25    
26    
27    <!-- Feature Test Entities -->
28    
29    <!-- To use these, write your document like:
30            <!DOCTYPE HTML [
31            <!ENTITY % HTML.Optional "INCLUDE">
32            <!ENTITY % html PUBLIC "-//connolly hal.com//DTD WWW HTML 1.8//EN">
33            %html;
34            ]>
35            <TITLE>Here's my doc</TITLE>
36            <p>It uses lots of optional features
37    
38     In practice, if you're using sgmls to validate your docs,
39     you can stick the <!DOCTYPE [...]> in a separate file and
40     validate with:
41            sgmls -s doctype.sgml foo.html
42     -->
43    
44    <!ENTITY % HTML.Level0  "IGNORE">
45    <!ENTITY % HTML.Obsolete "IGNORE">
46    <!ENTITY % HTML.Prescriptive "IGNORE">
47    
48    <![ %HTML.Level0 [
49            <!ENTITY % HTML.linkRelationships "IGNORE">
50            <!ENTITY % HTML.linkMethods "IGNORE">
51            <!ENTITY % HTML.linkRedundantInfo "IGNORE">
52            <!ENTITY % HTML.forms "IGNORE">
53            <!ENTITY % HTML.phrase "IGNORE">
54            <!ENTITY % HTML.NEXTID "IGNORE">
55            <!-- @# Are the following required for conformance? -->
56            <!-- @# nested lists -->
57            <!-- @# IMG -->
58            <!-- @# headers inside A -->
59            <!-- @# nested phrases, fonts -->
60            ]]>
61            
62    <![ %HTML.Obsolete [
63            <!ENTITY % HTML.titleCDATA "INCLUDE">
64            <!ENTITY % HTML.litCDATA "INCLUDE">
65            <!ENTITY % HTML.pSeparator "INCLUDE">
66            ]]>
67    
68    <![ %HTML.Prescriptive [
69            <!--
70            This feature test entity prescribes that certain
71            idioms detract from the structural integrity of an
72            HTML document, and are therefore disallowed.
73            -->
74            <!ENTITY % HTML.font-phrase "IGNORE">
75            <!ENTITY % HTML.anchorNameCDATA "IGNORE">
76            <!ENTITY % HTML.PLAINTEXT "IGNORE">
77            <!ENTITY % HTML.bodyBlockOnly "INCLUDE">
78            ]]>
79    
80    <!ENTITY % HTML.phrase "INCLUDE"
81            -- phrase markup, ala TeXinfo: TT, EM, etc.
82            -->
83    
84    <!ENTITY % HTML.bodyBlockOnly "IGNORE"
85            -- only allow block elements in the BODY element
86            This means all paragraphs need to start with a <P> tag.
87            -->
88    
89    <!ENTITY % HTML.pSeparator "IGNORE"
90            -- use P element as paragraph separator, rather that container.
91            -->
92    
93    <!ENTITY % HTML.linkRelationships "INCLUDE"
94            -- Adding markup to links to show the relationship between
95            ends of a link
96            see http://info.cern.ch/hypertext/WWW/MarkUp/Relationships.html
97            -->
98    
99    <!ENTITY % HTML.linkMethods "INCLUDE"
100            -- Adding markup to links to show the methods supported
101            by the referent object
102            see http://info.cern.ch/hypertext/WWW/MarkUp/Elements/A.html
103            -->
104    
105    <!ENTITY % HTML.linkRedundantInfo "INCLUDE"
106            -- Adding markup to links to give redundant information
107            like URN, content type, title...
108            -->
109    
110    <!ENTITY % HTML.anchorNameCDATA "INCLUDE"
111            -- Anchor names should be distinct. SGML parser can validate
112            this if the NAME attribute of the A element is declared as ID.
113            But that restricts the syntax of an anchor name to an SGML name,
114            i.e. a letter followed by letters, numbers, periods and dashes,
115            up to NAMELEN (34) characters long.
116            -->
117    
118    <!ENTITY % HTML.PLAINTEXT "INCLUDE"
119            -- Support for the <PLAINTEXT> tag as a sign of the
120            end of th HTML data stream and the beginning of a stream
121            of text/plain data
122            -->
123    
124    <!ENTITY % HTML.titleCDATA "IGNORE"
125            -- Is the TITLE element #PCDATA, RCDATA, or CDATA content?
126            On Mosaic, it's #PCDATA, but in the linemode browser,
127            it's more like CDATA, but not quite.
128            -->
129    
130    <!ENTITY % HTML.NEXTID "INCLUDE"
131            -- Used by the NeXT implementation to keep track of the
132            next anchor id to use
133            -->
134    
135    <!ENTITY % HTML.font-phrase "INCLUDE"
136            -- allow B, I, TT, U outside PRE,
137            CITE, VAR, etc. inside PRE
138            -->
139    
140    <!ENTITY % HTML.KEY "IGNORE"
141            -- There was once a KEY element, for keyboard keys, menu items,
142            buttons, etc. but it's not supported or widely documented
143            -->
144    
145    <!ENTITY % HTML.U "IGNORE"
146            -- There was also a U element, but since it clashes with
147            the common pracitce of underlining hypertext links, it is
148            not widely supported
149            -->
150    
151    <!ENTITY % HTML.litCDATA "IGNORE"
152            -- treat XMP, LISTING as CDATA, as per linemodeWWW
153            -->
154    
155    <!ENTITY % HTML.forms "INCLUDE"
156            -- Support for forms as per
157    http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html
158            -->
159    
160  <!-- DTD definitions -->  <!-- DTD definitions -->
161    
# Line 13  Line 163 
163  <!ENTITY % list " UL | OL | DIR | MENU ">  <!ENTITY % list " UL | OL | DIR | MENU ">
164  <!ENTITY % literal " XMP | LISTING ">  <!ENTITY % literal " XMP | LISTING ">
165    
166  <!ENTITY % bodyelement  <!ENTITY % URI "CDATA"
167           "P | HR | %heading |          -- The term URI means a CDATA attribute
168           %list | DL | ADDRESS | PRE | BLOCKQUOTE             whose value is a Uniform Resource Identifier,
169          | %literal">             as defined by
170            "Universal Resource Identifiers" by Tim Berners-Lee
171  <!ENTITY % URL "CDATA"          aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
172          -- The term URL means a CDATA attribute  
173             whose value is a Uniform Resource Locator,          Note that CDATA attributes are limited by the LITLEN
174             as defined. (A URN may also be usable here when defined.)          capacity (1024 in the current version of html.decl),
175            so that URIs in HTML have a bounded length.
176    
177          -->          -->
178    
179  <!ENTITY % linkattributes  <!ENTITY % Content-Type "CDATA"
180          "NAME NMTOKEN #IMPLIED          -- meaning a MIME content type, as per RFC1521
181          HREF %URL;  #IMPLIED          -->
182    
183    <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]>
184    <!ENTITY % anchor-name "ID">
185    
186    <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs "
187          REL CDATA #IMPLIED -- forward relationship type --          REL CDATA #IMPLIED -- forward relationship type --
188          REV CDATA #IMPLIED -- reversed relationship type          REV CDATA #IMPLIED -- reversed relationship type
189                                to referent data:                                to referent data:
190    
191                                  PARENT CHILD, SIBLING, NEXT, TOP,                                  PARENT CHILD, SIBLING, NEXT, TOP,
192                                  DEFINITION, UPDATE, ORIGINAL etc. --                                  DEFINITION, UPDATE, ORIGINAL etc. --
193            "> ]]>
194    <!ENTITY % linkRelAttrs "">
195    
196    <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs "
197          URN CDATA #IMPLIED -- universal resource number --          URN CDATA #IMPLIED -- universal resource number --
198    
199          TITLE CDATA #IMPLIED -- advisory only --          TITLE CDATA #IMPLIED -- advisory only --
200            "> ]]>
201    <!ENTITY % linkRedundantAttrs "">
202    
203    <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs "
204          METHODS NAMES #IMPLIED -- supported public methods of the object:          METHODS NAMES #IMPLIED -- supported public methods of the object:
205                                          TEXTSEARCH, GET, HEAD, ... --                                          TEXTSEARCH, GET, HEAD, ... --
206            "> ]]>
207    <!ENTITY % linkMethodAttrs "">
208    
209    <!ENTITY % linkattributes
210            "NAME %anchor-name #IMPLIED
211            HREF %URI;  #IMPLIED
212            %linkRelAttrs;
213            %linkRedundantAttrs;
214            %linkMethodAttrs;
215          ">          ">
216    
217    
218  <!-- Document Element -->  <!-- Document Element -->
219    
 <!ELEMENT HTML O O  (HEAD, BODY)>  
220    
221  <!ELEMENT HEAD O O  ( TITLE?  & ISINDEX?  & NEXTID?  & LINK*  <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]>
222                                & BASE?)>  <!ENTITY % obsolete-plaintext "">
223    
224    <!ENTITY % html-content "HEAD, BODY %obsolete-plaintext;">
225    <!ELEMENT HTML O O  (%html-content)>
226    
227  <!ELEMENT TITLE - -  (#PCDATA)  <![ %HTML.NEXTID [  <!ENTITY % head-content "TITLE? & ISINDEX? & LINK* & BASE?
228                            & NEXTID?"> ]]>
229    <!ENTITY % head-content "TITLE & ISINDEX? & LINK* & BASE?">
230    <!ELEMENT HEAD O O  (%head-content)>
231    
232    <![ %HTML.titleCDATA [ <!ENTITY % title-content "CDATA"> ]]>
233    <!ENTITY % title-content "(#PCDATA)">
234    <!ELEMENT TITLE - -  %title-content
235            -- The TITLE element is not considered part of the flow of text.            -- The TITLE element is not considered part of the flow of text.
236               It should be displayed, for example as the page header or               It should be displayed, for example as the page header or
237               window title.               window title.
# Line 62  Line 242 
242               documents containing ISINDEX.               documents containing ISINDEX.
243            -->            -->
244    
245    <!ELEMENT NEXTID - O EMPTY>
246    <!ATTLIST NEXTID N %anchor-name #REQUIRED
247              -- The number should be a name suitable for use
248                 for the ID of a new element. When used, the value
249                 has its numeric part incremented. EG Z67 becomes Z68
250              -->
251  <!ELEMENT LINK - O EMPTY>  <!ELEMENT LINK - O EMPTY>
252  <!ATTLIST LINK  <!ATTLIST LINK
253          %linkattributes>          %linkattributes>
254                    
255  <!ELEMENT BASE - O EMPTY    -- Reference context for URLS -->  <!ELEMENT BASE - O EMPTY    -- Reference context for URIs -->
256  <!ATTLIST BASE  <!ATTLIST BASE
257    
258          HREF %URL; #IMPLIED          HREF %URI; #REQUIRED
259    
260          >          >
 <!ENTITY % inline "EM | STRONG |  
                         CODE | SAMP | KBD | KEY | VAR | DFN | CITE "  
         >  
   
 <!ELEMENT (%inline;) - - (#PCDATA | A)+>  
 <!ELEMENT (B | I | U | TT) - - (#PCDATA | A)+>  
261    
262  <!ENTITY % text "#PCDATA | IMG | %inline; | BR">  <![ %HTML.KEY [
263            <!ENTITY % key-emph "| KEY">
264            ]]>
265    <!ENTITY % key-emph "">
266    
267    <![ %HTML.U [
268            <!ENTITY % u-font "| U">
269            ]]>
270    <!ENTITY % u-font "">
271    
272    <!ENTITY % font "TT | B | I %u-font">
273    <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | DFN | CITE
274             | STRIKE %key-emph">
275    
276    
277    <![ %HTML.font-phrase [
278            <!ENTITY % obsolete-font "| %font">
279            <!ENTITY % obsolete-phrase "| %phrase">
280            ]]>
281    <!ENTITY % obsolete-font "">
282    <!ENTITY % obsolete-phrase "">
283    <![ %HTML.pSeparator [
284            <!ENTITY % obsolete-p "| P">
285            ]]>
286    <!ENTITY % obsolete-p "">
287    
288  <!ENTITY % htext "A | %text"    -- Plus links, no structure -->  <!ENTITY % inline "%phrase %obsolete-font">
289    <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p">
 <!ENTITY % stext                -- as htext but also nested structure --  
                         "P | HR | %list | DL | ADDRESS  
                         | PRE | BLOCKQUOTE  
                         | %literal | %htext">  
   
 <!ENTITY % block                -- as htext but also nested structure --  
                         "P | HR | %list | DL  
                         | PRE | BLOCKQUOTE | ADDRESS  
                         | %literal">  
290    
291    <!ENTITY % inline "">
292    <!ENTITY % pre-inline "">
293    
294  <!ELEMENT BODY O O  (%heading | %block)+>  <!ENTITY % text "#PCDATA | IMG | %inline | BR %obsolete-p">
295    
296    <!ENTITY % htext "A | %text"    -- Plus links, no structure -->
297    
298  <!ELEMENT A     - -  ANY>  <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]>
299    <!ENTITY % font-content "#PCDATA">
300    <!ELEMENT (%font;) - - (%font-content;)>
301    
302    <![ %HTML.phrase [
303    <!ELEMENT (%phrase;) - - (%htext)+>
304    ]]>
305    
306    <!ENTITY % pre "PRE | XMP | LISTING">
307    
308    <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]>
309    <!ENTITY % block-form "">
310    
311    <![ %HTML.pSeparator [
312            <!ENTITY % obsolete-htext "| %htext">
313            <!ENTITY % block-p "">
314            ]]>
315    <!ENTITY % obsolete-htext "| A">
316    <!ENTITY % block-p "| P ">
317    
318    <!ENTITY % block "HR | %list | DL
319                    | %pre | BLOCKQUOTE | ADDRESS
320                    %block-form %block-p">
321    
322    
323    <![ %HTML.bodyBlockOnly [
324            <!ENTITY % current-htext "">
325            ]]>
326    <!ENTITY % current-htext "| %htext">
327    
328    <!ENTITY % body-content "%heading | %block %current-htext">
329    <!ELEMENT BODY O O  (%body-content)*>
330    
331    
332    <!ELEMENT A     - - (%heading|%block|%text)+ -(A)
333            -- @# Technically, this allows silliness like:
334                    <H2><A>xyz<H1>h1</H1></A></H2>
335            The right way to do anchors outside of %htext is more like:
336                    <as id=z1><H2>lkjlkj</h2><ae start=z1>
337            -->
338  <!ATTLIST A  <!ATTLIST A
339          %linkattributes;          %linkattributes;
340          >          >
341    
342  <!ELEMENT IMG    - O EMPTY --  Embedded image -->  <!ELEMENT IMG    - O EMPTY --  Embedded image -->
343  <!ATTLIST IMG  <!ATTLIST IMG
344          SRC %URL;  #IMPLIED     -- URL of document to embed --          SRC %URI;  #IMPLIED     -- URI of document to embed --
345            ALT CDATA #IMPLIED
346            ALIGN (top|middle|bottom) #IMPLIED
347            ISMAP (ISMAP) #IMPLIED
348          >          >
349    
350    
351  <!ELEMENT P     - O (%htext)+ -- paragraph -->  <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]>
352  <!ELEMENT (HR|BR)    - O EMPTY -- horizontal rule -->  <!ENTITY % p-content "(%htext)+">
353    <!ELEMENT P     - O %p-content>
354    <!ELEMENT HR    - O EMPTY -- horizontal rule -->
355    <!ELEMENT BR    - O EMPTY -- @# BR -> &br; -->
356    
357  <!ELEMENT ( %heading )  - -  (%htext;)+>  <!ELEMENT ( %heading )  - -  (%htext;)+>
358    
359  <!ELEMENT DL    - -  (DT+, DD+)+>  <!ELEMENT DL    - -  (DT*, DD?)+>
360  <!--    structured DL's  <!ATTLIST DL
361    -->          COMPACT (COMPACT) #IMPLIED>
362    
363  <!ELEMENT DT    - O (%htext)+>  <!ELEMENT DT    - O (%htext)+>
364  <!ELEMENT DD    - O (%htext|%block)+>  <!ELEMENT DD    - O (%htext|%block)+>
365    
366  <!ELEMENT (%list) - -  (LI)+>  <!ELEMENT (%list) - -  (LI)+>
367    
 <!ATTLIST (%list)  
         COMPACT NAME #IMPLIED -- COMPACT, etc.--  
         >  
   
368  <!ELEMENT LI    - O (%htext|%block)+>  <!ELEMENT LI    - O (%htext|%block)+>
369    
370  <!ELEMENT BLOCKQUOTE - - ((%htext|P)+, ADDRESS?)+  <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... --
371          -- for quoting some other source -->          -- for quoting some other source -->
372    
373  <!ELEMENT ADDRESS - - (%htext;)+>  <!ELEMENT ADDRESS - - (%htext;|%block)+>
374    
375  <!ELEMENT PRE - - (#PCDATA | TT | B | I | U | A | P | BR)+>  <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+>
376  <!ATTLIST PRE  <!ATTLIST PRE
377          WIDTH NUMBER #implied          WIDTH NUMBER #implied
378          >          >
# Line 144  Line 383 
383    "ISO 8879:1986//ENTITIES Added Latin 1//EN">    "ISO 8879:1986//ENTITIES Added Latin 1//EN">
384  %ISOlat1;  %ISOlat1;
385    
386  <!ENTITY amp "&#38;"     -- ampersand -->  <!ENTITY #DEFAULT SDATA "&#38;unkown;" --display the markup-->
387  <!ENTITY gt "&#62;"      -- greater than -->  <!ENTITY amp CDATA "&#38;"     -- ampersand -->
388  <!ENTITY lt "&#60;"      -- less than -->  <!ENTITY gt CDATA "&#62;"      -- greater than -->
389  <!ENTITY nbsp "&#32;"    --  @@should be NON_BREAKING space -->  <!ENTITY lt CDATA "&#60;"      -- less than -->
390  <!-- @@ should add entites for processing instructions  <!ENTITY quot CDATA "&#34;"    -- double quote -->
391    
392    <!-- Processing Entities -->
393    
394    <!ENTITY nbsp "<? nonbreaking-space>">
395    <!-- @# should add entites for processing instructions
396          for line break, centering, etc. -->          for line break, centering, etc. -->
397    
 <!-- deprecated elements -->  
398    
399  <!ELEMENT (%literal) - -  CDATA>  <!-- Forms  -->
400    <![ %HTML.forms [
401    
402  <!ELEMENT PLAINTEXT - O EMPTY>  <!ENTITY % HTTP-Method "(GET | POST)">
403    <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)>
404    <!ATTLIST FORM
405            ACTION %URI #REQUIRED
406            METHOD %HTTP-Method #IMPLIED -- @# MAILTO? --
407            ENCTYPE %Content-Type; #IMPLIED
408            >
409    
410    <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
411                            RADIO | SUBMIT | RESET |
412                            IMAGE | HIDDEN )">
413    <!ELEMENT INPUT - O EMPTY>
414    <!ATTLIST INPUT
415            TYPE %InputType #IMPLIED -- @# defaults to TEXT?? --
416            NAME CDATA #IMPLIED -- required for all but submit and reset --
417            VALUE CDATA #IMPLIED
418            SRC %URI #IMPLIED -- for image inputs --
419            CHECKED (CHECKED) #IMPLIED
420            SIZE CDATA #IMPLIED -- @# should be NUMBERS: delimit with space, not comma --
421            MAXLENGTH NUMBER #IMPLIED
422            ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?--
423            >
424    
425    <!ELEMENT SELECT - - (OPTION+)>
426    <!ATTLIST SELECT
427            NAME CDATA #REQUIRED
428            SIZE NUMBER #IMPLIED
429            MULTIPLE (MULTIPLE) #IMPLIED
430            >
431    
432    <!ELEMENT OPTION - O (#PCDATA)>
433    <!ATTLIST OPTION
434            SELECTED (SELECTED) #IMPLIED
435            VALUE CDATA #IMPLIED
436            >
437    
438    <!ELEMENT TEXTAREA - - (#PCDATA)>
439    <!ATTLIST TEXTAREA
440            NAME CDATA #REQUIRED
441            ROWS NUMBER #REQUIRED -- @#implied? --
442            COLS NUMBER #REQUIRED
443            >
444    ]]>
445    
446    <!-- Obsolete Elements  -->
447    
448    <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]>
449    <!ENTITY % lit-content "RCDATA">
450    <!ELEMENT (%literal) - -  %lit-content>
451    
452    <![ %HTML.PLAINTEXT [
453    <!ELEMENT PLAINTEXT - O EMPTY>
454    ]]>

Legend:
Removed from v.1.7.2.3  
changed lines
  Added in v.1.15

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24