HTML Document Type Definitions

This section provides:

SGML Declaration for HTML

This is the SGML Declaration for HyperText Markup Language (HTML) as used by the World-Wide Web (WWW) application:

<!SGML  "ISO 8879:1986"

--
SGML Declaration for HyperText Markup Language (HTML)
as used by the World-Wide Web (WWW) application.

--

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
BASESET "ISO Registration Number 100//CHARSET
ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
DESCSET 128 32 UNUSED
160 96 32

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
BASESET "ISO 646:1983//CHARSET
International Reference Version (IRV)//ESC 2/5 4/0"
DESCSET 0 128 0
FUNCTION
-- SPACE 32
TAB SEPCHAR 9
LF SEPCHAR 10
FF SEPCHAR 12
CR SEPCHAR 13 --

-- The above is an accurate description of the usage of FUNCTION --
-- characters in HTML implementations; that is, there is no --
-- Record Start or Record End character, and no occurences of --
-- character 10 or 13 are "ignored" by the parser. --
-- But because few SGML implementations support this concrete --
-- sytax, we include the one below. --

-- Note that in order to get correct behaviour w.r.t. newline --
-- processing, you will have to play some tricks in construcing --
-- the document entity for parsing in order to keep the parser --
-- from ignoring newlines in surpirsing ways --

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 72 -- somewhat arbitrary; taken from
internet line length conventions --
TAGLVL 100
LITLEN 1024
GRPGTCNT 150
GRPCNT 64

FEATURES
MINIMIZE
DATATAG NO
OMITTAG YES
RANK NO
SHORTTAG YES
LINK
SIMPLE NO
IMPLICIT NO
EXPLICIT NO
OTHER
CONCUR NO
SUBDOC NO
FORMAL YES
APPINFO NONE
>

HTML Level 0 DTD

This is the Document Type Definition for the HyperText Markup Language as used by minimally conforming World Wide Web ap plications (HTML Level 0 DTD):

 <!-- 

$Id: CUYrrYBo0I9X3cS.html,v 1.4 1994/08/02 13:47:42 karen Exp $

Author: Daniel W. Connolly <connolly@hal.com>

See also: http://www.hal.com/%7Econnolly/html-spec
http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html
-->
<!-- html-0.dtd

Document Type Definition for the HyperText Markup Language
as used by minimally conforming World Wide Web applications
(HTML Level 0 DTD).

$Id: CUYrrYBo0I9X3cS.html,v 1.4 1994/08/02 13:47:42 karen Exp $

Author: Daniel W. Connolly <connolly@hal.com>
See Also: http://www.hal.com/%7Econnolly/html-spec/index.html
http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
-->

<!ENTITY % HTML.Version
"+//ISBN 82-7640-037::WWW//DTD HTML Level 0//EN//2.0"
-- public identifier for "minimal conformance" version --

-- Typical usage:

<!DOCTYPE HTML PUBLIC
"+//ISBN 82-7640-037::WWW//DTD HTML Level 0//EN">
<html>
...
</html>
--
>

<!-- Feature Test Entities -->

<!ENTITY % HTML.Prescriptive "IGNORE"
-- marks things that may become standard in future revisions -->

<![ %HTML.Prescriptive [
<!ENTITY % HTML.Obsolete "IGNORE">
]]>

<!ENTITY % HTML.Obsolete "INCLUDE"
-- marks things that may disappear in future revisions -->

<!ENTITY % HTML.Proposed "IGNORE">

<!-- Link Markup -->

<!ENTITY % URI "CDATA"
-- The term URI means a CDATA attribute
whose value is a Uniform Resource Identifier,
as defined by
"Universal Resource Identifiers" by Tim Berners-Lee
aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html

Note that CDATA attributes are limited by the LITLEN
capacity (1024 in the current version of html.decl),
so that URIs in HTML have a bounded length.

-->

