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