May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Hypertext Markup Language (HTML) HYPERTEXT MARKUP LANGUAGE (HTML) AN SGML APPLICATION CONFORMING TO INTERNATIONAL STANDARD ISO 8879 -- STANDARD GENERALIZED MARKUP LANGUAGE Status of this Document This is a revision of the HTML specification maintained by Tim Berners-Lee at CERN. $Id: HTML.txt,v 1.6 1994/05/18 17:45:39 connolly Exp $ This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are working documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress". Distribution of this document is unlimited. The document is a draft form of a standard for interchange of information on the network which is proposed to be registered as a MIME (RFC1521) content type. Please send comments to connolly@hal.com or the discussion list www-talk@info.cern.ch. This is version 1.3 of this draft. This document is available in hypertext on the World-Wide Web as http://www.hal.com/%7Econnolly/html-spec/HTML.html Abstract HyperText Markup Language (HTML) can be used to represent Hypertext news, mail, online documentation, and collaborative hypermedia; Menus of options; Database query results; Simple structured documents with inlined graphics. Hypertext views of existing bodies of information The World Wide Web (W3) initiative links related information throughout the globe. HTML provides one simple format for providing linked information, and all W3 compatible programs are required to be capable of handling HTML. W3 uses an Internet protocol (Hypertext Transfer Protocol, HTTP), which allows transfer representations to be negotiated between client and server, the result being returned in an extended MIME message. HTML is May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 therefore just one, but an important one, of the representations used with W3. HTML is proposed as a MIME content type. HTML refers to the URL specification of RFCxxxx. Implementations of HTML parsers and generators can be found in the various W3 servers and browsers, in the public domain W3 code, and may also be built using various public domain SGML parsers such as [SGMLS] . HTML documents are SGML documents with fairly generic semantics appropriate for representing information from a wide range of applications. IN THIS DOCUMENT This document contains the following parts: Vocabulary used in this document, degrees of imperative. HTML and MIME with discussion of character sets. HTML and SGML and the relationship between them, and Structured text: an summary of SGML syntax. HTML Elements A list with description, example, and typical rendering. HTML Entities Entities used to describe characters. Acknowledgements and a change history of the document References to related documents Authors addresses Contact information. Appendix I: Element Reference Alphabetical listing of elements with syntax descriptions Appendix II: The HTML DTD The text of the SGML DTD for HTML Appendix III: The HTML SMGL Declaration The text of the SGML Declaration for HTML May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Vocabulary usied in the HTML specification VOCABULARY This specification uses the words below with the precise meaning given. Representation The encoding of information for interchange. For example, HTML is a representation of hypertext. Rendering The form of presentation to information to the human reader. Imperatives may The implementation is not obliged to follow this in any way. must If this is not followed, the implementation does not conform to this specification. shall as "must" should If this is not followed, though the implementation officially conforms to the standard, undesirable results may occur in practice. typical Typical rendering is described for many elements. This is not a mandatory part of the standard but is given as guidance for designers and to help explain the uses for which the elements were intended. Notes Sections marked "Note:" are not mandatory parts of the specification but for guidance only. Status of features Minimal All parsers must recognize these features. Features are mainstream unless otherwise mentioned. Optional Standard HTML features which may safely be ignored by parsers. It is legal to ignore these, treat the contents as though the tags were not there. (e.g. EM, and processing instructions) Obsolete Not standard HTML. Parsers should implement these features as far as possible in order to preserve back-compatibility with previous versions of this specification. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 HTML and MIME HTML AND MIME The definition of the HTML content subtype is MIME Type name text MIME subtype name: html Required parameters: none Optional parameters: charset @@What does the character set parameter mean? I think we should take it out. --DWC Character sets The base character set (the SGML BASESET) for HTML is ISO Latin-1. This is the set referred to by any numeric character references . The actual character set used in the representation of an HTML document may be ISO Latin 1, or its 7-bit subset which is ASCII. There is no obligation for an HTML document to contain any characters above decimal 127. It is possible that a transport medium such as electronic mail imposes constraints on the number of bits in a representation of a document, though the HTTP access protocol used by W3 always allows 8 bit transfer. When an HTML document is encoded using 7-bit characters, then the mechanisms of character references and entity references may be used to encode characters in the upper half of the ISO Latin-1 set. In this way, documents may be prepared which are suitable for mailing through 7-bit limited systems. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Hypertext Markup language and SGML HTML AND SGML This section describes the relationship between HTML and SGML, and guides the newcomer through interpreation of the DTD. (This is not a full tutorial on SGML, and in the event of any apparent conflict, the SGML standard is definitive.) The HyperText Markup Language is an application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language [ SGML ]. SGML is a system for defining structured document types, and markup languages to represent instances of those document types. Every SGML document has three parts: An SGML declaration, which binds SGML processing quantities and syntax token names to specific values. For example, the SGML declaration in the HTML DTD specifies that the string that opens a tag is @@NOTE 1: The owner part "connolly hal.com" should be changed to the name of the institution that owns this specification, whatever that is. The "Date..." part should be shortened to something like "1.3", corresponding to the publication of this document. NOTE 2: Many extant HTML documents do not contain a prologue. Implementations are encouraged to infer the above prologue if the document does not begin with A sample HTML document

An Example of Structure
In HTML

Here's a typical paragraph.

Some elements (e.g. BR) are empty. They have no content. They show up as just a start tag. For the rest of the elements, the content is a sequence of data characters and nested elements. Note that the HTML DTD in fact severely limits the amount of nesting which is allowed: most things cannot be nested, in fact. No elements may be recursively nested. Anchors and character highlighting may be put inside other constructs. Tags May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 Most elements start and end with tags. Empty elements have no end tag. Start tags are delimited by , and end tags are delimited by . For example:

...

...

The following are not valid tags: < h1>

NOTE: The SGML declaration for HTML specifies SHORTTAG YES, which means that there are some other valid syntaxes for tags, e.g. NET tags: , empty end tags: . Until such time as support for these idioms is widely deployed, their use is strongly discouraged. The start and end tags for the HTML, HEAD, and BODY elements are omissable. The end tags of some other elements (e.g. P, LI, DT, DD) can be ommitted (see the DTD for details). This does not change the document structure -- the following documents are equivalent: Structural Example

Structural Example

A paragraph... Structural Example

Structural Example

A paragraph...