<!ENTITY % linkattributes-1 "" -- level 1 link attributes -->

<!ENTITY % linkattributes
"NAME CDATA #IMPLIED
HREF %URI; #IMPLIED
%linkattributes-1
">

<!-- Text Markup -->

<!ENTITY % text "#PCDATA | IMG | BR">

<!ELEMENT BR - O EMPTY>

<!ELEMENT IMG - O EMPTY -- Embedded image -->
<!ENTITY % img.alt.default "#REQUIRED" -- must have ALT in level 0 images -->
<!ATTLIST IMG
SRC %URI; #REQUIRED -- URI of document to embed --
ALT CDATA %img.alt.default;
ALIGN (top|middle|bottom) #IMPLIED
ISMAP (ISMAP) #IMPLIED
>

<!-- Mnemonic character entities. -->

<!ENTITY % ISOlat1 PUBLIC
"ISO 8879:1986//ENTITIES Added Latin 1//EN">
%ISOlat1;

<!ENTITY #DEFAULT SDATA "&#38;unkown;" --display the markup-->
<!ENTITY amp CDATA "&#38;" -- ampersand -->
<!ENTITY gt CDATA "&#62;" -- greater than -->
<!ENTITY lt CDATA "&#60;" -- less than -->
<!ENTITY quot CDATA "&#34;" -- double quote -->

<![ %HTML.Proposed [
<!ENTITY nbsp CDATA "&#160;" -- non-breaking space -->
<!ENTITY shy CDATA "&#173;" -- soft hyphen -->
]]>


<!-- DTD "macros" -->

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

<!ENTITY % list " UL | OL | DIR | MENU " >

<!ENTITY % block-2 "" -- block elements added in level 2 -->

<![ %HTML.Obsolete [
<!ENTITY % block "P | %list | DL
| PRE | XMP | LISTING
| BLOCKQUOTE %block-2">
]]>

<!ENTITY % block "P | %list | DL
| PRE | BLOCKQUOTE %block-2">

<!-- HyperText -->

<!ENTITY % htext "A | %text" -- Plus links, no structure -->

<![ %HTML.Prescriptive [
<!ENTITY % A.content "(%text)+"
-- The standard content model for A allows nonsense like:
<H2><A>xyz<H1>h1</H1></A></H2>
-->
]]>

<!ENTITY % A.content "(%heading|%block|%text)+">

<!ELEMENT A - - %A.content -(A)>

<!ATTLIST A
%linkattributes;
>

<!-- Paragraphs -->

<!ELEMENT P - O (%htext)+>


<!-- Headings, Titles, Sections -->

<!ELEMENT HR - O EMPTY -- horizontal rule -->

<!ELEMENT ( %heading ) - - (%htext;)+>

