5. HTML Document Type Definitions
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: html.dtd,v 1.21 1994/11/15 19:54:38 connolly 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
"-//IETF//DTD HTML//EN//2.0"
-- Typical usage:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
...
</html>
--
>
<!--================== Feature Test Entities ==============================-->
<!ENTITY % HTML.Recommended "IGNORE"
-- Certain features of the language are necessary for compatibility
with widespread usage, but they may compromise the structural
integrity of a document. This feature test entity enables
a more prescriptive document type definition that eliminates
those features.
-->
<![ %HTML.Recommended [
<!ENTITY % HTML.Deprecated "IGNORE">
]]>
<!ENTITY % HTML.Deprecated "INCLUDE"
-- Certain features of the language are necessary for compatibility
with earlier versions of the specification, but they tend
to be used an implemented inconsistently, and their use is
deprecated. This feature test entity enables a document type
definition that eliminates these features.
-->
<!ENTITY % HTML.Highlighting "INCLUDE"
-- Use this feature test entity to validate that a document
uses no highlighting tags, which may be ignored on minimal
implementations.
-->
<!ENTITY % HTML.Forms "INCLUDE"
-- Use this feature test entity to validate that a document
contains no forms, which may not be supported in minimal
implementations
-->
<!--================== Imported Names =====================================-->
<!ENTITY % Content-Type "CDATA"
-- meaning an internet media type
(aka MIME content type, as per RFC1521)
-->
<!ENTITY % HTTP-Method "GET | POST"
-- as per HTTP specification, in progress
-->
<!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
aka RFC 1630
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.
-->
<!--================== DTD "Macros" =======================================-->
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!ENTITY % list " UL | OL | DIR | MENU " >
<!--================ Character mnemonic entities ==========================-->
<!ENTITY % ISOlat1 PUBLIC
"-//IETF//ENTITIES Added Latin 1 for HTML//EN">
%ISOlat1;
<!ENTITY amp CDATA "&" -- ampersand -->
<!ENTITY gt CDATA ">" -- greater than -->
<!ENTITY lt CDATA "<" -- less than -->
<!ENTITY quot CDATA """ -- double quote -->
<!--=================== Text Markup =======================================-->
<![ %HTML.Highlighting [
<!ENTITY % font " TT | B | I ">
<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE ">
<!ENTITY % text "#PCDATA | A | IMG | BR | %phrase | %font">
<!ELEMENT (%font;|%phrase) - - (%text)+>
<!-- <TT> Typewriter text -->
<!-- <B> Bold text -->
<!-- <I> Italic text -->
<!-- <EM> Emphasized phrase -->
<!-- <STRONG> Strong emphais -->
<!-- <CODE> Source code phrase -->
<!-- <SAMP> Sample text or characters -->
<!-- <KBD> Keyboard phrase, e.g. user input -->
<!-- <VAR> Variable phrase or substituable -->
<!-- <CITE> Name or title of cited work -->
<!ENTITY % pre.content "#PCDATA | A | HR | BR | %font | %phrase">
]]>
<!ENTITY % text "#PCDATA | A | IMG | BR">
<!ELEMENT BR - O EMPTY>
<!-- <BR> Line break -->
<!--================== Link Markup ========================================-->
<![ %HTML.Recommended [
<!ENTITY % linkName "ID">
]]>
<!ENTITY % linkName "CDATA">
<!ENTITY % linkType "NAME"
-- a list of these will be specified at a later date -->
<!ENTITY % linkExtraAttributes
"REL %linkType #IMPLIED
REV %linkType #IMPLIED
URN CDATA #IMPLIED
TITLE CDATA #IMPLIED
METHODS NAMES #IMPLIED
">
<![ %HTML.Recommended [
<!ENTITY % A.content "(%text)+"
-- <H1><a name="xxx">Heading</a></H1>
is preferred to
<a name="xxx"><H1>Heading</H1></a>
-->
]]>
<!ENTITY % A.content "(%heading|%text)+">
<!ELEMENT A - - %A.content -(A)>
<!ATTLIST A
HREF %URI #IMPLIED
NAME %linkName #IMPLIED
%linkExtraAttributes;
>
<!-- <A> Anchor; source and/or destination of a link -->
<!-- <A NAME="..."> Name of this anchor -->
<!-- <A HREF="..."> Address of link destination -->
<!-- <A URN="..."> Permanent address of destination -->
<!-- <A REL=...> Relationship of this anchor to destination -->
<!-- <A REV=...> Relationship of destination to this anchor -->
<!-- <A TITLE="..."> Title of destination (advisory)
-->
<!-- <A METHODS="..."> Operations allowed on destination
(advisory) -->
<!--=================== Images ============================================-->
<!ELEMENT IMG - O EMPTY>
<!ATTLIST IMG
SRC %URI; #REQUIRED
ALT CDATA #IMPLIED
ALIGN (top|middle|bottom) #IMPLIED
ISMAP (ISMAP) #IMPLIED
>
<!-- <IMG> Image; icon, glyph or illustration -->
<!-- <IMG SRC="..."> Address of image object -->
<!-- <IMG ALT="..."> Textual alternative -->
<!-- <IMG ALIGN=...> Position relative to text -->
<!-- <IMG ISMAP> Each pixel can be a link -->
<!--=================== Paragraphs=========================================-->
<!ELEMENT P - O (%text)+>
<!-- <P> Paragraph -->
<!--=================== Headings, Titles, Sections ========================-->
<!ELEMENT HR - O EMPTY>
<!-- <HR> Horizontal rule -->
<!ELEMENT ( %heading ) - - (%text;)+>
<!-- <H1> Heading, level 1 -->
<!-- <H2> Heading, level 2 -->
<!-- <H3> Heading, level 3 -->
<!-- <H4> Heading, level 4 -->
<!-- <H5> Heading, level 5 -->
<!-- <H6> Heading, level 6 -->
<!--=================== Text Flows ========================================-->
<![ %HTML.Forms [
<!ENTITY % block.forms "| FORM | ISINDEX">
]]>
<!ENTITY % block.forms "">
<![ %HTML.Deprecated [
<!ENTITY % preformatted "PRE | XMP | LISTING">
]]>
<!ENTITY % preformatted "PRE">
<!ENTITY % block "P | %list | DL
| %preformatted
| BLOCKQUOTE %block.forms">
<!ENTITY % flow "(%text|%block)*">
<!ENTITY % pre.content "#PCDATA | A | HR | BR">
<!ELEMENT PRE - - (%pre.content)+>
<!ATTLIST PRE
WIDTH NUMBER #implied
>
<!-- <PRE> Preformatted text -->
<!-- <PRE WIDTH=...> Maximum characters per line -->
<![ %HTML.Deprecated [
<!ENTITY % literal "CDATA"
-- historical, non-conforming parsing mode where
the only markup signal is the end tag
in full
-->
<!ELEMENT (XMP|LISTING) - - %literal>
<!-- <XMP> Example section -->
<!-- <LISTING> Computer listing -->
<!ELEMENT PLAINTEXT - O %literal>
<!-- <PLAINTEXT> Plain text passage -->
]]>
<!--=================== Lists =============================================-->
<!ELEMENT DL - - (DT | DD)+>
<!ATTLIST DL
COMPACT (COMPACT) #IMPLIED>
<!ELEMENT DT - O (%text)+>
<!ELEMENT DD - O %flow>
<!-- <DL> Definition list, or glossary -->
<!-- <DL COMPACT> Compact style list -->
<!-- <DT> Term in definition list -->
<!-- <DD> Definition of term -->
<!ELEMENT (OL|UL) - - (LI)+>
<!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
<!ATTLIST (%list)
COMPACT (COMPACT) #IMPLIED>
<!-- <UL> Unordered list -->
<!-- <UL COMPACT> Compact list style -->
<!-- <OL> Ordered, or numbered list -->
<!-- <OL COMPACT> Compact list style -->
<!-- <DIR> Directory list -->
<!-- <DIR COMPACT> Compact list style -->
<!-- <MENU> Menu list -->
<!-- <MENU COMPACT> Compact list style -->
<!ELEMENT LI - O %flow>
<!-- <LI> List item -->
<!--=================== Document Body =====================================-->
<![ %HTML.Recommended [
<!ENTITY % body.content "(%heading|%block|HR|ADDRESS)*"
-- <h1>Heading</h1>
<p>Text ...
is preferred to
<h1>Heading</h1>
Text ...
-->
]]>
<!ENTITY % body.content "(%heading | %text | %block | HR | ADDRESS)*">
<!ELEMENT BODY O O %body.content>
<!-- <BODY> Document body -->
<!ELEMENT BLOCKQUOTE - - %body.content>
<!-- <BLOCKQUOTE> Quoted passage -->
<!ELEMENT ADDRESS - - (%text|P)*>
<!-- <ADDRESS> Address, signature, or byline for document or
passage -->
<!--================ Forms ===============================================-->
<![ %HTML.Forms [
<!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
<!ATTLIST FORM
ACTION %URI #IMPLIED
METHOD (%HTTP-Method) GET
ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
>
<!-- <FORM> Fill-out or data-entry form -->
<!-- <FORM ACTION="..."> Address for completed form -->
<!-- <FORM METHOD=...> Method of submitting form -->
<!-- <FORM ENCTYPE="..."> Representation of form data -->
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX |
RADIO | SUBMIT | RESET |
IMAGE | HIDDEN )">
<!ELEMENT INPUT - O EMPTY>
<!ATTLIST INPUT
TYPE %InputType TEXT
NAME CDATA #IMPLIED
VALUE CDATA #IMPLIED
SRC %URI #IMPLIED
CHECKED (CHECKED) #IMPLIED
SIZE CDATA #IMPLIED
MAXLENGTH NUMBER #IMPLIED
ALIGN (top|middle|bottom) #IMPLIED
>
<!-- <INPUT> Form input datum -->
<!-- <INPUT TYPE=...> Type of input interaction -->
<!-- <INPUT TYPE=...> Name of form datum -->
<!-- <INPUT VALUE="..."> Default/initial/selected value -->
<!-- <INPUT SRC="..."> Address of image -->
<!-- <INPUT CHECKED> Initial state is "on" -->
<!-- <INPUT SIZE=...> Field size hint -->
<!-- <INPUT MAXLENGTH=...> Data length maximum -->
<!-- <INPUT ALIGN=...> Image
alignment -->
<!ELEMENT SELECT - - (OPTION+)>
<!ATTLIST SELECT
NAME CDATA #REQUIRED
SIZE NUMBER #IMPLIED
MULTIPLE (MULTIPLE) #IMPLIED
>
<!-- <SELECT> Selection of option(s) -->
<!-- <SELECT NAME=...> Name of form datum -->
<!-- <SELECT SIZE=...> Number of options displayed at a time -->
<!-- <SELECT MULTIPLE> Multiple selections allowed -->
<!ELEMENT OPTION - O (#PCDATA)>
<!ATTLIST OPTION
SELECTED (SELECTED) #IMPLIED
VALUE CDATA #IMPLIED
>
<!-- <OPTION> A selection option -->
<!-- <OPTION SELECTED> Initial state -->
<!-- <OPTION VALUE=""> Form datum value for this option -->
<!ELEMENT TEXTAREA - - (#PCDATA)>
<!ATTLIST TEXTAREA
NAME CDATA #REQUIRED
ROWS NUMBER #REQUIRED
COLS NUMBER #REQUIRED
>
<!-- <TEXTAREA> An area for text input -->
<!-- <TEXTAREA NAME=...> Name of form datum -->
<!-- <TEXTAREA ROWS=...> Height of area -->
<!-- <TEXTAREA COLS=...> Width of area -->
]]>
<!--================ Document Head ========================================-->
<!ENTITY % head.link "& LINK*">
<![ %HTML.Recommended [
<!ENTITY % head.nextid "">
]]>
<!ENTITY % head.nextid "& NEXTID?">
<!ENTITY % head.content "TITLE & ISINDEX? & BASE? & META*
%head.nextid
%head.link">
<!ELEMENT HEAD O O (%head.content)>
<!-- <HEAD> Document head -->
<!ELEMENT TITLE - - (#PCDATA)>
<!-- <TITLE> Title of document -->
<!ELEMENT LINK - O EMPTY>
<!ATTLIST LINK
HREF %URI #REQUIRED
%linkExtraAttributes; >
<!-- <LINK> Link from this document -->
<!-- <LINK HREF="..."> Address of link destination -->
<!-- <LINK URN="..."> Lasting name of destination -->
<!-- <LINK REL=...> Relationship of this document to destination -->
<!-- <LINK REV=...> Relationship of destination to this document
-->
<!-- <LINK TITLE="..."> Title of destination (advisory) -->
<!-- <LINK METHODS="..."> Operations allowed on destination (advisory) -->
<!ELEMENT ISINDEX - O EMPTY>
<!-- <ISINDEX> Document is a searchable index -->
<!ELEMENT BASE - O EMPTY>
<!ATTLIST BASE
HREF %URI; #REQUIRED
>
<!-- <BASE> Base context document -->
<!-- <BASE HREF="..."> Address for this document -->
<!ELEMENT NEXTID - O EMPTY>
<!ATTLIST NEXTID N %linkName #REQUIRED>
<!-- <NEXTID> Next ID to use for link name -->
<!--
<NEXTID N=...> Next ID to use for link name -->
<!ELEMENT META - O EMPTY>
<!ATTLIST META
HTTP-EQUIV NAME #IMPLIED
NAME NAME #IMPLIED
CONTENT CDATA #REQUIRED
>
<!-- <META> Generic Metainformation -->
<!-- <META HTTP-EQUIV=...> HTTP response header name -->
<!-- <META HTTP-EQUIV=...> Metainformation name -->
<!-- <META CONTENT="..."> Associated information -->
<!--================ Document Structure ===================================-->
<![ %HTML.Deprecated [
<!ENTITY % html.content "HEAD, BODY, PLAINTEXT?">
]]>
<!ENTITY % html.content "HEAD, BODY">
<!ELEMENT HTML O O (%html.content)>
<!ENTITY % version.attr "VERSION CDATA #FIXED "%HTML.Version;"">
<!ATTLIST HTML
%version.attr;
>
<!-- <HTML> HyperText Markup Language Document -->
<!-- <HTML
VERSION="..."> Version of HTML specification -->
<!-- (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879:1986, provided this notice is included in all copies.
-->
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOlat1 PUBLIC
"-//IETF//ENTITIES Added Latin 1 for HTML//EN">
%ISOlat1;
-->
<!-- Modified for use in HTML
$Id: ISOlat1.sgml,v 1.1 1994/09/24 14:06:34 connolly Exp $ -->
<!ENTITY AElig CDATA "Æ" -- capital AE diphthong (ligature) -->
<!ENTITY Aacute CDATA "Á" -- capital A, acute accent -->
<!ENTITY Acirc CDATA "Â" -- capital A, circumflex accent -->
<!ENTITY Agrave CDATA "À" -- capital A, grave accent -->
<!ENTITY Aring CDATA "Å" -- capital A, ring -->
<!ENTITY Atilde CDATA "Ã" -- capital A, tilde -->
<!ENTITY Auml CDATA "Ä" -- capital A, dieresis or umlaut mark -->
<!ENTITY Ccedil CDATA "Ç" -- capital C, cedilla -->
<!ENTITY ETH CDATA "Ð" -- capital Eth, Icelandic -->
<!ENTITY Eacute CDATA "É" -- capital E, acute accent -->
<!ENTITY Ecirc CDATA "Ê" -- capital E, circumflex accent -->
<!ENTITY Egrave CDATA "È" -- capital E, grave accent -->
<!ENTITY Euml CDATA "Ë" -- capital E, dieresis or umlaut mark -->
<!ENTITY Iacute CDATA "Í" -- capital I, acute accent -->
<!ENTITY Icirc CDATA "Î" -- capital I, circumflex accent -->
<!ENTITY Igrave CDATA "Ì" -- capital I, grave accent -->
<!ENTITY Iuml CDATA "Ï" -- capital I, dieresis or umlaut mark -->
<!ENTITY Ntilde CDATA "Ñ" -- capital N, tilde -->
<!ENTITY Oacute CDATA "Ó" -- capital O, acute accent -->
<!ENTITY Ocirc CDATA "Ô" -- capital O, circumflex accent -->
<!ENTITY Ograve CDATA "Ò" -- capital O, grave accent -->
<!ENTITY Oslash CDATA "Ø" -- capital O, slash -->
<!ENTITY Otilde CDATA "Õ" -- capital O, tilde -->
<!ENTITY Ouml CDATA "Ö" -- capital O, dieresis or umlaut mark -->
<!ENTITY THORN CDATA "Þ" -- capital THORN, Icelandic -->
<!ENTITY Uacute CDATA "Ú" -- capital U, acute accent -->
<!ENTITY Ucirc CDATA "Û" -- capital U, circumflex accent -->
<!ENTITY Ugrave CDATA "Ù" -- capital U, grave accent -->
<!ENTITY Uuml CDATA "Ü" -- capital U, dieresis or umlaut mark -->
<!ENTITY Yacute CDATA "Ý" -- capital Y, acute accent -->
<!ENTITY aacute CDATA "á" -- small a, acute accent -->
<!ENTITY acirc CDATA "â" -- small a, circumflex accent -->
<!ENTITY aelig CDATA "æ" -- small ae diphthong (ligature) -->
<!ENTITY agrave CDATA "à" -- small a, grave accent -->
<!ENTITY aring CDATA "å" -- small a, ring -->
<!ENTITY atilde CDATA "ã" -- small a, tilde -->
<!ENTITY auml CDATA "ä" -- small a, dieresis or umlaut mark -->
<!ENTITY ccedil CDATA "ç" -- small c, cedilla -->
<!ENTITY eacute CDATA "é" -- small e, acute accent -->
<!ENTITY ecirc CDATA "ê" -- small e, circumflex accent -->
<!ENTITY egrave CDATA "è" -- small e, grave accent -->
<!ENTITY eth CDATA "ð" -- small eth, Icelandic -->
<!ENTITY euml CDATA "ë" -- small e, dieresis or umlaut mark -->
<!ENTITY iacute CDATA "í" -- small i, acute accent -->
<!ENTITY icirc CDATA "î" -- small i, circumflex accent -->
<!ENTITY igrave CDATA "ì" -- small i, grave accent -->
<!ENTITY iuml CDATA "ï" -- small i, dieresis or umlaut mark -->
<!ENTITY ntilde CDATA "ñ" -- small n, tilde -->
<!ENTITY oacute CDATA "ó" -- small o, acute accent -->
<!ENTITY ocirc CDATA "ô" -- small o, circumflex accent -->
<!ENTITY ograve CDATA "ò" -- small o, grave accent -->
<!ENTITY oslash CDATA "ø" -- small o, slash -->
<!ENTITY otilde CDATA "õ" -- small o, tilde -->
<!ENTITY ouml CDATA "ö" -- small o, dieresis or umlaut mark -->
<!ENTITY szlig CDATA "ß" -- small sharp s, German (sz ligature) -->
<!ENTITY thorn CDATA "þ" -- small thorn, Icelandic -->
<!ENTITY uacute CDATA "ú" -- small u, acute accent -->
<!ENTITY ucirc CDATA "û" -- small u, circumflex accent -->
<!ENTITY ugrave CDATA "ù" -- small u, grave accent -->
<!ENTITY uuml CDATA "ü" -- small u, dieresis or umlaut mark -->
<!ENTITY yacute CDATA "ý" -- small y, acute accent -->
<!ENTITY yuml CDATA "ÿ" -- small y, dieresis or umlaut mark -->
Generated with CERN WebMaker