NAMES The element name immediately follows the tag open delimiter. Names consist of a letter followed by up to 33 letters, digits, periods, or hyphens. Names are not case sensitive. For example: A H1 h1 another.name name-with-hyphens ATTRIBUTES May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 3 In a start tag, whitespace and attributes are allowed between the element name and the closing delimiter. An attribute consists of a name, an equal sign, and a value. Whitespace is allowed around the equal sign. The value is either: A string literal, delimited by single quotes or double quotes, or A name token; that is, a sequence of letters, digits, periods, or hyphens. For example: Mr. Bill says, "Oh Noooo" The length of an attribute value (after replacing entity and numeric character referencees) is limited to 1024 characters. NOTE 1: Some implementations allowed any character except space or '>' in a name token, for example . As a result, there are many documents that contain attribute values that should be quoted but are not. While parser implementators are encouraged to support this idiom, its use in future documents is stictly prohibited. NOTE 2: Some implementations also consider any occurence of the > character to signal the end of a tag. For compatibility with such implementations, it may be necessary to represent > with an entity or numeric character reference; for example: a > b Attributes with a delcared value of NAME (e.g. ISMAP, COMPACT) may be written using a minimized syntax. The markup:
    can be written as
      Character Data The charcters between the tags represent text in the ISO-Latin-1 character set, which is a superset of ASCII. Because certain May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 4 characters will be interpreted as markup, they should be "escaped"; that is, represented by markup -- entity or numeric character references. For example: When a<b, we can show that... Brought to you by AT&T The HTML DTD includes entities for each of the non-ASCII characters so that one may reference them by name if it is inconvenient to enter them directly: Kurt Gödel was a famous logician and mathematician. NOTE 1: To ensure that a string of characters has no markup, it is sufficient to represent all occurrences of <, >, and & by character or entity references. NOTE 2: There are SGML features (CDATA, RCDATA) to allow most <, >, and & characters to be entered without the use of entity or character references. Because these features tend to be used and implemented incosistently, they are not employed in this version of the HTML DTD. An earlier HTML specification included an XMPelement whose syntax is not expressible in SGML. Inside the XMP, no markup was recognized except the end tag. While implementations are encouraged to support this idiom, its use is obsolete. COMMENTS To include comments in an HTML document that will be ignored by the parser, surround them with . After the comment delimiter, all text up to the next occurrence of -- is ignored. Hence comments cannot be nested. Whitespace is allowed between the closing -- and >. (But not between the opening HTML Guide: Recommended Usage May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Elements of HTML HTML ELEMENTS This is a discussion of the elements in the HTML language, and how the interact to represent documents. The HTML Document Element An HTML document is organized as a HEAD and a BODY, much like memo or a mail message: HTML | |_head |_body The HEAD element is an small unordered collection of information about the document, whereas the BODYis an ordered sequence of information elements of arbitrary length. This organization allows an implementation to determine certain properties of a document -- the title, for example -- without parsing the entire document. Information in the HEAD Element TITLE The title of the document ISINDEX Sent by a server in a searchable document NEXTID A parameter used by editors to generate unique identifiers LINK Relationship between this document and another. See also the Anchor element , Relationships . A document may have many LINK elements. BASE A record of the URL of the document when saved Body Elements The order of the contents of the BODY element should be preserved when it is rendered on the output device. HYPERTEXT ANCHORS Anchors Sections of text which form the beginning and/or end of hypertext links are called "anchors" and defined by the A tag. BLOCK ELEMENTS These elements typically stack vertically in the rendered flow of text. Whitespace between them is ignored. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 Headings Several levels of heading are supported. Paragraph The P element represents a paragraph. Horizontal Rule A horizontal dividing line Address style Used to represent authorship or status of a document Blockquote style A block of text quoted from another source. Lists Bulleted lists, glossaries, etc. Preformatted text Sections in fixed-width font for preformatted text. INLINE ELEMENTS These elements fall left to right in the rendered flow of text. Whitespace between them separates words, except in the PRE element, where it has its literal ASCII meaning. Special Phrases Emphasis, typographic distinctions, etc. Line Breaks Indicates a line break in a flow of text. IMG The IMG tag allows inline graphics. Obsolete elements The other elements are obsolete but should be recognised by parsers for back-compatibility. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 HEAD -- Elements HEAD The HEAD element contains all information about the document in general. It does not contain any text which is part of the document: this is in the BODY. Within the head element, only certain elements are allowed. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 The BODY element in HTML BODY The BODY element contains all the information which is part of the document, as opposed information about the document which is in the HEAD . The elements within the BODY element are in the order in which they should be presented to the reader. See the list of things which are allowed within a BODY element . May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 The Anchor element in HTML ANCHORS An anchor is a piece of text which marks the beginning and/or the end of a hypertext link. The text between the opening tag and the closing tag is either the start or destination (or both) of a link. Attributes of the anchor tag are as follows. HREF OPTIONAL. If the HREF attribute is present, the anchor is sensitive text: the start of a link. If the reader selects this text, (s)he should be presented with another document whose network address is defined by the value of the HREF attribute . The format of the network address is specified elsewhere . This allows for the form HREF="#identifier" to refer to another anchor in the same document. If the anchor is in another document, the attribute is a relative name , relative to the documents address (or specified base address if any). @@NOTE: This refers to the URI specification, which does not cover relative addresses. There is no specification of how to distinguish relative addresses from absolute addresses. NAME OPTIONAL. If present, the attribute NAME allows the anchor to be the destination of a link. The value of the attribute is an identifier for the anchor. Identifiers are arbitrary strings but must be unique within the HTML document. Another document can then make a reference explicitly to this anchor by putting the identifier after the address, separated by a hash sign . @@NOTE: This feature is representable in SGML as an ID attribute, if we restrict the identifiers to be SGML names. REL OPTIONAL. An attribute REL may give the relationship (s) described by the hypertext link. The value is a comma-separated list of relationship values. Values and their semantics will be registered by the HTML registration authority . The default relationship if none other is given is void. REL should not be present unless HREF is present. See Relationship values , REV . REV OPTIONAL. The same as REL , but the semantics of the link type are in the reverse direction. A link from A to B with REL="X" May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 expresses the same relationship as a link from B to A with REV="X". An anchor may have both REL and REV attributes. URN OPTIONAL. If present, this specifies a uniform resource number for the document. See note . TITLE OPTIONAL. This is informational only. If present the value of this field should equal the value of the TITLE of the document whose address is given by the HREF attribute. See note . METHODS OPTIONAL. The value of this field is a string which if present must be a comma separated list of HTTP METHODS supported by the object for public use. See note . All attributes are optional, although one of NAME and HREF is necessary for the anchor to be useful. See also: LINK . Example of use: See CERN's information for more details. A serious crime is one which is associated with imprisonment. ... The Organization may refuse employment to anyone convicted of a serious crime. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Tags used in HTML ADDRESS This element is for address information, signatures, authorship, etc, often at the top or bottom of a document. Typical rendering Typically, an address element is italic and/or right justified or indented. The address element implies a paragraph break. Paragraph marks within the address element do not cause extra white space to be inserted. Examples of use:
      A.N.Other
      Newsletter editor

      J.R. Brown

      JimquickPost News, Jumquick, CT 01234

      Tel (123) 456 7890

      May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 The BASE element in HTML BASE This element allows the URL of the document itself to be recorded in situations in which the document may be read out of context. URLs within the document may be in a "partial" form relative to this base address. Where the base address is not specified, the reader will use the URL it used to access the document to resolve any relative URLs. The one attribute is: HREF the URL May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 BlockQuote in HTML BLOCKQUOTE The BLOCKQUOTE element allows text quoted from another source to be rendered specially. Typical rendering A typical rendering might be a slight extra left and right indent, and/or italic font. BLOCKQUOTE causes a paragraph break, and typically a line or so of white space will be allowed between it and any text before or after it. Single-font rendition may for example put a vertical line of ">" characters down the left margin to indicate quotation in the Internet mail style. Example I think it ends
      Soft you now, the fair Ophelia. Nymph, in thy orisons, be all my sins remembered.
      but I am not sure. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Heading elements in HTML HEADINGS Six levels of heading are supported. (Note that a hypertext node within a hypertext work tends to need fewer levels of heading than a work whose only structure is given by the nesting of headings.) A heading element implies all the font changes, paragraph breaks before and after, and white space (for example) necessary to render the heading. Further character emphasis or paragraph marks are not required in HTML. H1 is the highest level of heading, and is recommended for the start of a hypertext node. It is suggested that the the text of the first heading be suitable for a reader who is already browsing in related information, in contrast to the title tag which should identify the node in a wider context. The heading elements are

      ,

      ,

      ,

      ,

      ,
      It is not normal practice to jump from one header to a header level more than one below, for example for follow an H1 with an H3. Although this is legal, it is discouraged, as it may produce strange results for example when generating other representations from the HTML. Example:

      This is a heading

      Here is some text

      Second level heading

      Here is some more text. Parser Note: Parsers should not require any specific order to heading elements, even if the heading level increases by more than one between successive headings. Typical Rendering H1 Bold very large font, centered. One or two lines clear space between this and anything following. If printed on paper, start new page. H2 Bold, large font,, flush left against left margin, no indent. One or two clear lines above and below. H3 Italic, large font, slightly indented from the left margin. One or two clear lines above and below. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 H4 Bold, normal font, indented more than H3. One clear line above and below. H5 Italic, normal font, indented as H4. One clear line above. H6 Bold, indented same as normal text, more than H5. One clear line above. These typical values are just an indication, and it is up to the designer of the presentation software to define the styles. The reader may have options to customize these. When writing documents, you should assume that whatever is done it is designed to have the same sort of effect as the styles above. The rendering software is responsible for generating suitable vertical white space between elements, so it is NOT normal or required to follow a heading element with a paragraph mark. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 The IMG Element in HTML IMG: EMBEDDED IMAGES Status: Extra The IMG element allows another document to be inserted inline. The document is normally an icon or small graphic, etc. This element is NOT intended for embedding other HTML text. Browsers which are not able to display inline images ignore IMG elements. Authors should note that some browsers will be able to display (or print) linked graphics but not inline graphics. If the graphic is essential, it may be wiser to make a link to it rather than to put it inline. If the graphic is essentially decorative, then IMG is appropriate. The IMG element is empty: it has no closing tag. It has two attributes: SRC The value of this attribute is the URL of the document to be embedded. Its syntax is the same as that of the HREF attribute of the A tag. SRC is mandatory. ALIGN Take values TOP or MIDDLE or BOTTOM, defining whether the tops or middles of bottoms of the graphics and text should be aligned vertically. ALT Optional alternative text as an alternative to the graphics for display in text-only environments. Note that IMG elements are allowed within anchors. Example Warning: < IMG SRC ="triangle.gif" ALT="Warning:"> This must b e done by a qualified technician. < A HREF="Go.html">< IMG SRC ="Button.ps" ALT="GO"> May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 ISINDEX element in HTML ISINDEX This element informs the reader that the document is an index document. As well as reading it, the reader may use a keyword search. The node may be queried with a keyword search by suffixing the node address with a question mark, followed by a list of keywords separated by plus signs. See the network address format . Note that this tag is normally generated automatically by a server. If it is added by hand to an HTML document, then the client will assume that the server can handle a search on the document. Obviously the server must have this capability for it to work: simply adding in the document is not enough to make searches happen if the server does not have a search engine! Status: standard. Example of use: May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 LINK -- Elements LINK The LINK element occurs within the HEAD element of an HTML document. It is used to indicate a relationship between the document and some other object. A document may have any number of LINK elements. The LINK element is empty, but takes the same attributes as the anchor element . Typical uses are to indicate authorship, related indexes and glossaries, older or more recent versions, etc. Links can indicate a static tree structure in which the document was authored by pointing to a "parent" and "next" and "previous" document, for example. Servers may also allow links to be added by those who do not have the right to alter the body of a document. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Lists and glossaries in HTML FORMS OF LIST IN HTML These lists may be nested Glossaries A glossary (or definition list) is a list of paragraphs each of which has a short title alongside it. Apart from glossaries, this element is useful for presenting a set of named elements to the reader. The elements within a glossary follow are introduced by these elements: DT The "term", typically placed in a wide left indent DD The "definition", which may wrap onto many lines These elements must appear in pairs. Single occurrences of DT without a following DD are allowed, and have the same significance as if the DD had been present with no text.. The one attribute which DL can take is COMPACT suggests that a compact rendering be used, because the enclosed elements are individually small, or the whole glossary is rather large, or both. TYPICAL RENDERING The definition list DT, DD pairs are arranged vertically. For each pair, the DT element is on the left, in a column of about a third of the display area, and the DD element is in the right hand two thirds of the display area. The DT term is normally small enough to fit on one line within the left-hand column. If it is longer, it will either extend across the page, in which case the DD section is moved down to separate them, or it is wrapped onto successive lines of the left hand column. This is sometimes implemented with the use of a large negative first line indent. White space is typically left between successive DT,DD pairs unless the COMPACT attribute is given. The COMPACT attribute is appropriate for lists which are long and/or have DT,DD pairs which each take only a line or two. It is of course possible for the rendering software to discover these cases itself and make its own decisions, and this is to be encouraged. The COMPACT attribute may also reduce the width of the left-hand (DT) column. EXAMPLES OF USE
      May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2
      Term the first
      definition paragraph is reasonably long but is still displayed clearly
      Term2 follows
      Definition of term2
      Term
      definition paragraph
      Term2
      Definition of term2
      Lists A list is a sequence of paragraphs, each of which may be preceded by a special mark or sequence number. The syntax is:
      • list element
      • another list element ...
      The opening list tag may be any of UL, OL, MENU or DIR. It must be immediately followed by the first list element. TYPICAL RENDERING The representation of the list is not defined here, but a bulleted list for unordered lists, and a sequence of numbered paragraphs for an ordered list would be quite appropriate. Other possibilities for interactive display include embedded scrollable browse panels. List elements with typical rendering are: UL A list of multi-line paragraphs, typically separated by some white space and/or marked by bullets, etc. OL As UL, but the paragraphs are typically numbered in some way to indicate the order as significant. MENU A list of smaller paragraphs. Typically one line per item, with a style more compact than UL. DIR A list of short elements, typically less than 20 characters. These may be arranged in columns across the page, typically 24 character in width. If the rendering software is able to optimize the column width as function of the widths of individual elements, so much the better. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 3 EXAMPLE OF USE
      1. When you get to the station, leave by the southern exit, on platform one.
      2. Turn left to face toward the mountain
      3. Walk for a mile or so until you reach the "Asquith Arms" then
      4. Wait and see...
      < MENU >
    • The oranges should be pressed fresh
    • The nuts may come from a packet
    • The gin must be good quality < DIR >
    • A-H
    • I-M
    • M-R
    • S-Z May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Tags used in HTML NEXT ID This tag takes a single attribute which is the number of the next document-wide numeric identifier to be allocated of the form z123. When modifying a document, old anchor ids should not be reused, as there may be references stored elsewhere which point to them. This is read and generated by hypertext editors. Human writers of HTML usually use mnemonic alphabetical identifiers. Browser software may ignore this tag. Example of use: May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Paragraphs in HTML P: PARAGRAPH The empty P element represents a paragraph. The exact rendering of this (indentation, leading, etc) is not defined here, and may be a function of other tags, style sheets etc. You do NOT need to use

      to put white space around heading, list, address or blockquote elements. It is the responsibility of the rendering software to generate that white space. An empty paragraph has undefined effect and should be avoided. Typical rendering Typically, paragraphs are surrounded by a small vertical space (of a line or half a line). This is not the case (typically) within ADDRESS or (ever) within PRE elements. With some implementations, normal paragraphs may have a small extra left indent on the first line. Examples of use

      What to do

      This is a one paragraph.

      This is a second.

      This is a third. Bad example

      What not to do

      I found that on my XYZ browser it looked prettier to me if I put some paragraph tags

      • Around lists, and
      • Inside headings.

      None of the paragraph tags in this example should be there.

      See also Line Break May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Line Breaks in HTML LINE BREAK The line break element marks that a new line must be started at the given point. Typical rendering A new line with indent the same as that of line-wrapped text. Examples
      Tim Berners-Lee
      World Wide Web project
      CERN
      1211 Geneva 23
      Switzerland
      I think that I shall never see
      A hoarding lovely as a tree
      In fact, unless the hoardings fall
      I'll never see a tree at all.

      See also: Paragraph marks May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Horizontal Rules in HTML HORIZONTAL RULE Typical Rendering Some sort of divider between sections of text such as a full width horizontal rule or equivalent graphic. Example The horizontal rule is typically used for separating heading information (when more than just a heading) from content, etc.

      The Albatross

      The Bumstead Monthly, 1948
      The following information is culled from this and suvccessive issues of the magazine. Thanks are due to the editor-in-chief, A.R. Bunstead, for her help and advice.

      Copyright IQR Inc.

      This recording may not be sold, resold, hired out, used, or talked about in too great a depth without the publisher's written or videotaped consent.
      The Albatross, most fabled and infamous of .. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 The PRE element in HTML PRE: PREFORMATTED TEXT Preformatted elements in HTML are displayed with text in a fixed width font, and so are suitable for text which has been formatted for a teletype by some existing formatting system. The optional attribute is: WIDTH This attribute gives the maximum number of characters which will occur on a line. It allows the presentation system to select a suitable font and indentation. Where the WIDTH attribute is not recognized, it is recommended that a width of 80 be assumed. Where WIDTH is supported, it is recommended that at least widths of 40, 80 and 132 characters be presented optimally, with other widths being rounded up. Within a PRE element, Line boundaries within the text are rendered as a move to the beginning of the next line, except for one immediately following or immediately preceding a tag. The

      tag should not be used. If found, it should be rendered as a move to the beginning of the next line. Anchor elements and character highlighting elements may be used. Elements which define paragraph formatting (Headings, Address, etc) must not be used. The ASCII Horizontal Tab (HT) character must be interpreted as the smallest positive nonzero number of spaces which will leave the number of characters so far on the line as a multiple of 8. Its use is not recommended however. EXAMPLE OF USE

                              This is an example line
                              
      NOTE: HIGHLIGHTING Within a preformatted element, the constraint that the rendering must be on a fixed horizontal character pitch may limit or prevent the ability of the renderer to render highlighting elements specially. NOTE: MARGINS May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 The above references to the "beginning of a new line" must not be taken as implying that the renderer is forbidden from using a (constant) left indent for rendering preformatted text. The left indent may of course be constrained by the width required. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 The TITLE element in HTML TITLE The title of a document is specified by the TITLE element. The TITLE element must occur in the HEAD of the document. There may only be one title in any document. It should identify the content of the document in a fairly wide context. It may not contain anchors, paragraph marks, or highlighting. The title may be used to identify the node in a history list, to label the window displaying the node, etc. It is not normally displayed in the text of a document itself. Contrast titles with headings . The title should ideally be less than 64 characters in length. That is, many applications will display document titles in window titles, menus, etc where there is only limited room. Whilst there is no limit on the length of a title (as it may be automatically generated from other data), information providers are warned that it may be truncated if long. EXAMPLES OF USE Appropriate titles might be Rivest and Neuman. 1989(b) or A Recipe for Maple Syrup Flap-Jack or Introduction -- AFS user's Guide Examples of inappropriate titles are those which are only meaningful within context, Introduction or too long, Remarks on the Quantum-Gravity effects of "Bean Pole" diversification in Mononucleosis patients in Developing Countries under Economic Conditions Prevalent during the Second half of the Twentieth Century, and Related Papers: a Summary May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Highlighting in HTML CHARACTER HIGHLIGHTING Status: Extra These elements allow sections of text to be formatted in a particular way, to provide emphasis, etc. The tags do NOT cause a paragraph break, and may be used on sections of text within paragraphs. Where not supported by implementations, like all tags, these tags should be ignored but the content rendered. All these tags have related closing tags, as in This is emphasized text. Some of these styles are more explicit than others about how they should be physically represented. The logical styles should be used wherever possible, unless for example it is necessary to refer to the formatting in the text. (Eg, "The italic parts are mandatory".) NOTE: Browsers unable to display a specified style may render it in some alternative, or the default, style, with some loss of quality for the reader. Some implementations may ignore these tags altogether, so information providers should attempt not to rely on them as essential to the information content. These element names are derived from TeXInfo macro names. Physical styles TT Fixed-width typewriter font. B Boldface, where available, otherwise alternative mapping allowed. I Italic font (or slanted if italic unavailable). U Underline. Logical styles EM Emphasis, typically italic. STRONG Stronger emphasis, typically bold. CODE Example of code. typically monospaced font. (Do not confuse with PRE ) SAMP A sequence of literal characters. KBD in an instruction manual, Text typed by a May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 user. VAR A variable name. DFN The defining instance of a term. Typically bold or bold italic. CITE A citation. Typically italic. Examples of use This text contains an emphasized word. Don't assume that it will be italic! It was made using the EM element. A citation is typically italic and has no formal necessary structure: Moby Dick is a book title. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Obsolete Elements of HTML OBSOLETE ELEMENTS The following elements of HTML are obsolete. It is recommended that client implementors implement the obsolete forms for compatibility with old servers. PLAINTEXT Status: Obsolete . The empty PLAINTEXT tag terminates the HTML entity. What follows is not SGML. In stead, there's an old HTTP convention that what follows is an ASCII (MIME "text/plain") body. An example if its use is: 0001 This is line one of a ling listing 0002 file from <any@host.inc.com> which is sen t This tag allows the rest of a file to be read efficiently without parsing. Its presence is an optimization. There is no closing tag. The rest of the data is not in SGML. XMP AND LISTING: EXAMPLE SECTIONS Status: Obsolete . This are in use and should be recognized by browsers. New servers should use <PRE> instead. These styles allow text of fixed-width characters to be embedded absolutely as is into the document. The syntax is: <LISTING> ... </LISTING> or <XMP> ... </XMP> The text between these tags is to be portrayed in a fixed width font, so that any formatting done by character spacing on successive lines will be maintained. Between the opening and closing tags: The text may contain any ISO Latin printable characters, but not the end tag opener. (See Historical note ) Line boundaries are significant, except any occurring immediately after the opening tag or before the closing tag. and are to be rendered as a move to the start of a new line. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 The ASCII Horizontal Tab (HT) character must be interpreted as the smallest positive nonzero number of spaces which will leave the number of characters so far on the line as a multiple of 8. Its use is not recommended however. The LISTING element is portrayed so that at least 132 characters will fit on a line. The XMP elementis portrayed in a font so that at least 80 characters will fit on a line but is otherwise identical to LISTING. HIGHLIGHTED PHRASE HP1 ETC Status: Obsolete . These tags like all others should be ignored if not implemented. Replaced will more meaningful elements -- see character highlighting . Examples of use: <HP1>...</HP1> <HP2>... </HP2> etc. COMMENT ELEMENT Status: Obsolete A comment element used for bracketing off unneed text and comment has been introduced in some browsers but will be replaced by the SGML command feature in new implementations. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 XMP and LISTING in HTML: History HISTORICAL NOTE: XMP AND LISTING The XMP and LISTING elements used historically to have non SGML conforming specifications, in that the text could contain any ISO Latin printable characters, including the tag opener, so long as it does not contain the closing tag in full. This form is not supported by SGML and so is not the specified HTML interpretation. Providers should be warned that implementations may vary on how they interpret end tags apparently within these elements May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Entities -- /MarkUp ENTITIES The following entity names are used in HTML , always prefixed by ampersand (&) and followed by a semicolon as shown. They represent particular graphic characters which have special meanings in places in the markup, or may not be part of the character set available to the writer. &lt; The less than sign < &gt; The "greater than" sign > &amp; The ampersand sign &itself. &quot; The double quote sign " &nbsp; A non-breaking space Also allowed are references to any of the ISO Latin-1 alphabet, using the entity names in the following table. May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 ISO Latin 1 Entities in HTML ISO LATIN 1 CHARACTER ENTITIES This list is derived from "ISO 8879:1986//ENTITIES Added Latin 1//EN". &AElig; capital AE diphthong (ligature) &Aacute; capital A, acute accent &Acirc; capital A, circumflex accent &Agrave; capital A, grave accent &Aring; capital A, ring &Atilde; capital A, tilde &Auml; capital A, dieresis or umlaut mark &Ccedil; capital C, cedilla &ETH; capital Eth, Icelandic &Eacute; capital E, acute accent &Ecirc; capital E, circumflex accent &Egrave; capital E, grave accent &Euml; capital E, dieresis or umlaut mark &Iacute; capital I, acute accent &Icirc; capital I, circumflex accent &Igrave; capital I, grave accent &Iuml; capital I, dieresis or umlaut mark &Ntilde; capital N, tilde &Oacute; capital O, acute accent &Ocirc; capital O, circumflex accent &Ograve; capital O, grave accent &Oslash; capital O, slash &Otilde; capital O, tilde &Ouml; capital O, dieresis or umlaut mark &THORN; capital THORN, Icelandic May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 &Uacute; capital U, acute accent &Ucirc; capital U, circumflex accent &Ugrave; capital U, grave accent &Uuml; capital U, dieresis or umlaut mark &Yacute; capital Y, acute accent &aacute; small a, acute accent &acirc; small a, circumflex accent &aelig; small ae diphthong (ligature) &agrave; small a, grave accent &aring; small a, ring &atilde; small a, tilde &auml; small a, dieresis or umlaut mark &ccedil; small c, cedilla &eacute; small e, acute accent &ecirc; small e, circumflex accent &egrave; small e, grave accent &eth; small eth, Icelandic &euml; small e, dieresis or umlaut mark &iacute; small i, acute accent &icirc; small i, circumflex accent &igrave; small i, grave accent &iuml; small i, dieresis or umlaut mark &ntilde; small n, tilde &oacute; small o, acute accent &ocirc; small o, circumflex accent &ograve; small o, grave accent &oslash; small o, slash &otilde; small o, tilde May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 3 &ouml; small o, dieresis or umlaut mark &szlig; small sharp s, German (sz ligature) &thorn; small thorn, Icelandic &uacute; small u, acute accent &ucirc; small u, circumflex accent &ugrave; small u, grave accent &uuml; small u, dieresis or umlaut mark &yacute; small y, acute accent &yuml; small y, dieresis or umlaut mark May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 HTML Spacification: Acknowledgements ACKNOWLEDGEMENTS The HTML document type was designed initially at CERN in 1990 for the World-Wide Web project. The DTD was written, and the specification tightened up, by Dan Connolly. After much discussion on the network and some enhancement in particular the addition of inline images introduced by the NCSA "Mosaic" software for WWW, it was released as an Internet draft in 1993. The internet draft has since expired. This version of the specification is an attempt to capture the state of current practice, as a basis for review and enhancement. DWC May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 References - HTML specification REFERENCES SGML ISO 8879:1986, Information Processing Text and Office Systems Standard Generalized Markup Language (SGML). sgmls an SGML parser by James Clark <jjc@jclark.com> derived from the ARCSGML parser materials which were written by Charles F. Goldfarb. The source is available on the ifi.uio.no FTP server in the directory /pub/SGML/SGMLS . WWW The World-Wide Web , a global information initiative. For bootstrap information, telnet info.cern.ch or find documents by ftp://info.cern.ch/pub/www/doc URL Universal Resource Locators. RFCxxx. Currently available by anonymous FTP from info.cern.ch in /pub/www/doc/url*.{ps,txt} May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 Authors' addresses -- HTML specification AUTHOR'S ADDRESSES This document is the work of many contributors. Many thanks to Erik Naggum and James Clark for making SGML technology available, and toTerry Allen, Dave Raggett, Marc Andressen, William Perry, and the rest of the WWW community. Daniel W. Connolly Affiliation: HaL Software Systems Austin, TX USA email: connolly@hal.com Tim Berners-Lee Address CERN 1211 Geneva 23 Switzerland Telephone: +41(22)767 3755 Fax: +41(22)767 7155 email: timbl@info.cern.ch May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 1 HTML DTD Reference HTML DTD REFERENCE Generated from "-//connolly hal.com//DTD WWW HTML Date 1994/04/19 17:24:06 //EN" Alphabetical Index A, ADDRESS, B, BASE, BLOCKQUOTE, BODY, BR, CITE, CODE, DD, DFN, DIR, DL, DT, EM, FORM, H1, H2, H3, H4, H5, H6, HEAD, HR, HTML, I, IMG, INPUT, ISINDEX, KBD, LI, LINK, LISTING, MENU, NEXTID, OL, OPTION, P, PLAINTEXT, PRE, SAMP, SELECT, STRIKE, STRONG, TEXTAREA, TITLE, TT, UL, VAR, XMP, T A Required Parts <A>characters...</A> All Parts <A NAME="..." HREF="..." REL="..." REV="..." URN="..." TITLE="..." METHODS="...">characters...<H1> <H2> <H3> <H4> <H5> <H6> <HR> <UL> <OL> <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </A> Discussion The Anchor element in HTML T ADDRESS Required Parts <ADDRESS>characters...</ADDRESS> All Parts <ADDRESS>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> <HR> <UL> <OL> <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> </ADDRESS> Discussion Tags used in HTML T B May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 2 Required Parts <B>characters...</B> All Parts <B>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </B> Discussion in Highlighting in HTML T BASE Required Parts <BASE HREF="..."> All Parts <BASE HREF="..."> Discussion The BASE element in HTML T BLOCKQUOTE Required Parts <BLOCKQUOTE>characters...</BLOCKQUOTE> All Parts <BLOCKQUOTE>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> <HR> <UL> <OL> <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> </BLOCKQUOTE> Discussion BlockQuote in HTML T BODY Required Parts characters... All Parts <BODY>characters...<H1> <H2> <H3> <H4> <H5> <H6> <HR> <UL> <OL> <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> <A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </BODY> Discussion May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 3 The BODY element in HTML T BR Required Parts <BR> All Parts <BR> Discussion Line Breaks in HTML T CITE Required Parts <CITE>characters...</CITE> All Parts <CITE>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </CITE> Discussion in Highlighting in HTML T CODE Required Parts <CODE>characters...</CODE> All Parts <CODE>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </CODE> Discussion in Highlighting in HTML T DD Required Parts <DD>characters... All Parts <DD>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> <HR> <UL> <OL> May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 4 <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> </DD> Discussion in Lists and glossaries in HTML T DFN Required Parts <DFN>characters...</DFN> All Parts <DFN>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </DFN> Discussion in Highlighting in HTML T DIR Required Parts <DIR></DIR> All Parts <DIR><LI> </DIR> Discussion in Lists and glossaries in HTML T DL Required Parts <DL></DL> All Parts <DL COMPACT><DT> <DD> </DL> Discussion in Lists and glossaries in HTML T DT Required Parts <DT>characters... May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 5 All Parts <DT>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </DT> Discussion in Lists and glossaries in HTML T EM Required Parts <EM>characters...</EM> All Parts <EM>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </EM> Discussion in Highlighting in HTML T FORM Required Parts <FORM ACTION="...">characters...</FORM> All Parts <FORM ACTION="..." METHOD="..." ENCTYPE="...">characters...<H1> <H2> <H3> <H4> <H5> <H6> <HR> <UL> <OL> <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> <A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </FORM> T H1 Required Parts <H1>characters...</H1> All Parts <H1>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </H1> Discussion in Heading elements in HTML T May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 6 H2 Required Parts <H2>characters...</H2> All Parts <H2>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </H2> Discussion in Heading elements in HTML T H3 Required Parts <H3>characters...</H3> All Parts <H3>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </H3> Discussion in Heading elements in HTML T H4 Required Parts <H4>characters...</H4> All Parts <H4>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </H4> Discussion in Heading elements in HTML T H5 Required Parts <H5>characters...</H5> All Parts <H5>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </H5> Discussion in Heading elements in HTML May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 7 T H6 Required Parts <H6>characters...</H6> All Parts <H6>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </H6> Discussion in Heading elements in HTML T HEAD Required Parts All Parts <HEAD><TITLE> <ISINDEX> <LINK> <BASE> <NEXTID> </HEAD> Discussion HEAD -- Elements T HR Required Parts <HR> All Parts <HR> Discussion Horizontal Rules in HTML T HTML Required Parts All Parts <HTML><HEAD> <BODY> <PLAINTEXT> </HTML> Discussion Hypertext Markup Language (HTML) May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 8 T I Required Parts <I>characters...</I> All Parts <I>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </I> Discussion in Highlighting in HTML T IMG Required Parts <IMG> All Parts <IMG SRC="..." ALT="..." ALIGN="..." ISMAP> Discussion The IMG Element in HTML T INPUT Required Parts <INPUT> All Parts <INPUT TYPE="..." NAME="..." VALUE="..." SRC="..." CHECKED SIZE="..." MAXLENGTH="..." ALIGN="..."> T ISINDEX Required Parts <ISINDEX> All Parts <ISINDEX> Discussion ISINDEX element in HTML T KBD May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 9 Required Parts <KBD>characters...</KBD> All Parts <KBD>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </KBD> Discussion in Highlighting in HTML T LI Required Parts <LI>characters... All Parts <LI>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> <HR> <UL> <OL> <DIR> <MENU> <DL> <PRE> <XMP> <LISTING> <BLOCKQUOTE> <ADDRESS> <FORM> <ISINDEX> <P> </LI> Discussion in Lists and glossaries in HTML T LINK Required Parts <LINK> All Parts <LINK NAME="..." HREF="..." REL="..." REV="..." URN="..." TITLE="..." METHODS="..."> Discussion LINK -- Elements T LISTING Required Parts <LISTING>characters...</LISTING> All Parts <LISTING>characters...</LISTING> Discussion in Obsolete Elements of HTML May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 10 T MENU Required Parts <MENU></MENU> All Parts <MENU><LI> </MENU> Discussion in Lists and glossaries in HTML T NEXTID Required Parts <NEXTID N="..."> All Parts <NEXTID N="..."> Discussion Tags used in HTML T OL Required Parts <OL></OL> All Parts <OL><LI> </OL> T OPTION Required Parts <OPTION>characters... All Parts <OPTION SELECTED VALUE="...">characters...</OPTION> T P Required Parts <P>characters... All Parts <P>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </P> May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 11 Discussion Paragraphs in HTML T PLAINTEXT Required Parts <PLAINTEXT> All Parts <PLAINTEXT> Discussion in Obsolete Elements of HTML T PRE Required Parts <PRE>characters...</PRE> All Parts <PRE WIDTH="...">characters...<TT> <B> <I> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <A> </PRE> Discussion The PRE element in HTML T SAMP Required Parts <SAMP>characters...</SAMP> All Parts <SAMP>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </SAMP> Discussion in Highlighting in HTML T SELECT Required Parts <SELECT NAME="..."></SELECT> All Parts <SELECT NAME="..." SIZE="..." May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 12 MULTIPLE><OPTION> </SELECT> T STRIKE Required Parts <STRIKE>characters...</STRIKE> All Parts <STRIKE>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </STRIKE> T STRONG Required Parts <STRONG>characters...</STRONG> All Parts <STRONG>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </STRONG> Discussion in Highlighting in HTML T TEXTAREA Required Parts <TEXTAREA NAME="..." ROWS="..." COLS="...">characters...</TEXTAREA> All Parts <TEXTAREA NAME="..." ROWS="..." COLS="...">characters...</TEXTAREA> T TITLE Required Parts <TITLE>characters...</TITLE> All Parts <TITLE>characters...</TITLE> Discussion The TITLE element in HTML T TT May 18 12:43 1994 HTML Specification Connolly and Berners-Lee Page 13 Required Parts <TT>characters...</TT> All Parts <TT>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </TT> Discussion in Highlighting in HTML T UL Required Parts <UL></UL> All Parts <UL><LI> </UL> Discussion in Lists and glossaries in HTML T VAR Required Parts <VAR>characters...</VAR> All Parts <VAR>characters...<A> <IMG> <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> <STRIKE> <TT> <B> <I> <BR> </VAR> Discussion in Highlighting in HTML T XMP Required Parts <XMP>characters...</XMP> All Parts <XMP>characters...</XMP> Discussion in Obsolete Elements of HTML May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 1 <!-- html.dtd Document Type Definition for the HyperText Markup Language as used by the World Wide Web (HTML DTD). $Id: HTML.txt,v 1.6 1994/05/18 17:45:39 connolly Exp $ Author: Daniel W. Connolly <connolly@hal.com> See Also: http://www.hal.com/%7Econnolly/html-spec/HTML.html http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html --> <!ENTITY HTML.Version "-//connolly hal.com//DTD WWW HTML $Date 1994/04/19 17:24:06 $//EN" -- public identifier for "current pracitice" version -- -- actually, take the $'s out to get the real public identifer, -- -- since $ is illegal in public identifier. When DTD stabilizes, -- -- we'll need to stop using RCS keywords to version the pub id -- -- Typical usage: <!DOCTYPE HTML PUBLIC "-//connolly hal.com//DTD WWW HTML $Date: 1994/05/18 17:45:39 $//EN"> <html> ... </html> -- > <!-- Feature Test Entities --> <!-- To use these, write your document like: <!DOCTYPE HTML [ <!ENTITY % HTML.Optional "INCLUDE"> <!ENTITY % html PUBLIC "-//connolly hal.com//DTD WWW HTML 1.8//EN"> %html; ]> <TITLE>Here's my doc</TITLE> <p>It uses lots of optional features In practice, if you're using sgmls to validate your docs, you can stick the <!DOCTYPE [...]> in a separate file and validate with: sgmls -s doctype.sgml foo.html --> <!ENTITY % HTML.Minimal "IGNORE"> <!ENTITY % HTML.Obsolete "IGNORE"> <!ENTITY % HTML.Prescriptive "IGNORE"> <![ %HTML.Minimal [ <!ENTITY % HTML.linkRelationships "IGNORE"> <!ENTITY % HTML.linkMethods "IGNORE"> <!ENTITY % HTML.linkRedundantInfo "IGNORE"> <!ENTITY % HTML.forms "IGNORE"> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 2 <!-- @@ nested lists --> <!-- @@ phrases --> <!-- @@ headers inside A --> <!-- @@ nested phrases, fonts --> ]]> <![ %HTML.Obsolete [ <!ENTITY % HTML.titleCDATA "INCLUDE"> <!ENTITY % HTML.litCDATA "INCLUDE"> <!ENTITY % HTML.pSeparator "INCLUDE"> ]]> <![ %HTML.Prescriptive [ <!-- This feature test entity prescribes that certain idioms detract from the structural integrity of an HTML document, and are therefore disallowed. --> <!ENTITY % HTML.font-phrase "IGNORE"> <!ENTITY % HTML.anchorNameCDATA "IGNORE"> <!ENTITY % HTML.PLAINTEXT "IGNORE"> <!ENTITY % HTML.bodyBlockOnly "INCLUDE"> ]]> <!ENTITY % HTML.bodyBlockOnly "IGNORE" -- only allow block elements in the BODY element This means all paragraphs need to start with a <P> tag. --> <!ENTITY % HTML.pSeparator "IGNORE" -- use P element as paragraph separator, rather that container. --> <!ENTITY % HTML.linkRelationships "INCLUDE" -- Adding markup to links to show the relationship between ends of a link see http://info.cern.ch/hypertext/WWW/MarkUp/Relationships.html --> <!ENTITY % HTML.linkMethods "INCLUDE" -- Adding markup to links to show the methods supported by the referent object see http://info.cern.ch/hypertext/WWW/MarkUp/Elements/A.html --> <!ENTITY % HTML.linkRedundantInfo "INCLUDE" -- Adding markup to links to give redundant information like URN, content type, title... --> <!ENTITY % HTML.anchorNameCDATA "INCLUDE" -- Anchor names should be distinct. SGML parser can validate this if the NAME attribute of the A element is declared as ID. But that restricts the syntax of an anchor name to an SGML name, i.e. a letter followed by letters, numbers, periods and dashes, up to NAMELEN (34) characters long. May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 3 --> <!ENTITY % HTML.PLAINTEXT "INCLUDE" -- Support for the <PLAINTEXT> tag as a sign of the end of th HTML data stream and the beginning of a stream of text/plain data --> <!ENTITY % HTML.titleCDATA "IGNORE" -- Is the TITLE element #PCDATA, RCDATA, or CDATA content? On Mosaic, it's #PCDATA, but in the linemode browser, it's more like CDATA, but not quite. --> <!ENTITY % HTML.NEXTID "INCLUDE" -- Used by the NeXT implementation to keep track of the next anchor id to use --> <!ENTITY % HTML.font-phrase "INCLUDE" -- allow B, I, TT, U outside PRE, CITE, VAR, etc. inside PRE --> <!ENTITY % HTML.KEY "IGNORE" -- There was once a KEY element, for keyboard keys, menu items, buttons, etc. but it's not supported or widely documented --> <!ENTITY % HTML.U "IGNORE" -- There was also a U element, but since it clashes with the common pracitce of underlining hypertext links, it is not widely supported --> <!ENTITY % HTML.litCDATA "IGNORE" -- treat XMP, LISTING as CDATA, as per linemodeWWW --> <!ENTITY % HTML.forms "INCLUDE" -- Support for forms as per http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html --> <!-- DTD definitions --> <!ENTITY % heading "H1|H2|H3|H4|H5|H6" > <!ENTITY % list " UL | OL | DIR | MENU "> <!ENTITY % literal " XMP | LISTING "> <!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 May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 4 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. @@ Need to discuss relative addresses. --> <!ENTITY % Content-Type "CDATA" -- meaning a MIME content type, as per RFC1521 --> <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]> <!ENTITY % anchor-name "ID"> <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs " REL CDATA #IMPLIED -- forward relationship type -- REV CDATA #IMPLIED -- reversed relationship type to referent data: PARENT CHILD, SIBLING, NEXT, TOP, DEFINITION, UPDATE, ORIGINAL etc. -- "> ]]> <!ENTITY % linkRelAttrs ""> <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs " URN CDATA #IMPLIED -- universal resource number -- TITLE CDATA #IMPLIED -- advisory only -- "> ]]> <!ENTITY % linkRedundantAttrs ""> <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs " METHODS NAMES #IMPLIED -- supported public methods of the object: TEXTSEARCH, GET, HEAD, ... -- "> ]]> <!ENTITY % linkMethodAttrs ""> <!ENTITY % linkattributes "NAME %anchor-name #IMPLIED HREF %URI; #IMPLIED %linkRelAttrs; %linkRedundantAttrs; %linkMethodAttrs; "> <!-- Document Element --> <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]> <!ENTITY % obsolete-plaintext ""> <!ENTITY % html-content "HEAD, BODY %obsolete-plaintext;"> <!ELEMENT HTML O O (%html-content)> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 5 <![ %HTML.NEXTID [ <!ENTITY % head-content "TITLE? & ISINDEX? & LINK* & BASE? & NEXTID?"> ]]> <!ENTITY % head-content "TITLE & ISINDEX? & LINK* & BASE?"> <!ELEMENT HEAD O O (%head-content)> <![ %HTML.titleCDATA [ <!ENTITY % title-content "CDATA"> ]]> <!ENTITY % title-content "(#PCDATA)"> <!ELEMENT TITLE - - %title-content -- 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. --> <!ELEMENT ISINDEX - O EMPTY -- WWW clients should offer the option to perform a search on documents containing ISINDEX. --> <!ELEMENT NEXTID - O EMPTY> <!ATTLIST NEXTID N %anchor-name #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 --> <!ELEMENT LINK - O EMPTY> <!ATTLIST LINK %linkattributes> <!ELEMENT BASE - O EMPTY -- Reference context for URIs --> <!ATTLIST BASE HREF %URI; #REQUIRED > <![ %HTML.KEY [ <!ENTITY % key-emph "| KEY"> ]]> <!ENTITY % key-emph ""> <![ %HTML.U [ <!ENTITY % u-font "| U"> ]]> <!ENTITY % u-font ""> <!ENTITY % font "TT | B | I %u-font"> <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | DFN | CITE | STRIKE %key-emph"> <![ %HTML.font-phrase [ <!ENTITY % obsolete-font "| %font"> <!ENTITY % obsolete-phrase "| %phrase"> ]]> <!ENTITY % obsolete-font ""> <!ENTITY % obsolete-phrase ""> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 6 <![ %HTML.pSeparator [ <!ENTITY % obsolete-p "| P"> ]]> <!ENTITY % obsolete-p ""> <!ENTITY % inline "%phrase %obsolete-font"> <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p"> <!ENTITY % text "#PCDATA | IMG | %inline | BR %obsolete-p"> <!ENTITY % htext "A | %text" -- Plus links, no structure --> <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]> <!ENTITY % font-content "#PCDATA"> <!ELEMENT (%font;) - - (%font-content;)> <!ELEMENT (%phrase;) - - (%htext)+> <!ENTITY % pre "PRE | XMP | LISTING"> <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]> <!ENTITY % block-form ""> <![ %HTML.pSeparator [ <!ENTITY % obsolete-htext "| %htext"> <!ENTITY % block-p ""> ]]> <!ENTITY % obsolete-htext "| A"> <!ENTITY % block-p "| P "> <!ENTITY % block "HR | %list | DL | %pre | BLOCKQUOTE | ADDRESS %block-form %block-p"> <![ %HTML.bodyBlockOnly [ <!ENTITY % current-htext ""> ]]> <!ENTITY % current-htext "| %htext"> <!ENTITY % body-content "%heading | %block %current-htext"> <!ELEMENT BODY O O (%body-content)*> <!ELEMENT A - - (%heading|%block|%text)+ -(A) -- @# Technically, this allows silliness like: <H2><A>xyz<H1>h1</H1></A></H2> The right way to do anchors outside of %htext is more like: <as id=z1><H2>lkjlkj</h2><ae start=z1> --> <!ATTLIST A %linkattributes; > <!ELEMENT IMG - O EMPTY -- Embedded image --> <!ATTLIST IMG May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 7 SRC %URI; #IMPLIED -- URI of document to embed -- ALT CDATA #IMPLIED ALIGN (top|middle|bottom) #IMPLIED ISMAP (ISMAP) #IMPLIED > <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]> <!ENTITY % p-content "(%htext)+"> <!ELEMENT P - O %p-content> <!ELEMENT HR - O EMPTY -- horizontal rule --> <!ELEMENT BR - O EMPTY -- @# BR -> &br; --> <!ELEMENT ( %heading ) - - (%htext;)+> <!ELEMENT DL - - (DT*, DD?)+> <!ATTLIST DL COMPACT (COMPACT) #IMPLIED> <!ELEMENT DT - O (%htext)+> <!ELEMENT DD - O (%htext|%block)+> <!ELEMENT (%list) - - (LI)+> <!ELEMENT LI - O (%htext|%block)+> <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... -- -- for quoting some other source --> <!ELEMENT ADDRESS - - (%htext;|%block)+> <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+> <!ATTLIST PRE WIDTH NUMBER #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 --> <!-- Processing Entities --> <!ENTITY nbsp "<? nonbreaking-space>"> <!-- @# should add entites for processing instructions for line break, centering, etc. --> <!-- Forms --> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 8 <![ %HTML.forms [ <!ENTITY % HTTP-Method "(GET | POST)"> <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)> <!ATTLIST FORM ACTION %URI #REQUIRED METHOD %HTTP-Method #IMPLIED -- @# MAILTO? -- ENCTYPE %Content-Type; #IMPLIED > <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | IMAGE | HIDDEN )"> <!ELEMENT INPUT - O EMPTY> <!ATTLIST INPUT TYPE %InputType #IMPLIED -- @# defaults to 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 -- @# should be NUMBERS: delimit with space, not comma -- MAXLENGTH NUMBER #IMPLIED ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?-- > <!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 -- @#implied? -- COLS NUMBER #REQUIRED > ]]> <!-- Obsolete Elements --> <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]> <!ENTITY % lit-content "RCDATA"> <!ELEMENT (%literal) - - %lit-content> <![ %HTML.PLAINTEXT [ <!ELEMENT PLAINTEXT - O EMPTY> ]]> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 1 <!-- html.dtd Document Type Definition for the HyperText Markup Language as used by the World Wide Web (HTML DTD). $Id: HTML.txt,v 1.6 1994/05/18 17:45:39 connolly Exp $ Author: Daniel W. Connolly <connolly@hal.com> See Also: http://www.hal.com/%7Econnolly/html-spec/HTML.html http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html --> <!ENTITY HTML.Version "-//connolly hal.com//DTD WWW HTML $Date 1994/04/19 17:24:06 $//EN" -- public identifier for "current pracitice" version -- -- actually, take the $'s out to get the real public identifer, -- -- since $ is illegal in public identifier. When DTD stabilizes, -- -- we'll need to stop using RCS keywords to version the pub id -- -- Typical usage: <!DOCTYPE HTML PUBLIC "-//connolly hal.com//DTD WWW HTML $Date: 1994/05/18 17:45:39 $//EN"> <html> ... </html> -- > <!-- Feature Test Entities --> <!-- To use these, write your document like: <!DOCTYPE HTML [ <!ENTITY % HTML.Optional "INCLUDE"> <!ENTITY % html PUBLIC "-//connolly hal.com//DTD WWW HTML 1.8//EN"> %html; ]> <TITLE>Here's my doc</TITLE> <p>It uses lots of optional features In practice, if you're using sgmls to validate your docs, you can stick the <!DOCTYPE [...]> in a separate file and validate with: sgmls -s doctype.sgml foo.html --> <!ENTITY % HTML.Minimal "IGNORE"> <!ENTITY % HTML.Obsolete "IGNORE"> <!ENTITY % HTML.Prescriptive "IGNORE"> <![ %HTML.Minimal [ <!ENTITY % HTML.linkRelationships "IGNORE"> <!ENTITY % HTML.linkMethods "IGNORE"> <!ENTITY % HTML.linkRedundantInfo "IGNORE"> <!ENTITY % HTML.forms "IGNORE"> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 2 <!-- @@ nested lists --> <!-- @@ phrases --> <!-- @@ headers inside A --> <!-- @@ nested phrases, fonts --> ]]> <![ %HTML.Obsolete [ <!ENTITY % HTML.titleCDATA "INCLUDE"> <!ENTITY % HTML.litCDATA "INCLUDE"> <!ENTITY % HTML.pSeparator "INCLUDE"> ]]> <![ %HTML.Prescriptive [ <!-- This feature test entity prescribes that certain idioms detract from the structural integrity of an HTML document, and are therefore disallowed. --> <!ENTITY % HTML.font-phrase "IGNORE"> <!ENTITY % HTML.anchorNameCDATA "IGNORE"> <!ENTITY % HTML.PLAINTEXT "IGNORE"> <!ENTITY % HTML.bodyBlockOnly "INCLUDE"> ]]> <!ENTITY % HTML.bodyBlockOnly "IGNORE" -- only allow block elements in the BODY element This means all paragraphs need to start with a <P> tag. --> <!ENTITY % HTML.pSeparator "IGNORE" -- use P element as paragraph separator, rather that container. --> <!ENTITY % HTML.linkRelationships "INCLUDE" -- Adding markup to links to show the relationship between ends of a link see http://info.cern.ch/hypertext/WWW/MarkUp/Relationships.html --> <!ENTITY % HTML.linkMethods "INCLUDE" -- Adding markup to links to show the methods supported by the referent object see http://info.cern.ch/hypertext/WWW/MarkUp/Elements/A.html --> <!ENTITY % HTML.linkRedundantInfo "INCLUDE" -- Adding markup to links to give redundant information like URN, content type, title... --> <!ENTITY % HTML.anchorNameCDATA "INCLUDE" -- Anchor names should be distinct. SGML parser can validate this if the NAME attribute of the A element is declared as ID. But that restricts the syntax of an anchor name to an SGML name, i.e. a letter followed by letters, numbers, periods and dashes, up to NAMELEN (34) characters long. May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 3 --> <!ENTITY % HTML.PLAINTEXT "INCLUDE" -- Support for the <PLAINTEXT> tag as a sign of the end of th HTML data stream and the beginning of a stream of text/plain data --> <!ENTITY % HTML.titleCDATA "IGNORE" -- Is the TITLE element #PCDATA, RCDATA, or CDATA content? On Mosaic, it's #PCDATA, but in the linemode browser, it's more like CDATA, but not quite. --> <!ENTITY % HTML.NEXTID "INCLUDE" -- Used by the NeXT implementation to keep track of the next anchor id to use --> <!ENTITY % HTML.font-phrase "INCLUDE" -- allow B, I, TT, U outside PRE, CITE, VAR, etc. inside PRE --> <!ENTITY % HTML.KEY "IGNORE" -- There was once a KEY element, for keyboard keys, menu items, buttons, etc. but it's not supported or widely documented --> <!ENTITY % HTML.U "IGNORE" -- There was also a U element, but since it clashes with the common pracitce of underlining hypertext links, it is not widely supported --> <!ENTITY % HTML.litCDATA "IGNORE" -- treat XMP, LISTING as CDATA, as per linemodeWWW --> <!ENTITY % HTML.forms "INCLUDE" -- Support for forms as per http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html --> <!-- DTD definitions --> <!ENTITY % heading "H1|H2|H3|H4|H5|H6" > <!ENTITY % list " UL | OL | DIR | MENU "> <!ENTITY % literal " XMP | LISTING "> <!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 May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 4 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. @@ Need to discuss relative addresses. --> <!ENTITY % Content-Type "CDATA" -- meaning a MIME content type, as per RFC1521 --> <![ %HTML.anchorNameCDATA [ <!ENTITY % anchor-name "CDATA"> ]]> <!ENTITY % anchor-name "ID"> <![ %HTML.linkRelationships [ <!ENTITY % linkRelAttrs " REL CDATA #IMPLIED -- forward relationship type -- REV CDATA #IMPLIED -- reversed relationship type to referent data: PARENT CHILD, SIBLING, NEXT, TOP, DEFINITION, UPDATE, ORIGINAL etc. -- "> ]]> <!ENTITY % linkRelAttrs ""> <![ %HTML.linkRedundantInfo [ <!ENTITY % linkRedundantAttrs " URN CDATA #IMPLIED -- universal resource number -- TITLE CDATA #IMPLIED -- advisory only -- "> ]]> <!ENTITY % linkRedundantAttrs ""> <![ %HTML.linkMethods [ <!ENTITY % linkMethodAttrs " METHODS NAMES #IMPLIED -- supported public methods of the object: TEXTSEARCH, GET, HEAD, ... -- "> ]]> <!ENTITY % linkMethodAttrs ""> <!ENTITY % linkattributes "NAME %anchor-name #IMPLIED HREF %URI; #IMPLIED %linkRelAttrs; %linkRedundantAttrs; %linkMethodAttrs; "> <!-- Document Element --> <![ %HTML.PLAINTEXT [ <!ENTITY % obsolete-plaintext ", PLAINTEXT?"> ]]> <!ENTITY % obsolete-plaintext ""> <!ENTITY % html-content "HEAD, BODY %obsolete-plaintext;"> <!ELEMENT HTML O O (%html-content)> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 5 <![ %HTML.NEXTID [ <!ENTITY % head-content "TITLE? & ISINDEX? & LINK* & BASE? & NEXTID?"> ]]> <!ENTITY % head-content "TITLE & ISINDEX? & LINK* & BASE?"> <!ELEMENT HEAD O O (%head-content)> <![ %HTML.titleCDATA [ <!ENTITY % title-content "CDATA"> ]]> <!ENTITY % title-content "(#PCDATA)"> <!ELEMENT TITLE - - %title-content -- 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. --> <!ELEMENT ISINDEX - O EMPTY -- WWW clients should offer the option to perform a search on documents containing ISINDEX. --> <!ELEMENT NEXTID - O EMPTY> <!ATTLIST NEXTID N %anchor-name #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 --> <!ELEMENT LINK - O EMPTY> <!ATTLIST LINK %linkattributes> <!ELEMENT BASE - O EMPTY -- Reference context for URIs --> <!ATTLIST BASE HREF %URI; #REQUIRED > <![ %HTML.KEY [ <!ENTITY % key-emph "| KEY"> ]]> <!ENTITY % key-emph ""> <![ %HTML.U [ <!ENTITY % u-font "| U"> ]]> <!ENTITY % u-font ""> <!ENTITY % font "TT | B | I %u-font"> <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | DFN | CITE | STRIKE %key-emph"> <![ %HTML.font-phrase [ <!ENTITY % obsolete-font "| %font"> <!ENTITY % obsolete-phrase "| %phrase"> ]]> <!ENTITY % obsolete-font ""> <!ENTITY % obsolete-phrase ""> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 6 <![ %HTML.pSeparator [ <!ENTITY % obsolete-p "| P"> ]]> <!ENTITY % obsolete-p ""> <!ENTITY % inline "%phrase %obsolete-font"> <!ENTITY % pre-inline "%font %obsolete-phrase %obsolete-p"> <!ENTITY % text "#PCDATA | IMG | %inline | BR %obsolete-p"> <!ENTITY % htext "A | %text" -- Plus links, no structure --> <![ %HTML.font-phrase [ <!ENTITY % font-content "(%htext)+"> ]]> <!ENTITY % font-content "#PCDATA"> <!ELEMENT (%font;) - - (%font-content;)> <!ELEMENT (%phrase;) - - (%htext)+> <!ENTITY % pre "PRE | XMP | LISTING"> <![ %HTML.forms [ <!ENTITY % block-form "| FORM | ISINDEX"> ]]> <!ENTITY % block-form ""> <![ %HTML.pSeparator [ <!ENTITY % obsolete-htext "| %htext"> <!ENTITY % block-p ""> ]]> <!ENTITY % obsolete-htext "| A"> <!ENTITY % block-p "| P "> <!ENTITY % block "HR | %list | DL | %pre | BLOCKQUOTE | ADDRESS %block-form %block-p"> <![ %HTML.bodyBlockOnly [ <!ENTITY % current-htext ""> ]]> <!ENTITY % current-htext "| %htext"> <!ENTITY % body-content "%heading | %block %current-htext"> <!ELEMENT BODY O O (%body-content)*> <!ELEMENT A - - (%heading|%block|%text)+ -(A) -- @# Technically, this allows silliness like: <H2><A>xyz<H1>h1</H1></A></H2> The right way to do anchors outside of %htext is more like: <as id=z1><H2>lkjlkj</h2><ae start=z1> --> <!ATTLIST A %linkattributes; > <!ELEMENT IMG - O EMPTY -- Embedded image --> <!ATTLIST IMG May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 7 SRC %URI; #IMPLIED -- URI of document to embed -- ALT CDATA #IMPLIED ALIGN (top|middle|bottom) #IMPLIED ISMAP (ISMAP) #IMPLIED > <![ %HTML.pSeparator [ <!ENTITY % p-content "EMPTY"> ]]> <!ENTITY % p-content "(%htext)+"> <!ELEMENT P - O %p-content> <!ELEMENT HR - O EMPTY -- horizontal rule --> <!ELEMENT BR - O EMPTY -- @# BR -> &br; --> <!ELEMENT ( %heading ) - - (%htext;)+> <!ELEMENT DL - - (DT*, DD?)+> <!ATTLIST DL COMPACT (COMPACT) #IMPLIED> <!ELEMENT DT - O (%htext)+> <!ELEMENT DD - O (%htext|%block)+> <!ELEMENT (%list) - - (LI)+> <!ELEMENT LI - O (%htext|%block)+> <!ELEMENT BLOCKQUOTE - - (%htext|%block)+ -- @# Hmm... -- -- for quoting some other source --> <!ELEMENT ADDRESS - - (%htext;|%block)+> <!ELEMENT PRE - - (#PCDATA|%pre-inline|A)+> <!ATTLIST PRE WIDTH NUMBER #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 --> <!-- Processing Entities --> <!ENTITY nbsp "<? nonbreaking-space>"> <!-- @# should add entites for processing instructions for line break, centering, etc. --> <!-- Forms --> May 18 12:23 1994 HTML Specification Connolly and Berners-Lee Page 8 <![ %HTML.forms [ <!ENTITY % HTTP-Method "(GET | POST)"> <!ELEMENT FORM - - (%body-content)* -(FORM) +(INPUT|SELECT|TEXTAREA)> <!ATTLIST FORM ACTION %URI #REQUIRED METHOD %HTTP-Method #IMPLIED -- @# MAILTO? -- ENCTYPE %Content-Type; #IMPLIED > <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | IMAGE | HIDDEN )"> <!ELEMENT INPUT - O EMPTY> <!ATTLIST INPUT TYPE %InputType #IMPLIED -- @# defaults to 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 -- @# should be NUMBERS: delimit with space, not comma -- MAXLENGTH NUMBER #IMPLIED ALIGN (top|middle|bottom|left|center|right) #IMPLIED --@#supported?-- > <!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 -- @#implied? -- COLS NUMBER #REQUIRED > ]]> <!-- Obsolete Elements --> <![ %HTML.litCDATA [ <!ENTITY % lit-content "CDATA"> ]]> <!ENTITY % lit-content "RCDATA"> <!ELEMENT (%literal) - - %lit-content> <![ %HTML.PLAINTEXT [ <!ELEMENT PLAINTEXT - O EMPTY> ]]>