<!ELEMENT TITLE - - (#PCDATA)
-- The TITLE element is not considered part of the flow of text.
It should be displayed, for example as the page header or
window title.
-->


<!-- Text Flows -->

<!ENTITY % flow "(%htext|%block)*">

<!-- Lists -->


<!ELEMENT DL - - (DT*, DD?)+>
<!ATTLIST DL
COMPACT (COMPACT) #IMPLIED>

<!ELEMENT DT - O (%htext)+>
<!ELEMENT DD - O %flow>

<!ELEMENT (%list) - - (LI)+>
<!ATTLIST (%list)
COMPACT (COMPACT) #IMPLIED>

<!ELEMENT LI - O %flow>

<!-- Preformatted Text -->

<!ENTITY % pre.content "#PCDATA | A">
<!ELEMENT PRE - - (%pre.content)+>

<![ %HTML.Obsolete [

<!ENTITY % literal "CDATA"
-- special non-conforming parsing mode where
the only markup signal is the end tag
in full
-->

<!ELEMENT XMP - - %literal>
<!ELEMENT LISTING - - %literal>
<!ELEMENT PLAINTEXT - O %literal>

]]>


<!-- Document Body -->

<![ %HTML.Prescriptive [
<!ENTITY % body.content "(%heading|%block|HR|ADDRESS)*">
]]>

<!ENTITY % body.content "(%heading | %htext | %block | HR | ADDRESS)*">

<!ELEMENT BODY O O %body.content>

<!-- Misc. Body Elements -->

<!ELEMENT BLOCKQUOTE - - %body.content>

<![ %HTML.Prescriptive [
<!ENTITY % address.content "(%htext)*">
]]>
<!ENTITY % address.content "(%htext|P)*">
<!ELEMENT ADDRESS - - %address.content>


<!-- Document Head -->

<!ENTITY % head.content-1 "" -- head elements in level-1 -->

<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & NEXTID? %head.content-1">

<!ELEMENT HEAD O O (%head.content)>

<!ELEMENT ISINDEX - O EMPTY
-- WWW clients should offer the option to perform a search on
documents containing ISINDEX.
-->

<!ELEMENT BASE - O EMPTY -- Reference context for URIs -->
<!ATTLIST BASE
HREF %URI; #REQUIRED
>

<!ELEMENT NEXTID - O EMPTY>
<!ATTLIST NEXTID N CDATA #REQUIRED
-- The number should be a name suitable for use
for the ID of a new element. When used, the value
has its numeric part incremented. EG Z67 becomes Z68
-->


<!-- Document Structure -->

<![ %HTML.Obsolete [
<!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
]]>
<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content)>
<!ENTITY % version.attr "VERSION CDATA #FIXED &#34;%HTML.Version;&#34;">

<!ATTLIST HTML
%version.attr;-- report DTD version to application --
>

HTML Level 1 DTD

This is the Document Type Definition for the HyperText Markup Language with Level 1 Extensions (HTML Level 1 DTD):

<!--    html-1.dtd


Document Type Definition for the HyperText Markup Language
with Level 1 Extensions (HTML Level 1 DTD).

$Id: CUYrrYBo0I9X3cS.html,v 1.4 1994/08/02 13:47:42 karen Exp $

Author: Daniel W. Connolly <connolly@hal.com>
See Also: http://www.hal.com/%7Econnolly/html-spec/index.html
http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
-->

<!ENTITY % HTML.Version
"+//ISBN 82-7640-037::WWW//DTD HTML Level 1//EN//2.0"

-- Typical usage:

<!DOCTYPE HTML PUBLIC
"+//ISBN 82-7640-037::WWW//DTD HTML Level 1//EN">
<html>
...
</html>
--
>


<!ENTITY % HTML.Proposed "IGNORE"
-- marks things that have been proposed, but aren't
yet widely supported -->

<!ENTITY % linkType "NAME"
-- a list of these will be specified at a later date -->

<!ENTITY % URI "CDATA" -- see html-0.dtd -->

<!ENTITY % linkattributes-1
"REL %linkType #IMPLIED -- forward relationship type --
REV %linkType #IMPLIED -- reversed relationship type
to referent data: --
URN CDATA #IMPLIED -- universal resource number --

TITLE CDATA #IMPLIED -- advisory only --
METHODS NAMES #IMPLIED -- supported public methods of the object:
TEXTSEARCH, GET, HEAD, ... --
">


<![ %HTML.Proposed [
<!ENTITY % head.content-1 "& LINK* & META*">
<!ELEMENT META - O EMPTY -- Generic Metainformation -->
<!ATTLIST META
HTTP-EQUIV NAME #IMPLIED -- HTTP response header name --
NAME NAME #IMPLIED -- metainformation name --
CONTENT CDATA #REQUIRED -- associated information --
>
]]>

<!ENTITY % head.content-1 "& LINK*">

<!ELEMENT LINK - O EMPTY>
<!ATTLIST LINK
HREF %URI #REQUIRED
%linkattributes-1; >

<![ %HTML.Proposed [
<!ENTITY % font " TT | B | I | U | S ">
<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE
| STRIKE | DFN | KEY">
]]>

<!ENTITY % font " TT | B | I ">

<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">



<!ENTITY % text "#PCDATA | IMG | BR | %phrase | %font">
<!ENTITY % htext "A | %text">
<!ENTITY % phrase.content "%htext">

<!ENTITY % pre.content "#PCDATA | A | %font | %phrase">

<!ELEMENT (%font;) - - (%phrase.content)+>

<!ELEMENT (%phrase;) - - (%phrase.content)+>

<!ENTITY % img.alt.default "#IMPLIED"
-- ALT attribute optional in Level 1 docs -->

<!ENTITY % html-0 PUBLIC "+//ISBN 82-7640-037::WWW//DTD HTML Level 0//EN//2.0">
%html-0;

<!ATTLIST PRE
WIDTH NUMBER #implied
>

HTML DTD

This is the Document Type Definition for the HyperText Markup Language (HTML DTD):

<!--    html.dtd


Document Type Definition for the HyperText Markup Language (HTML DTD)

$Id: CUYrrYBo0I9X3cS.html,v 1.4 1994/08/02 13:47:42 karen Exp $

Author: Daniel W. Connolly <connolly@hal.com>
See Also: html.decl, html-0.dtd, html-1.dtd
http://www.hal.com/%7Econnolly/html-spec/index.html
http://info.cern.ch/hypertext/WWW/MarkUp2/MarkUp.html
-->

<!ENTITY % HTML.Version
"+//ISBN 82-7640-037::WWW//DTD HTML//EN//2.0"

-- Typical usage:

<!DOCTYPE HTML PUBLIC "+//ISBN 82-7640-037::WWW//DTD HTML//EN">
<html>
...
</html>
--
>


<!-- Imported Names -->

<!ENTITY % Content-Type "CDATA"
-- meaning a MIME content type, as per RFC1521
-->

<!ENTITY % HTTP-Method "GET | POST">


<!-- Include level 1 DTD + block extensions -->

<!ENTITY % block-2 "| FORM | ISINDEX">

<!ENTITY % html-1 PUBLIC "+//ISBN 82-7640-037::WWW//DTD HTML Level 1//EN//2.0">
%html-1;


<!-- Forms -->

<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
<!ATTLIST FORM
ACTION %URI #REQUIRED
METHOD (%HTTP-Method) GET
ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
>

<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
RADIO | SUBMIT | RESET |
IMAGE | HIDDEN )">
<!ELEMENT INPUT - O EMPTY>
<!ATTLIST INPUT
TYPE %InputType TEXT
NAME CDATA #IMPLIED -- required for all but submit and reset --
VALUE CDATA #IMPLIED
SRC %URI #IMPLIED -- for image inputs --
CHECKED (CHECKED) #IMPLIED
SIZE CDATA #IMPLIED -- like NUMBERS,
but delimited with comma, not space --
MAXLENGTH NUMBER #IMPLIED
ALIGN (top|middle|bottom) #IMPLIED
>

<!ELEMENT SELECT - - (OPTION+)>
<!ATTLIST SELECT
NAME CDATA #REQUIRED
SIZE NUMBER #IMPLIED
MULTIPLE (MULTIPLE) #IMPLIED
>

<!ELEMENT OPTION - O (#PCDATA)>
<!ATTLIST OPTION
SELECTED (SELECTED) #IMPLIED
VALUE CDATA #IMPLIED
>

<!ELEMENT TEXTAREA - - (#PCDATA)>
<!ATTLIST TEXTAREA
NAME CDATA #REQUIRED
ROWS NUMBER #REQUIRED
COLS NUMBER #REQUIRED
>




Preceding Section:
xmp, listing
Following Section: HTML DTD Reference (Level 2)
Parent Section: HyperText Markup Language
Contents of HyperText Markup Language