home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / www / html3.txt < prev    next >
Text File  |  1995-11-10  |  381KB  |  10,831 lines

  1. HTML 3.0                                                       28th March 1995
  2.  
  3.    INTERNET DRAFT                                 Dave Raggett, W3C
  4.    Expires in six months                          email: <dsr@w3.org>
  5.  
  6.              HyperText Markup Language Specification Version 3.0
  7.  
  8.                        <draft-ietf-html-specv3-00.txt>
  9.  
  10. Status of this Memo
  11.  
  12.    This document is an Internet draft. Internet drafts are working
  13.    documents of the Internet Engineering Task Force (IETF), its areas
  14.    and its working groups. Note that other groups may also distribute
  15.    working information as Internet drafts. 
  16.  
  17.    Internet Drafts are draft documents valid for a maximum of six
  18.    months and can be updated, replaced or obsoleted by other documents
  19.    at any time. It is inappropriate to use Internet drafts as reference
  20.    material or to cite them as other than as "work in progress". 
  21.  
  22.    To learn the current status of any Internet draft please check the
  23.    "lid-abstracts.txt" listing contained in the Internet drafts shadow
  24.    directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  25.    munnari.oz.au (Pacific Rim), ds.internic.net (US East coast) or
  26.    ftp.isi.edu (US West coast). Further information about the IETF can
  27.    be found at URL: http://www.cnri.reston.va.us/ 
  28.  
  29.    Distribution of this document is unlimited. Please send comments to
  30.    the HTML working group (HTML-WG) of the Internet Engineering Task
  31.    Force (IETF) at <html-wg@wg.oclc.org>. Discussions of this group are
  32.    archived at URL: http://www.acl.lanl.gov/HTML-WG/archives.html. 
  33.  
  34. Abstract
  35.  
  36.    The HyperText Markup Language (HTML) is a simple markup language
  37.    used to create hypertext documents that are portable from one
  38.    platform to another. HTML documents are SGML documents with generic
  39.    semantics that are appropriate for representing information from a
  40.    wide range of applications. HTML markup can represent hypertext
  41.    news, mail, documentation, and hypermedia; menus of options;
  42.    database query results; simple structured documents with inlined
  43.    graphics and hypertext views of existing bodies of information. 
  44.  
  45.    This specification defines the capabilities of HTML version 3.0 and
  46.    provides additional capabilities over previous versions such as
  47.    tables, text flow around figures and math. It is backwards
  48.    compatible with HTML 2.0. 
  49.  
  50.    [Link to Table of Contents]--  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57. Dave Raggett                                                            Page 1
  58. HTML 3.0                                                       28th March 1995
  59.  
  60. Table of Contents
  61.  
  62.    1.  Introduction  ...................................................... 4
  63.  
  64.        a)  How to participate in refining HTML 3.0  ....................... 4
  65.  
  66.        b)  HTML 3.0 Overview  ............................................. 4
  67.  
  68.        c)  Transition strategy from HTML 2.0  ............................. 5
  69.  
  70.        d)  Design Guidelines for HTML 3.0  ................................ 6
  71.  
  72.    2.  Understanding HTML and MIME  ....................................... 9
  73.  
  74.    3.  Understanding HTML and SGML  ...................................... 10
  75.  
  76.    4.  The Structure of HTML 3.0 Documents  .............................. 15
  77.  
  78.    5.  The HEAD Element and Related Elements  ............................ 17
  79.  
  80.    6.  The BODY Elements  ................................................ 24
  81.  
  82.        a)  Banners  ...................................................... 26
  83.  
  84.        b)  Divisions  .................................................... 27
  85.  
  86.        c)  Heading Elements  ............................................. 29
  87.  
  88.        d)  Paragraphs  ................................................... 33
  89.  
  90.        e)  Line Breaks  .................................................. 36
  91.  
  92.        f)  Horizontal Tabs  .............................................. 38
  93.  
  94.        g)  Hypertext Links  .............................................. 40
  95.  
  96.        h)  Overview of Character-Level Elements  ......................... 44
  97.  
  98.            -   Information Type Elements  ................................ 46
  99.  
  100.            -   Font Style Elements  ...................................... 48
  101.  
  102.        i)  The IMG (Image) Element  ...................................... 50
  103.  
  104.        j)  Unordered Lists  .............................................. 53
  105.  
  106.        k)  Ordered Lists  ................................................ 59
  107.  
  108.        l)  Definition Lists  ............................................. 62
  109.  
  110.        m)  Figures  ...................................................... 69
  111.  
  112.        n)  Tables  ....................................................... 77
  113.  
  114. Dave Raggett                                                            Page 2
  115. HTML 3.0                                                       28th March 1995
  116.  
  117.  
  118.        o)  Math -- missing entity names --  .............................. 92
  119.  
  120.        p)  Horizontal Rules  ............................................ 111
  121.  
  122.        q)  Preformatted Text  ........................................... 113
  123.  
  124.        r)  Admonishments  ............................................... 116
  125.  
  126.        s)  Footnotes  ................................................... 118
  127.  
  128.        t)  Block Quotes  ................................................ 120
  129.  
  130.        u)  The ADDRESS Element  ......................................... 122
  131.  
  132.        v)  Fill-out Forms  .............................................. 124
  133.  
  134.    7.  Special Characters  .............................................. 142
  135.  
  136.    8.  Security Considerations  ......................................... 145
  137.  
  138.    9.  HTML 3.0 Document Type Definition 
  139.  
  140.        a)  The SGML Declaration  ........................................ 146
  141.  
  142.        b)  The Latin-1 Character Entities -- needs work  ................ 148
  143.  
  144.        c)  Math and Greek Entities -- under construction  ............... 154
  145.  
  146.        d)  HTML Icon Entities  .......................................... 156
  147.  
  148.        e)  The HTML 3.0 DTD  ............................................ 157
  149.  
  150.    10. Terms -- needs work  ............................................. 185
  151.  
  152.    11. References -- needs work  ........................................ 188
  153.  
  154.    12. Acknowledgements -- needs work  .................................. 189
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171. Dave Raggett                                                            Page 3
  172. HTML 3.0                                                       28th March 1995
  173.  
  174. Introduction to HTML 3.0
  175.  
  176.    HyperText Markup Language (HTML) is a simple markup system used to
  177.    create hypertext documents that are portable from one platform to
  178.    another. HTML documents are SGML documents with generic semantics
  179.    that are appropriate for representing information from a wide range
  180.    of applications. HTML markup can represent hypertext news, mail,
  181.    documentation, and hypermedia; menus of options; database query
  182.    results; simple structured documents with in-lined graphics; and
  183.    hypertext views of existing bodies of information. 
  184.  
  185.    HTML has been in use by the World-Wide Web (WWW) global information
  186.    initiative since 1990. The HTML 3.0 specification provides a number
  187.    of new features, and is broadly backwards compatible with HTML 2.0.
  188.    It is defined as an application of International Standard ISO
  189.    ISO8879:1986 Standard Generalized Markup Language (SGML). This
  190.    specificiation will be proposed as the Internet Media Type (RFC
  191.    1590) and MIME Content Type (RFC 1521) called "text/html;
  192.    version=3.0". 
  193.  
  194. How to participate in refining HTML 3.0
  195.  
  196.    The process of refining HTML 3.0 into a formal standard will be
  197.    carried out by the IETF HTML working group. The World Wide Web
  198.    Organization is continuing to develop a freeware testbed browser for
  199.    HTML 3.0 ("Arena") to encourage people to try out the proposed
  200.    features. The discussion list for HTML 3.0 is www-html with html-wg
  201.    reserved for use by the IETF working group for detailed matters
  202.    relating to the formal specification. The process for developing
  203.    HTML 3.0 is open, and anyone who is interested and able to
  204.    contribute to this effort is welcome to join in. 
  205.  
  206.    --Note: make mailing list names into hypertext links to their
  207.    archives and add info on how to join these lists-- 
  208.  
  209. HTML 3.0 Overview
  210.  
  211.    HTML 3.0 builds upon HTML 2.0 and provides full backwards
  212.    compatibility. Tables have been one of the most requested features,
  213.    with text flow around figures and math as runners up. Traditional
  214.    SGML table models, e.g. the CALS table model, are really complex.
  215.    The HTML 3.0 proposal for tables uses a lightweight style of markup
  216.    suitable for rendering on a very wide range of output devices,
  217.    including braille and speech synthesizers. 
  218.  
  219.    HTML 3.0 introduces a new element: FIG for inline figures. This
  220.    provides for client-side handling of hotzones while cleanly catering
  221.    for non-graphical browsers. Text can be flowed around figures and
  222.    you can control when to break the flow to begin a new element. 
  223.  
  224.    Including support for equations and formulae in HTML 3.0 adds
  225.    relatively little complexity to a browser. The proposed format is
  226.    strongly influenced by TeX. Like tables, the format uses a
  227.  
  228. Dave Raggett                                                            Page 4
  229. HTML 3.0                                                       28th March 1995
  230.  
  231.    lightweight style of markup - simple enough to type in by hand,
  232.    although it will in most cases be easier to use a filter from a word
  233.    processing format or a direct HTML 3.0 wysiwyg editor. The level of
  234.    support is compatible with most word processing software, and avoids
  235.    the drawbacks from having to convert math to inline images. 
  236.  
  237.    The Web has acted as a huge exercise in user testing, and we have
  238.    been able to glean lots of information from the ways people abuse
  239.    HTML in trying to get a particular effect; as well as from explicit
  240.    demand for new features. HTML 3.0, as a result, includes support for
  241.    customised lists; fine positioning control with entities like
  242.    &emspace; horizontal tabs and horizontal alignment of headers and
  243.    paragraph text. 
  244.  
  245.    Additional features include a static banner area for corporate
  246.    logos, disclaimers and customized navigation/search controls. The
  247.    LINK element can be used to provide standard toolbar/menu items for
  248.    navigation, such as previous and next buttons. The NOTE element is
  249.    used for admonishments such as notes, cautions or warnings, and also
  250.    used for footnotes. 
  251.  
  252.    Forms have been extended to support graphical selection menus with
  253.    client-side handling of events similar to FIG. Other new form field
  254.    types include range controls, scribble on image, file upload and
  255.    audio input fields. Client-side scripting of forms is envisaged with
  256.    the script attribute of the FORM element. Forms and tables make for
  257.    a powerful combination offering rich opportunities for laying out
  258.    custom interfaces to remote information systems. 
  259.  
  260.    To counter the temptation to add yet more presentation features,
  261.    HTML 3.0 is designed (but doesn't require) to be used together with
  262.    style sheets which give rich control over document rendering, and
  263.    can take into account the user's preferences, the window size and
  264.    other resource limitations, such as which fonts are actually
  265.    available. This work will eventually lead to smart layout under the
  266.    author's control, with rich magazine style layouts for full screen
  267.    viewing, switching to simpler layouts when the window is shrunk. 
  268.  
  269.    The SGML Open consortium is promoting use of DSSSL Lite by James
  270.    Clark. This is a simplified subset of DSSSL - the document style
  271.    semantics specification language. DSSSL is a ISO standard for
  272.    representing presentation semantics for SGML documents, but is much
  273.    too complex in its entirety to be well suited to the World Wide Web.
  274.    Hσkon Lie maintains a list of pointers to work on style sheets. 
  275.  
  276. Transition Strategy from HTML 2.0
  277.  
  278.    The use of the MIME content type: "text/html; version=3.0" is
  279.    recommended to prevent existing HTML 2.0 user agents screwing up by
  280.    attempting to show 3.0 documents. Tests have shown that the
  281.    suggested content type will safely cause existing user agents to
  282.    display the save to file dialog rather than incorrectly displaying
  283.    the document as if it were HTML 2.0. 
  284.  
  285. Dave Raggett                                                            Page 5
  286. HTML 3.0                                                       28th March 1995
  287.  
  288.  
  289.    To make it easy for servers to distinguish 3.0 documents from 2.0
  290.    documents, it is suggested that 3.0 files are saved with the
  291.    extension ".html3" (or ".ht3" for PCs). Servers can also exploit the
  292.    accept headers in HTTP requests from HTML user agents, to
  293.    distinguish whether each client can or cannot support HTML 3.0. This
  294.    makes it practical for information providers to start providing HTML
  295.    3.0 versions of existing documents for newer user agents, without
  296.    impacting older user agents. It is envisaged that programs will be
  297.    made available for automatic down conversion of 3.0 to 2.0
  298.    documents. This conversion could be carried out in batch mode, or on
  299.    the fly (with caching for greater efficiency). 
  300.  
  301. Design Guidelines
  302.  
  303.    The HTML 3.0 draft specification has been written to the following
  304.    guidelines. 
  305.  
  306. Lingua Franca for the Web
  307.  
  308.    HTML is intended as a common medium for tying together information
  309.    from widely different sources. A means to rise above the
  310.    interoperability problems with existing document formats, and a
  311.    means to provide a truly open interface to proprietary information
  312.    systems. 
  313.  
  314. Simplicity
  315.  
  316.    The first version of HTML was designed to be extremely simple, both
  317.    to author and to write browsers for. This has played a major role in
  318.    the incredibly rapid growth of the World Wide Web. HTML 3.0 provides
  319.    a clean superset of HTML 2.0 adding high value features such as
  320.    tables, text flow around figures and math, while still remaining a
  321.    simple document format. The pressures to adopt the complexities of
  322.    traditional SGML applications has been resisted, for example the
  323.    Department of Defense's CALS table model or the ISO 12083 math DTD. 
  324.  
  325. Scaleability
  326.  
  327.    As time goes by, people's expectations change, and more will be
  328.    demanded of HTML. One manifestation of this is the pressure to add
  329.    yet more tags. HTML 3.0 introduces a means for subclassing elements
  330.    in an open-ended way. This can be used to distinguish the role of a
  331.    paragraph element as being a couplet in a stansa, or a mathematical
  332.    term as being a tensor. This ability to make fresh distinctions can
  333.    be exploited to impart distinct rendering styles or to support
  334.    richer search mechanisms, without further complicating the HTML
  335.    document format itself. Scaleability is also achieved via URI based
  336.    links for embedding information in other formats. Initially limited
  337.    to a few image formats, inline support is expected to rapidly evolve
  338.    to cover drawing formats, video, distributed virtual reality and a
  339.    general means for embedding other applications. 
  340.  
  341.  
  342. Dave Raggett                                                            Page 6
  343. HTML 3.0                                                       28th March 1995
  344.  
  345. Platform Independence
  346.  
  347.    HTML is designed to allow rendering on a very wide range of devices,
  348.    from clunky teletypes, to terminals, DOS, Windows, Macs and high end
  349.    Workstations, as well as non-visual media such as speech and
  350.    braille. In this, it allows users to exploit the legacy of older
  351.    equipment as well as the latest and best of new machines. HTML 3.0
  352.    provides for improved support for non-graphical clients, allowing
  353.    for rich markup in place of the figures shown on graphical clients.
  354.    HTML can be rendered on a wide variety of screen sizes, using a
  355.    scrolling or paged model. The fonts and presentation can be adjusted
  356.    to suit the resources available in the host machine and the user's
  357.    preferences. 
  358.  
  359. Content --not-- Presentation Markup
  360.  
  361.    Information providers are used to tight control over the final
  362.    appearence of documents. The need for platform independence weighs
  363.    against this, but there is still a strong pressure to find
  364.    appropriate means for information providers to express their
  365.    intentions. The experience with proprietary document formats has
  366.    shown the dangers of mixing presentation markup with content (or
  367.    structural) markup. It becomes difficult to apply different
  368.    presentation styles. It becomes painful to incorporate material from
  369.    different sources (with different presentation styles). It becomes
  370.    difficult to be truly platform independent. As a result, HTML 3.0 is
  371.    designed for use with linked style information that defines the
  372.    intended presentation style for each element. Style sheets can be
  373.    expressed in a platform independent fashion or used to provide more
  374.    detailed control for particular classes of clients or output media. 
  375.  
  376. Support for Cascaded Style Sheets
  377.  
  378.    For the Web, it is valuable to allow for a cascading of style
  379.    preferences. The client has certain built-in preferences; the
  380.    publisher may require a particular house style, e.g. for brand
  381.    distinction; the author may feel the need to override the house
  382.    style for special cases; the end-user may feel strongly about
  383.    certain things, e.g. large fonts for easier visibility or avoiding
  384.    certain colors due to an inability to distinguish between them. HTML
  385.    3.0 supports style sheets via the use of the LINK element to
  386.    reference a style sheet with a URI. Authors can place overrides in
  387.    separate style sheets or include them in the document head within
  388.    the STYLE element. The effectiveness of caching mechanisms for
  389.    speeding up the retrieval of style sheets is enhanced by the
  390.    separation of style information into generic commonly used style
  391.    sheets, and overrides specific to this document. 
  392.  
  393. Support for Non-Visual Media
  394.  
  395.    HTML 3.0 is designed to cater for the needs of the visually
  396.    impaired. Markup for inline figures includes support for rich
  397.    descriptions, along with hypertext links that double up as defining
  398.  
  399. Dave Raggett                                                            Page 7
  400. HTML 3.0                                                       28th March 1995
  401.  
  402.    geometric hotzones for graphical browsers, simplifying the author's
  403.    job in catering for the different groups of users. Table markup
  404.    includes provision for abbreviated row and column names for each
  405.    cell, which are essential for conversion to speech or braille. Math
  406.    markup treats formulae and equations as hierarchies of expressions.
  407.    This allows disambiguating pauses to be inserted in appropriate
  408.    places during conversion to speech. 
  409.  
  410. Support for different ways of creating HTML
  411.  
  412.    HTML 3.0 has been designed to be created in a variety of different
  413.    ways. It is deliberately simple enough to type in by hand. It can be
  414.    authored using wysiwyg editors for HTML, or it can be generated via
  415.    export filters from common word processing formats, or other SGML
  416.    applications.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456. Dave Raggett                                                            Page 8
  457. HTML 3.0                                                       28th March 1995
  458.  
  459. Understanding HTML and MIME
  460.  
  461.    --I have dropped the differentiation of HTML into a sequence of
  462.    conformance levels. Many people confused levels with versions. The
  463.    different levels also encourage interoperability problems! Lets
  464.    encourage full conformance with HTML 2.0 or HTML 3.0 rather than
  465.    perpetuating intermediate levels of support.-- 
  466.  
  467. HTML as an Internet Media Type
  468.  
  469.    This (and upward compatible specifications) define the Internet
  470.    Media Type (RFC 1590) and MIME Content Type (RFC 1521) called
  471.    "text/html". The type "text/html" accepts the following parameters: 
  472.  
  473.    Version 
  474.        To help avoid future compatibility problems, the version
  475.        parameter may be used to give the version number of the
  476.        specification to which the document conforms. The version number
  477.        appears at the front of this document and within the public
  478.        identifier for the SGML DTD. This specification defines version
  479.        3.0. 
  480.  
  481.    Character sets 
  482.        The charset parameter (as defined in section 7.1.1 of RFC 1521)
  483.        may be used with the text/html content type to specify the
  484.        encoding used to represent the HTML document as a sequence of
  485.        bytes. Normally, text/* media types specify a default of
  486.        US-ASCII for the charset parameter. However, for text/html, if
  487.        the byte stream contains data that is not in the 7-bit US-ASCII
  488.        set, the HTML interpreting agent should assume a default charset
  489.        of ISO-8859-1. 
  490.  
  491.        When an HTML document is encoded using US-ASCII, the mechanisms
  492.        of numeric character references and character entity references
  493.        may be used to encode additional characters from ISO-8859-1.
  494.        Character entity references are needed for symbols such as math
  495.        and greek characters from other unspecified character sets. 
  496.  
  497.        Other values for the charset parameter are not defined in this
  498.        specification, but may be specified in future versions of HTML.
  499.        It is envisioned that HTML will use the charset parameter to
  500.        allow support for non-Latin characters such as Arabic, Hebrew,
  501.        Cyrillic and Japanese, rather than relying on any SGML mechanism
  502.        for doing so. 
  503.  
  504.        --What about Unicode and its assorted encodings? This section
  505.        would benefit from an explanation of the issues underlying
  506.        support for multiple character sets and the problems arising
  507.        from bidirectionality.-- 
  508.  
  509.  
  510.  
  511.  
  512.  
  513. Dave Raggett                                                            Page 9
  514. HTML 3.0                                                       28th March 1995
  515.  
  516. Understanding HTML and SGML
  517.  
  518.    HTML is an application conforming to International Standard ISO 8879
  519.    -- Standard Generalized Markup Language (SGML). SGML is a system for
  520.    defining structured document types, and markup languages to
  521.    represent instances of those document types. The SGML declaration
  522.    for HTML is given in SGML Declaration for HTML. It is implicit among
  523.    WWW implementations. 
  524.  
  525.    In the event of any apparent conflict between HTML and SGML
  526.    standards, the SGML standard is definitive. 
  527.  
  528.    Every SGML document has three parts: 
  529.  
  530.    SGML declaration 
  531.        Binds SGML processing quantities and syntax token names to
  532.        specific values. For example, the SGML declaration in the HTML
  533.        DTD specifies that the string that opens an end tag is </ and
  534.        the maximum length of a name is 72 characters. 
  535.  
  536.    Prologue 
  537.        Includes one or more document type declarations (DTDs), which
  538.        specify the element types, element relationships and attributes.
  539.        The HTML 3.0 DTD provides a definitive specification of the
  540.        allowed syntax for HTML 3.0 documents. 
  541.  
  542.    References 
  543.        Can be represented by markup. An instance, which contains the
  544.        data and markup of the document. 
  545.  
  546.    HTML refers to the document type as well as the markup language for
  547.    representing instances of that document type. 
  548.  
  549. ------------------------------------------------------------------------------
  550. Understanding HTML Elements
  551.  
  552.    In HTML documents, tags define the start and end of headings,
  553.    paragraphs, lists, character highlighting and links. Most HTML
  554.    elements are identified in a document as a start tag, which gives
  555.    the element name and attributes, followed by the content, followed
  556.    by the end tag. Start tags are delimited by < and >, and end tags
  557.    are delimited by </ and >. For example: 
  558.  
  559.        <H1>This is a Heading</H1>
  560.        <P>This is a paragraph.
  561.  
  562.    Some elements appear as just a start tag. For example, to create a
  563.    line break, you use <BR>. Additionally, the end tags of some other
  564.    elements (e.g. P, LI, DT, DD) can be omitted as the position of the
  565.    end tag is clearly implied by the context. 
  566.  
  567.    The content of an element is a sequence of characters and nested
  568.    elements. Some elements, such as anchors, cannot be nested. Anchors
  569.  
  570. Dave Raggett                                                           Page 10
  571. HTML 3.0                                                       28th March 1995
  572.  
  573.    and character highlighting may be put inside other constructs. The
  574.    content model for a tag defines the syntax permitted for the
  575.    content. 
  576.  
  577.    Note: The SGML declaration for HTML specifies SHORTTAG YES, which
  578.    means that there are other valid syntaxes for tags, such as NET
  579.    tags, <EM/.../; empty start tags, <>; and empty end tags, </>. Until
  580.    support for these idioms is widely deployed, their use is strongly
  581.    discouraged. 
  582.  
  583. ------------------------------------------------------------------------------
  584. Names
  585.  
  586.    The element name immediately follows the tag open delimiter. An
  587.    element name consist of a letter followed by up to 72 letters,
  588.    digits, periods, or hyphens. Names are not case sensitive. For
  589.    example, H1 is equivalent to h1. This limit of 72 characters is set
  590.    by the NAMELEN parameter in the SGML declaration for HTML 3.0. 
  591.  
  592. ------------------------------------------------------------------------------
  593. Attributes
  594.  
  595.    In a start tag, white space and attributes are allowed between the
  596.    element name and the closing delimiter. An attribute typically
  597.    consists of an attribute name, an equal sign, and a value (although
  598.    some attributes may be just a value). White space is allowed around
  599.    the equal sign. 
  600.  
  601.    The value of the attribute may be either: 
  602.  
  603.    1.  A string literal, delimited by single quotes or double quotes 
  604.  
  605.    2.  A name token (a sequence of letters, digits, periods, or
  606.        hyphens) 
  607.  
  608.    In this example, a is the element name, href is the attribute name,
  609.    and http://host/dir/file.html is the attribute value: 
  610.  
  611.        <A HREF="http://host/dir/file.html">
  612.  
  613.    Some implementations consider any occurrence of the > character to
  614.    signal the end of a tag. For compatibility with such
  615.    implementations, when > appears in an attribute value, you may want
  616.    to represent it with an entity or numeric character reference, such
  617.    as: 
  618.  
  619.        <IMG SRC="eq1.ps" alt="a > b">
  620.  
  621.    To put quotes inside of quotes, you can use single quotes if the
  622.    outer quotes are double or vice versa, as in: 
  623.  
  624.        <IMG SRC="image.ps" alt="First 'real' example">
  625.  
  626.  
  627. Dave Raggett                                                           Page 11
  628. HTML 3.0                                                       28th March 1995
  629.  
  630.    Alternatively, you use the character representation " as in: 
  631.  
  632.        <IMG SRC="image.ps" alt="First "real" example">
  633.  
  634.    The length of an attribute value (after replacing entity and numeric
  635.    character references) is limited to 1024 characters. This number is
  636.    defined by the LITLEN parameter in the SGML declaration for HTML
  637.    3.0. 
  638.  
  639.    Note: Some implementations allow any character except space or > in
  640.    a name token. Attributes values must be quoted only if they don't
  641.    satisfy the syntax for a name token. 
  642.  
  643.    Attributes with a declared value of NAME (e.g. ISMAP, COMPACT) may
  644.    be written using a minimized syntax. The markup: 
  645.  
  646.        <UL COMPACT="compact">
  647.  
  648.    can be written as: 
  649.  
  650.        <UL COMPACT>
  651.  
  652.    Note: Unless you use the minimized syntax, some implementations
  653.    won't understand. 
  654.  
  655. ------------------------------------------------------------------------------
  656. Undefined Tag and Attribute Names
  657.  
  658.    It is an accepted networking principle to be conservative in that
  659.    which one produces, and liberal in that which one accepts. HTML
  660.    parsers should be liberal except when verifying code. HTML
  661.    generators should generate strictly conforming HTML. It is suggested
  662.    that where ever practical, parsers should at least flag the presence
  663.    of markup errors, as this will help to avoid bad markup being
  664.    produced inadvertently. 
  665.  
  666.    The behavior of WWW applications reading HTML documents and
  667.    discovering tag or attribute names which they do not understand
  668.    should be to behave as though, in the case of a tag, the whole tag
  669.    had not been there but its content had, or in the case of an
  670.    attribute, that the attribute had not been present. 
  671.  
  672. ------------------------------------------------------------------------------
  673. Special Characters
  674.  
  675.    The characters between the tags represent text in the ISO-Latin-1
  676.    character set, which is a superset of ASCII. Because certain
  677.    characters will be interpreted as markup, they should be represented
  678.    by markup -- entity or numeric character references, for instance
  679.    the character "&" must be represented by the entity &. See the
  680.    Special Characters section of this specification for more
  681.    information. 
  682.  
  683.  
  684. Dave Raggett                                                           Page 12
  685. HTML 3.0                                                       28th March 1995
  686.  
  687. ------------------------------------------------------------------------------
  688. Comments
  689.  
  690.    To include comments in an HTML document that will be ignored by the
  691.    parser, surround them with <!-- and -->. After the comment
  692.    delimiter, all text up to the next occurrence of --> is ignored.
  693.    Hence comments cannot be nested. White space is allowed between the
  694.    closing -- and >, but not between the opening <! and --. 
  695.  
  696.    For example: 
  697.  
  698.    <HEAD>
  699.    <TITLE>HTML Guide: Recommended Usage</TITLE>
  700.    <!-- Id: Text.html,v 1.6 1994/04/25 17:33:48 connolly Exp -->
  701.    </HEAD>
  702.  
  703.    Note: Some historical implementations incorrectly consider a > sign
  704.    to terminate a comment. 
  705.  
  706. ------------------------------------------------------------------------------
  707. Formal Variants of HTML 3.0
  708.  
  709.    The HTML 3.0 document type definition includes two flags for
  710.    controlling how prescriptive or how lax the language is. This makes
  711.    use of SGML marked sections in the DTD to enable or disable certain
  712.    features. 
  713.  
  714. HTML.Recommended
  715.  
  716.    Certain features of the language are necessary for compatibility
  717.    with widespread usage, but they may compromise the structural
  718.    integrity of a document. The HTML.Recommended entity should be
  719.    defined as INCLUDE in the DTD subset to enable a more prescriptive
  720.    version of HTML 3.0 that eliminates the above features. For example: 
  721.  
  722.    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN"
  723.    [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
  724.  
  725.    In particular, this prevents text from appearing except within block
  726.    elements. 
  727.  
  728. HTML.Deprecated
  729.  
  730.    By default, for backwards compatibility, the %HTML.Deprecated entity
  731.    is defined as INCLUDE, enabling certain features which are now
  732.    deprecated. These features can be eliminated by defining this entity
  733.    as IGNORE in the DTD subset. For example: 
  734.  
  735.        <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" [
  736.    <!ENTITY % HTML.Deprecated "IGNORE"> ] >
  737.  
  738.    Note: defining %HTML.Recommended as INCLUDE automatically sets
  739.    %HTML.Deprecated to IGNORE. 
  740.  
  741. Dave Raggett                                                           Page 13
  742. HTML 3.0                                                       28th March 1995
  743.  
  744.  
  745.    In the spirit of being liberal in what you accept and strict in what
  746.    you generate, HTML user agents are recommended to accept syntax
  747.    corresponding to the specification with %HTML.Deprecated turned on,
  748.    while HTML user agents generating HTML are recommended to generate
  749.    documents that conform to the specification with %HTML.Recommended
  750.    turned on.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798. Dave Raggett                                                           Page 14
  799. HTML 3.0                                                       28th March 1995
  800.  
  801. The Structure of HTML 3.0 Documents
  802.  
  803.    In HTML documents, tags define the start and end of headings,
  804.    paragraphs, lists, character highlighting and links etc. Most HTML
  805.    elements are identified in a document as a start tag, which gives
  806.    the element name and attributes, followed by the content, followed
  807.    by the end tag. Start tags are delimited by < and >, while end tags
  808.    are delimited by </ and >. For example: 
  809.  
  810.        <title>This is a Title</title>
  811.        <h1>This is a Heading</h1>
  812.        <P>This is a paragraph.
  813.  
  814.    Every HTML document as a minimum must have a title. To identify the
  815.    document as being HTML 3.0, it is recommended that documents start
  816.    with the prologue: 
  817.  
  818.        <!doctype HTML public "-//W3O//DTD W3 HTML 3.0//EN">
  819.  
  820.    When absent, this prologue is implied by the MIME content type for
  821.    HTML 3.0 together with the associated version parameter. 
  822.  
  823. ------------------------------------------------------------------------------
  824. Document Structure
  825.  
  826.    HTML 3.0 documents formally have the following structure: 
  827.  
  828.        <HTML>
  829.        <HEAD> --head elements ...--
  830.        <BODY> --body elements ...--
  831.        </HTML>
  832.  
  833.    In most cases, the HTML, HEAD and BODY tags can be safely omitted.
  834.    Note that the formal syntax of HTML 3.0 is defined by the document
  835.    type definition, which is included as an appendix of this
  836.    specification. The details of the HEAD and BODY elements will be
  837.    described in subsequent sections. 
  838.  
  839.    The permitted syntax of HTML 3.0 compliant documents is specified by
  840.    the DTD. This includes the content model for each element, defining
  841.    what markup is permitted within each element. The DTD uses SGML
  842.    entities in content models to express regular features of HTML 3.0,
  843.    for example %body.content defines what markup is permitted within
  844.    the BODY element. A number of other elements also share this content
  845.    model, e.g. BQ, DIV, FORM, TH and TD. 
  846.  
  847.    The description of each tag includes the --content model-- and the
  848.    --permitted context-- (which elements can contain this tag). Where
  849.    practical, these properties are given with the same entity names as
  850.    used in the DTD, and should help the newcomer to get to grips with
  851.    understanding the DTD itself. For example, the description of the
  852.    NOTE element starts with: 
  853.  
  854.  
  855. Dave Raggett                                                           Page 15
  856. HTML 3.0                                                       28th March 1995
  857.  
  858.        The NOTE element
  859.    
  860.        Permitted context: %block
  861.        Content model: %flow
  862.  
  863.    This says that the NOTE element (used for admonishments such as
  864.    notes, cautions and errors) can occur in any element which includes
  865.    %block in its content model. Similarly, any element with %flow as
  866.    part of its permitted context can occur within a NOTE element. 
  867.  
  868. The HTML element
  869.  
  870.    This has three attributes: 
  871.  
  872.    VERSION 
  873.        This is fixed by the DTD as the string "-//W3O//DTD W3 HTML
  874.        3.0//EN" 
  875.  
  876.    URN 
  877.        The universal resource name for the document (optional) 
  878.  
  879.    ROLE 
  880.        An optional space separated list of SGML NAME tokens that define
  881.        the role this document plays, e.g. table of contents. The
  882.        conventions for these names are outside the scope of this
  883.        specification. --wouldn't it be better to leave this to a link
  884.        to a URC?-- 
  885.  
  886.    Note that both the start and end tag for the HTML element can be
  887.    omitted.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912. Dave Raggett                                                           Page 16
  913. HTML 3.0                                                       28th March 1995
  914.  
  915. The Head Element and Related Elements
  916.  
  917. HEAD
  918.  
  919.    The HEAD element has no attributes and the start and end tag can
  920.    always be safely omitted as they can be readily inferred by the
  921.    parser. Information in the HEAD element corresponds to the top part
  922.    of a memo or mail message. It describes properties of the document
  923.    such as the title, the document toolbar, and additional
  924.    meta-information. There is no intended significance to the order of
  925.    elements in the document head. Note that the TITLE element is always
  926.    required. In fact, the minimal HTML 3.0 document consists of the
  927.    TITLE element alone! 
  928.  
  929.    Within the HEAD element, only certain elements are allowed.
  930.    Information in the HEAD element may include the following elements
  931.    (arranged alphabetically): 
  932.  
  933. ------------------------------------------------------------------------------
  934. BASE
  935.  
  936.    The BASE element allows the URL of the document itself to be
  937.    recorded in situations in which the document may be read out of
  938.    context. URLs within the document may be in a "partial" form
  939.    relative to this base address. The default base address is the URL
  940.    used to retrieve the document. 
  941.  
  942.    For example: 
  943.  
  944.        <base href="http://acme.com/docs/mydoc.html">
  945.        ... 
  946.        <img src="images/me.gif">
  947.  
  948.    which resolves to "http://acme.com/docs/images/me.gif". 
  949.  
  950. ------------------------------------------------------------------------------
  951. ISINDEX
  952.  
  953.    The ISINDEX element informs the HTML user agent that the document is
  954.    an index document. As well as reading it, the reader may use a
  955.    keyword search. 
  956.  
  957.    The document can be queried with a keyword search by adding a
  958.    question mark to the end of the document address, followed by a list
  959.    of keywords separated by plus signs. See the network address format
  960.    for more information. 
  961.  
  962.    Note: A server normally generates the ISINDEX tag automatically. If
  963.    added by hand to an HTML document, the browser assumes that the
  964.    server can handle a search on the document. Obviously the server
  965.    must have this capability for it to work: simply adding <ISINDEX> in
  966.    the document is not enough to make searches happen if the server
  967.    does not have a search engine! 
  968.  
  969. Dave Raggett                                                           Page 17
  970. HTML 3.0                                                       28th March 1995
  971.  
  972.  
  973.    Example: 
  974.  
  975.        <ISINDEX>
  976.  
  977.    The URL used for processing queries can be overridden with the HREF
  978.    attribute. You can also use the PROMPT attribute to change the
  979.    default prompt supplied by the browser, e.g. 
  980.  
  981.        <ISINDEX HREF="phone.db" PROMPT="Enter Surname:">
  982.  
  983. ------------------------------------------------------------------------------
  984. LINK
  985.  
  986.    The LINK element indicates a relationship between the document and
  987.    some other object. A document may have any number of LINK elements.
  988.    The LINK element is empty (does not have a closing tag), but takes
  989.    the same attributes as the anchor element. The important attributes
  990.    are: 
  991.  
  992.    REL 
  993.        This defines the relationship defined by the link. 
  994.  
  995.    REV 
  996.        This defines a reverse relationship. A link from document A to
  997.        document B with REV=--relation-- expresses the same relationship
  998.        as a link from B to A with REL=--relation--. REV=made is
  999.        sometimes used to identify the document author, either the
  1000.        author's email address with a --mailto-- URI, or a link to the
  1001.        author's home page. 
  1002.  
  1003.    HREF 
  1004.        This names an object using the URI notation. 
  1005.  
  1006. Using LINK to define document specific toolbars
  1007.  
  1008.    An important use of the LINK element is to define a toolbar of
  1009.    navigation buttons or an equivalent mechanism such as menu items. 
  1010.  
  1011.    LINK relationship values reserved for toolbars are: 
  1012.  
  1013.    REL=Home 
  1014.        The link references a home page or the top of some hierarchy. 
  1015.  
  1016.    REL=ToC 
  1017.        The link references a document serving as a table of contents. 
  1018.  
  1019.    REL=Index 
  1020.        The link references a document providing an index for the
  1021.        current document. 
  1022.  
  1023.    REL=Glossary 
  1024.        The link references a document providing a glossary of terms
  1025.  
  1026. Dave Raggett                                                           Page 18
  1027. HTML 3.0                                                       28th March 1995
  1028.  
  1029.        that pertain to the current document. 
  1030.  
  1031.    REL=Copyright 
  1032.        The link references a copyright statement for the current
  1033.        document. 
  1034.  
  1035.    REL=Up 
  1036.        When the document forms part of a hierarchy, this link
  1037.        references the immediate parent of the current document. 
  1038.  
  1039.    REL=Next 
  1040.        The link references the next document to visit in a guided tour. 
  1041.  
  1042.    REL=Previous 
  1043.        The link references the previous document in a guided tour. 
  1044.  
  1045.    REL=Help 
  1046.        The link references a document offering help, e.g. describing
  1047.        the wider context and offering further links to relevant
  1048.        documents. This is aimed at reorienting users who have lost
  1049.        their way. 
  1050.  
  1051.    REL=Bookmark 
  1052.        Bookmarks are used to provide direct links to key entry points
  1053.        into an extended document. The TITLE attribute may be used to
  1054.        label the bookmark. Several bookmarks may be defined in each
  1055.        document, and provide a means for orienting users in extended
  1056.        documents. 
  1057.  
  1058.    An example of toolbar LINK elements: 
  1059.  
  1060.        <LINK REL=Previous HREF=doc31.html>
  1061.        <LINK REL=Next HREF=doc33.html>
  1062.        <LINK REL=Bookmark TITLE="Order Form" HREF=doc56.html>
  1063.  
  1064. Using LINK to include a Document Banner
  1065.  
  1066.    The LINK element can be used with REL=Banner to reference another
  1067.    document to be used as banner for this document. This is typically
  1068.    used for corporate logos, navigation aids, and other information
  1069.    which shouldn't be scrolled with the rest of the document. For
  1070.    example: 
  1071.  
  1072.        <LINK REL=Banner HREF=banner.html>
  1073.  
  1074.    The use of a LINK element in this way, allows a banner to be shared
  1075.    between several documents, with the benefit of being able to
  1076.    separately cache the banner. Rather than using a linked banner, you
  1077.    can also include the banner in the document itself, using the BANNER
  1078.    element. 
  1079.  
  1080. Link to an associated Style Sheet
  1081.  
  1082.  
  1083. Dave Raggett                                                           Page 19
  1084. HTML 3.0                                                       28th March 1995
  1085.  
  1086.    The LINK element can be used with REL=StyleSheet to reference a
  1087.    style sheet to be used to control the way the current document is
  1088.    rendered. For example: 
  1089.  
  1090.        <LINK REL=StyleSheet HREF=housestyle.dsssl>
  1091.  
  1092. Other uses of the LINK element
  1093.  
  1094.    Additional relationship names have been proposed, but do not form
  1095.    part of this specification. Servers may also allow links to be added
  1096.    by those who do not have the right to alter the body of a document. 
  1097.  
  1098. ------------------------------------------------------------------------------
  1099. META
  1100.  
  1101.    The META element is used within the HEAD element to embed document
  1102.    meta-information not defined by other HTML elements. Such
  1103.    information can be extracted by servers/clients for use in
  1104.    identifying, indexing and cataloging specialized document
  1105.    meta-information. 
  1106.  
  1107.    Although it is generally preferable to used named elements that have
  1108.    well defined semantics for each type of meta-information, such as
  1109.    title, this element is provided for situations where strict SGML
  1110.    parsing is necessary and the local DTD is not extensible. 
  1111.  
  1112.    In addition, HTTP servers can read the contents of the document head
  1113.    to generate response headers corresponding to any elements defining
  1114.    a value for the attribute HTTP-EQUIV. This provides document authors
  1115.    with a mechanism (not necessarily the preferred one) for identifying
  1116.    information that should be included in the response headers of an
  1117.    HTTP request. 
  1118.  
  1119.    The META element has three attributes: 
  1120.  
  1121.    NAME 
  1122.        Used to name a property such as author, publication date etc. If
  1123.        absent, the name can be assumed to be the same as the value of
  1124.        HTTP-EQUIV. 
  1125.  
  1126.    CONTENT 
  1127.        Used to supply a value for a named property. 
  1128.  
  1129.    HTTP-EQUIV 
  1130.        This attribute binds the element to an HTTP response header. If
  1131.        the semantics of the HTTP response header named by this
  1132.        attribute is known, then the contents can be processed based on
  1133.        a well defined syntactic mapping, whether or not the DTD
  1134.        includes anything about it. HTTP header names are not case
  1135.        sensitive. If absent, the NAME attribute should be used to
  1136.        identify this meta-information and it should not be used within
  1137.        an HTPP response header. 
  1138.  
  1139.  
  1140. Dave Raggett                                                           Page 20
  1141. HTML 3.0                                                       28th March 1995
  1142.  
  1143.    Examples: 
  1144.  
  1145.    If the document contains: 
  1146.  
  1147.    <META HTTP-EQUIV=Expires CONTENT="Tue, 04 Dec 1993 21:29:02 GMT">
  1148.    <META HTTP-EQUIV="Keywords" CONTENT="Nanotechnology, Biochemistry">
  1149.    <META HTTP-EQUIV="Reply-to" CONTENT="dsr@w3.org (Dave Raggett)">
  1150.    
  1151.  
  1152.    The server will include the following response headers: 
  1153.  
  1154.    Expires: Tue, 04 Dec 1993 21:29:02 GMT
  1155.    Keywords: Nanotechnology, Biochemistry
  1156.    Reply-to: dsr@w3.org (Dave Raggett)
  1157.  
  1158.    When the HTTP-EQUIV attribute is absent, the server should not
  1159.    generate an HTTP response header for this meta-information, e.g. 
  1160.  
  1161.    <META NAME="IndexType" CONTENT="Service">
  1162.  
  1163.    Do not use the META element to define information that should be
  1164.    associated with an existing HTML element. 
  1165.  
  1166.    Example of an inappropriate use of the META element: 
  1167.  
  1168.    <META NAME="Title" CONTENT="The Etymology of Dunsel">
  1169.  
  1170.    Do not name an HTTP-EQUIV attribute the same as a response header
  1171.    that should typically only be generated by the HTTP server. Some
  1172.    inappropriate names are "Server", "Date", and "Last-Modified".
  1173.    Whether a name is inappropriate depends on the particular server
  1174.    implementation. It is recommended that servers ignore any META
  1175.    elements that specify HTTP equivalents (case insensitively) to their
  1176.    own reserved response headers. 
  1177.  
  1178. ------------------------------------------------------------------------------
  1179. NEXTID
  1180.  
  1181.    The NEXTID is a parameter read and generated by text editing
  1182.    software to generate unique identifiers. This tag takes a single
  1183.    attribute which is the the next document-wide alpha-numeric
  1184.    identifier to be allocated of the form z123. 
  1185.  
  1186.    When modifying a document, existing anchor identifiers should not be
  1187.    reused, as these identifiers may be referenced by other documents.
  1188.    Human writers of HTML usually use mnemonic alphabetical identifiers. 
  1189.  
  1190.    Example: 
  1191.  
  1192.        <NEXTID N=Z27>
  1193.  
  1194.    HTML user agents may ignore the NEXTID element. Support for NEXTID
  1195.    does not impact HTML user agents in any way. 
  1196.  
  1197. Dave Raggett                                                           Page 21
  1198. HTML 3.0                                                       28th March 1995
  1199.  
  1200.  
  1201.    --I want to get rid of NEXTID, or at least deprecate it!-- 
  1202.  
  1203. ------------------------------------------------------------------------------
  1204. RANGE
  1205.  
  1206.    The RANGE element is used to mark a range of the document, for
  1207.    example for highlighting regions of the document matching some
  1208.    search criteria, or which are the subject of an annotation etc. 
  1209.  
  1210.        <RANGE CLASS=Search FROM=spot01 UNTIL=spot02>
  1211.  
  1212.    The FROM and UNTIL attributes specify positions in the document
  1213.    using SGML identifiers. Most elements in the document body can
  1214.    define such identifiers using ID attributes. The SPOT element is
  1215.    useful in this regard, as it allows search software etc. to insert
  1216.    IDs at random places: 
  1217.  
  1218.        <SPOT ID=spot01> ... <SPOT ID=spot02>
  1219.  
  1220.    The RANGE element supports the following attributes: 
  1221.  
  1222.    ID
  1223.        An SGML identifer used to name the range element. 
  1224.  
  1225.    CLASS
  1226.        A character string used to subclass the range element. 
  1227.  
  1228.    FROM
  1229.        References an SGML identifier for an element in the document
  1230.        body. It identifies the start of the marked range. 
  1231.  
  1232.    UNTIL
  1233.        References an SGML identifier for an element in the document
  1234.        body. It identifies the end of the marked range. 
  1235.  
  1236. ------------------------------------------------------------------------------
  1237. STYLE
  1238.  
  1239.    The STYLE element provides a means for including rendering
  1240.    information using a specified style notation. Information in the
  1241.    STYLE element overrides client defaults and that of linked style
  1242.    sheets. It allows authors to specify overrides, while for the most
  1243.    part using a generic style sheet, and as such improves the
  1244.    effectiveness of caching schemes for linked style sheets. There is
  1245.    one attribute - NOTATATION - which specifies an entity identifying
  1246.    an SGML notation in the HTML 3.0 DTD, for example: 
  1247.  
  1248.        <style notation=dsssl-lite>
  1249.          --some dsssl-lite stuff ...--
  1250.        </style>
  1251.  
  1252.    Stylistic rules will in general match tag names and attribute values
  1253.  
  1254. Dave Raggett                                                           Page 22
  1255. HTML 3.0                                                       28th March 1995
  1256.  
  1257.    for elements in the document body. Context sensitive rules may be
  1258.    used for such purposes as rendering drop down capitals for the
  1259.    initial letter in the first paragraph following a header. 
  1260.  
  1261. ------------------------------------------------------------------------------
  1262. TITLE
  1263.  
  1264.    Every HTML document must contain a TITLE element. The title should
  1265.    identify the contents of the document in a global context, and may
  1266.    be used in a history lists and as a label for the window displaying
  1267.    the document. Unlike headings, titles are not normally displayed in
  1268.    the text of a document itself. 
  1269.  
  1270.    The TITLE element must occur within the head of the document, and
  1271.    may not contain anchors, paragraph tags, or highlighting. There may
  1272.    only be one TITLE in any document. 
  1273.  
  1274.    The length of titles is unlimited, however, long titles may be
  1275.    truncated in some applications. To minimize this possibility, keep
  1276.    titles to fewer than 64 characters. Also keep in mind that a short
  1277.    title, such as Introduction, may be meaningless out of context. An
  1278.    example of a meaningful title might be: 
  1279.  
  1280.        <Title>Recent Advances in Nanotechnology</Title>
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311. Dave Raggett                                                           Page 23
  1312. HTML 3.0                                                       28th March 1995
  1313.  
  1314. The Body Element and Related Elements
  1315.  
  1316. The BODY element
  1317.  
  1318.    Permitted Context: HTML
  1319.    Content Model: %Body.Content 
  1320.  
  1321.    Within the BODY element, you can structure text into paragraphs, and
  1322.    lists, as well as highlighting phrases and creating links, amongst
  1323.    other things. The BODY element has the following attributes, all of
  1324.    which are optional: 
  1325.  
  1326.    Note that the ID, LANG and CLASS attributes can be used with
  1327.    virtually all of the elements permitted in the document body. 
  1328.  
  1329.    ID 
  1330.        An SGML identifier used as the target for hypertext links or for
  1331.        naming particular elements in associated style sheets.
  1332.        Identifiers are NAME tokens and must be unique within the scope
  1333.        of the current document. 
  1334.  
  1335.    LANG 
  1336.        This is one of the ISO standard language abbreviations, e.g.
  1337.        "en.uk" for the variation of English spoken in the United
  1338.        Kingdom. It can be used by parsers to select language specific
  1339.        choices for quotation marks, ligatures and hypenation rules etc.
  1340.        The language attribute is composed from the two letter language
  1341.        code from ISO 639, optionally followed by a period and a two
  1342.        letter country code from ISO 3166. 
  1343.  
  1344.    CLASS 
  1345.        This a space separated list of SGML NAME tokens and is used to
  1346.        subclass tag names. For instance, <P CLASS=STANZA.COUPLET>
  1347.        defines a paragraph that acts as a couplet in a stanza. By
  1348.        convention, the class names are interpreted hierarchically, with
  1349.        the most general class on the left and the most specific on the
  1350.        right, where classes are separated by a period. The CLASS
  1351.        attribute is most commonly used to attach a different style to
  1352.        some element, but it is recommended that where practical class
  1353.        names should be picked on the basis of the element's semantics,
  1354.        as this will permit other uses, such as restricting search
  1355.        through documents by matching on element class names. The
  1356.        conventions for choosing class names are outside the scope of
  1357.        this specification. 
  1358.  
  1359.    BACKGROUND 
  1360.        This can be used to specify a URI for an image tile to cover the
  1361.        document background. This provides a way of giving a group of
  1362.        documents a distinctive appearence. Clients may ignore this
  1363.        attribute. It is included here for the benefit of clients that
  1364.        don't support style sheets. Note that the text color may need to
  1365.        be adjusted to show an adequate contrast with the background. 
  1366.  
  1367.  
  1368. Dave Raggett                                                           Page 24
  1369. HTML 3.0                                                       28th March 1995
  1370.  
  1371.    Note that you don't need to include a BODY tag unless you want to
  1372.    specify one of the above attributes. 
  1373.  
  1374. Body Structure
  1375.  
  1376.    The document body is composed from zero or more of the following
  1377.    elements: 
  1378.  
  1379.    *   DIV - used for hierarchical containers and static banners 
  1380.  
  1381.    *   Headings (H1, to H6) - a set of headers of varying levels of
  1382.        importance 
  1383.  
  1384.    *   Block elements - paragraphs, lists, forms, tables, figures and
  1385.        other elements 
  1386.  
  1387.    *   Horizontal rules, and the ADDRESS element 
  1388.  
  1389.    *   Text and character level markup including emphasis, images,
  1390.        math, hypertext links and miscellaneous elements. 
  1391.  
  1392.    Note that text and character level markup are only permitted at this
  1393.    level for backwards compatibility with legacy documents. The
  1394.    HTML.Recommended flag enforces a more structured approach to
  1395.    authoring HTML documents.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425. Dave Raggett                                                           Page 25
  1426. HTML 3.0                                                       28th March 1995
  1427.  
  1428. Banners
  1429.  
  1430.    Permitted Context: the start of the BODY element
  1431.    Content Model: %Body.Content 
  1432.  
  1433.    The BANNER element is used for corporate logos, navigation aids,
  1434.    disclaimers and other information which shouldn't be scrolled with
  1435.    the rest of the document. It provides an alternative to using the
  1436.    LINKelement in the document head to reference an externally defined
  1437.    banner. 
  1438.  
  1439. Permitted Attributes
  1440.  
  1441.    ID 
  1442.        An SGML identifier used as the target for hypertext links or for
  1443.        naming particular elements in associated style sheets.
  1444.        Identifiers are NAME tokens and must be unique within the scope
  1445.        of the current document. 
  1446.  
  1447.    LANG 
  1448.        This is one of the ISO standard language abbreviations, e.g.
  1449.        "en.uk" for the variation of English spoken in the United
  1450.        Kingdom. It can be used by parsers to select language specific
  1451.        choices for quotation marks, ligatures and hypenation rules etc.
  1452.        The language attribute is composed from the two letter language
  1453.        code from ISO 639, optionally followed by a period and a two
  1454.        letter country code from ISO 3166. 
  1455.  
  1456.    CLASS 
  1457.        This a space separated list of SGML NAME tokens and is used to
  1458.        subclass tag names. By convention, the class names are
  1459.        interpreted hierarchically, with the most general class on the
  1460.        left and the most specific on the right, where classes are
  1461.        separated by a period. The CLASS attribute is most commonly used
  1462.        to attach a different style to some element, but it is
  1463.        recommended that where practical class names should be picked on
  1464.        the basis of the element's semantics, as this will permit other
  1465.        uses, such as restricting search through documents by matching
  1466.        on element class names. The conventions for choosing class names
  1467.        are outside the scope of this specification. 
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482. Dave Raggett                                                           Page 26
  1483. HTML 3.0                                                       28th March 1995
  1484.  
  1485. Divisions
  1486.  
  1487.    Permitted Context: %Body.Content
  1488.    Content Model: %Body.Content 
  1489.  
  1490.    The DIV element is used with the CLASS attribute to represent
  1491.    different kinds of containers, e.g. chapter, section, abstract, or
  1492.    appendix. For example: 
  1493.  
  1494.    <DIV CLASS=Abstract>
  1495.    <P>TheChieftain product range is the white hot hope for the
  1496.    coming year. This report sets out how to position Chieftain
  1497.    against competing products.
  1498.    </DIV>
  1499.  
  1500. Permitted Attributes
  1501.  
  1502.    ID 
  1503.        An SGML identifier used as the target for hypertext links or for
  1504.        naming particular elements in associated style sheets.
  1505.        Identifiers are NAME tokens and must be unique within the scope
  1506.        of the current document. 
  1507.  
  1508.    LANG 
  1509.        This is one of the ISO standard language abbreviations, e.g.
  1510.        "en.uk" for the variation of English spoken in the United
  1511.        Kingdom. It can be used by parsers to select language specific
  1512.        choices for quotation marks, ligatures and hypenation rules etc.
  1513.        The language attribute is composed from the two letter language
  1514.        code from ISO 639, optionally followed by a period and a two
  1515.        letter country code from ISO 3166. 
  1516.  
  1517.    CLASS 
  1518.        This a space separated list of SGML NAME tokens and is used to
  1519.        subclass tag names. For instance, <DIV CLASS=APPENDIX> defines a
  1520.        division that acts as an appendix. By convention, the class
  1521.        names are interpreted hierarchically, with the most general
  1522.        class on the left and the most specific on the right, where
  1523.        classes are separated by a period. The CLASS attribute is most
  1524.        commonly used to attach a different style to some element, but
  1525.        it is recommended that where practical class names should be
  1526.        picked on the basis of the element's semantics, as this will
  1527.        permit other uses, such as restricting search through documents
  1528.        by matching on element class names. The conventions for choosing
  1529.        class names are outside the scope of this specification. 
  1530.  
  1531.    ALIGN 
  1532.        The ALIGN attribute can be used to explicitly specify the
  1533.        horizontal alignment of paragraphs within a division:
  1534.        
  1535.        
  1536.  
  1537.        align=left 
  1538.  
  1539. Dave Raggett                                                           Page 27
  1540. HTML 3.0                                                       28th March 1995
  1541.  
  1542.            Paragraphs are rendered flush left (the default). 
  1543.  
  1544.        align=center 
  1545.            Paragraphs are centered. 
  1546.  
  1547.        align=right 
  1548.            Paragraphs are rendered flush right. 
  1549.  
  1550.        align=justify 
  1551.            Text lines are justified where practical, otherwise this
  1552.            gives the same effect as the default align=left setting.
  1553.  
  1554.    NOWRAP 
  1555.        The NOWRAP attribute is used when you don't want the browser to
  1556.        automatically wrap lines. You can then explicitly specify line
  1557.        breaks in paragrphs using the BR element. 
  1558.  
  1559.    CLEAR 
  1560.        This attribute is common to all block-like elements. When text
  1561.        flows around a figure or table in the margin, you sometimes want
  1562.        to start the division below the figure rather than alongside it.
  1563.        The CLEAR attribute allows you to move down unconditionally:
  1564.        
  1565.        
  1566.  
  1567.        clear=left
  1568.            move down until left margin is clear 
  1569.  
  1570.        clear=right
  1571.            move down until right margin is clear 
  1572.  
  1573.        clear=all
  1574.            move down until both margins are clear 
  1575.  
  1576.        Alternatively, you can decide to place the element alongside the
  1577.        figure just so long as there is enough room. The minimum width
  1578.        needed is specified as:
  1579.        
  1580.        
  1581.  
  1582.        clear="40 en"
  1583.            move down until there is at least 40 en units free 
  1584.  
  1585.        clear="100 pixels"
  1586.            move down until there is at least 100 pixels free 
  1587.  
  1588.        The style sheet (or browser defaults) may provide default
  1589.        minimum widths for each class of block-like elements. 
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596. Dave Raggett                                                           Page 28
  1597. HTML 3.0                                                       28th March 1995
  1598.  
  1599. Headings
  1600.  
  1601.    Permitted Context: %Body.Content
  1602.    Content Model: %text 
  1603.  
  1604.    HTML defines six levels of headings. A heading element implies all
  1605.    the font changes, paragraph breaks before and after, and any white
  1606.    space necessary to render the heading. The heading elements are H1,
  1607.    H2, H3, H4, H5, and H6 with H1 being the highest (or most important)
  1608.    level and H6 the least. For example: 
  1609.  
  1610.    <H1>This is a top level heading</H1> Here is some text.
  1611.    <H2>Second level heading</H2> Here is some more text.
  1612.  
  1613.    Use the DIV element together with header elements when you want to
  1614.    make the hierarchical structure of a document explicit. This is
  1615.    needed as header elements themselves only contain the text of the
  1616.    header, and do not imply any structural division of documents into
  1617.    sections. Header elements have the same content model as paragraphs,
  1618.    that is text and character level markup, such as character emphasis,
  1619.    inline images, form fields and math. 
  1620.  
  1621.    Headers play a related role to lists in structuring documents, and
  1622.    it is common to number headers or to include a graphic that acts
  1623.    like a bullet in lists. HTML 3.0 recognizes this with attributes
  1624.    that assist with numbering headers and allow authors to specify a
  1625.    custom graphic. 
  1626.  
  1627.    The numbering style is controlled by the style sheet, e.g. 
  1628.  
  1629.    1.  The style sheet specifies whether headers are numbered, and
  1630.        which style is used to render the current sequence number, e.g.
  1631.        arabic, upper alpha, lower alpha, upper roman, lower roman or a
  1632.        numbering scheme appropriate to the current language. 
  1633.  
  1634.    2.  Whether the parent numbering is inherited, e.g. "5.1.d" where 5
  1635.        is the current sequence number for H1 headers, 1 is the number
  1636.        for H2 headers and 4 for H3 headers. 
  1637.  
  1638.    The seqnum and skip attributes can be used to override the default
  1639.    treatment of header sequence numbers, and provide for a continuity
  1640.    with numbered lists. 
  1641.  
  1642.    The dingbat or src attribute may be used to specify a bullet-like
  1643.    graphic to be placed adjacent to the header. The positioning of this
  1644.    graphic is controlled by the style sheet. The graphic is for
  1645.    decorative purposes only and silently ignored on non-graphical HTML
  1646.    user agents. 
  1647.  
  1648. Word Wrapping
  1649.  
  1650.    User agents are free to wrap lines at whitespace characters so as to
  1651.    ensure lines fit within the current window size. Use the  
  1652.  
  1653. Dave Raggett                                                           Page 29
  1654. HTML 3.0                                                       28th March 1995
  1655.  
  1656.    entity for the non-breaking space character, when you want to make
  1657.    sure that a line isn't broken! Alternatively, use the NOWRAP
  1658.    attribute to disable word wrapping and the <BR> element to force
  1659.    line breaks where desired. 
  1660.  
  1661.    --Netscape includes two tags: <NOBR>...</NOBR>, and <WBR>. The
  1662.    former turns off wordwrapping between the start and end NOBR tag,
  1663.    while WBR is for the rare case when you want to specify where to
  1664.    break the line if needed. Should HTML 3.0 provide an equivalent
  1665.    mechanism to WBR, (either a tag or an entity)?-- 
  1666.  
  1667. Permitted Attributes
  1668.  
  1669.    ID 
  1670.        An SGML identifier used as the target for hypertext links or for
  1671.        naming particular elements in associated style sheets.
  1672.        Identifiers are NAME tokens and must be unique within the scope
  1673.        of the current document. 
  1674.  
  1675.    LANG 
  1676.        This is one of the ISO standard language abbreviations, e.g.
  1677.        "en.uk" for the variation of English spoken in the United
  1678.        Kingdom. It can be used by parsers to select language specific
  1679.        choices for quotation marks, ligatures and hypenation rules etc.
  1680.        The language attribute is composed from the two letter language
  1681.        code from ISO 639, optionally followed by a period and a two
  1682.        letter country code from ISO 3166. 
  1683.  
  1684.    CLASS 
  1685.        This a space separated list of SGML NAME tokens and is used to
  1686.        subclass tag names. For instance, <H2 CLASS=Section> defines a
  1687.        level 2 header that acts as a section header. By convention, the
  1688.        class names are interpreted hierarchically, with the most
  1689.        general class on the left and the most specific on the right,
  1690.        where classes are separated by a period. The CLASS attribute is
  1691.        most commonly used to attach a different style to some element,
  1692.        but it is recommended that where practical class names should be
  1693.        picked on the basis of the element's semantics, as this will
  1694.        permit other uses, such as restricting search through documents
  1695.        by matching on element class names. The conventions for choosing
  1696.        class names are outside the scope of this specification. 
  1697.  
  1698.    ALIGN 
  1699.        Headings are usually rendered flush left. The ALIGN attribute
  1700.        can be used to explicitly specify the horizontal alignment:
  1701.        
  1702.        
  1703.  
  1704.        align=left 
  1705.            The heading is rendered flush left (the default). 
  1706.  
  1707.        align=center 
  1708.            The heading is centered. 
  1709.  
  1710. Dave Raggett                                                           Page 30
  1711. HTML 3.0                                                       28th March 1995
  1712.  
  1713.  
  1714.        align=right 
  1715.            The heading is rendered flush right. 
  1716.  
  1717.        align=justify 
  1718.            Heading lines are justified where practical, otherwise this
  1719.            gives the same effect as the default align=left setting. 
  1720.  
  1721.        For example: 
  1722.  
  1723.        <h1 align=center>This is a centered heading</H1>
  1724.        Here is some text. <H2 align=right>and this is a flush right
  1725.        heading</H2> Here is some more text.
  1726.  
  1727.    CLEAR 
  1728.        This attribute is common to all block-like elements. When text
  1729.        flows around a figure or table in the margin, you sometimes want
  1730.        to start an element like a header, paragraph or list below the
  1731.        figure rather than alongside it. The CLEAR attribute allows you
  1732.        to move down unconditionally:
  1733.        
  1734.        
  1735.  
  1736.        clear=left
  1737.            move down until left margin is clear 
  1738.  
  1739.        clear=right
  1740.            move down until right margin is clear 
  1741.  
  1742.        clear=all
  1743.            move down until both margins are clear 
  1744.  
  1745.        Alternatively, you can decide to place the element alongside the
  1746.        figure just so long as there is enough room. The minimum width
  1747.        needed is specified as:
  1748.        
  1749.        
  1750.  
  1751.        clear="40 en"
  1752.            move down until there is at least 40 en units free 
  1753.  
  1754.        clear="100 pixels"
  1755.            move down until there is at least 100 pixels free 
  1756.  
  1757.        The style sheet (or browser defaults) may provide default
  1758.        minimum widths for each class of block-like elements. 
  1759.  
  1760.    SEQNUM 
  1761.        A sequence number is associated with each level of header from
  1762.        the top level (H1) to the bottom level (H6). This attribute is
  1763.        used to set the sequence number associated with the header level
  1764.        of the current element to a given number, e.g. SEQNUM=10.
  1765.        Normally, the sequence number is initialized to 1 at the
  1766.  
  1767. Dave Raggett                                                           Page 31
  1768. HTML 3.0                                                       28th March 1995
  1769.  
  1770.        beginning of the document and incremented after each header
  1771.        element. It is reset to 1 by any header element of a higher
  1772.        level, e.g. an H1 header resets the sequence numbers for H2 to
  1773.        H6. The style of header numbering is controlled by the style
  1774.        sheet. 
  1775.  
  1776.    SKIP 
  1777.        Increments the sequence number before rendering the element. It
  1778.        is used when headers have been left out of the sequence. For
  1779.        instance, SKIP=3 advances the sequence number past 3 omitted
  1780.        items. 
  1781.  
  1782.    DINGBAT 
  1783.        Specifies an iconic image to appear preceding the header. The
  1784.        icon is specified as an entity name. A list of standard icon
  1785.        entity names for HTML 3.0 is given in an appendix of this
  1786.        specification. 
  1787.  
  1788.    SRC 
  1789.        Specifies an image to appear preceding the header. The image is
  1790.        specified as a URI. This attribute may appear together with the
  1791.        MD attribute. 
  1792.  
  1793.    MD 
  1794.        Specifies a message digest or cryptographic checksum for the
  1795.        associated graphic specified by the SRC attribute. It is used
  1796.        when you want to be sure that a linked object is indeed the same
  1797.        one that the author intended, and hasn't been modified in any
  1798.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  1799.        specifies an MD5 checksum encoded as a base64 character string.
  1800.        The MD attribute is generally allowed for all elements which
  1801.        support URI based links. 
  1802.  
  1803.    NOWRAP 
  1804.        The NOWRAP attribute is used when you don't want the browser to
  1805.        automatically wrap lines. You can then explicitly specify line
  1806.        breaks in headings using the BR element. For example: 
  1807.  
  1808.        <h1 nowrap>This heading has wordwrap turned off<br>
  1809.        and the BR element is used for explicit line breaks</H1>
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824. Dave Raggett                                                           Page 32
  1825. HTML 3.0                                                       28th March 1995
  1826.  
  1827. Paragraphs
  1828.  
  1829.    Permitted Context: %Body.Content, %flow, %block
  1830.    Content Model: %text 
  1831.  
  1832.    The <P> element is used to define a paragraph. The exact rendering
  1833.    (indentation, leading etc.) is not defined and may be a function of
  1834.    other tags, style sheets, etc. The ALIGN attribute can be used to
  1835.    explicitly specify the horizontal alignment. Paragraph elements have
  1836.    the same content model as headers, that is text and character level
  1837.    markup, such as character emphasis, inline images, form fields and
  1838.    math. 
  1839.  
  1840.    Example: 
  1841.  
  1842.    <H1>The heading precedes the first paragraph</H1>
  1843.    <P>Here is the text of the first paragraph. <P>and this is
  1844.    the text of the second paragraph.
  1845.  
  1846.    The text up to the next <p> element is treated as being part of the
  1847.    current paragraph. This is an example of how SGML allows certain end
  1848.    tags like </p> to be left out where they can be inferred from the
  1849.    context. 
  1850.  
  1851. Word Wrapping
  1852.  
  1853.    User agents are free to wrap lines at whitespace characters so as to
  1854.    ensure lines fit within the current window size. Use the  
  1855.    entity for the non-breaking space character, when you want to make
  1856.    sure that a line isn't broken! Alternatively, use the NOWRAP
  1857.    attribute to disable word wrapping and the <BR> element to force
  1858.    line breaks where desired. 
  1859.  
  1860.    --Netscape includes two tags: <NOBR>...</NOBR>, and <WBR>. The
  1861.    former turns off wordwrapping between the start and end NOBR tag,
  1862.    while WBR is for the rare case when you want to specify where to
  1863.    break the line if needed. Should HTML 3.0 provide an equivalent
  1864.    mechanism to WBR, (either a tag or an entity)?-- 
  1865.  
  1866.    Note: Do not use empty paragraphs to add white space around
  1867.    headings, lists or other elements. White space is added by the
  1868.    rendering software. 
  1869.  
  1870. Permitted Attributes
  1871.  
  1872.    ID 
  1873.        An SGML identifier used as the target for hypertext links or for
  1874.        naming particular elements in associated style sheets.
  1875.        Identifiers are NAME tokens and must be unique within the scope
  1876.        of the current document. 
  1877.  
  1878.    LANG 
  1879.        This is one of the ISO standard language abbreviations, e.g.
  1880.  
  1881. Dave Raggett                                                           Page 33
  1882. HTML 3.0                                                       28th March 1995
  1883.  
  1884.        "en.uk" for the variation of English spoken in the United
  1885.        Kingdom. It can be used by parsers to select language specific
  1886.        choices for quotation marks, ligatures and hypenation rules etc.
  1887.        The language attribute is composed from the two letter language
  1888.        code from ISO 639, optionally followed by a period and a two
  1889.        letter country code from ISO 3166. 
  1890.  
  1891.    CLASS 
  1892.        This a space separated list of SGML NAME tokens and is used to
  1893.        subclass tag names. For instance, <P CLASS=abstract> defines a
  1894.        paragraph that acts as an abstract. By convention, the class
  1895.        names are interpreted hierarchically, with the most general
  1896.        class on the left and the most specific on the right, where
  1897.        classes are separated by a period. The CLASS attribute is most
  1898.        commonly used to attach a different style to some element, but
  1899.        it is recommended that where practical class names should be
  1900.        picked on the basis of the element's semantics, as this will
  1901.        permit other uses, such as restricting search through documents
  1902.        by matching on element class names. The conventions for choosing
  1903.        class names are outside the scope of this specification. 
  1904.  
  1905.    ALIGN 
  1906.        Paragraphs are usually rendered flush left. The ALIGN attribute
  1907.        can be used to explicitly specify the horizontal alignment:
  1908.        
  1909.        
  1910.  
  1911.        align=left 
  1912.            The paragraph is rendered flush left (the default). 
  1913.  
  1914.        align=center 
  1915.            The paragraph is centered. 
  1916.  
  1917.        align=right 
  1918.            The paragraph is rendered flush right. 
  1919.  
  1920.        align=justify 
  1921.            Text lines are justified where practical, otherwise this
  1922.            gives the same effect as the default align=left setting.
  1923.  
  1924.        For example: 
  1925.  
  1926.        <p align=center>This is a centered paragraph.
  1927.        <p align=right>and this is a flush right paragraph.
  1928.  
  1929.    CLEAR 
  1930.        This attribute is common to all block-like elements. When text
  1931.        flows around a figure or table in the margin, you sometimes want
  1932.        to start an element like a header, paragraph or list below the
  1933.        figure rather than alongside it. The CLEAR attribute allows you
  1934.        to move down unconditionally:
  1935.        
  1936.        
  1937.  
  1938. Dave Raggett                                                           Page 34
  1939. HTML 3.0                                                       28th March 1995
  1940.  
  1941.  
  1942.        clear=left
  1943.            move down until left margin is clear 
  1944.  
  1945.        clear=right
  1946.            move down until right margin is clear 
  1947.  
  1948.        clear=all
  1949.            move down until both margins are clear 
  1950.  
  1951.        Alternatively, you can decide to place the element alongside the
  1952.        figure just so long as there is enough room. The minimum width
  1953.        needed is specified as:
  1954.  
  1955.        clear="40 en"
  1956.            move down until there is at least 40 en units free 
  1957.  
  1958.        clear="100 pixels"
  1959.            move down until there is at least 100 pixels free 
  1960.  
  1961.        The style sheet (or browser defaults) may provide default
  1962.        minimum widths for each class of block-like elements. 
  1963.  
  1964.    NOWRAP 
  1965.        The NOWRAP attribute is used when you don't want the browser to
  1966.        automatically wrap lines. You can then explicitly specify line
  1967.        breaks in paragraphs using the BR element. For example: 
  1968.  
  1969.        <p nowrap>This paragraph has wordwrap turned off<br>
  1970.        and the BR element is used for explicit line breaks
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995. Dave Raggett                                                           Page 35
  1996. HTML 3.0                                                       28th March 1995
  1997.  
  1998. Line Breaks
  1999.  
  2000.    Permitted Context: %text
  2001.    Content Model: Empty! 
  2002.  
  2003.    Line break and tab elements can be used when you need a little more
  2004.    control over how the browser renders the text. The <BR> element is
  2005.    used to force a line break. 
  2006.  
  2007.    For example: 
  2008.  
  2009.        This is the first line<br>
  2010.        and this is the second<br>
  2011.        and this the third
  2012.  
  2013.    --Shouldn't we have a conditional line break element like Netscape's
  2014.    WBR thats indicates where to break lines when needed and when
  2015.    wordwrap is disabled? Rather than an element, shouldn't this be an
  2016.    entity - is there one already defined for this purpose?-- 
  2017.  
  2018. Permitted Attributes
  2019.  
  2020.    ID 
  2021.        An SGML identifier used as the target for hypertext links or for
  2022.        naming particular elements in associated style sheets.
  2023.        Identifiers are NAME tokens and must be unique within the scope
  2024.        of the current document. 
  2025.  
  2026.    LANG 
  2027.        This is one of the ISO standard language abbreviations, e.g.
  2028.        "en.uk" for the variation of English spoken in the United
  2029.        Kingdom. It can be used by parsers to select language specific
  2030.        choices for quotation marks, ligatures and hypenation rules etc.
  2031.        The language attribute is composed from the two letter language
  2032.        code from ISO 639, optionally followed by a period and a two
  2033.        letter country code from ISO 3166. 
  2034.  
  2035.    CLASS 
  2036.        This a space separated list of SGML NAME tokens and is used to
  2037.        subclass tag names. By convention, the class names are
  2038.        interpreted hierarchically, with the most general class on the
  2039.        left and the most specific on the right, where classes are
  2040.        separated by a period. The CLASS attribute is most commonly used
  2041.        to attach a different style to some element, but it is
  2042.        recommended that where practical class names should be picked on
  2043.        the basis of the element's semantics, as this will permit other
  2044.        uses, such as restricting search through documents by matching
  2045.        on element class names. The conventions for choosing class names
  2046.        are outside the scope of this specification. 
  2047.  
  2048.    CLEAR 
  2049.        When text flows around a figure or table in the margin, you
  2050.        sometimes want to start the next line below the figure rather
  2051.  
  2052. Dave Raggett                                                           Page 36
  2053. HTML 3.0                                                       28th March 1995
  2054.  
  2055.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  2056.        
  2057.        
  2058.  
  2059.        clear=left
  2060.            move down until left margin is clear 
  2061.  
  2062.        clear=right
  2063.            move down until right margin is clear 
  2064.  
  2065.        clear=all
  2066.            move down until both margins are clear 
  2067.  
  2068.        Alternatively, you can decide to place the element alongside the
  2069.        figure just so long as there is enough room. The minimum width
  2070.        needed is specified as:
  2071.        
  2072.        
  2073.  
  2074.        clear="40 en"
  2075.            move down until there is at least 40 en units free 
  2076.  
  2077.        clear="100 pixels"
  2078.            move down until there is at least 100 pixels free 
  2079.  
  2080.        The style sheet (or browser defaults) may provide default
  2081.        minimum widths for each class of block-like elements. 
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109. Dave Raggett                                                           Page 37
  2110. HTML 3.0                                                       28th March 1995
  2111.  
  2112. Horizontal Tabs
  2113.  
  2114.    Permitted Context: %text
  2115.    Content Model: Empty! 
  2116.  
  2117.    The TAB element can be used when you want fine control over the
  2118.    horizontal positioning. The TAB element is used with the <tab
  2119.    id=--name--> attribute to define named tab stops. Subsequently, you
  2120.    can use the TAB element with the <tab to=--name--> attribute to move
  2121.    to the previously defined tab stop. This approach avoids the need to
  2122.    know the font metrics in advance. The TAB element, together with
  2123.    style sheets, allows conversion software to preserve layout
  2124.    information when importing documents created with conventional word
  2125.    processing software. 
  2126.  
  2127.    For example: 
  2128.  
  2129.    <p><b>noct<tab id=t1>ambulant</b> - walking at night<br>
  2130.    <tab to=t1>(from Latin: <i>nox noctis</i> night + <i>ambulare</i> walk)
  2131.  
  2132.    which is rendered as: 
  2133.  
  2134.    noctambulant - walking at night
  2135.        (from Latin: --nox noctis-- night + --ambulare-- walk)
  2136.    
  2137.  
  2138.    The tab stop name (--t1-- in the example) should be unique within
  2139.    the current document and composed from an initial letter followed by
  2140.    letters, digits or hyphens. 
  2141.  
  2142.    Sometimes, you want to make the remainder of the line flush right
  2143.    while leaving the earlier words unmoved. This is possible with the
  2144.    --align-- attribute. For example: 
  2145.  
  2146.    Left part of line<tab align=right>and right part of line.
  2147.  
  2148.    which is rendered as: 
  2149.  
  2150.    Left part of line                               and right part of line.
  2151.  
  2152. Permitted Attributes
  2153.  
  2154.    ID 
  2155.        An SGML identifier used to name a new tab stop at the current
  2156.        position. The scope of the tab stop is the rest of the document. 
  2157.  
  2158.    INDENT 
  2159.        Specifies the number of en units before the tab stop. The en is
  2160.        a typographical unit equal to half the point size. It allows
  2161.        authors to control the leading indent before text, e.g. in
  2162.        poetry, one might use: <TAB INDENT=6> to indent six en units at
  2163.        the start of a line. The INDENT attribute is not meaningful when
  2164.        combined with the TO attribute. 
  2165.  
  2166. Dave Raggett                                                           Page 38
  2167. HTML 3.0                                                       28th March 1995
  2168.  
  2169.  
  2170.    TO 
  2171.        Specifies a previously defined tab stop (see ID attribute). 
  2172.  
  2173.    ALIGN 
  2174.        Lines are usually rendered according to the alignment option for
  2175.        the enclosing paragraph element. The ALIGN attribute can be used
  2176.        to explicitly specify the horizontal alignment:
  2177.        
  2178.        
  2179.  
  2180.        align=left 
  2181.            Following text starts immediately after the designated tab
  2182.            stop (the default). 
  2183.  
  2184.        align=center 
  2185.            Following text up to next tab or line break is centered on
  2186.            the designated tab stop. If the TO attribute is missing, it
  2187.            centers the text between the current left and right margins. 
  2188.  
  2189.        align=right 
  2190.            Following text up to the next tab or line break is rendered
  2191.            flush right to the designated tab stop. If the TO attribute
  2192.            is missing, it renders the text flush right against the
  2193.            current right margin. 
  2194.  
  2195.        align=decimal 
  2196.            The following text is searched for the first occurrence of
  2197.            the character representing the decimal point. The text up to
  2198.            the next tab or line break is then aligned such that the
  2199.            decimal point starts at the designated tab stop. If the TO
  2200.            attribute is missing, the tab element is treated as a single
  2201.            space character. 
  2202.  
  2203.    DP 
  2204.        This specifies the character to be used for the decimal point
  2205.        with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
  2206.        The default may be altered by the language context, as set by
  2207.        the LANG attribute on enclosing elements. 
  2208.  
  2209.    Note: if the specified alignment and tab stop would cause text to
  2210.    overlap preceding text, then the tab element may be treated as a
  2211.    single space character. 
  2212.  
  2213.    --How should the above be rewritten to work with languages which are
  2214.    rendered from right to left? What about lines with mixed
  2215.    directions?--  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223. Dave Raggett                                                           Page 39
  2224. HTML 3.0                                                       28th March 1995
  2225.  
  2226. Hypertext Links
  2227.  
  2228.    Permitted Context: %text
  2229.    Content Model: %text, but no nested anchors 
  2230.  
  2231.    The anchor <A> element is used to define the start and/or
  2232.    destination of a hypertext link. In previous versions of HTML it
  2233.    provided the only means for defining destination anchors within
  2234.    documents, but you can now use any ID attribute as a destination
  2235.    anchor so that links can now be made to divisions, paragraphs and
  2236.    most other elements. 
  2237.  
  2238.    Example: 
  2239.  
  2240.    The <A HREF="http://www.w3.org/">World Wide Web Organization</A>
  2241.    provides information on Web related standards, mailing lists
  2242.    and freeware tools.
  2243.  
  2244.    The text between the start and end tag defines the label for the
  2245.    link. Selecting the link takes the reader to the document specified
  2246.    by the HREF attribute, in this case, the W3O home page. The label
  2247.    can include graphics defined with IMG elements. 
  2248.  
  2249.    For FIG elements, the anchor element serves a dual role.
  2250.    Non-graphical user agents interpret it as a conventional text-based
  2251.    hypertext link, while graphical user agents interpret the anchor's
  2252.    SHAPE attribute as a graphical hotzone on the figure. 
  2253.  
  2254. Permitted Attributes
  2255.  
  2256.    ID 
  2257.        An SGML identifier used as the target for hypertext links or for
  2258.        naming particular elements in associated style sheets.
  2259.        Identifiers are NAME tokens and must be unique within the scope
  2260.        of the current document. This attribute supercedes the "NAME"
  2261.        attribute, see below. 
  2262.  
  2263.        For example, the following paragraph is defined as an anchor
  2264.        named "potomac": 
  2265.  
  2266.        <P ID="potomac">The Potomac river flows into Boston harbour,
  2267.        and played an important role in opening up the hinterland
  2268.        to early settlers...
  2269.  
  2270.        Elsewhere, you can define a link to this paragraph, as follows: 
  2271.  
  2272.        <A HREF="#potomac">Boston</A> is a historic city and
  2273.        a thriving center of commerce and higher education.
  2274.  
  2275.        The reader can select the link labelled "Boston" to see further
  2276.        information on the Boston area. 
  2277.  
  2278.    LANG 
  2279.  
  2280. Dave Raggett                                                           Page 40
  2281. HTML 3.0                                                       28th March 1995
  2282.  
  2283.        This is one of the ISO standard language abbreviations, e.g.
  2284.        "en.uk" for the variation of English spoken in the United
  2285.        Kingdom. It can be used by parsers to select language specific
  2286.        choices for quotation marks, ligatures and hypenation rules etc.
  2287.        The language attribute is composed from the two letter language
  2288.        code from ISO 639, optionally followed by a period and a two
  2289.        letter country code from ISO 3166. 
  2290.  
  2291.    CLASS 
  2292.        This a space separated list of SGML NAME tokens and is used to
  2293.        subclass tag names. By convention, the class names are
  2294.        interpreted hierarchically, with the most general class on the
  2295.        left and the most specific on the right, where classes are
  2296.        separated by a period. The CLASS attribute is most commonly used
  2297.        to attach a different style to some element, but it is
  2298.        recommended that where practical class names should be picked on
  2299.        the basis of the element's semantics, as this will permit other
  2300.        uses, such as restricting search through documents by matching
  2301.        on element class names. The conventions for choosing class names
  2302.        are outside the scope of this specification. 
  2303.  
  2304.    HREF 
  2305.        The HREF attribute implies that the anchor acts as the start of
  2306.        a hypertext link. The destination is designated by the value of
  2307.        the HREF attribute, which is expressed in the Universal Resource
  2308.        Identifier (URI) notation. 
  2309.  
  2310.    MD 
  2311.        Specifies a message digest or cryptographic checksum for the
  2312.        linked document designated by the HREF attribute. It is used
  2313.        when you want to be sure that a linked object is indeed the same
  2314.        one that the author intended, and hasn't been modified in any
  2315.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  2316.        specifies an MD5 checksum encoded as a base64 character string.
  2317.        The MD attribute is generally allowed for all elements which
  2318.        support URI based links. 
  2319.  
  2320.    NAME 
  2321.        This attribute is used to define a named anchor for use as the
  2322.        destination of hypertext links. For example, the following
  2323.        defines an anchor than can be used as the destination of a jump
  2324.        into a description of the Boston area. 
  2325.  
  2326.        The <A NAME="potomac">Potomac river</A> flows into Boston
  2327.        harbour.
  2328.  
  2329.        Note: the NAME attribute has been superceded by the ID
  2330.        attribute. User agents should include support for NAME to ensure
  2331.        backwards compatibility with legacy documents produced using
  2332.        previous versions of HTML. 
  2333.  
  2334.    SHAPE
  2335.        This attribute is used within figures to define shaped hotzones
  2336.  
  2337. Dave Raggett                                                           Page 41
  2338. HTML 3.0                                                       28th March 1995
  2339.  
  2340.        for graphical hypertext links. Full details of how to use this
  2341.        feature will be given with the description of the figure
  2342.        element. The attribute value is a string taking one of the
  2343.        following forms:
  2344.        
  2345.        
  2346.  
  2347.        "default" 
  2348.            Used to define a default link for the figure background. 
  2349.  
  2350.        "circle x, y, r" 
  2351.            Where x and y define the center and r specifies the radius. 
  2352.  
  2353.        "rect x, y, w, h" 
  2354.            Where x, y define the upper left corner and w, h define the
  2355.            width and height respectively 
  2356.  
  2357.        "polygon x1, y1, x2, y2, ..." 
  2358.            Given n pairs of x, y coordinates, the polygon is closed by
  2359.            a line linking the n'th point to the first. Intersecting
  2360.            polygons use the non-zero winding number rule to determine
  2361.            if a point lies inside the polygon. 
  2362.  
  2363.        If a pointer event occurs in a region where two or more shapes
  2364.        overlap, the distance from the point to the center of gravity of
  2365.        each of the overlapping shapes is computed and the closest one
  2366.        chosen. This feature is useful when you want lots of closely
  2367.        spaced hotzones, for example over points on a map, as it allows
  2368.        you to use simple shapes without worrying about overlaps. 
  2369.  
  2370.        Note: The x coordinate increases to the right, and the y
  2371.        coordinate increases downwards in the same way as IMG and image
  2372.        maps. If both numbers are integers, the coordinates are
  2373.        interpreted as pixel offsets from the upper left corner of the
  2374.        figure. Otherwise, the coordinates are interpreted as scaled
  2375.        values in the range 0.0 to 1.0 across the figure. Note the
  2376.        syntax is tolerant of repeated white space characters between
  2377.        tokens. 
  2378.  
  2379.    TITLE 
  2380.        This is informational only and describes the object specified
  2381.        with the HREF attribute. It can be used for object types that
  2382.        don't possess titles, such as graphics, plain text and Gopher
  2383.        menus. 
  2384.  
  2385.    REL 
  2386.        Used to describe the relationship of the linked object specified
  2387.        with the HREF attribute. The set of relationship names is not
  2388.        part of this specification, although "Path" and "Node" are
  2389.        reserved for future use with hypertext paths or guided tours.
  2390.        The REL attribute can be used to support search for links
  2391.        serving particular relationships. 
  2392.  
  2393.  
  2394. Dave Raggett                                                           Page 42
  2395. HTML 3.0                                                       28th March 1995
  2396.  
  2397.    REV 
  2398.        This defines a reverse relationship. A link from document A to
  2399.        document B with REV=--relation-- expresses the same relationship
  2400.        as a link from B to A with REL=--relation--. REV=made is
  2401.        sometimes used to identify the document author, either the
  2402.        author's email address with a --mailto-- URI, or a link to the
  2403.        author's home page. Tables of contents can use anchors with
  2404.        REV="ToC" to allow software to insert page numbers when printing
  2405.        hypertext documents. The plain text version of this
  2406.        specification was generated in this way! 
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451. Dave Raggett                                                           Page 43
  2452. HTML 3.0                                                       28th March 1995
  2453.  
  2454. Overview of Character-Level Elements
  2455.  
  2456.    Permitted Context: %text
  2457.    Content Model: %text 
  2458.  
  2459.    Character level elements are used to specify either the structural
  2460.    meaning or the physical appearence of marked text without causing a
  2461.    paragraph break. Like most other elements, character level elements
  2462.    include both start and end tags. Only the characters between the
  2463.    tags are effected. For example: 
  2464.  
  2465.        This is <EM>emphasized</EM> text.
  2466.  
  2467.    Highlighting elements are allowed within the content of other
  2468.    highlighting elements, but implementations are not required to
  2469.    render these nested highlighting elements distinctly from non-nested
  2470.    elements. For example, implementations may render the following two
  2471.    cases identically: 
  2472.  
  2473.        plain <B>bold <I>italic</I></B>
  2474.  
  2475.        plain <B>bold </B><I>italic</I>
  2476.  
  2477.    Some character highlighting styles are more explicit than others
  2478.    about how they should be physically represented. Designate the
  2479.    information type rather than the character format wherever possible,
  2480.    unless for example, it is necessary to refer to the text as in "The
  2481.    italic parts are mandatory". 
  2482.  
  2483. Permitted Attributes
  2484.  
  2485.    ID 
  2486.        An SGML identifier used as the target for hypertext links or for
  2487.        naming particular elements in associated style sheets.
  2488.        Identifiers are NAME tokens and must be unique within the scope
  2489.        of the current document. 
  2490.  
  2491.    LANG 
  2492.        This is one of the ISO standard language abbreviations, e.g.
  2493.        "en.uk" for the variation of English spoken in the United
  2494.        Kingdom. It can be used by parsers to select language specific
  2495.        choices for quotation marks, ligatures and hypenation rules etc.
  2496.        The language attribute is composed from the two letter language
  2497.        code from ISO 639, optionally followed by a period and a two
  2498.        letter country code from ISO 3166. 
  2499.  
  2500.    CLASS 
  2501.        This a space separated list of SGML NAME tokens and is used to
  2502.        subclass tag names. By convention, the class names are
  2503.        interpreted hierarchically, with the most general class on the
  2504.        left and the most specific on the right, where classes are
  2505.        separated by a period. The CLASS attribute is most commonly used
  2506.        to attach a different style to some element, but it is
  2507.  
  2508. Dave Raggett                                                           Page 44
  2509. HTML 3.0                                                       28th March 1995
  2510.  
  2511.        recommended that where practical class names should be picked on
  2512.        the basis of the element's semantics, as this will permit other
  2513.        uses, such as restricting search through documents by matching
  2514.        on element class names. The conventions for choosing class names
  2515.        are outside the scope of this specification. 
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565. Dave Raggett                                                           Page 45
  2566. HTML 3.0                                                       28th March 1995
  2567.  
  2568. Information Type Elements
  2569.  
  2570.    EM 
  2571.        The <EM> element provides typographic emphasis, typically
  2572.        italics. While <EM> and <I> often give the same effect, use <EM>
  2573.        except where it is necessary in the text to refer to the
  2574.        formatting, as in "The italic parts are mandatory". This will
  2575.        help to ensure consistency between documents from various
  2576.        sources if (for example) the reader prefers to use color in
  2577.        place of italics for emphasis. 
  2578.  
  2579.    CITE 
  2580.        The <CITE> element specifies a citation. Sections tagged with
  2581.        the CITE element are typically rendered in italics. 
  2582.  
  2583.    STRONG 
  2584.        The <STRONG> element provides strong typographic emphasis,
  2585.        typically bold. 
  2586.  
  2587.    CODE 
  2588.        The <CODE> element indicates an example of code; typically
  2589.        rendered in a mono-spaced font. Do not confuse with PRE. 
  2590.  
  2591.    SAMP 
  2592.        The <SAMP> element indicates a sequence of literal characters. 
  2593.  
  2594.    KBD 
  2595.        The <KBD> element indicates text typed (keyboarded) by the user.
  2596.        It might typically be used in an instruction manual. 
  2597.  
  2598.    VAR 
  2599.        The <VAR> element indicates a variable name, and might typically
  2600.        be used in an instruction manual. 
  2601.  
  2602.    DFN 
  2603.        The <DFN> element indicates the defining instance of a term.
  2604.        --New in 3.0--. 
  2605.  
  2606.    Q 
  2607.        The <Q> element is used for a short quotation. It is typically
  2608.        shown enclosed in quotation marks as appropriate to the language
  2609.        context. For English these would be matching double or single
  2610.        quotation marks, alternating for nested quotes. The language
  2611.        context is set by the LANG attribute. --New in 3.0--. 
  2612.  
  2613.    LANG 
  2614.        The <LANG> element is used to alter the language context when it
  2615.        is inappropriate to do this with other character-level elements.
  2616.        --New in 3.0--. 
  2617.  
  2618.    AU 
  2619.        The <AU> element indicates the name of an author. --New in
  2620.        3.0--. 
  2621.  
  2622. Dave Raggett                                                           Page 46
  2623. HTML 3.0                                                       28th March 1995
  2624.  
  2625.  
  2626.    PERSON 
  2627.        The <PERSON> element is used for names of people to allow these
  2628.        to be extracted automatically by indexing programs. --New in
  2629.        3.0--. 
  2630.  
  2631.    ACRONYM 
  2632.        The <ACRONYM> element is used to markup acronyms. --New in
  2633.        3.0--. 
  2634.  
  2635.    ABBREV 
  2636.        The <ABBREV> element is used to markup abbreviations. --New in
  2637.        3.0--. 
  2638.  
  2639.    INS 
  2640.        The <INS> element is used for inserted text, for instance in
  2641.        legal documents. --New in 3.0--. 
  2642.  
  2643.    DEL 
  2644.        The <DEL> is used for deleted text, for instance in legal
  2645.        documents. --New in 3.0--. 
  2646.  
  2647.    An example: 
  2648.  
  2649.    This text contains an <em>emphasized</em> word.
  2650.    <strong>Don't assume</strong> that it will be italic!
  2651.    It was made with the <code>EM</code> element. A cite is
  2652.    often italic and has no formally required structure:
  2653.    <cite>Moby Dick</cite> is a book title.
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679. Dave Raggett                                                           Page 47
  2680. HTML 3.0                                                       28th March 1995
  2681.  
  2682. Font Style Elements
  2683.  
  2684.    These elements may be nested within one another. Browsers should,
  2685.    where practical, aim to combine different types of highlighting as
  2686.    required. 
  2687.  
  2688.    B (Boldface) 
  2689.        The <B> element specifies that the enclosed text should be
  2690.        displayed in a boldface. If this is not practical, an
  2691.        alternative mapping is allowed. 
  2692.  
  2693.    I (Italic) 
  2694.        The <I> element specifies that the enclosed text should be
  2695.        displayed, if practical, in an italic font (or slanted). 
  2696.  
  2697.    TT (TeleType) 
  2698.        The <TT> element specifies that the enclosed text should be
  2699.        displayed, if practical, in a fixed-pitch typewriter font. 
  2700.  
  2701.    U (Underline) 
  2702.        The <U> element specifies that the enclosed text should be
  2703.        displayed, if practical, as underlined. --Not widely supported-- 
  2704.  
  2705.    S (Strike through) 
  2706.        The <S> element specifies that the enclosed text should be
  2707.        displayed with a horizontal line striking through the text. If
  2708.        this is not practical, an alternative mapping is allowed. --New
  2709.        in 3.0--. 
  2710.  
  2711.    BIG (Big print) 
  2712.        The <BIG> element specifies that the enclosed text should be
  2713.        displayed, if practical, using a big font (compared with the
  2714.        current font). --New in 3.0--. 
  2715.  
  2716.    SMALL (Small print) 
  2717.        The <SMALL> element specifies that the enclosed text should be
  2718.        displayed, if practical, using a small font (compared with
  2719.        normal text). --New in 3.0--. 
  2720.  
  2721.    SUB (Subscript) 
  2722.        The <SUB> element specifies that the enclosed text should be
  2723.        displayed as a subscript, and if practical, using a smaller font
  2724.        (compared with normal text). The ALIGN attribute for SUB is only
  2725.        meaningful within the MATH element. --New in 3.0--. 
  2726.  
  2727.    SUP (Superscript) 
  2728.        The <SUP> element specifies that the enclosed text should be
  2729.        displayed as a superscript, and if practical, using a smaller
  2730.        font (compared with normal text). The ALIGN attribute for SUP is
  2731.        only applicable within the MATH element. --New in 3.0--. 
  2732.  
  2733.    An example: 
  2734.  
  2735.  
  2736. Dave Raggett                                                           Page 48
  2737. HTML 3.0                                                       28th March 1995
  2738.  
  2739.    This text contains some <b><i>bold italic</i></b> text, some
  2740.    <S>struck through</S> text and some <SMALL>small print</SMALL>.
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793. Dave Raggett                                                           Page 49
  2794. HTML 3.0                                                       28th March 1995
  2795.  
  2796. The IMG (Image) Element
  2797.  
  2798.    Permitted Context: %text
  2799.    Content Model: Empty! 
  2800.  
  2801.    The <IMG> tag is used to incorporate in-line graphics (typically
  2802.    icons or small graphics) into an HTML document. This element is NOT
  2803.    intended for embedding other HTML text. For large figures with
  2804.    captions and text flow see FIG element. 
  2805.  
  2806.    Example: 
  2807.  
  2808.    <IMG SRC="tajmahal.gif" ALT="The Taj Mahal">
  2809.  
  2810.    Browsers that cannot display in-line images ignore the IMG element
  2811.    unless it contains the ALT attribute. Note that some browsers can
  2812.    display (or print) linked graphics but not in-line graphics. If the
  2813.    graphic is essential, you may want to create a link to it rather
  2814.    than to put it in-line. If the graphic is essentially decorative,
  2815.    then IMG is appropriate. 
  2816.  
  2817. Permitted Attributes
  2818.  
  2819.    ID 
  2820.        An SGML identifier used as the target for hypertext links or for
  2821.        naming particular elements in associated style sheets.
  2822.        Identifiers are NAME tokens and must be unique within the scope
  2823.        of the current document. 
  2824.  
  2825.    LANG 
  2826.        This is one of the ISO standard language abbreviations, e.g.
  2827.        "en.uk" for the variation of English spoken in the United
  2828.        Kingdom. It can be used by parsers to select language specific
  2829.        choices for quotation marks, ligatures and hypenation rules etc.
  2830.        The language attribute is composed from the two letter language
  2831.        code from ISO 639, optionally followed by a period and a two
  2832.        letter country code from ISO 3166. 
  2833.  
  2834.    CLASS 
  2835.        This a space separated list of SGML NAME tokens and is used to
  2836.        subclass tag names. By convention, the class names are
  2837.        interpreted hierarchically, with the most general class on the
  2838.        left and the most specific on the right, where classes are
  2839.        separated by a period. The CLASS attribute is most commonly used
  2840.        to attach a different style to some element, but it is
  2841.        recommended that where practical class names should be picked on
  2842.        the basis of the element's semantics, as this will permit other
  2843.        uses, such as restricting search through documents by matching
  2844.        on element class names. The conventions for choosing class names
  2845.        are outside the scope of this specification. 
  2846.  
  2847.    SRC (Source) 
  2848.        The SRC attribute specifies the URI for the image to be
  2849.  
  2850. Dave Raggett                                                           Page 50
  2851. HTML 3.0                                                       28th March 1995
  2852.  
  2853.        embedded. Its syntax is the same as that of the HREF attribute
  2854.        of the <A> tag. SRC is mandatory. 
  2855.  
  2856.    MD 
  2857.        Specifies a message digest or cryptographic checksum for the
  2858.        associated graphic specified by the SRC attribute. It is used
  2859.        when you want to be sure that the image is indeed the same one
  2860.        that the author intended, and hasn't been modified in any way.
  2861.        For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  2862.        specifies an MD5 checksum encoded as a base64 character string.
  2863.        The MD attribute is generally allowed for all elements which
  2864.        support URI based links. 
  2865.  
  2866.    WIDTH 
  2867.        Optional suggested width for the image. By default, this is
  2868.        given in pixels. 
  2869.  
  2870.    HEIGHT 
  2871.        Optional suggested height for the image. By default, this is
  2872.        given in pixels. 
  2873.  
  2874.    UNITS 
  2875.        This optional attribute specifies the units for the width and
  2876.        height attributes. It is one of: units=pixels (the default) or
  2877.        units=en (half the point size). 
  2878.  
  2879.    ALIGN 
  2880.        Take values TOP or MIDDLE or BOTTOM, defining whether the top or
  2881.        middle or bottom of the graphic should be aligned with the
  2882.        baseline for the text line in which the IMG element appears. 
  2883.  
  2884.        With ALIGN=LEFT, the graphic will float down and over to the
  2885.        current left margin, and subsequent text will wrap around the
  2886.        right hand side of the graphic. Likewise for ALIGN=RIGHT, the
  2887.        graphic aligns with the current right margin and, and text wraps
  2888.        around the left. It is inappropriate to use this feature for
  2889.        larger graphics as these are best represented with the FIG
  2890.        element. 
  2891.  
  2892.    ALT (Alternate text) 
  2893.        Optional alternative text as an alternative to the graphics for
  2894.        display in text-only environments. The alt text can contain
  2895.        entities e.g. for accented characters or special symbols, but it
  2896.        can't contain markup. The latter is possible, however, with the
  2897.        FIG element. 
  2898.  
  2899.    ISMAP 
  2900.        An image map is a graphical map by which users can navigate
  2901.        transparently from one information resource to another. The
  2902.        ISMAP attribute identifies an image as an image map. The IMG
  2903.        element can then be used as part of the label for a hypertext
  2904.        link (see the anchor element). When the user clicks on the image
  2905.        the location clicked is sent to the server designated by the
  2906.  
  2907. Dave Raggett                                                           Page 51
  2908. HTML 3.0                                                       28th March 1995
  2909.  
  2910.        hypertext link. 
  2911.  
  2912.        For example: 
  2913.  
  2914.        <A HREF="http://machine/htbin/imagemap/sample">
  2915.        <IMG SRC="sample.gif" ISMAP></A>
  2916.  
  2917.    Note: There are drawbacks from having the server process clicks on
  2918.    images: the delay in getting feedback and the inability to change
  2919.    the pointer cursor on the fly as it moves over hotzones. Client-side
  2920.    processing of events is possible if one of the following applies: 
  2921.  
  2922.    *   The server may allow the image map to be downloaded and
  2923.        processed locally. This should work with legacy documents
  2924.        produced using earlier versions of HTML. 
  2925.  
  2926.    *   Using an image format that includes image hotzones as part of
  2927.        the file format. 
  2928.  
  2929.    *   The FIG element provides for client-side image maps as a unified
  2930.        part of the figure description. It offers a number of advantages
  2931.        over IMG, including captions, markup in alt text and text flow
  2932.        around figures. 
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964. Dave Raggett                                                           Page 52
  2965. HTML 3.0                                                       28th March 1995
  2966.  
  2967. UL (Unordered List)
  2968.  
  2969.    Permitted Context: %Body.Content, %flow, %block
  2970.    Content Model: Optional list header (LH), followed by one or more
  2971.    list items(LI) 
  2972.  
  2973.    An unordered list typically is a bulleted list of items. HTML 3.0
  2974.    gives you the ability to customise the bullets, to do without
  2975.    bullets and to wrap list items horizontally or vertically for
  2976.    multicolumn lists. 
  2977.  
  2978.    The opening list tag must be <UL>. It is followed by an optional
  2979.    list header (<LH>caption</LH>) and then by the first list item
  2980.    (<LI>). For example: 
  2981.  
  2982.        <UL>
  2983.          <LH>Table Fruit</LH>
  2984.          <LI>apples
  2985.          <LI>oranges
  2986.          <LI>bananas
  2987.        </UL>
  2988.  
  2989.    which could be rendered as: 
  2990.  
  2991. Table Fruit
  2992.  
  2993.    *   apples 
  2994.  
  2995.    *   oranges 
  2996.  
  2997.    *   bananas 
  2998.  
  2999.    Note: Some legacy documents may include headers or plain text before
  3000.    the first LI element. Implementors of HTML 3.0 user agents are
  3001.    advised to cater for this possibility in order to handle badly
  3002.    formed legacy documents. 
  3003.  
  3004. MENU and DIR elements
  3005.  
  3006.    These elements are superceded by extensions to the UL element. User
  3007.    agents are advised to continue to support them for the sake of
  3008.    legacy documents. Both MENU and DIR consist of one or more LI
  3009.    elements, similar to UL. MENU lists are typically rendered without
  3010.    bullets in a more compact style than UL. You can get the same effect
  3011.    with <UL PLAIN>. DIR lists are used to present lists of items
  3012.    containing up to 20 characters each. Items in a DIR list are
  3013.    arranged in columns. You can get the same effect with <UL PLAIN
  3014.    WRAP=HORIZ>. 
  3015.  
  3016. Permitted Attributes for the UL Element
  3017.  
  3018.    ID 
  3019.        An SGML identifier used as the target for hypertext links or for
  3020.  
  3021. Dave Raggett                                                           Page 53
  3022. HTML 3.0                                                       28th March 1995
  3023.  
  3024.        naming particular elements in associated style sheets.
  3025.        Identifiers are NAME tokens and must be unique within the scope
  3026.        of the current document. 
  3027.  
  3028.    LANG 
  3029.        This is one of the ISO standard language abbreviations, e.g.
  3030.        "en.uk" for the variation of English spoken in the United
  3031.        Kingdom. It can be used by parsers to select language specific
  3032.        choices for quotation marks, ligatures and hypenation rules etc.
  3033.        The language attribute is composed from the two letter language
  3034.        code from ISO 639, optionally followed by a period and a two
  3035.        letter country code from ISO 3166. 
  3036.  
  3037.    CLASS 
  3038.        This a space separated list of SGML NAME tokens and is used to
  3039.        subclass tag names. By convention, the class names are
  3040.        interpreted hierarchically, with the most general class on the
  3041.        left and the most specific on the right, where classes are
  3042.        separated by a period. The CLASS attribute is most commonly used
  3043.        to attach a different style to some element, but it is
  3044.        recommended that where practical class names should be picked on
  3045.        the basis of the element's semantics, as this will permit other
  3046.        uses, such as restricting search through documents by matching
  3047.        on element class names. The conventions for choosing class names
  3048.        are outside the scope of this specification. 
  3049.  
  3050.    CLEAR 
  3051.        This attribute is common to all block-like elements. When text
  3052.        flows around a figure or table in the margin, you sometimes want
  3053.        to start an element like a header, paragraph or list below the
  3054.        figure rather than alongside it. The CLEAR attribute allows you
  3055.        to move down unconditionally:
  3056.        
  3057.        
  3058.  
  3059.        clear=left
  3060.            move down until left margin is clear 
  3061.  
  3062.        clear=right
  3063.            move down until right margin is clear 
  3064.  
  3065.        clear=all
  3066.            move down until both margins are clear 
  3067.  
  3068.        Alternatively, you can decide to place the element alongside the
  3069.        figure just so long as there is enough room. The minimum width
  3070.        needed is specified as:
  3071.        
  3072.        
  3073.  
  3074.        clear="40 en"
  3075.            move down until there is at least 40 en units free 
  3076.  
  3077.  
  3078. Dave Raggett                                                           Page 54
  3079. HTML 3.0                                                       28th March 1995
  3080.  
  3081.        clear="100 pixels"
  3082.            move down until there is at least 100 pixels free 
  3083.  
  3084.        The style sheet (or browser defaults) may provide default
  3085.        minimum widths for each class of block-like elements. 
  3086.  
  3087.    PLAIN 
  3088.        The presence of this attribute suppresses the display of
  3089.        bullets, e.g. <UL PLAIN>. 
  3090.  
  3091.    SRC 
  3092.        Specifies an image for use as a bullet. The image is specified
  3093.        as a URI. This attribute may appear together with the MD
  3094.        attribute. 
  3095.  
  3096.    MD 
  3097.        Specifies a message digest or cryptographic checksum for the
  3098.        associated graphic specified by the SRC attribute. It is used
  3099.        when you want to be sure that a linked object is indeed the same
  3100.        one that the author intended, and hasn't been modified in any
  3101.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  3102.        specifies an MD5 checksum encoded as a base64 character string.
  3103.        The MD attribute is generally allowed for all elements which
  3104.        support URI based links. 
  3105.  
  3106.    DINGBAT 
  3107.        Specifies an iconic image for use as a bullet. The icon is
  3108.        specified as an entity name. A list of standard icon entity
  3109.        names for HTML 3.0 is given in an appendix of this
  3110.        specification, e.g. folder is the entity name for an icon
  3111.        denoting a directory or folder. 
  3112.  
  3113.    WRAP 
  3114.        The WRAP attribute is used for multicolumn lists. Use wrap=vert
  3115.        if you want to arrange the list items down the page before
  3116.        wrapping to the next column. Use wrap=horiz if you want to
  3117.        arrange the items across the page (less useful). The user agent
  3118.        is responsible for determining how many columns are appropriate. 
  3119.  
  3120.    COMPACT 
  3121.        The presence of this attribute indicates the user agent should
  3122.        use reduced interitem spacing. In practice, there are several
  3123.        ways to increase the compactness of lists: reduced vertical
  3124.        interitem spacing, smaller font size, or even to avoid line
  3125.        breaks between items. This is best handled through associated
  3126.        style sheets and the class attribute. 
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135. Dave Raggett                                                           Page 55
  3136. HTML 3.0                                                       28th March 1995
  3137.  
  3138. LH (List Header)
  3139.  
  3140.    Permitted Context: Immediately following UL, OL or DL
  3141.    Content Model: %text 
  3142.  
  3143.    The LH or list header element is used to provide a title for a list.
  3144.    User agents can use this in place of the full list when a mechanism
  3145.    is provided to fold and unfold nested lists. 
  3146.  
  3147. Permitted Attributes for the LH Element
  3148.  
  3149.    ID 
  3150.        An SGML identifier used as the target for hypertext links or for
  3151.        naming particular elements in associated style sheets.
  3152.        Identifiers are NAME tokens and must be unique within the scope
  3153.        of the current document. 
  3154.  
  3155.    LANG 
  3156.        This is one of the ISO standard language abbreviations, e.g.
  3157.        "en.uk" for the variation of English spoken in the United
  3158.        Kingdom. It can be used by parsers to select language specific
  3159.        choices for quotation marks, ligatures and hypenation rules etc.
  3160.        The language attribute is composed from the two letter language
  3161.        code from ISO 639, optionally followed by a period and a two
  3162.        letter country code from ISO 3166. 
  3163.  
  3164.    CLASS 
  3165.        This a space separated list of SGML NAME tokens and is used to
  3166.        subclass tag names. By convention, the class names are
  3167.        interpreted hierarchically, with the most general class on the
  3168.        left and the most specific on the right, where classes are
  3169.        separated by a period. The CLASS attribute is most commonly used
  3170.        to attach a different style to some element, but it is
  3171.        recommended that where practical class names should be picked on
  3172.        the basis of the element's semantics, as this will permit other
  3173.        uses, such as restricting search through documents by matching
  3174.        on element class names. The conventions for choosing class names
  3175.        are outside the scope of this specification. 
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192. Dave Raggett                                                           Page 56
  3193. HTML 3.0                                                       28th March 1995
  3194.  
  3195. LI (List Item)
  3196.  
  3197.    Permitted Context: UL or OL
  3198.    Content Model: %flow 
  3199.  
  3200.    The LI or list item element is used for items in both ordered and
  3201.    unordered lists. 
  3202.  
  3203.    Note: The content model for list items is quite broad, including
  3204.    paragraphs, lists, performatted text, forms, tables, figures and
  3205.    admonishments. Headers are not permitted, although implementors of
  3206.    HTML 3.0 user agents are advised to cater for this possibility in
  3207.    order to handle badly formed legacy documents. If %html.recommended
  3208.    is active, the HTML 3.0 DTD expects you to enclose plain text in a
  3209.    block element such as <P> 
  3210.  
  3211. Permitted Attributes for the LI Element
  3212.  
  3213.    ID 
  3214.        An SGML identifier used as the target for hypertext links or for
  3215.        naming particular elements in associated style sheets.
  3216.        Identifiers are NAME tokens and must be unique within the scope
  3217.        of the current document. 
  3218.  
  3219.    LANG 
  3220.        This is one of the ISO standard language abbreviations, e.g.
  3221.        "en.uk" for the variation of English spoken in the United
  3222.        Kingdom. It can be used by parsers to select language specific
  3223.        choices for quotation marks, ligatures and hypenation rules etc.
  3224.        The language attribute is composed from the two letter language
  3225.        code from ISO 639, optionally followed by a period and a two
  3226.        letter country code from ISO 3166. 
  3227.  
  3228.    CLASS 
  3229.        This a space separated list of SGML NAME tokens and is used to
  3230.        subclass tag names. By convention, the class names are
  3231.        interpreted hierarchically, with the most general class on the
  3232.        left and the most specific on the right, where classes are
  3233.        separated by a period. The CLASS attribute is most commonly used
  3234.        to attach a different style to some element, but it is
  3235.        recommended that where practical class names should be picked on
  3236.        the basis of the element's semantics, as this will permit other
  3237.        uses, such as restricting search through documents by matching
  3238.        on element class names. The conventions for choosing class names
  3239.        are outside the scope of this specification. 
  3240.  
  3241.    CLEAR 
  3242.        This attribute is common to all block-like elements. When text
  3243.        flows around a figure or table in the margin, you sometimes want
  3244.        to start the list item below the figure rather than alongside
  3245.        it. The CLEAR attribute allows you to move down unconditionally:
  3246.        
  3247.        
  3248.  
  3249. Dave Raggett                                                           Page 57
  3250. HTML 3.0                                                       28th March 1995
  3251.  
  3252.  
  3253.        clear=left
  3254.            move down until left margin is clear 
  3255.  
  3256.        clear=right
  3257.            move down until right margin is clear 
  3258.  
  3259.        clear=all
  3260.            move down until both margins are clear 
  3261.  
  3262.        Alternatively, you can decide to place the element alongside the
  3263.        figure just so long as there is enough room. The minimum width
  3264.        needed is specified as:
  3265.        
  3266.        
  3267.  
  3268.        clear="40 en"
  3269.            move down until there is at least 40 en units free 
  3270.  
  3271.        clear="100 pixels"
  3272.            move down until there is at least 100 pixels free 
  3273.  
  3274.        The style sheet (or browser defaults) may provide default
  3275.        minimum widths for each class of block-like elements. 
  3276.  
  3277.    SRC 
  3278.        Specifies an image for use as a bullet. The image is specified
  3279.        as a URI. This attribute may appear together with the MD
  3280.        attribute. 
  3281.  
  3282.    MD 
  3283.        Specifies a message digest or cryptographic checksum for the
  3284.        associated graphic specified by the SRC attribute. It is used
  3285.        when you want to be sure that a linked object is indeed the same
  3286.        one that the author intended, and hasn't been modified in any
  3287.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  3288.        specifies an MD5 checksum encoded as a base64 character string.
  3289.        The MD attribute is generally allowed for all elements which
  3290.        support URI based links. 
  3291.  
  3292.    DINGBAT 
  3293.        Specifies an iconic image for use as a bullet. The icon is
  3294.        specified as an entity name. A list of standard icon entity
  3295.        names for HTML 3.0 is given in an appendix of this
  3296.        specification, e.g. folder is the entity name for an icon
  3297.        denoting a directory or folder. 
  3298.  
  3299.    SKIP 
  3300.        Increments the sequence number before rendering the element. It
  3301.        is used when headers have been left out of the sequence. For
  3302.        instance, SKIP=3 advances the sequence number past 3 omitted
  3303.        items. 
  3304.  
  3305.  
  3306. Dave Raggett                                                           Page 58
  3307. HTML 3.0                                                       28th March 1995
  3308.  
  3309. OL (Ordered List)
  3310.  
  3311.    Permitted Context: %Body.Content, %flow, %block
  3312.    Content Model: Optional list header (LH), followed by one or more
  3313.    list items(LI) 
  3314.  
  3315.    An ordered list typically is a numbered list of items. HTML 3.0
  3316.    gives you the ability to control the sequence number - to continue
  3317.    where the previous list left off, or to start at a particular
  3318.    number. The numbering style is left to associated style sheets, e.g.
  3319.    whether nested lists contribute to a compound item number, e.g.
  3320.    "3.1.5", or whether numbers are rendered as arabic, upper or lower
  3321.    case roman numerals or using the numbering scheme appropriate to the
  3322.    language context. 
  3323.  
  3324.    The opening list tag must be <OL>. It is followed by an optional
  3325.    list header (<LH>caption</LH>) and then by the first list item
  3326.    (<LI>). For example: 
  3327.  
  3328.        <OL>
  3329.          <LH>Meeting Agenda</LH>
  3330.          <LI>Minutes of the last meeting
  3331.          <LI>Do we need yet more meetings?
  3332.          <LI>Any other business
  3333.        </OL>
  3334.  
  3335.    which could be rendered as: 
  3336.  
  3337. Meeting Agenda
  3338.  
  3339.    1.  Minutes of the last meeting 
  3340.  
  3341.    2.  Do we need yet more meetings? 
  3342.  
  3343.    3.  Any other business 
  3344.  
  3345.    Note: Some legacy documents may include headers or plain text before
  3346.    the first LI element. Implementors of HTML 3.0 user agents are
  3347.    advised to cater for this possibility in order to handle badly
  3348.    formed legacy documents. 
  3349.  
  3350. Permitted Attributes for the OL Element
  3351.  
  3352.    ID 
  3353.        An SGML identifier used as the target for hypertext links or for
  3354.        naming particular elements in associated style sheets.
  3355.        Identifiers are NAME tokens and must be unique within the scope
  3356.        of the current document. 
  3357.  
  3358.    LANG 
  3359.        This is one of the ISO standard language abbreviations, e.g.
  3360.        "en.uk" for the variation of English spoken in the United
  3361.        Kingdom. It can be used by parsers to select language specific
  3362.  
  3363. Dave Raggett                                                           Page 59
  3364. HTML 3.0                                                       28th March 1995
  3365.  
  3366.        choices for quotation marks, ligatures and hypenation rules etc.
  3367.        The language attribute is composed from the two letter language
  3368.        code from ISO 639, optionally followed by a period and a two
  3369.        letter country code from ISO 3166. 
  3370.  
  3371.    CLASS 
  3372.        This a space separated list of SGML NAME tokens and is used to
  3373.        subclass tag names. By convention, the class names are
  3374.        interpreted hierarchically, with the most general class on the
  3375.        left and the most specific on the right, where classes are
  3376.        separated by a period. The CLASS attribute is most commonly used
  3377.        to attach a different style to some element, but it is
  3378.        recommended that where practical class names should be picked on
  3379.        the basis of the element's semantics, as this will permit other
  3380.        uses, such as restricting search through documents by matching
  3381.        on element class names. The conventions for choosing class names
  3382.        are outside the scope of this specification. 
  3383.  
  3384.    CLEAR 
  3385.        This attribute is common to all block-like elements. When text
  3386.        flows around a figure or table in the margin, you sometimes want
  3387.        to start an element like a header, paragraph or list below the
  3388.        figure rather than alongside it. The CLEAR attribute allows you
  3389.        to move down unconditionally:
  3390.        
  3391.        
  3392.  
  3393.        clear=left
  3394.            move down until left margin is clear 
  3395.  
  3396.        clear=right
  3397.            move down until right margin is clear 
  3398.  
  3399.        clear=all
  3400.            move down until both margins are clear 
  3401.  
  3402.        Alternatively, you can decide to place the element alongside the
  3403.        figure just so long as there is enough room. The minimum width
  3404.        needed is specified as:
  3405.        
  3406.        
  3407.  
  3408.        clear="40 en"
  3409.            move down until there is at least 40 en units free 
  3410.  
  3411.        clear="100 pixels"
  3412.            move down until there is at least 100 pixels free 
  3413.  
  3414.        The style sheet (or browser defaults) may provide default
  3415.        minimum widths for each class of block-like elements. 
  3416.  
  3417.    CONTINUE 
  3418.        Don't restart the sequence number, i.e. continue where previous
  3419.  
  3420. Dave Raggett                                                           Page 60
  3421. HTML 3.0                                                       28th March 1995
  3422.  
  3423.        list left off, e.g. <OL CONTINUE> 
  3424.  
  3425.    SEQNUM 
  3426.        Set the starting sequence number for the first item, e.g. <OL
  3427.        SEQNUM=23> 
  3428.  
  3429.    COMPACT 
  3430.        The presence of this attribute indicates the user agent should
  3431.        use reduced interitem spacing. In practice, there are several
  3432.        ways to increase the compactness of lists: reduced vertical
  3433.        interitem spacing, smaller font size, or even to avoid line
  3434.        breaks between items. This is best handled through associated
  3435.        style sheets and the class attribute. 
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477. Dave Raggett                                                           Page 61
  3478. HTML 3.0                                                       28th March 1995
  3479.  
  3480. DL - Definition Lists
  3481.  
  3482.    Permitted Context: %Body.Content, %flow, %block
  3483.    Content Model: Optional list header(LH), followed by one or more
  3484.    terms(DT) and definitions(DD). 
  3485.  
  3486.    A definition list is a list of terms and corresponding definitions.
  3487.    Definition lists are typically formatted with the term on the left
  3488.    with the definition following on the right or on the next line. The
  3489.    definition text is typically indented with respect to the term. 
  3490.  
  3491.    An alternative format places the term left aligned in a wide margin
  3492.    and the definition on one or more lines to the right of the term. If
  3493.    the DT term does not fit in the DT column (one third of the display
  3494.    area), it may be extended across the page with the DD section moved
  3495.    to the next line, or it may be wrapped onto successive lines of the
  3496.    left hand column. 
  3497.  
  3498.    The opening list tag must be <DL>. It is followed by an optional
  3499.    list header (<LH>caption</LH>) and then by term names (<DT>) and
  3500.    definitions (<DD>). For example: 
  3501.  
  3502.    <DL>
  3503.    <LH>List Header</LH>
  3504.    <DT>Term 1<dd>This is the definition of the first term.
  3505.    <DT>Term 2<dd>This is the definition of the second term.
  3506.    </DL>
  3507.  
  3508.    which could be rendered as: 
  3509.  
  3510. List Header
  3511.  
  3512.    Term 1
  3513.        This is the definition of the first term. 
  3514.  
  3515.    Term 2
  3516.        This is the definition of the second term. 
  3517.  
  3518.    The definition list element can take the COMPACT attribute, which
  3519.    suggests that a compact rendering be used, and is appropriate if the
  3520.    list elements are small and/or the entire list is large. 
  3521.  
  3522.    Note: Use the NOTE element when you want to have an indented note.
  3523.    The practice of using <DD> elements without corresponding <DT>
  3524.    elements is deprecated. 
  3525.  
  3526. Permitted Attributes for the DL Element
  3527.  
  3528.    ID 
  3529.        An SGML identifier used as the target for hypertext links or for
  3530.        naming particular elements in associated style sheets.
  3531.        Identifiers are NAME tokens and must be unique within the scope
  3532.        of the current document. 
  3533.  
  3534. Dave Raggett                                                           Page 62
  3535. HTML 3.0                                                       28th March 1995
  3536.  
  3537.  
  3538.    LANG 
  3539.        This is one of the ISO standard language abbreviations, e.g.
  3540.        "en.uk" for the variation of English spoken in the United
  3541.        Kingdom. It can be used by parsers to select language specific
  3542.        choices for quotation marks, ligatures and hypenation rules etc.
  3543.        The language attribute is composed from the two letter language
  3544.        code from ISO 639, optionally followed by a period and a two
  3545.        letter country code from ISO 3166. 
  3546.  
  3547.    CLASS 
  3548.        This a space separated list of SGML NAME tokens and is used to
  3549.        subclass tag names. By convention, the class names are
  3550.        interpreted hierarchically, with the most general class on the
  3551.        left and the most specific on the right, where classes are
  3552.        separated by a period. The CLASS attribute is most commonly used
  3553.        to attach a different style to some element, but it is
  3554.        recommended that where practical class names should be picked on
  3555.        the basis of the element's semantics, as this will permit other
  3556.        uses, such as restricting search through documents by matching
  3557.        on element class names. The conventions for choosing class names
  3558.        are outside the scope of this specification. 
  3559.  
  3560.    CLEAR 
  3561.        This attribute is common to all block-like elements. When text
  3562.        flows around a figure or table in the margin, you sometimes want
  3563.        to start an element like a header, paragraph or list below the
  3564.        figure rather than alongside it. The CLEAR attribute allows you
  3565.        to move down unconditionally:
  3566.        
  3567.        
  3568.  
  3569.        clear=left
  3570.            move down until left margin is clear 
  3571.  
  3572.        clear=right
  3573.            move down until right margin is clear 
  3574.  
  3575.        clear=all
  3576.            move down until both margins are clear 
  3577.  
  3578.        Alternatively, you can decide to place the element alongside the
  3579.        figure just so long as there is enough room. The minimum width
  3580.        needed is specified as:
  3581.        
  3582.        
  3583.  
  3584.        clear="40 en"
  3585.            move down until there is at least 40 en units free 
  3586.  
  3587.        clear="100 pixels"
  3588.            move down until there is at least 100 pixels free 
  3589.  
  3590.  
  3591. Dave Raggett                                                           Page 63
  3592. HTML 3.0                                                       28th March 1995
  3593.  
  3594.        The style sheet (or browser defaults) may provide default
  3595.        minimum widths for each class of block-like elements. 
  3596.  
  3597.    COMPACT 
  3598.        The presence of this attribute indicates the user agent should
  3599.        use reduced interitem spacing. The COMPACT attribute may also
  3600.        reduce the width of the left-hand (DT) column. 
  3601.  
  3602.        In practice, there are several ways to increase the compactness
  3603.        of lists: reduced vertical interitem spacing, smaller font size,
  3604.        or even to avoid line breaks between items. This is best handled
  3605.        through associated style sheets and the class attribute. 
  3606.  
  3607.        The opening list tag must be DL COMPACT. It must be immediately
  3608.        followed by the first term (DT). For example: 
  3609.  
  3610.        <DL compact>
  3611.        <DT>Term<DD>This is the first definition in compact format.
  3612.        <DT>Term<DD>This is the second definition in compact format.
  3613.        </DL>
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648. Dave Raggett                                                           Page 64
  3649. HTML 3.0                                                       28th March 1995
  3650.  
  3651. DT - Term Name
  3652.  
  3653.    Permitted Context: DL
  3654.    Content Model: %text 
  3655.  
  3656.    The DT tag element specifies a term name, and you can have several
  3657.    terms per DD element. 
  3658.  
  3659.    Note: Term names are restricted to character level markup only,
  3660.    including epmhasis, inline images and footnotes. Paragraph tags and
  3661.    other block-like element such as headers are not permitted, although
  3662.    implementors of HTML 3.0 user agents are advised to cater for this
  3663.    possibility in order to handle badly formed legacy documents. 
  3664.  
  3665. Permitted Attributes for the DT Element
  3666.  
  3667.    ID 
  3668.        An SGML identifier used as the target for hypertext links or for
  3669.        naming particular elements in associated style sheets.
  3670.        Identifiers are NAME tokens and must be unique within the scope
  3671.        of the current document. 
  3672.  
  3673.    LANG 
  3674.        This is one of the ISO standard language abbreviations, e.g.
  3675.        "en.uk" for the variation of English spoken in the United
  3676.        Kingdom. It can be used by parsers to select language specific
  3677.        choices for quotation marks, ligatures and hypenation rules etc.
  3678.        The language attribute is composed from the two letter language
  3679.        code from ISO 639, optionally followed by a period and a two
  3680.        letter country code from ISO 3166. 
  3681.  
  3682.    CLASS 
  3683.        This a space separated list of SGML NAME tokens and is used to
  3684.        subclass tag names. By convention, the class names are
  3685.        interpreted hierarchically, with the most general class on the
  3686.        left and the most specific on the right, where classes are
  3687.        separated by a period. The CLASS attribute is most commonly used
  3688.        to attach a different style to some element, but it is
  3689.        recommended that where practical class names should be picked on
  3690.        the basis of the element's semantics, as this will permit other
  3691.        uses, such as restricting search through documents by matching
  3692.        on element class names. The conventions for choosing class names
  3693.        are outside the scope of this specification. 
  3694.  
  3695.    CLEAR 
  3696.        When text flows around a figure or table in the margin, you
  3697.        sometimes want to start the term name below the figure rather
  3698.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  3699.        
  3700.        
  3701.  
  3702.        clear=left
  3703.            move down until left margin is clear 
  3704.  
  3705. Dave Raggett                                                           Page 65
  3706. HTML 3.0                                                       28th March 1995
  3707.  
  3708.  
  3709.        clear=right
  3710.            move down until right margin is clear 
  3711.  
  3712.        clear=all
  3713.            move down until both margins are clear 
  3714.  
  3715.        Alternatively, you can decide to place the element alongside the
  3716.        figure just so long as there is enough room. The minimum width
  3717.        needed is specified as:
  3718.        
  3719.        
  3720.  
  3721.        clear="40 en"
  3722.            move down until there is at least 40 en units free 
  3723.  
  3724.        clear="100 pixels"
  3725.            move down until there is at least 100 pixels free 
  3726.  
  3727.        The style sheet (or browser defaults) may provide default
  3728.        minimum widths for each class of block-like elements. 
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762. Dave Raggett                                                           Page 66
  3763. HTML 3.0                                                       28th March 1995
  3764.  
  3765. DD - Term Definition
  3766.  
  3767.    Permitted Context: DL
  3768.    Content Model: %flow 
  3769.  
  3770.    The DD tag element specifies a term definition, and follows one or
  3771.    more DT elements. 
  3772.  
  3773.    Note: The content model for term definitions is quite broad,
  3774.    including paragraphs, lists, performatted text, forms, tables,
  3775.    figures and admonishments. Headers are not permitted, although
  3776.    implementors of HTML 3.0 user agents are advised to cater for this
  3777.    possibility in order to handle badly formed legacy documents. If
  3778.    %html.recommended is active, the HTML 3.0 DTD expects you to enclose
  3779.    plain text in a block element such as <P> 
  3780.  
  3781. Permitted Attributes for the DD Element
  3782.  
  3783.    ID 
  3784.        An SGML identifier used as the target for hypertext links or for
  3785.        naming particular elements in associated style sheets.
  3786.        Identifiers are NAME tokens and must be unique within the scope
  3787.        of the current document. 
  3788.  
  3789.    LANG 
  3790.        This is one of the ISO standard language abbreviations, e.g.
  3791.        "en.uk" for the variation of English spoken in the United
  3792.        Kingdom. It can be used by parsers to select language specific
  3793.        choices for quotation marks, ligatures and hypenation rules etc.
  3794.        The language attribute is composed from the two letter language
  3795.        code from ISO 639, optionally followed by a period and a two
  3796.        letter country code from ISO 3166. 
  3797.  
  3798.    CLASS 
  3799.        This a space separated list of SGML NAME tokens and is used to
  3800.        subclass tag names. By convention, the class names are
  3801.        interpreted hierarchically, with the most general class on the
  3802.        left and the most specific on the right, where classes are
  3803.        separated by a period. The CLASS attribute is most commonly used
  3804.        to attach a different style to some element, but it is
  3805.        recommended that where practical class names should be picked on
  3806.        the basis of the element's semantics, as this will permit other
  3807.        uses, such as restricting search through documents by matching
  3808.        on element class names. The conventions for choosing class names
  3809.        are outside the scope of this specification. 
  3810.  
  3811.    CLEAR 
  3812.        When text flows around a figure or table in the margin, you
  3813.        sometimes want to start term definition below the figure rather
  3814.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  3815.        
  3816.        
  3817.  
  3818.  
  3819. Dave Raggett                                                           Page 67
  3820. HTML 3.0                                                       28th March 1995
  3821.  
  3822.        clear=left
  3823.            move down until left margin is clear 
  3824.  
  3825.        clear=right
  3826.            move down until right margin is clear 
  3827.  
  3828.        clear=all
  3829.            move down until both margins are clear 
  3830.  
  3831.        Alternatively, you can decide to place the element alongside the
  3832.        figure just so long as there is enough room. The minimum width
  3833.        needed is specified as:
  3834.        
  3835.        
  3836.  
  3837.        clear="40 en"
  3838.            move down until there is at least 40 en units free 
  3839.  
  3840.        clear="100 pixels"
  3841.            move down until there is at least 100 pixels free 
  3842.  
  3843.        The style sheet (or browser defaults) may provide default
  3844.        minimum widths for each class of block-like elements. 
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876. Dave Raggett                                                           Page 68
  3877. HTML 3.0                                                       28th March 1995
  3878.  
  3879. Figures
  3880.  
  3881.    Permitted Context: %body.content, %flow, %block
  3882.    Content Model: Optional OVERLAYs followed by an optional CAPTION,
  3883.    then %body.content and finally an optional CREDIT 
  3884.  
  3885.    The FIG element is used for figures. Subsequent elements will be
  3886.    flowed around the figure if there is sufficient room. This behaviour
  3887.    is disabled when the align attribute is --center-- (the default) or
  3888.    --justify--. 
  3889.  
  3890.    Figure overlays provide for more effective use of caching as small
  3891.    changes to a figure in a subsequent document incur only the penalty
  3892.    of downloading the overlays and not the larger base figure, as the
  3893.    latter is already in the cache. 
  3894.  
  3895.    The figure description text is intended to convey the content of the
  3896.    figure for people with non-graphical user agents, while the figure
  3897.    caption and credit are rendered on both graphical and non-graphical
  3898.    user agents. The FIG element improves on the IMG element by allowing
  3899.    authors to use markup for the description text. The content model
  3900.    allows authors to include headers, which is appropriate when the
  3901.    headers are part of the image data. It also allows graphical
  3902.    hypertext links to be specified in the markup and interpreted by the
  3903.    user agent rather than the server. 
  3904.  
  3905.    The anchor elements in the figure description text play a dual role:
  3906.    Non-graphical user agents show conventional hypertext links, while
  3907.    for graphical user agents, the same anchor elements specify
  3908.    graphical hypertext links, with the SHAPE attribute designating the
  3909.    hotzones. This is designed to simplify the task of authors writing
  3910.    for both audiences. Hopefully, the FIG element will help to combat
  3911.    the tendency for authors to forget about people limited to terminal
  3912.    access or the visually impaired relying on text to speech, as the
  3913.    new element forces you to write description text to define the
  3914.    graphical hypertext links. 
  3915.  
  3916.    For some applications the hotzones are dynamically defined by
  3917.    programs running on the server. HTML 3.0 allows clicks and drags to
  3918.    be passed to the server with the IMAGEMAP attribute. Hotzones may
  3919.    also be specified as part of the graphics data format e.g. as in
  3920.    VRML. Hotzones in the FIG element take precedence over hotzones in
  3921.    the graphics data, which in turn take precedence over passing events
  3922.    to a server imagemap program. 
  3923.  
  3924.    Hotzones in overlay graphics data take precedence over hotzones in
  3925.    figure data. Similarly, the imagemap attribute in overlays takes
  3926.    precedence over the imagemap attribute for the figure. For a group
  3927.    of overlapping overlays the precedence is determined by the order
  3928.    the OVERLAY elements appear within the FIG element. Later overlays
  3929.    take precedence over earlier ones. 
  3930.  
  3931. Examples
  3932.  
  3933. Dave Raggett                                                           Page 69
  3934. HTML 3.0                                                       28th March 1995
  3935.  
  3936.  
  3937.    Photographic image with caption and credits: 
  3938.  
  3939.    <FIG SRC="nicodamus.jpeg">
  3940.      <CAPTION>Ground dweller: <I>Nicodamus bicolor</I>
  3941.      builds silk snares</CAPTION>
  3942.      <P>A small hairy spider light fleshy red in color with a brown abdomen.
  3943.      <CREDIT>J. A. L. Cooke/OSF</CREDIT>
  3944.    </FIG>
  3945.  
  3946.    Company home page: 
  3947.  
  3948.    <FIG SRC="mainmenu.gif">
  3949.     <H1>Access HP from Hewlett Packard</H1>
  3950.     <P>Select between:
  3951.     <UL>
  3952.      <LI><A HREF="guide.html" SHAPE="rect 30,200,60,16">Access Guide</A>
  3953.      <LI><A HREF="about.html" SHAPE="rect 100,200,50,16">About HP</A>
  3954.      <LI><A HREF="guide.html" SHAPE="rect 160,200,30,16">News</A>
  3955.      <LI><A HREF="guide.html" SHAPE="rect 200,200,50,16">Products</A>
  3956.      <LI><A HREF="guide.html" SHAPE="rect 260,200,80,16">Worldwide Contacts</A>
  3957.     </UL>
  3958.    </FIG>
  3959.  
  3960.    Aerial photograph with map overlay: 
  3961.  
  3962.    <FIG SRC="newyork.jpeg">
  3963.      <OVERLAY SRC="map.gif">
  3964.      <P>New York from the air!
  3965.    </FIG>
  3966.  
  3967. Permitted Attributes
  3968.  
  3969.    ID 
  3970.        An SGML identifier used as the target for hypertext links or for
  3971.        naming particular elements in associated style sheets.
  3972.        Identifiers are NAME tokens and must be unique within the scope
  3973.        of the current document. 
  3974.  
  3975.    LANG 
  3976.        This is one of the ISO standard language abbreviations, e.g.
  3977.        "en.uk" for the variation of English spoken in the United
  3978.        Kingdom. It can be used by parsers to select language specific
  3979.        choices for quotation marks, ligatures and hypenation rules etc.
  3980.        The language attribute is composed from the two letter language
  3981.        code from ISO 639, optionally followed by a period and a two
  3982.        letter country code from ISO 3166. 
  3983.  
  3984.    CLASS 
  3985.        This a space separated list of SGML NAME tokens and is used to
  3986.        subclass tag names. By convention, the class names are
  3987.        interpreted hierarchically, with the most general class on the
  3988.        left and the most specific on the right, where classes are
  3989.  
  3990. Dave Raggett                                                           Page 70
  3991. HTML 3.0                                                       28th March 1995
  3992.  
  3993.        separated by a period. The CLASS attribute is most commonly used
  3994.        to attach a different style to some element, but it is
  3995.        recommended that where practical class names should be picked on
  3996.        the basis of the element's semantics, as this will permit other
  3997.        uses, such as restricting search through documents by matching
  3998.        on element class names. The conventions for choosing class names
  3999.        are outside the scope of this specification. 
  4000.  
  4001.    CLEAR 
  4002.        When there is already a figure or table in the margin, you
  4003.        sometimes want to position another figure below the figure in
  4004.        the margin rather than alongside it. The CLEAR attribute allows
  4005.        you to move down unconditionally:
  4006.        
  4007.        
  4008.  
  4009.        clear=left
  4010.            move down until left margin is clear 
  4011.  
  4012.        clear=right
  4013.            move down until right margin is clear 
  4014.  
  4015.        clear=all
  4016.            move down until both margins are clear 
  4017.  
  4018.        Alternatively, you can decide to place the figure alongside the
  4019.        figure in the margin just so long as there is enough room. The
  4020.        minimum width needed is specified as:
  4021.        
  4022.        
  4023.  
  4024.        clear="40 en"
  4025.            move down until there is at least 40 en units free 
  4026.  
  4027.        clear="100 pixels"
  4028.            move down until there is at least 100 pixels free 
  4029.  
  4030.        The style sheet (or browser defaults) may provide default
  4031.        minimum widths for each class of block-like elements. 
  4032.  
  4033.    NOFLOW 
  4034.        The presence of this attribute disables text flow around the
  4035.        figure. It avoids the need to use the CLEAR or NEEDS attributes
  4036.        on the following element. 
  4037.  
  4038.    SRC 
  4039.        Specifies the figure's graphical content. The image is specified
  4040.        as a URI. This attribute may appear together with the MD
  4041.        attribute. 
  4042.  
  4043.    MD 
  4044.        Specifies a message digest or cryptographic checksum for the
  4045.        associated graphic specified by the SRC attribute. It is used
  4046.  
  4047. Dave Raggett                                                           Page 71
  4048. HTML 3.0                                                       28th March 1995
  4049.  
  4050.        when you want to be sure that a linked object is indeed the same
  4051.        one that the author intended, and hasn't been modified in any
  4052.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  4053.        specifies an MD5 checksum encoded as a base64 character string.
  4054.        The MD attribute is generally allowed for all elements which
  4055.        support URI based links. 
  4056.  
  4057.    ALIGN 
  4058.        Specifies horizontal alignment of the figure:
  4059.        
  4060.        
  4061.  
  4062.        BLEEDLEFT 
  4063.            Flush left with the left (window) border. 
  4064.  
  4065.        LEFT 
  4066.            Flush left with the left text margin. 
  4067.  
  4068.        CENTER 
  4069.            The figure is centered between the text margins and text
  4070.            flow around the figure is disabled. This is the default
  4071.            setting for ALIGN. 
  4072.  
  4073.        RIGHT 
  4074.            Flush right with the right text margin. 
  4075.  
  4076.        BLEEDRIGHT 
  4077.            Flush right with the right (window) border 
  4078.  
  4079.        JUSTIFY 
  4080.            When applicable the figure should be magnified or reduced to
  4081.            fill the space between the left and right text margins. Text
  4082.            flow around the figure is disabled for align=justify. 
  4083.  
  4084.    WIDTH 
  4085.        Specifies the desired width in pixels or en units (according to
  4086.        the value of the UNITS attribute). User agents may scale the
  4087.        figure image to match this width. 
  4088.  
  4089.    HEIGHT 
  4090.        Specifies the desired height in pixels or en units (according to
  4091.        the value of the UNITS attribute). User agents may scale the
  4092.        figure image to match this height. 
  4093.  
  4094.    UNITS 
  4095.        Specifies the choice of units for width and height. units=pixels
  4096.        (the default) specifies pixels, while units=en specifies en
  4097.        units. The en unit is a typographical unit equal to half the
  4098.        point size. 
  4099.  
  4100.    IMAGEMAP 
  4101.        Specifies a URI for processing image clicks and drags. 
  4102.  
  4103.  
  4104. Dave Raggett                                                           Page 72
  4105. HTML 3.0                                                       28th March 1995
  4106.  
  4107. Figure Overlays
  4108.  
  4109.    Permitted Context: start of FIG element
  4110.    Content Model: Empty! 
  4111.  
  4112.    The OVERLAY element is used to overlay images on top of a base
  4113.    figure. Figure overlays provide for more effective use of caching as
  4114.    small changes to a figure in a subsequent document incur only the
  4115.    penalty of downloading the overlays and not the larger base figure,
  4116.    as the latter is already in the cache. The overlay can be offset
  4117.    from the top left corner of the base image. 
  4118.  
  4119. Permitted Attributes
  4120.  
  4121.    SRC 
  4122.        Specifies the overlay image as a URI. This attribute may appear
  4123.        together with the MD attribute. 
  4124.  
  4125.    MD 
  4126.        Specifies a message digest or cryptographic checksum for the
  4127.        associated graphic specified by the SRC attribute. It is used
  4128.        when you want to be sure that a linked object is indeed the same
  4129.        one that the author intended, and hasn't been modified in any
  4130.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  4131.        specifies an MD5 checksum encoded as a base64 character string.
  4132.        The MD attribute is generally allowed for all elements which
  4133.        support URI based links. 
  4134.  
  4135.    UNITS 
  4136.        Specifies the choice of units for width and height: units=pixels
  4137.        (the default) specifies pixels, while units=en specifies en
  4138.        units (a typographical unit equal to half the point size). 
  4139.  
  4140.    X 
  4141.        The X offset from the top left corner of the base image. X
  4142.        increases to the right, and is given in pixels or en units
  4143.        (according to the value of the UNITS attribute). 
  4144.  
  4145.    Y 
  4146.        The Y offset from the top left corner of the base image. Y
  4147.        increases downwards, and is given in pixels or en units
  4148.        (according to the value of the UNITS attribute). 
  4149.  
  4150.    WIDTH 
  4151.        Specifies the desired width in pixels or en units (according to
  4152.        the value of the UNITS attribute). User agents may scale the
  4153.        figure image to match this width. 
  4154.  
  4155.    HEIGHT 
  4156.        Specifies the desired height in pixels or en units (according to
  4157.        the value of the UNITS attribute). User agents may scale the
  4158.        figure image to match this height. 
  4159.  
  4160.  
  4161. Dave Raggett                                                           Page 73
  4162. HTML 3.0                                                       28th March 1995
  4163.  
  4164.    IMAGEMAP 
  4165.        Specifies a URI for processing image clicks and drags. 
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218. Dave Raggett                                                           Page 74
  4219. HTML 3.0                                                       28th March 1995
  4220.  
  4221. Captions
  4222.  
  4223.    Permitted Context: TABLE or FIG
  4224.    Content Model: %text 
  4225.  
  4226.    The CAPTION element is used to label a table or figure. Use the
  4227.    align attribute to specify the position of the caption relative to
  4228.    the table/figure. For example: 
  4229.  
  4230.        <CAPTION ALIGN=LEFT>The Niagara Falls</CAPTION>
  4231.  
  4232.    --Should we provide separate align and valign attributes for
  4233.    controlling the horizontal and vertical positioning respectively?-- 
  4234.  
  4235. Permitted Attributes
  4236.  
  4237.    ID 
  4238.        An SGML identifier used as the target for hypertext links or for
  4239.        naming particular elements in associated style sheets.
  4240.        Identifiers are NAME tokens and must be unique within the scope
  4241.        of the current document. 
  4242.  
  4243.    LANG 
  4244.        This is one of the ISO standard language abbreviations, e.g.
  4245.        "en.uk" for the variation of English spoken in the United
  4246.        Kingdom. It can be used by parsers to select language specific
  4247.        choices for quotation marks, ligatures and hypenation rules etc.
  4248.        The language attribute is composed from the two letter language
  4249.        code from ISO 639, optionally followed by a period and a two
  4250.        letter country code from ISO 3166. 
  4251.  
  4252.    CLASS 
  4253.        This a space separated list of SGML NAME tokens and is used to
  4254.        subclass tag names. By convention, the class names are
  4255.        interpreted hierarchically, with the most general class on the
  4256.        left and the most specific on the right, where classes are
  4257.        separated by a period. The CLASS attribute is most commonly used
  4258.        to attach a different style to some element, but it is
  4259.        recommended that where practical class names should be picked on
  4260.        the basis of the element's semantics, as this will permit other
  4261.        uses, such as restricting search through documents by matching
  4262.        on element class names. The conventions for choosing class names
  4263.        are outside the scope of this specification. 
  4264.  
  4265.    ALIGN 
  4266.        Positioning of the caption relative to the table or figure it
  4267.        labels. The permitted values are: TOP, BOTTOM, LEFT or RIGHT. 
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275. Dave Raggett                                                           Page 75
  4276. HTML 3.0                                                       28th March 1995
  4277.  
  4278. Credits
  4279.  
  4280.    Permitted Context: BQ or FIG
  4281.    Content Model: %text 
  4282.  
  4283.    The CREDIT element is used to name the source of a block quotation
  4284.    or figure. For example: 
  4285.  
  4286.        <CREDIT>The Writer by Richard Wilbur</CREDIT>
  4287.  
  4288. Permitted Attributes for the CREDIT Element
  4289.  
  4290.    ID 
  4291.        An SGML identifier used as the target for hypertext links or for
  4292.        naming particular elements in associated style sheets.
  4293.        Identifiers are NAME tokens and must be unique within the scope
  4294.        of the current document. 
  4295.  
  4296.    LANG 
  4297.        This is one of the ISO standard language abbreviations, e.g.
  4298.        "en.uk" for the variation of English spoken in the United
  4299.        Kingdom. It can be used by parsers to select language specific
  4300.        choices for quotation marks, ligatures and hypenation rules etc.
  4301.        The language attribute is composed from the two letter language
  4302.        code from ISO 639, optionally followed by a period and a two
  4303.        letter country code from ISO 3166. 
  4304.  
  4305.    CLASS 
  4306.        This a space separated list of SGML NAME tokens and is used to
  4307.        subclass tag names. By convention, the class names are
  4308.        interpreted hierarchically, with the most general class on the
  4309.        left and the most specific on the right, where classes are
  4310.        separated by a period. The CLASS attribute is most commonly used
  4311.        to attach a different style to some element, but it is
  4312.        recommended that where practical class names should be picked on
  4313.        the basis of the element's semantics, as this will permit other
  4314.        uses, such as restricting search through documents by matching
  4315.        on element class names. The conventions for choosing class names
  4316.        are outside the scope of this specification. 
  4317.  
  4318.  
  4319.  
  4320.  
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328.  
  4329.  
  4330.  
  4331.  
  4332. Dave Raggett                                                           Page 76
  4333. HTML 3.0                                                       28th March 1995
  4334.  
  4335. Tables
  4336.  
  4337.    Permitted Context: %body.content, %flow, %block
  4338.    Content Model: Optional CAPTION, then one or more table rows (TR) 
  4339.  
  4340.    The HTML table model has been chosen for its simplicity and
  4341.    flexibility. By default the table is automatically sized according
  4342.    to the cell contents and the current window size. The COLSPEC
  4343.    attribute can be used when needed to exert control over column
  4344.    widths, either by setting explicit widths or by specifying relative
  4345.    widths. You can also specify the table width explicitly or as a
  4346.    fraction of the current margins (see WIDTH attribute). 
  4347.  
  4348.    Table start with an optional caption followed one or more rows. Each
  4349.    row is formed by one or more cells, which are differentiated into
  4350.    header and data cells. Cells can be merged across rows and columns,
  4351.    and include attributes assisting rendering to speech and braille, or
  4352.    for exporting table data into databases. The model provides little
  4353.    direct support for control over appearence, for example border
  4354.    styles and margins, as these can be handled via subclassing and
  4355.    associated style sheets. 
  4356.  
  4357.    Tables can contain a wide range of content, such as headers, lists,
  4358.    paragraphs, forms, figures, preformatted text and even nested
  4359.    tables. When the table is flush left or right, subsequent elements
  4360.    will be flowed around the table if there is sufficient room. This
  4361.    behaviour is disabled when the --noflow-- attribute is given or the
  4362.    table align attribute is --center-- (the default), or --justify--. 
  4363.  
  4364. Example
  4365.  
  4366.    <TABLE BORDER>
  4367.      <CAPTION>A test table with merged cells</CAPTION>
  4368.      <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
  4369.          <TH ROWSPAN=2>other<BR>category<TH>Misc
  4370.      <TR><TH>height<TH>weight
  4371.      <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
  4372.      <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
  4373.    </TABLE>
  4374.  
  4375.    This would be rendered something like: 
  4376.  
  4377.                  A test table with merged cells
  4378.        /--------------------------------------------------\
  4379.        |          |      Average      |  other   |  Misc  |
  4380.        |          |-------------------| category |--------|
  4381.        |          |  height |  weight |          |        |
  4382.        |-----------------------------------------|--------|
  4383.        | males    |   1.9   |  0.003  |          |        |
  4384.        |-----------------------------------------|--------|
  4385.        | females  |   1.7   |  0.002  |          |        |
  4386.        \--------------------------------------------------/
  4387.    
  4388.  
  4389. Dave Raggett                                                           Page 77
  4390. HTML 3.0                                                       28th March 1995
  4391.  
  4392.  
  4393.    There are several points to note: 
  4394.  
  4395.    *   By default, header cells are centered while data cells are flush
  4396.        left. This can be overriden by the ALIGN attribute for the cell;
  4397.        the COLSPEC attribute for the TABLE element; or the ALIGN
  4398.        attribute on the enclosing row's TR element (from the most
  4399.        specific to the least). 
  4400.  
  4401.    *   Cells may be empty. 
  4402.  
  4403.    *   Cells spanning rows contribute to the column count on each of
  4404.        the spanned rows, but only appear in the markup once (in the
  4405.        first row spanned). 
  4406.  
  4407.    *   If the column count for the table is greater than the number of
  4408.        cells for a given row (after including cells for spanned rows),
  4409.        the missing cells are treated as occurring on the right handside
  4410.        of the table, and rendered as empty cells. 
  4411.  
  4412.    *   The row count is determined by the TR elements - any rows
  4413.        implied by cells spanning rows beyond this should be ignored. 
  4414.  
  4415.    *   The user agent should be able to recover from a missing <TR> tag
  4416.        prior to the first row as the TH and TC elements can only occur
  4417.        within the TR element. 
  4418.  
  4419.    *   It is invalid to have cells overlap, see below for an example.
  4420.        In such cases, the rendering is implementation dependent. 
  4421.  
  4422.    An example of an invalid table: 
  4423.  
  4424.    <table border>
  4425.    <tr><tdrowspan=2>1<td>2<td>3<td>4<td>5
  4426.    <tr><td rowspan=2>6
  4427.    <tr><td colspan=2>7<td>8
  4428.    </table>
  4429.  
  4430.    which looks something like: 
  4431.  
  4432.        /-------------------\
  4433.        | 1 | 2 | 3 | 4 | 5 |
  4434.        |   |---------------|
  4435.        |   | 6 |   |   |   |    The cells labelled 6 and 7 overlap!
  4436.        |---|...|-----------|
  4437.        | 7 :   | 8 |   |   |
  4438.        \-------------------/
  4439.  
  4440.    Borderless tables are useful for layout purposes as well as their
  4441.    traditional role for tabular data, for instance with fill-out forms: 
  4442.  
  4443.                   name: [John Smith        ]
  4444.            card number: [4619 693523 20851 ]
  4445.  
  4446. Dave Raggett                                                           Page 78
  4447. HTML 3.0                                                       28th March 1995
  4448.  
  4449.                expires: [03] / [97]
  4450.              telephone: [212 873 2739      ]
  4451.  
  4452.    This can be represented as a table with one row and two columns. The
  4453.    first column is right aligned, while the second is left aligned.
  4454.    This example could be marked up as: 
  4455.  
  4456.    <table>
  4457.      <tr valign=baseline>
  4458.      <td align=right>
  4459.        name:<br>
  4460.        card number:<br>
  4461.        expires:<br>
  4462.        telephone:
  4463.      <td align=left>
  4464.        <input name="name" size=18><br>
  4465.        <input name="cardnum" size=18><br>
  4466.        <input name="expires-month" size=2> /
  4467.        <input name="expires-year" size=2><br>
  4468.        <input name="phone" size=18><br>
  4469.    </table>
  4470.    
  4471.  
  4472.    The use of such techniques is one of the motivations for using
  4473.    nested tables, where borderless tables are used to layout cell
  4474.    contents for an enclosing table 
  4475.  
  4476.    Hint: You can achieve a similar effect to the above by using decimal
  4477.    alignment and using the DP attribute to set the alignment character
  4478.    to a convenient character, for example: 
  4479.  
  4480.    <table>
  4481.      <tr align=decimal dp=":">
  4482.      <td>
  4483.        name: <input name="name" size=18><br>
  4484.        card number: <input name="cardnum" size=18><br>
  4485.        expires: <input name="expires-month" size=2> /
  4486.        <input name="expires-year" size=2><br>
  4487.        telephone:<input name="phone" size=18><br>
  4488.    </table>
  4489.    
  4490.  
  4491.    Each line in the table is then indented so that all the colons are
  4492.    positioned under one another. 
  4493.  
  4494. Table Sizing Algorithm
  4495.  
  4496.    The default sizing algorithm requires two passes through the table
  4497.    data. In the first pass, word wrapping is disabled, and the user
  4498.    agent keeps track of the minimum and maximum width of each cell. The
  4499.    maximum width is given by the widest line. As word wrap has been
  4500.    disabled, paragraphs are treated as long lines unless broken by <BR>
  4501.    elements. The minimum width is given by the widest word or image
  4502.  
  4503. Dave Raggett                                                           Page 79
  4504. HTML 3.0                                                       28th March 1995
  4505.  
  4506.    etc. taking into account leading indents and list bullets etc. In
  4507.    other words, if you were to format the cell's content in a window of
  4508.    its own, determine the minimum width you could make the window
  4509.    before things begin to be clipped. 
  4510.  
  4511.    The minimum and maximum cell widths are then used to determine the
  4512.    corresponding minimum and maximum widths for the columns. These in
  4513.    turn, are used to find the minimum and maximum width for the table.
  4514.    Note that cells can contain nested tables, but this doesn't
  4515.    complicate the code significantly. The next step is to assign column
  4516.    widths according to the current window size (more accurately - the
  4517.    width between the left and right margins). 
  4518.  
  4519.    The table borders and intercell margins need to be included in the
  4520.    assignment step. There are three cases: 
  4521.  
  4522.    1.  The minimum table width is equal to or wider than the available
  4523.        space. In this case, assign the minimum widths and allow the
  4524.        user to scroll horizontally. For conversion to braille, it will
  4525.        be necessary to replace the cells by references to notes
  4526.        containing their full content. By convention these appear before
  4527.        the table. 
  4528.  
  4529.    2.  The maximum table width fits within the available space. In this
  4530.        case, set the columns to their maximum widths. 
  4531.  
  4532.    3.  The maximum width of the table is greater than the available
  4533.        space, but the minimum table width is smaller. In this case,
  4534.        find the difference between the available space and the minimum
  4535.        table width, lets call it --W--. Lets also call --D-- the
  4536.        difference between maximum and minimum width of the table. 
  4537.  
  4538.        For each column, let --d-- be the the difference between maximum
  4539.        and minimum width of that column. Now set the column's width to
  4540.        the minimum width plus --d-- times --W-- over --D--. This makes
  4541.        columns with lots of text wider than columns with smaller
  4542.        amounts. 
  4543.  
  4544.    This assignment step is then repeated for nested tables. In this
  4545.    case, the width of the enclosing table's cell plays the role of the
  4546.    current window size in the above description. This process is
  4547.    repeated recursively for all nested tables. 
  4548.  
  4549.    If the COLSPEC attribute specifies the column widths explicitly, the
  4550.    user agent can attempt to use these values. If subsequently, one of
  4551.    the cells overflows its column width, the two pass mechanism may be
  4552.    invoked to redraw the table with more appropriate widths. If the
  4553.    attribute specifies relative widths, then the two pass model is
  4554.    always needed. 
  4555.  
  4556.    The column width assignment algorithm is then modified: 
  4557.  
  4558.    *   Explicit widths from the COLSPEC attribute should be used when
  4559.  
  4560. Dave Raggett                                                           Page 80
  4561. HTML 3.0                                                       28th March 1995
  4562.  
  4563.        given, provided they are greater than the minimum column width,
  4564.        otherwise the latter should be used. 
  4565.  
  4566.    *   For relative widths, the surplus space --W--, as defined above,
  4567.        is divided up between the columns appropriately, ensuring that
  4568.        each column is given at least its minimum width. If --W-- is
  4569.        zero or negative, column widths should be increased over the
  4570.        minimum width to meet the relative width requirements. 
  4571.  
  4572.    If the table width is specified with the WIDTH attribute, the user
  4573.    agent attempts to set column widths to match. The WIDTH attribute
  4574.    should be disregarded if this results in columns having less than
  4575.    their minimum widths. 
  4576.  
  4577. Permitted Attributes
  4578.  
  4579.    ID 
  4580.        An SGML identifier used as the target for hypertext links or for
  4581.        naming particular elements in associated style sheets.
  4582.        Identifiers are NAME tokens and must be unique within the scope
  4583.        of the current document. 
  4584.  
  4585.    LANG 
  4586.        This is one of the ISO standard language abbreviations, e.g.
  4587.        "en.uk" for the variation of English spoken in the United
  4588.        Kingdom. It can be used by parsers to select language specific
  4589.        choices for quotation marks, ligatures and hypenation rules etc.
  4590.        The language attribute is composed from the two letter language
  4591.        code from ISO 639, optionally followed by a period and a two
  4592.        letter country code from ISO 3166. 
  4593.  
  4594.    CLASS 
  4595.        This a space separated list of SGML NAME tokens and is used to
  4596.        subclass tag names. By convention, the class names are
  4597.        interpreted hierarchically, with the most general class on the
  4598.        left and the most specific on the right, where classes are
  4599.        separated by a period. The CLASS attribute is most commonly used
  4600.        to attach a different style to some element, but it is
  4601.        recommended that where practical class names should be picked on
  4602.        the basis of the element's semantics, as this will permit other
  4603.        uses, such as restricting search through documents by matching
  4604.        on element class names. The conventions for choosing class names
  4605.        are outside the scope of this specification. 
  4606.  
  4607.    CLEAR 
  4608.        When there is a figure or another table in the margin, you
  4609.        sometimes want to start another table below the figure rather
  4610.        than alongside it. The CLEAR attribute allows you to move down unconditionally:
  4611.        
  4612.        
  4613.  
  4614.        clear=left
  4615.            move down until left margin is clear 
  4616.  
  4617. Dave Raggett                                                           Page 81
  4618. HTML 3.0                                                       28th March 1995
  4619.  
  4620.  
  4621.        clear=right
  4622.            move down until right margin is clear 
  4623.  
  4624.        clear=all
  4625.            move down until both margins are clear 
  4626.  
  4627.        Alternatively, you can decide to place the table alongside the
  4628.        figure just so long as there is enough room. The minimum width
  4629.        needed is specified as:
  4630.        
  4631.        
  4632.  
  4633.        clear="40 en"
  4634.            move down until there is at least 40 en units free 
  4635.  
  4636.        clear="100 pixels"
  4637.            move down until there is at least 100 pixels free 
  4638.  
  4639.        The style sheet (or browser defaults) may provide default
  4640.        minimum widths for each class of block-like elements. 
  4641.  
  4642.    NOFLOW 
  4643.        The presence of this attribute disables text flow around the
  4644.        table. It avoids the need to use the CLEAR or NEEDS attributes
  4645.        on the following element. 
  4646.  
  4647.    ALIGN 
  4648.        Specifies horizontal alignment of the table (--not-- its contents):
  4649.        
  4650.        
  4651.  
  4652.        BLEEDLEFT 
  4653.            Flush left with the left (window) border. 
  4654.  
  4655.        LEFT 
  4656.            Flush left with the left text margin. 
  4657.  
  4658.        CENTER 
  4659.            The table is centered between the text margins and text flow
  4660.            around the table is disabled. This is the default setting
  4661.            for ALIGN. 
  4662.  
  4663.        RIGHT 
  4664.            Flush right with the right text margin. 
  4665.  
  4666.        BLEEDRIGHT 
  4667.            Flush right with the right (window) border 
  4668.  
  4669.        JUSTIFY 
  4670.            When applicable the table should be sized to fill the space
  4671.            between the left and right text margins. Text flow around
  4672.            the table is disabled for align=justify. 
  4673.  
  4674. Dave Raggett                                                           Page 82
  4675. HTML 3.0                                                       28th March 1995
  4676.  
  4677.  
  4678.    UNITS 
  4679.        Specifies the choice of units for the COLSPEC attribute:
  4680.        
  4681.        
  4682.  
  4683.        units=en 
  4684.            Specifies en units (a typographical unit equalt to half the
  4685.            point size). This is the default setting and allows user
  4686.            agents to render the table a row at a time without waiting
  4687.            until all of the table's data has been received. 
  4688.  
  4689.        units=relative 
  4690.            Used to set the relative width of columns. The user agent
  4691.            sums the values to determine the proportional width of each
  4692.            column. 
  4693.  
  4694.        units=pixels 
  4695.            The least useful! 
  4696.  
  4697.        A design issue for user agents is how to handle cases where cell
  4698.        contents won't fit into the specified column widths. One
  4699.        approach is to clip the contents to the given column width,
  4700.        another is to resize the columns to fit the contents regardless
  4701.        of the COLSPEC attribute (its best to wait until all of the
  4702.        table's data has been processed before resizing). 
  4703.  
  4704.    COLSPEC 
  4705.        The colspec attribute is a list of column widths and alignment
  4706.        specifications. The columns are listed from left to right with a
  4707.        capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
  4708.        The letter is L for left, C for center, R for right alignment of
  4709.        cell contents. J is for justification, when feasible, otherwise
  4710.        this is treated in the same way as L for left alignment. D is
  4711.        for decimal alignment, see DP attribute. 
  4712.  
  4713.        Capital letters are required to avoid a particularly common
  4714.        error when a lower case L is confused with a one. Column entries
  4715.        are delimited by one or more space characters. 
  4716.  
  4717.        The number specifies the width in en's, pixels or as a
  4718.        fractional value of the table width, as according to the
  4719.        associated units attribute. This approach is more compact than
  4720.        used with most SGML table models and chosen to simplify hand
  4721.        entry. The width attribute allows you to specify the width of
  4722.        the table in pixels, em units or as a percentage of the space
  4723.        between the current left and right margins. 
  4724.  
  4725.    DP 
  4726.        This specifies the character to be used for the decimal point
  4727.        with the COLSPEC attribute, e.g. dp="." (the default) or dp=",".
  4728.        The default may be altered by the language context, as set by
  4729.        the LANG attribute on enclosing elements. 
  4730.  
  4731. Dave Raggett                                                           Page 83
  4732. HTML 3.0                                                       28th March 1995
  4733.  
  4734.  
  4735.    WIDTH 
  4736.        This specifies the width of the table according to the UNITS
  4737.        attribute. If units=relative, the width is taken as a percentage
  4738.        of the width between the current left and right margins. The
  4739.        user agent should disregard this attribute if it would result in
  4740.        columns having less than their minimum widths. 
  4741.  
  4742.    BORDER 
  4743.        This presence of this attribute instructs the user agent to
  4744.        render borders around tables. For instance: <TABLE BORDER>. The
  4745.        precise appearence, along with the size of margins around cells,
  4746.        can be controlled by associated style sheets, or via information
  4747.        in the STYLE element in the document head. Subclassing tables,
  4748.        rows and cells is particularly useful in this regard. 
  4749.  
  4750.    NOWRAP 
  4751.        The NOWRAP attribute is used when you don't want the browser to
  4752.        automatically wrap lines. You can then explicitly specify line
  4753.        breaks in paragrphs using the BR element. 
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765.  
  4766.  
  4767.  
  4768.  
  4769.  
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.  
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788. Dave Raggett                                                           Page 84
  4789. HTML 3.0                                                       28th March 1995
  4790.  
  4791. Table Rows
  4792.  
  4793.    Permitted Context: TABLE
  4794.    Content Model: Table Cells (TH or TD) 
  4795.  
  4796.    The TR element acts as a container for a row of table cells defined
  4797.    with the TH or TD elements. You can set default horizontal and
  4798.    vertical alignment of cell contents for the row. You also have the
  4799.    ability to disable word wrap for the row, and thereafter use the
  4800.    <BR> element to determine line breaks and hence cell widths. 
  4801.  
  4802.    To assist with formatting tables to paged media, authors can
  4803.    differentiate leading and trailing rows that are to be duplicated
  4804.    when splitting tables across page boundaries. The recommended
  4805.    approach is to subclass rows using the CLASS attribute For example: 
  4806.  
  4807.        <TABLE BORDER COLSPEC= --...-->
  4808.          <TR CLASS=Header> --header cells ...--
  4809.          <TR CLASS=Body>   --body cells ...--
  4810.          <TR CLASS=Footer> --footer cells ...--
  4811.        </TABLE>
  4812.    
  4813.  
  4814.    Paged browsers when splitting a table across a page boundary, can
  4815.    then insert footer rows at the bottom of the current page and header
  4816.    rows at the top of the next page, followed by the remaining body
  4817.    rows, and the footer rows. This is repeated as necessary until all
  4818.    of the body rows have been rendered. Refinements of this scheme can
  4819.    be devised by further subclassing the rows together with an
  4820.    appropriate style sheet. 
  4821.  
  4822. Permitted Attributes for the TR Element
  4823.  
  4824.    ID 
  4825.        An SGML identifier used as the target for hypertext links or for
  4826.        naming particular elements in associated style sheets.
  4827.        Identifiers are NAME tokens and must be unique within the scope
  4828.        of the current document. 
  4829.  
  4830.    LANG 
  4831.        This is one of the ISO standard language abbreviations, e.g.
  4832.        "en.uk" for the variation of English spoken in the United
  4833.        Kingdom. It can be used by parsers to select language specific
  4834.        choices for quotation marks, ligatures and hypenation rules etc.
  4835.        The language attribute is composed from the two letter language
  4836.        code from ISO 639, optionally followed by a period and a two
  4837.        letter country code from ISO 3166. 
  4838.  
  4839.    CLASS 
  4840.        This a space separated list of SGML NAME tokens and is used to
  4841.        subclass tag names. By convention, the class names are
  4842.        interpreted hierarchically, with the most general class on the
  4843.        left and the most specific on the right, where classes are
  4844.  
  4845. Dave Raggett                                                           Page 85
  4846. HTML 3.0                                                       28th March 1995
  4847.  
  4848.        separated by a period. The CLASS attribute is most commonly used
  4849.        to attach a different style to some element, but it is
  4850.        recommended that where practical class names should be picked on
  4851.        the basis of the element's semantics, as this will permit other
  4852.        uses, such as restricting search through documents by matching
  4853.        on element class names. The conventions for choosing class names
  4854.        are outside the scope of this specification. 
  4855.  
  4856.    ALIGN 
  4857.        The ALIGN attribute can be used to explicitly specify the
  4858.        horizontal alignment of paragraphs within a table row:
  4859.        
  4860.        
  4861.  
  4862.        align=left 
  4863.            Paragraphs are rendered flush left. 
  4864.  
  4865.        align=center 
  4866.            Paragraphs are centered. 
  4867.  
  4868.        align=right 
  4869.            Paragraphs are rendered flush right. 
  4870.  
  4871.        align=justify 
  4872.            Text lines are justified where practical, otherwise this
  4873.            gives the same effect as the align=left setting. 
  4874.  
  4875.        align=decimal 
  4876.            Text lines are indented such that the first occurrence of a
  4877.            decimal point on each line are aligned vertically. If a line
  4878.            doesn't contain a decimal point, the line is rendered flush
  4879.            left for data cells and centered for header cells. 
  4880.  
  4881.        Note: By default, header cells are centered while data cells are
  4882.        flush left. This attribute can be used to alter these defaults
  4883.        on a row by row basis. If you are specifying column alignments
  4884.        with the TABLE's COLSPEC attribute, there is no point in also
  4885.        including an ALIGN attribute with the TR element, as the latter
  4886.        will be ignored. 
  4887.  
  4888.    DP 
  4889.        This specifies the character to be used for the decimal point
  4890.        with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
  4891.        The default may be altered by the language context, as set by
  4892.        the LANG attribute on enclosing elements. 
  4893.  
  4894.    VALIGN 
  4895.        The VALIGN attribute can be used to explicitly specify the
  4896.        vertical alignment of material within a table row. It is
  4897.        overridden by the VALIGN attribute on individual cells:
  4898.        
  4899.        
  4900.  
  4901.  
  4902. Dave Raggett                                                           Page 86
  4903. HTML 3.0                                                       28th March 1995
  4904.  
  4905.        valign=top 
  4906.            The cell contents appear at the top of each cell (the
  4907.            default). 
  4908.  
  4909.        valign=middle 
  4910.            Cell contents are centered vertically in each cell. 
  4911.  
  4912.        valign=bottom 
  4913.            The cell contents appear at the bottom of each cell. 
  4914.  
  4915.        valign=baseline 
  4916.            This is used when you want to ensure that all cells in the
  4917.            row share the same baseline. This constraint only applies to
  4918.            the first text line for each cell. 
  4919.  
  4920.    NOWRAP 
  4921.        The NOWRAP attribute is used when you don't want the browser to
  4922.        automatically wrap lines. You can then explicitly specify line
  4923.        breaks in paragrphs using the BR element. 
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959. Dave Raggett                                                           Page 87
  4960. HTML 3.0                                                       28th March 1995
  4961.  
  4962. Table Cells (TH and TD)
  4963.  
  4964.    Permitted Context: TR
  4965.    Content Model: %body.content 
  4966.  
  4967.    The TH and TD elements are used for table cells. TH is used for
  4968.    table header cells while TD is used for table data cells. This
  4969.    distinction gives user agents a means to render such cells
  4970.    distinctly, for instance by using a larger or heavier font for
  4971.    header cells. It is also needed when rendering to speech. The CLASS
  4972.    attribute can be used to further differentiate cells, for instance
  4973.    into heads and subheads. This can be used together with style sheets
  4974.    to control the cell border style, and fill color etc. 
  4975.  
  4976.    The horizontal and vertical alignment of cell contents are
  4977.    determined by the ALIGN and VALIGN attributes respectively. In their
  4978.    absence, the alignment will be inherited from the TR element for the
  4979.    row. The COLSPEC attribute of the enclosing TABLE element provides a
  4980.    convenient way of specifying the default horizontal alignment for
  4981.    columns. 
  4982.  
  4983.    The AXIS and AXES attributes can be used when rendering to speech to
  4984.    provide abbreviated names for each cell's headers. Another
  4985.    application is when you want to be able to later process table
  4986.    contents to enter them into a database. Theses attributes are then
  4987.    used to give database field names. The table's class attribute
  4988.    should be used to let the software recognise which tables can be
  4989.    treated in this way. 
  4990.  
  4991.    Note: Disabling word wrap and using the <BR> element in order to
  4992.    control cell widths is discouraged in favor of using the table
  4993.    COLSPEC and WIDTH attributes. 
  4994.  
  4995. Permitted Attributes for the TH/TD Element
  4996.  
  4997.    ID 
  4998.        An SGML identifier used as the target for hypertext links or for
  4999.        naming particular elements in associated style sheets.
  5000.        Identifiers are NAME tokens and must be unique within the scope
  5001.        of the current document. 
  5002.  
  5003.    LANG 
  5004.        This is one of the ISO standard language abbreviations, e.g.
  5005.        "en.uk" for the variation of English spoken in the United
  5006.        Kingdom. It can be used by parsers to select language specific
  5007.        choices for quotation marks, ligatures and hypenation rules etc.
  5008.        The language attribute is composed from the two letter language
  5009.        code from ISO 639, optionally followed by a period and a two
  5010.        letter country code from ISO 3166. 
  5011.  
  5012.    CLASS 
  5013.        This a space separated list of SGML NAME tokens and is used to
  5014.        subclass tag names. By convention, the class names are
  5015.  
  5016. Dave Raggett                                                           Page 88
  5017. HTML 3.0                                                       28th March 1995
  5018.  
  5019.        interpreted hierarchically, with the most general class on the
  5020.        left and the most specific on the right, where classes are
  5021.        separated by a period. The CLASS attribute is most commonly used
  5022.        to attach a different style to some element, but it is
  5023.        recommended that where practical class names should be picked on
  5024.        the basis of the element's semantics, as this will permit other
  5025.        uses, such as restricting search through documents by matching
  5026.        on element class names. The conventions for choosing class names
  5027.        are outside the scope of this specification. 
  5028.  
  5029.    COLSPAN 
  5030.        The number of columns spanned by this cell. This allows you to
  5031.        merge cells across columns. It defaults to 1 (one). 
  5032.  
  5033.    ROWSPAN 
  5034.        The number of rows spanned by this cell. This allows you to
  5035.        merge cells across rows. It defaults to 1 (one). 
  5036.  
  5037.    ALIGN 
  5038.        The ALIGN attribute can be used to explicitly specify the
  5039.        horizontal alignment of paragraphs within a table row:
  5040.        
  5041.        
  5042.  
  5043.        align=left 
  5044.            Paragraphs are rendered flush left. This is the default for
  5045.            data cells (TD). 
  5046.  
  5047.        align=center 
  5048.            Paragraphs are centered. This is the default for header
  5049.            cells (TH). 
  5050.  
  5051.        align=right 
  5052.            Paragraphs are rendered flush right. 
  5053.  
  5054.        align=justify 
  5055.            Text lines are justified where practical, otherwise this
  5056.            gives the same effect as the align=left setting. 
  5057.  
  5058.        align=decimal 
  5059.            Text lines are indented such that the first occurrence of a
  5060.            decimal point on each line are aligned vertically. If a line
  5061.            doesn't contain a decimal point, the line is rendered flush
  5062.            left for data cells and centered for header cells. 
  5063.  
  5064.        Note: In the absence of the ALIGN attribute, the default is
  5065.        overridden by the presence of an ALIGN attribute on the parent
  5066.        TR element, or by the COLSPEC attribute on the TABLE element.
  5067.        The COLSPEC attribute takes precedence over the TR element
  5068.        though! 
  5069.  
  5070.    DP 
  5071.        This specifies the character to be used for the decimal point
  5072.  
  5073. Dave Raggett                                                           Page 89
  5074. HTML 3.0                                                       28th March 1995
  5075.  
  5076.        with the ALIGN attribute, e.g. dp="." (the default) or dp=",".
  5077.        The default may be altered by the language context, as set by
  5078.        the LANG attribute on enclosing elements. 
  5079.  
  5080.    VALIGN 
  5081.        The VALIGN attribute can be used to explicitly specify the
  5082.        vertical alignment of material within a table cell:
  5083.        
  5084.        
  5085.  
  5086.        valign=top 
  5087.            The cell contents appear at the top of each cell (the
  5088.            default). 
  5089.  
  5090.        valign=middle 
  5091.            Cell contents are centered vertically in each cell. 
  5092.  
  5093.        valign=bottom 
  5094.            The cell contents appear at the bottom of each cell. 
  5095.  
  5096.        valign=baseline 
  5097.            This is used when you want to ensure that all cells in the
  5098.            row with valign=baseline share the same baseline. This
  5099.            constraint only applies to the first text line for each
  5100.            cell. 
  5101.  
  5102.        Note: In the absence of the VALIGN attribute, the default can be
  5103.        overridden by the presence of a VALIGN attribute on the parent
  5104.        TR element. 
  5105.  
  5106.    NOWRAP 
  5107.        The NOWRAP attribute is used when you don't want the browser to
  5108.        automatically wrap lines. You can then explicitly specify line
  5109.        breaks in paragraphs using the BR element. 
  5110.  
  5111.    AXIS 
  5112.        This defines an abbreviated name for a header cell, which can be
  5113.        used when rendering to speech. It defaults to the cell's
  5114.        content. 
  5115.  
  5116.    AXES 
  5117.        This is a comma separated list of axis names which together
  5118.        identify the row and column headers that pertain to this cell.
  5119.        It is used when rendering to speech to identify the cell's
  5120.        position in the table. If missing the user agent can try to
  5121.        follow up columns and left along rows (right for some languages)
  5122.        to find the corresponding header cells. 
  5123.  
  5124.        Note: a subheader cell may include both attributes - using AXIS
  5125.        to name itself and AXES to name the parent header cell. When
  5126.        data cells refer to header cells with both attributes, the
  5127.        parent header cells are found by following back the head-subhead
  5128.        relationships. 
  5129.  
  5130. Dave Raggett                                                           Page 90
  5131. HTML 3.0                                                       28th March 1995
  5132.  
  5133.  
  5134.  
  5135.  
  5136.  
  5137.  
  5138.  
  5139.  
  5140.  
  5141.  
  5142.  
  5143.  
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  
  5153.  
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160.  
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.  
  5185.  
  5186.  
  5187. Dave Raggett                                                           Page 91
  5188. HTML 3.0                                                       28th March 1995
  5189.  
  5190. HTML Math
  5191.  
  5192.    Permitted Context: %text
  5193.    Content Model: %math 
  5194.  
  5195.    The <MATH> element is used to include math expressions in the
  5196.    current line. HTML math is powerful enough to describe the range of
  5197.    math expressions you can create in common word processing packages,
  5198.    as well as being suitable for rendering to speech. When rendering to
  5199.    fixed pitch text-only media, simple text graphics can be used for
  5200.    math symbols such as the integration sign, while other symbols can
  5201.    be rendered using their entity names. The SGML SHORTREF capability
  5202.    is used to provide abbreviations for hidden brackets, subscripts and
  5203.    superscripts. 
  5204.  
  5205.    The design of HTML math owes a lot to LaTeX's math mode, which has
  5206.    been found to be effective for a wide variety of mathematical
  5207.    typesetting. Where practical, HTML math uses tag names matching
  5208.    LaTeX commands, e.g. ATOP, CHOOSE and SQRT act in the same way as
  5209.    their LaTeX namesakes. Of course, SGML and LaTeX have quite
  5210.    different syntactical conventions. As a result, HTML math uses the
  5211.    ISO entity names for symbols rather than the TeX names. In LaTeX,
  5212.    the character command ^ sets the next character as an exponent,
  5213.    while the character command _ sets it as an index. If the exponent
  5214.    or index contains more than one character then the group of
  5215.    characters must be enclosed in curly brackets { }. This syntax is
  5216.    inappropriate for SGML, so HTML math instead treats _ and ^ as
  5217.    shortref characters for the SUB and SUP elements which are used for
  5218.    indices and exponents, respectively. 
  5219.  
  5220.    --I can't find the ISO entity names for the _ and ^ chararacters!-- 
  5221.  
  5222.    HTML math has been designed to be both concise and comparatively
  5223.    easy to read. In practice, formulae will be a little longer than in
  5224.    LaTeX, but much shorter than with other math proposals for SGML, for
  5225.    instance EuroMath or ISO 12083. This simplification has been
  5226.    achieved through the power of the BOX element, which replaces many
  5227.    elements in other proposals, as well as the simple conventions for
  5228.    binding the SUB and SUP elements and their use as generic raising
  5229.    and lowering operators. HTML math differentiates terms e.g. binary
  5230.    operators, variables, constants, integral signs, delimiters and so
  5231.    on. This simplifies rendering and reflects the assumptions adopted
  5232.    by LaTeX. It further allows the same raising and lowering operators
  5233.    to be used for many different roles according to the term they apply
  5234.    to. HTML math doesn't provide direct support for multi-line
  5235.    equations, as this can be effectively handled by combining math with
  5236.    the TABLE element. 
  5237.  
  5238.    Example - the integral from a to b of f(x) over 1+x 
  5239.  
  5240.        <MATH>∫_a_^b^{f(x)<over>1+x} dx</MATH>
  5241.  
  5242.    which can be rendered on a fixed pitch text-only medium as: 
  5243.  
  5244. Dave Raggett                                                           Page 92
  5245. HTML 3.0                                                       28th March 1995
  5246.  
  5247.  
  5248.             b
  5249.             /   f(x)
  5250.             | ------- dx
  5251.             /  1 + x
  5252.             a
  5253.  
  5254.    The example uses { and } as shortrefs for <BOX> and </BOX>
  5255.    respectively. This is used for invisible brackets, stretchy
  5256.    delimiters and integral signs, and placing one thing over another.
  5257.    The shortref characters "_" and "^" are used for subscripts and
  5258.    superscripts respectively. 
  5259.  
  5260.    HTML math follows general practice in mathematical typesetting by
  5261.    rendering functions, numbers and other constants in an upright font,
  5262.    while variables are rendered in an italic font. You can set
  5263.    particular terms in a bold face, and for chemical formulae, you can
  5264.    force the use of an upright font. Limits for symbols like the
  5265.    integral and summation signs are placed directly above (below) the
  5266.    symbol or to the immediate right depending on the symbol. 
  5267.  
  5268.    Spacing between constants, variables and operators is determined
  5269.    automatically. Additional spacing can be inserted with entities such
  5270.    as   &sp; and &quadsp;. White space in the markup is used
  5271.    only to delimit adjacent variables or constants. You don't need
  5272.    spaces before or after binary operators or other special symbols, as
  5273.    these are recognised by the HTML math tokeniser. White space can be
  5274.    useful, though, for increased legibility while authoring.
  5275.    --I need to check on the ISO entity names for spacing!-- 
  5276.  
  5277. Math Markup
  5278.  
  5279.    The following elements are permitted within MATH elements: 
  5280.  
  5281.    BOX 
  5282.        Used for hidden brackets, stretchy delimiters, and placing one
  5283.        expression over another (e.g. numerators and denominators). 
  5284.  
  5285.    SUB, SUP 
  5286.        Subscripts and superscripts. Also used for limits. 
  5287.  
  5288.    ABOVE 
  5289.        Used to draw an arrow, line or symbol above an expression. 
  5290.  
  5291.    BELOW 
  5292.        Used to draw an arrow, line or symbol below an expression. 
  5293.  
  5294.    VEC, BAR, DOT, DDOT, HAT, TILDE 
  5295.        These are convenience tags for common accents as an alternative
  5296.        to using ABOVE. 
  5297.  
  5298.    SQRT, ROOT 
  5299.        For square roots and other roots of an expression. 
  5300.  
  5301. Dave Raggett                                                           Page 93
  5302. HTML 3.0                                                       28th March 1995
  5303.  
  5304.  
  5305.    ARRAY 
  5306.        For matrices and other kinds of arrays. 
  5307.  
  5308.    TEXT 
  5309.        Used to include a short piece of text within a math element, and
  5310.        often combined with SUB or SUP elements. 
  5311.  
  5312.    B, T, BT 
  5313.        These elements are used override the default rendering. B
  5314.        renders the enclosed expression in an bold face. T designates a
  5315.        term to be rendered in an upright font, while BT designates a
  5316.        term to be rendered in a bold upright font. The class attribute
  5317.        can be used to describe the kind of term, e.g. vector, tensor,
  5318.        or matrix. 
  5319.  
  5320. HTML Math Entities
  5321.  
  5322.    *   Functions 
  5323.  
  5324.    *   Operators 
  5325.  
  5326.    *   Continuation dots 
  5327.  
  5328.    *   Greek letters 
  5329.  
  5330.    *   Relations 
  5331.  
  5332.    *   Accents, arrows and pointers 
  5333.  
  5334.    *   Delimiters 
  5335.  
  5336.    *   Other symbols. 
  5337.  
  5338.    *   Spacing entities. 
  5339.  
  5340. Rendering HTML Math
  5341.  
  5342.    The expression is rendered in three steps: 
  5343.  
  5344.    1.  The first step recursively parses expressions building up a
  5345.        matching hierarchy of data structures (with bounding boxes)
  5346.        corresponding to sequences of nested expressions. The math
  5347.        tokeniser needs to be able to distinguish constants, variables,
  5348.        functions, operators, delimiters, and special symbols such as
  5349.        integrals, which can take limits and may be stretchy. 
  5350.  
  5351.    2.  The next step sets the size of the innermost expressions based
  5352.        on the size of available fonts. If possible subscript and
  5353.        superscript expressions should be set in a smaller font. The
  5354.        size and relative positioning of neighboring and enclosing
  5355.        expressions is then propagated up the hierarchy from the
  5356.        innermost outwards, as the procedure stack formed in step (1)
  5357.  
  5358. Dave Raggett                                                           Page 94
  5359. HTML 3.0                                                       28th March 1995
  5360.  
  5361.        unwinds. 
  5362.  
  5363.    3.  The final step is to render the hierarchy of expressions to the
  5364.        output medium. This is now straight forward as all the
  5365.        positioning and sizes of special symbols and text strings are
  5366.        now fixed. 
  5367.  
  5368.    Note: In practice, only a limited range of font sizes are suitable,
  5369.    as a result, deeply nested expressions like continued fractions
  5370.    can't use ever smaller fonts. This is simply handled by a parameter
  5371.    to the --ParseExpression-- routine that sets the font size to be
  5372.    used for that expression. ParseExpression is called recursively for
  5373.    nested expressions and uses the next smaller font until it bottoms
  5374.    out with the smallest font available. The size parameter corresponds
  5375.    to an enumeration of the available font sizes. 
  5376.  
  5377. Permitted Attributes
  5378.  
  5379.    ID 
  5380.        An SGML identifier used as the target for hypertext links or for
  5381.        naming particular elements in associated style sheets.
  5382.        Identifiers are NAME tokens and must be unique within the scope
  5383.        of the current document. 
  5384.  
  5385.    CLASS 
  5386.        This a space separated list of SGML NAME tokens and is used to
  5387.        subclass tag names. By convention, the class names are
  5388.        interpreted hierarchically, with the most general class on the
  5389.        left and the most specific on the right, where classes are
  5390.        separated by a period. 
  5391.  
  5392.        For the MATH element, CLASS can be used to describe the kind of
  5393.        math expression involved. This can be used to alter the way
  5394.        formulae are rendered, and to support exporting the expression
  5395.        to symbolic math software. The class "chem" is useful for
  5396.        chemical formulae which use an upright font for variables rather
  5397.        than the default italic font. For example: 
  5398.  
  5399.            <math class=chem> Fe_2_^2+^Cr_2_O_4_</math>
  5400.  
  5401.                                2+
  5402.        which is rendered as  Fe  Cr  O
  5403.                                2   2  4
  5404.  
  5405.        Otherwise, the conventions for choosing class names are outside
  5406.        the scope of this specification. 
  5407.  
  5408.    BOX 
  5409.        The presence of this attribute causes the user agent to draw a
  5410.        rectangular box around the formulae. 
  5411.  
  5412.  
  5413.  
  5414.  
  5415. Dave Raggett                                                           Page 95
  5416. HTML 3.0                                                       28th March 1995
  5417.  
  5418. The BOX element
  5419.  
  5420.    Permitted Context: %math
  5421.    Content Model: %math?, LEFT?, expression, RIGHT?, %math?
  5422.    where expression is %math or %math --tag-- %math, see below. 
  5423.  
  5424.    The BOX element is used for a variety of purposes: 
  5425.  
  5426.    *   As invisible brackets for disambiguating expressions. 
  5427.  
  5428.    *   For placing numerators over denominators, with or without
  5429.        dividing lines, corresponding to LaTeX's --frac, atop-- and
  5430.        --choose-- commands. 
  5431.  
  5432.    *   For placing delimiters before, and/or after an expression, which
  5433.        grow to match the height of the expression. This corresponds to
  5434.        LaTeX's --left-- and --right-- commands. 
  5435.  
  5436.    *   For stretchy integral and related signs that grow to match the
  5437.        height of the integrand. This goes beyond LaTeX and avoids the
  5438.        need for different symbols for different sizes of integral signs
  5439.        etc. 
  5440.  
  5441.    The SHORTREF characters { and } are used as abbreviations for the
  5442.    start and end tags for BOX elements. Use the SGML entities {
  5443.    and } respectively when you need to use these characters
  5444.    literally. 
  5445.  
  5446.    Short fractions, are best represented using the slash character / as
  5447.    in <math>(n + m)/2</math> for (n + m)/2. For more complicated
  5448.    fractions you can use the BOX element with the OVER tag, as in: 
  5449.  
  5450.             1
  5451.           -----          {1<over>x + y}
  5452.           x + y
  5453.    
  5454.           x - y
  5455.         ---------        {x - y<over>1 + {a - b<over>a + b}}
  5456.             a - b
  5457.         1 + -----
  5458.             a + b
  5459.    
  5460.  
  5461.    Use the ATOP tag when you want to place one thing above another, but
  5462.    without the dividing line. With the CHOOSE tag, the expressions are
  5463.    also enclosed within round brackets, for instance: 
  5464.  
  5465.           a - b
  5466.                                      {a - b<atop>a + b}
  5467.           a + b
  5468.           
  5469.    
  5470.      (n + 1)   ( n )   (  n  )       {n+1<choose>k}
  5471.  
  5472. Dave Raggett                                                           Page 96
  5473. HTML 3.0                                                       28th March 1995
  5474.  
  5475.      (     ) = (   ) + (     )          = {n<choose>k}
  5476.      (  k  )   ( k )   (k - 1)             + {n<choose>k-1}
  5477.    
  5478.  
  5479.    The BOX element can be used with the LEFT and RIGHT tags for
  5480.    delimiters that stretch to match the size of the enclosed
  5481.    expression. You are free to give only one or both of the delimiters,
  5482.    and you can use different symbols for the left and right. Left
  5483.    delimiters should be given before the LEFT tag, while right
  5484.    delimiters should be given following the RIGHT tag, for instance: 
  5485.  
  5486.                  ( 1 + x )       f(x) = {(<left>
  5487.           f(x) = ( ----- )                 1+x<over> sin x
  5488.                  ( sin x )                  <right>)}
  5489.  
  5490.    For curly brackets you will need to use the { and }
  5491.    entities for { and } respectively. The SIZE attribute can be used to
  5492.    get oversized delimiters, for instance: 
  5493.  
  5494.             2 |          |
  5495.        omega  |          |        {ω^2^<over>c^2^}
  5496.        -----  |<j| mu |i>|         <box size=huge> | <left>
  5497.           2   |      z   |              <j | μ_z_ | i>
  5498.          c    |          |           <right> | </box>
  5499.  
  5500.    The full tag name for the BOX element is needed above in order to
  5501.    specify a value for the SIZE attribute. The BOX element is also
  5502.    useful for stretching integral signs to match the height of the
  5503.    integrand. The integral and its limits appear in the position of the
  5504.    left delimiter for the BOX element. You can also include multiple
  5505.    integrals, for instance: 
  5506.  
  5507.       inf inf
  5508.        /   /  f(x, y)           {∫_0_^&inf;^ ∫_0_^&inf;^<left>
  5509.        |   | --------- dx dy        f(x,y)<over>x^2^ + y^2^} dx dy
  5510.        |   |   2     2
  5511.        /   /  x  +  y
  5512.        0   0
  5513.  
  5514. Permitted Attributes for the BOX element
  5515.  
  5516.    SIZE 
  5517.        This used to obtain oversized delimiters. The permitted values
  5518.        are --normal-- (the default), --medium--, --large-- and
  5519.        --huge--. 
  5520.  
  5521.    Note: there are no attributes for the LEFT, RIGHT, OVER, ATOP and
  5522.    CHOOSE tags.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529. Dave Raggett                                                           Page 97
  5530. HTML 3.0                                                       28th March 1995
  5531.  
  5532. SUB and SUP
  5533.  
  5534.    Permitted Context: %math
  5535.    Content Model: %math 
  5536.  
  5537.    The SUB and SUP elements are used for subscripts and superscripts
  5538.    respectively, and are preferably rendered in reduced font. For
  5539.    integral and related signs the SUB and SUP elements are used for the
  5540.    lower and upper limits, for instance: 
  5541.  
  5542.       ∑<sub>n = 0</sub><sup>&inf;</sup>
  5543.  
  5544.    which renders to (within limits of ascii art): 
  5545.  
  5546.      infinity
  5547.        ---
  5548.        \
  5549.        /
  5550.        ---
  5551.       n = 0
  5552.  
  5553.    The SGML SHORTREF characters "_" and "^" can be used as
  5554.    abbreviations. The above example is abbreviated to: 
  5555.  
  5556.        ∑_n = 0_^&inf;^
  5557.  
  5558.    --Need to give entity names for when you need the _ and ^
  5559.    characters!-- 
  5560.  
  5561.    You have to revert to the full form of the tags when superscripting
  5562.    a superscript or subscripting a subscript, as in: 
  5563.  
  5564.        X<sub>a<sub>i</sub></sub>  which is  X    
  5565.                                              a   
  5566.                                               i                     
  5567.    
  5568.  
  5569.    You can also use superscripts to place expressions or words over
  5570.    binary operators, for instance in the following chemical reaction: 
  5571.  
  5572.        4LiH + AlCl_3_ →^ether^ LiAlH_4_ + 3LiCl
  5573.  
  5574.    which renders as: 
  5575.  
  5576.                       ether
  5577.         4LiH + AlCl  ------>  LiAlH  +  3LiCl
  5578.             3                      4
  5579.  
  5580.    The superscript is centered over the operator, and when feasible the
  5581.    operator stretched to match the width of the superscript. 
  5582.  
  5583.    Note: Dont' use the shortrefs for SUB and SUP in normal text - they
  5584.    only work within MATH elements! 
  5585.  
  5586. Dave Raggett                                                           Page 98
  5587. HTML 3.0                                                       28th March 1995
  5588.  
  5589.  
  5590. Placement of subscripts and superscripts
  5591.  
  5592.    Some times you will want to place superscripts to the left of a
  5593.    term. The simplest way to do this is with shortrefs, e.g. 
  5594.  
  5595.        _4_^9^Be + _2^4^He → _6_^12^C + _0_^1^n
  5596.  
  5597.    which renders to (within limits of ascii art): 
  5598.  
  5599.         9      4        12    1
  5600.          Be +   He  -->   C +  n
  5601.         4      2         6    0
  5602.  
  5603.    Subscripts and superscripts immediately before a term are rendered
  5604.    to the left of the term, where as subscripts and superscripts
  5605.    immediately after a term are rendered on its right. Opportunities
  5606.    for confusion arise when scripts for a preceding term are followed
  5607.    by scripts for another term. The simplest solution is to use
  5608.    whitespace to disambiguate the situation. For instance: 
  5609.  
  5610.                          b                           b
  5611.        X_a_ ^b^Y  is  X   Y   while  X_a_^b^Y   is  X   Y
  5612.                        a                             a
  5613.                                               a  b
  5614.        but both X^a^ ^b^Y and X^a^^b^Y  are  X    Y   
  5615.    
  5616.  
  5617.    The last case is disambiguated because the two superscript elements
  5618.    can't both apply to the preceding term, as they can't both be drawn
  5619.    in the same position. The same would apply to two subscript
  5620.    elements. If in any doubt, its wise to insert a space to make your
  5621.    meaning clear! If you prefer, you can use curly brackets, as in:
  5622.    {X_a_}{^b^Y}. These brackets are shortrefs for the BOX element and
  5623.    don't appear when the expression is finally rendered. 
  5624.  
  5625.    The same rules apply when you use the full form of the SUB and SUP
  5626.    elements. The ALIGN attribute can be used to override the default
  5627.    position to render the script, which is normally taken from whether
  5628.    the script element precedes or follows the term to which it applies.
  5629.    For instance: 
  5630.  
  5631.        X<sub align=right>a</sub> <sup align=left>b</sup>Y
  5632.        X<sub align=right>a</sub>Y<sup align=left>b</sup>
  5633.        
  5634.                              b
  5635.        both render to    X    Y
  5636.                           a
  5637.    
  5638.        while  X<sub align=right>a</sub><sup align=left>b</sup>Y
  5639.    
  5640.                        b
  5641.        renders to       X   Y
  5642.  
  5643. Dave Raggett                                                           Page 99
  5644. HTML 3.0                                                       28th March 1995
  5645.  
  5646.                          a
  5647.    
  5648.  
  5649.    In the last case, the SUP element act as a prefix superscript to X
  5650.    as there isn't a delimiter between it and the preceding SUB element.
  5651.    If in doubt, you should use brackets or whitespace to disambiguate
  5652.    the binding. 
  5653.  
  5654. Permitted Attributes
  5655.  
  5656.    The ID, LANG and CLASS attributes for SUB and SUP are not used
  5657.    within MATH elements. 
  5658.  
  5659.    ALIGN 
  5660.        Subscripts and superscripts are normally placed to the right of
  5661.        the term to which they apply, while limits are normally placed
  5662.        above (or below) the symbol they apply to. The ALIGN attribute
  5663.        can be used to override the default positioning. 
  5664.        
  5665.        
  5666.  
  5667.        align=left 
  5668.            The script (or limit) is placed to the left of the term. 
  5669.  
  5670.        align=center 
  5671.            The script is centered on the term and placed below it for
  5672.            subscripts, and above it (for superscipts). 
  5673.  
  5674.        align=right 
  5675.            The scripts are placed to the right of the term. 
  5676.  
  5677.        For example, you can force limits on integral signs to appear on
  5678.        the right rather than centered on the integral sign: 
  5679.  
  5680.        ∫<sub align=right>0</sub><sup align=right>&inf;</sup>
  5681.  
  5682.        Note: The ALIGN attribute should be ignored by user agents for
  5683.        the SUB and SUP elements except within MATH elements. 
  5684.  
  5685.  
  5686.  
  5687.  
  5688.  
  5689.  
  5690.  
  5691.  
  5692.  
  5693.  
  5694.  
  5695.  
  5696.  
  5697.  
  5698.  
  5699.  
  5700. Dave Raggett                                                          Page 100
  5701. HTML 3.0                                                       28th March 1995
  5702.  
  5703. The ABOVE element
  5704.  
  5705.    Permitted Context: %math
  5706.    Content Model: %math 
  5707.  
  5708.    The <ABOVE> element is used to draw a line, arrow, curly bracket, or
  5709.    accent --above-- the expression enclosed by this element. Stretchy
  5710.    symbols should be stretched to match the width of the enclosed
  5711.    expression. For example: 
  5712.  
  5713.                                         _____
  5714.        <above>X + Y</above>    giving   X + Y
  5715.    
  5716.                                                   =====
  5717.        <above sym=equals>X + Y</above>   giving   X + Y
  5718.    
  5719.  
  5720.    You can also place an expression centered above the line or arrow
  5721.    with the SUP element or its shortref form, for example: 
  5722.  
  5723.    <above sym=cub>n(n - 1)(n - 2)&dots;(n - m + 1)</above>
  5724.    <sup><text>total of m factors</text></sup>
  5725.    
  5726.  
  5727.    which would be rendered as (within limits of ascii art): 
  5728.  
  5729.               total of m factors
  5730.        /---------------^-------------\
  5731.        n(n - 1)(n - 2) ... (n - m + 1)
  5732.  
  5733. Permitted Attributes
  5734.  
  5735.    SYM 
  5736.        An entity name for a symbol, e.g. --cub-- for a curly bracket
  5737.        (brace). Defaults to --line--. The other choices are: --larr--
  5738.        (left arrow), --rarr-- (right arrow), --hat-- and --tilde--. 
  5739.  
  5740.    Note: Don't include the & prefix, so <above sym="→"> is wrong!  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757. Dave Raggett                                                          Page 101
  5758. HTML 3.0                                                       28th March 1995
  5759.  
  5760. The BELOW element
  5761.  
  5762.    Permitted Context: %math
  5763.    Content Model: %math 
  5764.  
  5765.    The <BELOW> element is used to draw a line, arrow, or curly bracket
  5766.    --below-- the expression enclosed by this element. For example: 
  5767.  
  5768.    
  5769.        <below>X + Y</below>    giving   X + Y
  5770.                                         _____
  5771.    
  5772.        <below sym=rarr>X + Y</below>   giving   X + Y
  5773.                                                 ---->
  5774.    
  5775.  
  5776.    You can also place an expression centered below the line or arrow
  5777.    with the SUP element or its shortref form, for example: 
  5778.  
  5779.    <above sym=cub>n(n - 1)(n - 2)&dots;(n - m + 1)</above>
  5780.    <sup><text>total of m factors</text></sup>
  5781.    
  5782.  
  5783.    which would be rendered as (within limits of ascii art): 
  5784.  
  5785.        n(n - 1)(n - 2) ... (n - m + 1)
  5786.        \---------------v-------------/
  5787.               total of m factors
  5788.  
  5789.    --I can't find the ISO entity names for under/over curly brackets!-- 
  5790.  
  5791. Permitted Attributes
  5792.  
  5793.    SYM 
  5794.        An entity name for a stretchy symbol, e.g. --cub-- for a curly
  5795.        bracket (brace). Defaults to --line--. The other choices are:
  5796.        --larr-- (left arrow), --rarr-- (right arrow), --hat-- and
  5797.        --tilde--. 
  5798.  
  5799.    Note: Don't include the & prefix, so <below sym="→"> is wrong!  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814. Dave Raggett                                                          Page 102
  5815. HTML 3.0                                                       28th March 1995
  5816.  
  5817. VEC, BAR, DOT, DDOT, HAT and TILDE
  5818.  
  5819.    Permitted Context: %math
  5820.    Content Model: %math 
  5821.  
  5822.    These elements place an accent above the term enclosed by the
  5823.    element. --VEC-- draws a right arrow above the term; --BAR-- draws a
  5824.    line; --DOT-- and --DDOT-- draw a single and double dot
  5825.    respectively; --HAT-- and --TILDE-- draw the corresponding character
  5826.    above the term, for example: 
  5827.  
  5828.                                ^
  5829.        <HAT>X</HAT>   giving   X
  5830.        
  5831.                                    ~
  5832.        <TILDE>X</TILDE>   giving   X
  5833.  
  5834.    Note: there are no attributes for these elements.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841.  
  5842.  
  5843.  
  5844.  
  5845.  
  5846.  
  5847.  
  5848.  
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855.  
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866.  
  5867.  
  5868.  
  5869.  
  5870.  
  5871. Dave Raggett                                                          Page 103
  5872. HTML 3.0                                                       28th March 1995
  5873.  
  5874. SQRT
  5875.  
  5876.    Permitted Context: %math
  5877.    Content Model: %math 
  5878.  
  5879.    This draws a square root sign around the contents, for example the
  5880.    square root of 1 + x is expressed as: 
  5881.  
  5882.        <SQRT>1 + x</SQRT>
  5883.  
  5884.    and possibly rendered as: --(this is the best I can do with ascii
  5885.    art!)-- 
  5886.  
  5887.          ----------
  5888.         / 1 + x
  5889.        v
  5890.  
  5891.    The SQRT element has no attributes. 
  5892.  
  5893. ROOT
  5894.  
  5895.    Permitted Context: %math
  5896.    Content Model: %math, OF, %math 
  5897.  
  5898.    This allows you to specify arbitary roots of an expression. The
  5899.    radix comes first, and is separated from the radicand by the <OF>
  5900.    tag. For example the cube root of 1 + x is expressed as: 
  5901.  
  5902.        <ROOT>3<OF>1 + x</ROOT>
  5903.  
  5904.    and possibly rendered as: 
  5905.  
  5906.          --------
  5907.        3/ 1 + x
  5908.        v
  5909.  
  5910.    The ROOT element has no attributes.  
  5911.  
  5912.  
  5913.  
  5914.  
  5915.  
  5916.  
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928. Dave Raggett                                                          Page 104
  5929. HTML 3.0                                                       28th March 1995
  5930.  
  5931. The ARRAY element
  5932.  
  5933.    Permitted Context: %math
  5934.    Content Model: one or more ROWs, each containing one or more ITEMs 
  5935.  
  5936.    The <ARRAY> element is used for LaTeX-like arrays. It can only be
  5937.    used within MATH elements. For example: 
  5938.  
  5939.        a      a    ...   a
  5940.         11     12         1n
  5941.         
  5942.        :      :    ...    :
  5943.    
  5944.        a      a    ...   a
  5945.         n1     n2         nn
  5946.    
  5947.  
  5948.    This is represented in HTML math by: 
  5949.  
  5950.        <array>
  5951.         <row><item>a_11_<item>a_12_<item>&cdots;<item>a_1n_
  5952.         <row><item>&vdots;<item>&vdots;<item>&ddots;<item>&vdots;
  5953.         <row><item>a_n1_<item>a_n2_<item>&cdots;<item>a_nn_
  5954.        </array>
  5955.    
  5956.  
  5957.    You can specify the "+", "-" or "=" characters as column separators: 
  5958.  
  5959.        a   x   +  a   x   +  ...  +  a   x    =   b
  5960.         11  1      12  2              1n  n        1
  5961.    
  5962.        a   x   +  a   x   +  ...  +  a   x    =   b
  5963.         22  1      22  2              2n  n        2
  5964.     
  5965.        .............................................
  5966.    
  5967.        a   x   +  a   x   +  ...  +  a   x    =   b
  5968.         n2  1      n2  2              nn  n        n
  5969.  
  5970.    This is represented by: 
  5971.  
  5972.    <array coldef="C+C+C+C=C">
  5973.     <row><item>a_11_x_1_<item>a_12_x_2_<item>&cdots;<item>a_1n_x_n_<item>b_1_
  5974.     <row><item>a_21_x_1_<item>a_22_x_2_<item>&cdots;<item>a_2n_x_n_<item>b_2_
  5975.     <row><item colspan=5>&dotfill;
  5976.     <row><item>a_n1_x_1_<item>a_n2_x_2_<item>&cdots;<item>a_nn_x_n_<item>b_n_
  5977.    </array>
  5978.  
  5979.    The number of rows and colums is left to the parser to work out for
  5980.    itself by counting the number of ROW elements, and the number of
  5981.    ITEMs on each row. This is slightly complicated by the possibility
  5982.    that some items may span several rows and columns. If a row has less
  5983.    than the expected number of items after accounting for merged items,
  5984.  
  5985. Dave Raggett                                                          Page 105
  5986. HTML 3.0                                                       28th March 1995
  5987.  
  5988.    the missing items are assumed to be on the righthandside, and should
  5989.    be treated as empty. The row count should be based on the ROW
  5990.    elements, and additional rows, implied by items spanning rows beyond
  5991.    the end of the array, should be ignored. 
  5992.  
  5993. Permitted Attributes
  5994.  
  5995.    ALIGN 
  5996.        By default, arrays are vertically positioned so that preceding
  5997.        and following expressions are aligned with the mid point of the
  5998.        array. The ALIGN attribute can take on of the following values:
  5999.        
  6000.        
  6001.  
  6002.        TOP 
  6003.            The top row of the array is aligned with the same baseline
  6004.            as the preceding or following expression. 
  6005.  
  6006.        MIDDLE 
  6007.            The middle row of the array is aligned with the same
  6008.            baseline as the preceding or following expression. This is
  6009.            the default. If there are an even number of rows, the
  6010.            midpoint of the array is used instead. 
  6011.  
  6012.        BOTTOM 
  6013.            The bottom row of the array is aligned with the same
  6014.            baseline as the preceding or following expression. 
  6015.  
  6016.    COLDEF 
  6017.        By default the columns are centered. This attribute can be used
  6018.        to specify the horizontal alignment for each column with
  6019.        character string formed by one capital letter per column, with L
  6020.        for left, C for center and R to right alignment, e.g. "LLCR" for
  6021.        a 4 column table. 
  6022.  
  6023.        The COLDEF attribute can also be used to place a "+", "-" or "="
  6024.        between the columns, e.g. coldef="C+C+C+C=C". Whitespace within
  6025.        the COLDEF attribute is ignored. 
  6026.  
  6027.    LDELIM 
  6028.        An entity or character for the left delimiter, e.g. ldelim="["
  6029.        for a left square bracket or ldelim="|". The default is no
  6030.        delimiter. 
  6031.  
  6032.    RDELIM 
  6033.        An entity name or character for the right delimiter, e.g.
  6034.        rdelim="}" or rdelim="|". The default is no delimiter. 
  6035.  
  6036.    LABELS 
  6037.        The presence of this attribute has the same effect as TeX's
  6038.        bordermatrix command. The first row and column are separated
  6039.        from the rest of the array. 
  6040.  
  6041.  
  6042. Dave Raggett                                                          Page 106
  6043. HTML 3.0                                                       28th March 1995
  6044.  
  6045.    Example of a labelled array: 
  6046.  
  6047.          i     j     k
  6048.          
  6049.     a  (X     X     X  )
  6050.        ( 11    21    31)    <array ldelim="(" rdelim=")" labels>
  6051.        (               )     <row><item>dummy<item>i<item>j<item>k
  6052.     b  (X     X     X  )     <row><item>a<item>X_11_<item>X_21_<item>X_31_
  6053.        ( 12    22    32)     <row><item>b<item>X_12_<item>X_22_<item>X_32_
  6054.        (               )     <row><item>c<item>X_31_<item>X_32_<item>X_33_
  6055.     c  (X     X     X  )    </array>
  6056.        ( 13    23    33)
  6057.    
  6058.  
  6059.    Note: An item is always required for the first item of the first
  6060.    row, although its contents will be ignored for labelled arrays. This
  6061.    has been emphasized above with the value "dummy".  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  
  6080.  
  6081.  
  6082.  
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.  
  6096.  
  6097.  
  6098.  
  6099. Dave Raggett                                                          Page 107
  6100. HTML 3.0                                                       28th March 1995
  6101.  
  6102. The ROW element
  6103.  
  6104.    Permitted Context: ARRAY
  6105.    Content Model: one or more ITEMs 
  6106.  
  6107.    The <ROW> element is used for rows of items within the ARRAY
  6108.    element. It has no permitted attributes. The end tag </ROW> can
  6109.    always be left out. 
  6110.  
  6111. The ITEM element
  6112.  
  6113.    Permitted Context: ROW
  6114.    Content Model: %math 
  6115.  
  6116.    The <ITEM> element is used for items within a row of the ARRAY
  6117.    element. The end tag </ITEM> can always be left out. 
  6118.  
  6119. Permitted Attributes for ITEM
  6120.  
  6121.    ALIGN 
  6122.        By default expressions in items are centered horizontally. This
  6123.        can be altered by the COLDEF attribute on the parent ARRAY
  6124.        element, and overridden on a per item basis with the ALIGN
  6125.        attribute. The permitted values are: LEFT, CENTER or RIGHT. 
  6126.  
  6127.    COLSPAN 
  6128.        This can be used to provide a single item which spans several
  6129.        columns. The attribute value is a positive integer and defaults
  6130.        to one. 
  6131.  
  6132.    ROWSPAN 
  6133.        This can be used to provide a single item which spans several
  6134.        rows. The attribute value is a positive integer and defaults to
  6135.        one. It can be used together with the COLSPAN attribute. 
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156. Dave Raggett                                                          Page 108
  6157. HTML 3.0                                                       28th March 1995
  6158.  
  6159. TEXT
  6160.  
  6161.    Permitted Context: %math
  6162.    Content Model: PCDATA 
  6163.  
  6164.    This element is used to include a few words of text within MATH
  6165.    elements. It avoids the need to separate words with spacing entities
  6166.    such as &sp; that are otherwise needed to provide adequate spacing.
  6167.    The text is rendered literally, and may include entities for
  6168.    accented characters etc. 
  6169.  
  6170.    There are no attributes for this element.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.  
  6210.  
  6211.  
  6212.  
  6213. Dave Raggett                                                          Page 109
  6214. HTML 3.0                                                       28th March 1995
  6215.  
  6216. B, T and BT
  6217.  
  6218.    Permitted Context: %math
  6219.    Content Model: %math 
  6220.  
  6221.    These elements are used, when feasible, to alter the default fonts
  6222.    used to render variables and constants. Numbers, operators,
  6223.    delimiters and other symbols are unaffected. B renders its contents
  6224.    in bold, while T renders its contents in an upright font rather than
  6225.    an italic font. These can be nested to combine the effects, for a
  6226.    bold upright font. The BT element allows you to write
  6227.    <BT>--term--</BT> rather from having to write:
  6228.    <B><T>--term--</T></B>. 
  6229.  
  6230. Permitted Attributes
  6231.  
  6232.    CLASS 
  6233.        This a space separated list of SGML NAME tokens and is used to
  6234.        subclass tag names. By convention, the class names are
  6235.        interpreted hierarchically, with the most general class on the
  6236.        left and the most specific on the right, where classes are
  6237.        separated by a period. 
  6238.  
  6239.        By using CLASS to describe the term as a --vector--, --tensor--
  6240.        or --matrix-- etc. user agents can do a better job when
  6241.        rendering to non-visual media. Further conventions for term
  6242.        class names are not part of this specification. 
  6243.  
  6244.    Note: Don't use B for chemical formulae. These should be handled by
  6245.    subclassing the MATH element with class=chem, for instance: <MATH
  6246.    CLASS=CHEM>  
  6247.  
  6248.  
  6249.  
  6250.  
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260.  
  6261.  
  6262.  
  6263.  
  6264.  
  6265.  
  6266.  
  6267.  
  6268.  
  6269.  
  6270. Dave Raggett                                                          Page 110
  6271. HTML 3.0                                                       28th March 1995
  6272.  
  6273. Horizontal Rules
  6274.  
  6275.    Permitted Context: %Body.Content
  6276.    Content Model: Empty! 
  6277.  
  6278.    The <HR> element is used for horizontal rules that act as dividers
  6279.    between sections. The SRC attribute can be used to designate a
  6280.    custom graphic, otherwise subclass HR with the CLASS attribute and
  6281.    specify the appropriate rendering with an associated style sheet. 
  6282.  
  6283. Permitted Attributes
  6284.  
  6285.    ID 
  6286.        An SGML identifier used as the target for hypertext links or for
  6287.        naming particular elements in associated style sheets.
  6288.        Identifiers are NAME tokens and must be unique within the scope
  6289.        of the current document. 
  6290.  
  6291.    CLASS 
  6292.        This a space separated list of SGML NAME tokens and is used to
  6293.        subclass tag names. For instance, <H2 CLASS=Section> defines a
  6294.        level 2 header that acts as a section header. By convention, the
  6295.        class names are interpreted hierarchically, with the most
  6296.        general class on the left and the most specific on the right,
  6297.        where classes are separated by a period. The CLASS attribute is
  6298.        most commonly used to attach a different style to some element,
  6299.        but it is recommended that where practical class names should be
  6300.        picked on the basis of the element's semantics, as this will
  6301.        permit other uses, such as restricting search through documents
  6302.        by matching on element class names. The conventions for choosing
  6303.        class names are outside the scope of this specification. 
  6304.  
  6305.    CLEAR 
  6306.        This attribute is common to all block-like elements. When text
  6307.        flows around a figure or table in the margin, you sometimes want
  6308.        to position the rule below the figure rather than alongside it.
  6309.        The CLEAR attribute allows you to move down unconditionally:
  6310.        
  6311.        
  6312.  
  6313.        clear=left
  6314.            move down until left margin is clear 
  6315.  
  6316.        clear=right
  6317.            move down until right margin is clear 
  6318.  
  6319.        clear=all
  6320.            move down until both margins are clear 
  6321.  
  6322.        Alternatively, you can decide to place the rule alongside the
  6323.        figure just so long as there is enough room. The minimum width
  6324.        needed is specified as:
  6325.        
  6326.  
  6327. Dave Raggett                                                          Page 111
  6328. HTML 3.0                                                       28th March 1995
  6329.  
  6330.        
  6331.  
  6332.        clear="40 en"
  6333.            move down until there is at least 40 en units free 
  6334.  
  6335.        clear="100 pixels"
  6336.            move down until there is at least 100 pixels free 
  6337.  
  6338.        The style sheet (or browser defaults) may provide default
  6339.        minimum widths for each class of block-like elements. 
  6340.  
  6341.    SRC 
  6342.        Specifies a custom image for the rule. The image is specified as
  6343.        a URI. This attribute may appear together with the MD attribute. 
  6344.  
  6345.    MD 
  6346.        Specifies a message digest or cryptographic checksum for the
  6347.        associated graphic specified by the SRC attribute. It is used
  6348.        when you want to be sure that a linked object is indeed the same
  6349.        one that the author intended, and hasn't been modified in any
  6350.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  6351.        specifies an MD5 checksum encoded as a base64 character string.
  6352.        The MD attribute is generally allowed for all elements which
  6353.        support URI based links. 
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.  
  6367.  
  6368.  
  6369.  
  6370.  
  6371.  
  6372.  
  6373.  
  6374.  
  6375.  
  6376.  
  6377.  
  6378.  
  6379.  
  6380.  
  6381.  
  6382.  
  6383.  
  6384. Dave Raggett                                                          Page 112
  6385. HTML 3.0                                                       28th March 1995
  6386.  
  6387. Preformatted Text (PRE)
  6388.  
  6389.    Permitted Context: %Body.Content, %flow, %block
  6390.    Content Model: subset of %text (see DTD for details) 
  6391.  
  6392.    Preformatted text between the start and end PRE tag is rendered
  6393.    using a fixed with font, in addition whitespace characters are
  6394.    treated literally. The spacing and line breaks are rendered
  6395.    directly, unlike other elements, for which repeated whitespace
  6396.    chararacters are collapsed to a single space character and line
  6397.    breaks introduced automatically. 
  6398.  
  6399.    *   Line breaks within the text are rendered as a move to the
  6400.        beginning of the next line. The exceptions are line breaks
  6401.        immediately following the starting PRE tag or immediately
  6402.        preceding the ending PRE tag, which should be ignored. 
  6403.  
  6404.    *   The <P> tag should be avoided, but for robustness, user agents
  6405.        are recommended to treat these tags as line breaks. 
  6406.  
  6407.    *   Anchor elements, and character highlighting elements may be
  6408.        used. 
  6409.  
  6410.    *   FORM elements may be included, and the fixed width font
  6411.        exploited to control layout (the TAB or TABLE elements give
  6412.        similar control for normal text though). 
  6413.  
  6414.    *   Block-like elements such as headers, lists, FIG and TABLES
  6415.        should be avoided. 
  6416.  
  6417.    *   The horizontal tab character (encoded in US ASCII and ISO 8859-1
  6418.        as decimal 9) should be interpreted as the smallest nonzero
  6419.        number of spaces which will leave the number of characters so
  6420.        far on the line as a multiple of 8. Its use is deprecated! 
  6421.  
  6422.    For example, a verse from Shelley (To a Skylark): 
  6423.  
  6424.    <PRE>
  6425.           Higher still and higher
  6426.             From the earth thou springest
  6427.           Like a cloud of fire;
  6428.             The blue deep thou wingest,
  6429.    And singing still dost soar, and soaring ever singest.</PRE>
  6430.  
  6431.    which is rendered as: 
  6432.  
  6433.           Higher still and higher
  6434.             From the earth thou springest
  6435.           Like a cloud of fire;
  6436.             The blue deep thou wingest,
  6437.    And singing still dost soar, and soaring ever singest.
  6438.  
  6439. Permitted Attributes
  6440.  
  6441. Dave Raggett                                                          Page 113
  6442. HTML 3.0                                                       28th March 1995
  6443.  
  6444.  
  6445.    ID 
  6446.        An SGML identifier used as the target for hypertext links or for
  6447.        naming particular elements in associated style sheets.
  6448.        Identifiers are NAME tokens and must be unique within the scope
  6449.        of the current document. 
  6450.  
  6451.    LANG 
  6452.        This is one of the ISO standard language abbreviations, e.g.
  6453.        "en.uk" for the variation of English spoken in the United
  6454.        Kingdom. It can be used by parsers to select language specific
  6455.        choices for quotation marks, ligatures and hypenation rules etc.
  6456.        The language attribute is composed from the two letter language
  6457.        code from ISO 639, optionally followed by a period and a two
  6458.        letter country code from ISO 3166. 
  6459.  
  6460.    CLASS 
  6461.        This a space separated list of SGML NAME tokens and is used to
  6462.        subclass tag names. By convention, the class names are
  6463.        interpreted hierarchically, with the most general class on the
  6464.        left and the most specific on the right, where classes are
  6465.        separated by a period. The CLASS attribute is most commonly used
  6466.        to attach a different style to some element, but it is
  6467.        recommended that where practical class names should be picked on
  6468.        the basis of the element's semantics, as this will permit other
  6469.        uses, such as restricting search through documents by matching
  6470.        on element class names. The conventions for choosing class names
  6471.        are outside the scope of this specification. 
  6472.  
  6473.    CLEAR 
  6474.        This attribute is common to all block-like elements. When text
  6475.        flows around a figure or table in the margin, you sometimes want
  6476.        to start the preformatted text below the figure rather than
  6477.        alongside it. The CLEAR attribute allows you to move down unconditionally:
  6478.        
  6479.        
  6480.  
  6481.        clear=left
  6482.            move down until left margin is clear 
  6483.  
  6484.        clear=right
  6485.            move down until right margin is clear 
  6486.  
  6487.        clear=all
  6488.            move down until both margins are clear 
  6489.  
  6490.        Alternatively, you can decide to place the element alongside the
  6491.        figure just so long as there is enough room. The minimum width
  6492.        needed is specified as:
  6493.        
  6494.        
  6495.  
  6496.        clear="40 en"
  6497.  
  6498. Dave Raggett                                                          Page 114
  6499. HTML 3.0                                                       28th March 1995
  6500.  
  6501.            move down until there is at least 40 en units free 
  6502.  
  6503.        clear="100 pixels"
  6504.            move down until there is at least 100 pixels free 
  6505.  
  6506.        The style sheet (or browser defaults) may provide default
  6507.        minimum widths for each class of block-like elements. 
  6508.  
  6509.    WIDTH 
  6510.        This is optionally used to specify a width as a number of
  6511.        characters to try and display within the current window width.
  6512.        The user agent can exploit this suggestion to select an
  6513.        appropriate font size. The default is a width of 80 characters.
  6514.        Where the WIDTH attribute is supported, widths of 40, 80 and 132
  6515.        characters should be presented optimally, with other widths
  6516.        being rounded up. 
  6517.  
  6518.        --Can't we get rid of this obsolete nonsense? How many browsers
  6519.        support the WIDTH attribute anyway? -- 
  6520.  
  6521.  
  6522.  
  6523.  
  6524.  
  6525.  
  6526.  
  6527.  
  6528.  
  6529.  
  6530.  
  6531.  
  6532.  
  6533.  
  6534.  
  6535.  
  6536.  
  6537.  
  6538.  
  6539.  
  6540.  
  6541.  
  6542.  
  6543.  
  6544.  
  6545.  
  6546.  
  6547.  
  6548.  
  6549.  
  6550.  
  6551.  
  6552.  
  6553.  
  6554.  
  6555. Dave Raggett                                                          Page 115
  6556. HTML 3.0                                                       28th March 1995
  6557.  
  6558. Admonishments
  6559.  
  6560.    Permitted Context: %body.content, %flow, %block
  6561.    Content Model: %body.content 
  6562.  
  6563.    The NOTE element is designed for use as admonishments such as notes,
  6564.    cautions or warnings, as commonly used in technical documentation.
  6565.    The CLASS attribute specifies the type of the element and is
  6566.    typically associated with different graphics such as a road traffic
  6567.    warning sign. The graphic can be customized with the SRC attribute. 
  6568.  
  6569.    Example: 
  6570.  
  6571.        <NOTE CLASS=WARNING>Please check with the local weather
  6572.        service before starting your climb. The mountain weather
  6573.        is subject to rapid deterioration. It is essential to
  6574.        carry a good map and compass.</NOTE>
  6575.  
  6576.    The class names: NOTE, CAUTION and WARNING are recommended for
  6577.    standard admonishments. In the absence of the CLASS attribute, a
  6578.    NOTE element is typically rendered indented, without an accompanying
  6579.    graphic. 
  6580.  
  6581. Permitted Attributes
  6582.  
  6583.    ID 
  6584.        An SGML identifier used as the target for hypertext links or for
  6585.        naming particular elements in associated style sheets.
  6586.        Identifiers are NAME tokens and must be unique within the scope
  6587.        of the current document. 
  6588.  
  6589.    LANG 
  6590.        This is one of the ISO standard language abbreviations, e.g.
  6591.        "en.uk" for the variation of English spoken in the United
  6592.        Kingdom. It can be used by parsers to select language specific
  6593.        choices for quotation marks, ligatures and hypenation rules etc.
  6594.        The language attribute is composed from the two letter language
  6595.        code from ISO 639, optionally followed by a period and a two
  6596.        letter country code from ISO 3166. 
  6597.  
  6598.    CLASS 
  6599.        This a space separated list of SGML NAME tokens and is used to
  6600.        subclass tag names. By convention, the class names are
  6601.        interpreted hierarchically, with the most general class on the
  6602.        left and the most specific on the right, where classes are
  6603.        separated by a period. The CLASS attribute is most commonly used
  6604.        to attach a different style to some element, but it is
  6605.        recommended that where practical class names should be picked on
  6606.        the basis of the element's semantics, as this will permit other
  6607.        uses, such as restricting search through documents by matching
  6608.        on element class names. Apart from the values suggested above,
  6609.        the conventions for choosing class names are outside the scope
  6610.        of this specification. 
  6611.  
  6612. Dave Raggett                                                          Page 116
  6613. HTML 3.0                                                       28th March 1995
  6614.  
  6615.  
  6616.    CLEAR 
  6617.        This attribute is common to all block-like elements. When text
  6618.        flows around a figure or table in the margin, you sometimes want
  6619.        to start the note below the figure rather than alongside it. The
  6620.        CLEAR attribute allows you to move down unconditionally:
  6621.        
  6622.        
  6623.  
  6624.        clear=left
  6625.            move down until left margin is clear 
  6626.  
  6627.        clear=right
  6628.            move down until right margin is clear 
  6629.  
  6630.        clear=all
  6631.            move down until both margins are clear 
  6632.  
  6633.        Alternatively, you can decide to place the note alongside the
  6634.        figure just so long as there is enough room. The minimum width
  6635.        needed is specified as:
  6636.        
  6637.        
  6638.  
  6639.        clear="40 en"
  6640.            move down until there is at least 40 en units free 
  6641.  
  6642.        clear="100 pixels"
  6643.            move down until there is at least 100 pixels free 
  6644.  
  6645.        The style sheet (or browser defaults) may provide default
  6646.        minimum widths for each class of block-like elements. 
  6647.  
  6648.    SRC 
  6649.        Specifies an image to appear preceding the note. The image is
  6650.        specified as a URI. This attribute may appear together with the
  6651.        MD attribute. 
  6652.  
  6653.    MD 
  6654.        Specifies a message digest or cryptographic checksum for the
  6655.        associated graphic specified by the SRC attribute. It is used
  6656.        when you want to be sure that a linked object is indeed the same
  6657.        one that the author intended, and hasn't been modified in any
  6658.        way. For instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which
  6659.        specifies an MD5 checksum encoded as a base64 character string.
  6660.        The MD attribute is generally allowed for all elements which
  6661.        support URI based links. 
  6662.  
  6663.  
  6664.  
  6665.  
  6666.  
  6667.  
  6668.  
  6669. Dave Raggett                                                          Page 117
  6670. HTML 3.0                                                       28th March 1995
  6671.  
  6672. Footnotes
  6673.  
  6674.    Permitted Context: %body.content, %flow, %block
  6675.    Content Model: %body.content 
  6676.  
  6677.    The FN element is designed for footnotes, and when practical,
  6678.    rendered as pop-up notes. 
  6679.  
  6680.    Example: 
  6681.  
  6682.    <DL>
  6683.    <DT>Hamlet: <DD>You should not have believed me, for virtue cannot
  6684.    so <a href="#fn1">inoculate</a> our old stock but we shall <a
  6685.    href="#fn2">relish of it</a>. I loved you not.
  6686.    
  6687.    <DT>Ophelia: <DD> I was the more deceived.
  6688.    
  6689.    <DT>Hamlet: <DD>Get thee to a nunnery. Why wouldst thou be a breeder
  6690.    of sinners? I am myself <a href="#fn2">indifferent honest</a> ...
  6691.    </DL> 
  6692.  
  6693.    <fn id=fn1><i>inoculate</i> - graft</fn>
  6694.    <fn id=fn2><i>relish of it</i> - smack of it (our old sinful nature)</fn>
  6695.    <fn id=fn3><i>indifferent honest</i> - moderately virtuous</fn> 
  6696.  
  6697.    Note: If %html.recommended is active, the HTML 3.0 DTD expects you
  6698.    to enclose plain text in a block element such as <P> e.g.
  6699.    
  6700.    <FN ID=fn23><P>A simple footnote</FN> 
  6701.  
  6702. Permitted Attributes
  6703.  
  6704.    ID 
  6705.        An SGML identifier used as the target for hypertext links or for
  6706.        naming particular elements in associated style sheets.
  6707.        Identifiers are NAME tokens and must be unique within the scope
  6708.        of the current document. 
  6709.  
  6710.    LANG 
  6711.        This is one of the ISO standard language abbreviations, e.g.
  6712.        "en.uk" for the variation of English spoken in the United
  6713.        Kingdom. It can be used by parsers to select language specific
  6714.        choices for quotation marks, ligatures and hypenation rules etc.
  6715.        The language attribute is composed from the two letter language
  6716.        code from ISO 639, optionally followed by a period and a two
  6717.        letter country code from ISO 3166. 
  6718.  
  6719.    CLASS 
  6720.        This a space separated list of SGML NAME tokens and is used to
  6721.        subclass tag names. By convention, the class names are
  6722.        interpreted hierarchically, with the most general class on the
  6723.        left and the most specific on the right, where classes are
  6724.        separated by a period. The CLASS attribute is most commonly used
  6725.  
  6726. Dave Raggett                                                          Page 118
  6727. HTML 3.0                                                       28th March 1995
  6728.  
  6729.        to attach a different style to some element, but it is
  6730.        recommended that where practical class names should be picked on
  6731.        the basis of the element's semantics, as this will permit other
  6732.        uses, such as restricting search through documents by matching
  6733.        on element class names. The conventions for choosing class names
  6734.        are outside the scope of this specification. 
  6735.  
  6736.  
  6737.  
  6738.  
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.  
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.  
  6770.  
  6771.  
  6772.  
  6773.  
  6774.  
  6775.  
  6776.  
  6777.  
  6778.  
  6779.  
  6780.  
  6781.  
  6782.  
  6783. Dave Raggett                                                          Page 119
  6784. HTML 3.0                                                       28th March 1995
  6785.  
  6786. Block Quotes
  6787.  
  6788.    Permitted Context: %Body.Content, %flow, %block
  6789.    Content Model: %Body.Content followed by optional CREDIT element 
  6790.  
  6791.    The BQ element is used for extended quotations. The tag name has
  6792.    been abbreviated from HTML 2.0's BLOCKQUOTE to the more convenient
  6793.    BQ, and the content model extended to allow the source of the
  6794.    quotation to be credited. 
  6795.  
  6796.    Example: 
  6797.  
  6798.    <BQ>
  6799.    <P>But now I shall shortly proffer him the strength and the
  6800.    courage of the Geats in combat. He who has the right to it shall
  6801.    go once more to the mead-drinking with confident heart, after
  6802.    the morning light of another day, the sun clothed in ethereal
  6803.    radiance, shines from the south upon the children of men.
  6804.    <CREDIT>Beowulf replying to Unferth, from the Anglo-Saxon poem
  6805.    "Beowolf", Cotton Vitellus A xv manuscript</CREDIT>
  6806.    </BQ>
  6807.  
  6808.    Note: If %html.recommended is active, the HTML 3.0 DTD expects you
  6809.    to enclose plain text in a block element such as <P> 
  6810.  
  6811. Permitted Attributes
  6812.  
  6813.    ID 
  6814.        An SGML identifier used as the target for hypertext links or for
  6815.        naming particular elements in associated style sheets.
  6816.        Identifiers are NAME tokens and must be unique within the scope
  6817.        of the current document. 
  6818.  
  6819.    LANG 
  6820.        This is one of the ISO standard language abbreviations, e.g.
  6821.        "en.uk" for the variation of English spoken in the United
  6822.        Kingdom. It can be used by parsers to select language specific
  6823.        choices for quotation marks, ligatures and hypenation rules etc.
  6824.        The language attribute is composed from the two letter language
  6825.        code from ISO 639, optionally followed by a period and a two
  6826.        letter country code from ISO 3166. 
  6827.  
  6828.    CLASS 
  6829.        This a space separated list of SGML NAME tokens and is used to
  6830.        subclass tag names. By convention, the class names are
  6831.        interpreted hierarchically, with the most general class on the
  6832.        left and the most specific on the right, where classes are
  6833.        separated by a period. The CLASS attribute is most commonly used
  6834.        to attach a different style to some element, but it is
  6835.        recommended that where practical class names should be picked on
  6836.        the basis of the element's semantics, as this will permit other
  6837.        uses, such as restricting search through documents by matching
  6838.        on element class names. The conventions for choosing class names
  6839.  
  6840. Dave Raggett                                                          Page 120
  6841. HTML 3.0                                                       28th March 1995
  6842.  
  6843.        are outside the scope of this specification. 
  6844.  
  6845.    CLEAR 
  6846.        This attribute is common to all block-like elements. When text
  6847.        flows around a figure or table in the margin, you sometimes want
  6848.        to start the block quote below the figure rather than alongside
  6849.        it. The CLEAR attribute allows you to move down unconditionally:
  6850.        
  6851.        
  6852.  
  6853.        clear=left
  6854.            move down until left margin is clear 
  6855.  
  6856.        clear=right
  6857.            move down until right margin is clear 
  6858.  
  6859.        clear=all
  6860.            move down until both margins are clear 
  6861.  
  6862.        Alternatively, you can decide to place the quote alongside the
  6863.        figure just so long as there is enough room. The minimum width
  6864.        needed is specified as:
  6865.        
  6866.        
  6867.  
  6868.        clear="40 en"
  6869.            move down until there is at least 40 en units free 
  6870.  
  6871.        clear="100 pixels"
  6872.            move down until there is at least 100 pixels free 
  6873.  
  6874.        The style sheet (or browser defaults) may provide default
  6875.        minimum widths for each class of block-like elements. 
  6876.  
  6877.    NOWRAP 
  6878.        The NOWRAP attribute is used when you don't want the browser to
  6879.        automatically wrap lines. You can then explicitly specify line
  6880.        breaks using the BR element. 
  6881.  
  6882.  
  6883.  
  6884.  
  6885.  
  6886.  
  6887.  
  6888.  
  6889.  
  6890.  
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897. Dave Raggett                                                          Page 121
  6898. HTML 3.0                                                       28th March 1995
  6899.  
  6900. The ADDRESS element
  6901.  
  6902.    Permitted Context: %Body.Content
  6903.    Content Model: P or %text 
  6904.  
  6905.    The ADDRESS element specifies such information as address, signature
  6906.    and authorship for the current document, and typically placed at the
  6907.    top or bottom of the document. When used with %text, the element
  6908.    acts similar to a paragraph with breaks before and after. 
  6909.  
  6910.    Example: 
  6911.  
  6912.    <ADDRESS>
  6913.    Newsletter editor<BR>
  6914.    J.R. Brown<BR>
  6915.    8723 Buena Vista, Smallville, CT 01234&t;BR>
  6916.    Tel: +1 (123) 456 7890
  6917.    </ADDRESS>
  6918.  
  6919. Permitted Attributes
  6920.  
  6921.    ID 
  6922.        An SGML identifier used as the target for hypertext links or for
  6923.        naming particular elements in associated style sheets.
  6924.        Identifiers are NAME tokens and must be unique within the scope
  6925.        of the current document. 
  6926.  
  6927.    LANG 
  6928.        This is one of the ISO standard language abbreviations, e.g.
  6929.        "en.uk" for the variation of English spoken in the United
  6930.        Kingdom. It can be used by parsers to select language specific
  6931.        choices for quotation marks, ligatures and hypenation rules etc.
  6932.        The language attribute is composed from the two letter language
  6933.        code from ISO 639, optionally followed by a period and a two
  6934.        letter country code from ISO 3166. 
  6935.  
  6936.    CLASS 
  6937.        This a space separated list of SGML NAME tokens and is used to
  6938.        subclass tag names. By convention, the class names are
  6939.        interpreted hierarchically, with the most general class on the
  6940.        left and the most specific on the right, where classes are
  6941.        separated by a period. The CLASS attribute is most commonly used
  6942.        to attach a different style to some element, but it is
  6943.        recommended that where practical class names should be picked on
  6944.        the basis of the element's semantics, as this will permit other
  6945.        uses, such as restricting search through documents by matching
  6946.        on element class names. The conventions for choosing class names
  6947.        are outside the scope of this specification. 
  6948.  
  6949.    CLEAR 
  6950.        This attribute is common to all block-like elements. When text
  6951.        flows around a figure or table in the margin, you sometimes want
  6952.        to start the address element below the figure rather than
  6953.  
  6954. Dave Raggett                                                          Page 122
  6955. HTML 3.0                                                       28th March 1995
  6956.  
  6957.        alongside it. The CLEAR attribute allows you to move down unconditionally:
  6958.        
  6959.        
  6960.  
  6961.        clear=left
  6962.            move down until left margin is clear 
  6963.  
  6964.        clear=right
  6965.            move down until right margin is clear 
  6966.  
  6967.        clear=all
  6968.            move down until both margins are clear 
  6969.  
  6970.        Alternatively, you can decide to place the address alongside the
  6971.        figure just so long as there is enough room. The minimum width
  6972.        needed is specified as:
  6973.        
  6974.        
  6975.  
  6976.        clear="40 en"
  6977.            move down until there is at least 40 en units free 
  6978.  
  6979.        clear="100 pixels"
  6980.            move down until there is at least 100 pixels free 
  6981.  
  6982.        The style sheet (or browser defaults) may provide default
  6983.        minimum widths for each class of block-like elements. 
  6984.  
  6985.    NOWRAP 
  6986.        The NOWRAP attribute is used when you don't want the browser to
  6987.        automatically wrap lines. You can then explicitly specify line
  6988.        breaks using the BR element. 
  6989.  
  6990.  
  6991.  
  6992.  
  6993.  
  6994.  
  6995.  
  6996.  
  6997.  
  6998.  
  6999.  
  7000.  
  7001.  
  7002.  
  7003.  
  7004.  
  7005.  
  7006.  
  7007.  
  7008.  
  7009.  
  7010.  
  7011. Dave Raggett                                                          Page 123
  7012. HTML 3.0                                                       28th March 1995
  7013.  
  7014. The FORM element
  7015.  
  7016.    Permitted Context: %Body.Content
  7017.    Content Model: %Body.Content --plus-- INPUT, TEXTAREA, and SELECT
  7018.    Note you are not allowed to nest FORM elements! 
  7019.  
  7020.    HTML fill-out forms can be used for questionaires, hotel
  7021.    reservations, order forms, data entry and a wide variety of other
  7022.    applications. The form is specified as part of an HTML document. The
  7023.    user fills in the form and then --submits-- it. The user agent then
  7024.    sends the form's contents as designated by the FORM element.
  7025.    Typically, this is to an HTTP server, but you can also email form
  7026.    contents for asynchronous processing. 
  7027.  
  7028.    Forms are created by placing input fields within paragraphs,
  7029.    preformatted text, lists and tables. This gives considerable
  7030.    flexibility in designing the layout of forms. 
  7031.  
  7032.    HTML 3.0 supports the following kinds of fields: 
  7033.  
  7034.    *   Simple text fields 
  7035.  
  7036.    *   Multi-line text fields 
  7037.  
  7038.    *   Radio buttons 
  7039.  
  7040.    *   Checkboxes 
  7041.  
  7042.    *   Range controls (sliders, or knobs) 
  7043.  
  7044.    *   Single/multiple choice menus 
  7045.  
  7046.    *   Scribble on image 
  7047.  
  7048.    *   File widgets for attaching files to forms. 
  7049.  
  7050.    *   Submit buttons for sending form contents 
  7051.  
  7052.    *   Reset buttons for resetting fields to their initial values 
  7053.  
  7054.    *   Hidden fields for book keeping information 
  7055.  
  7056.    It is expected that future revisions to HTML will add support for
  7057.    audio fields, multi-row entry of database tables, and extending
  7058.    multi-line text fields to support a range of other data types, in
  7059.    addition to plain text. Client-side scripts will provide the means
  7060.    to constrain field values and to add new field types. 
  7061.  
  7062. Example of a form
  7063.  
  7064.    This fictitious example is a questionnaire. It uses the INPUT
  7065.    element for simple text fields, radio buttons, checkboxes, and the
  7066.    submit and reset buttons. The TEXTAREA field is used for a
  7067.  
  7068. Dave Raggett                                                          Page 124
  7069. HTML 3.0                                                       28th March 1995
  7070.  
  7071.    multi-line text entry field. The form fields are laid out with
  7072.    several paragraph elements and an unordered list. Notice the use of
  7073.    the NAME attribute to name each field: 
  7074.  
  7075.    
  7076.    <TITLE>Sample Questionaire</TITLE>
  7077.    <H1>Sample Questionaire</H1>
  7078.    
  7079.    <P>Please fill out this questionaire:
  7080.    
  7081.    <FORM METHOD=post ACTION="http://www.hal.com/sample">
  7082.    <P>Your name: <input name="name" size="48">
  7083.    <P><input name="male" type=radio> Male
  7084.    <P><input name="female" type=radio>Female 
  7085.      Number in family: <input name="family" type=int>
  7086.      
  7087.    <P>Cities in which you maintain a residence:
  7088.    
  7089.    <UL PLAIN>
  7090.    <LI><input name="city" type=checkbox value="kent"> Kent
  7091.    <LI><input name="city" type=checkbox value="miami"> Miami
  7092.    <LI>Others <textarea name="other" cols=48 rows=4></textarea>
  7093.    </UL>
  7094.    
  7095.    <P>Nickname: <INPUT NAME="nickname" size ="42">
  7096.    
  7097.    <P>Thank you for responding to this questionaire.
  7098.    <P><INPUT TYPE=SUBMIT> <INPUT TYPE=RESET>
  7099.    </FORM>
  7100.    
  7101.  
  7102.    Every form must be enclosed within a FORM element. There can be
  7103.    several forms in a single document, but the FORM element can't be
  7104.    nested. The browser is responsible for handling the input focus,
  7105.    i.e. which field will currently get keyboard input. Many platforms
  7106.    have existing conventions for forms, for example, using Tab and
  7107.    Shift-Tab to move the keyboard focus forwards and backwards between
  7108.    fields, and using the Enter (aka Return) key to submit the form. 
  7109.  
  7110.    This standard defines and requires support for the HTTP access
  7111.    protocol only. Under any protocol, the submitted contents of the
  7112.    form logically consist of a list of name/value pairs where the names
  7113.    are given by the NAME attributes of the various fields in the FORM.
  7114.    Each field will normally be given a distinct name. Several radio
  7115.    buttons can share the same name, as this is how you specify that
  7116.    they belong to the same control group - at any time, only one button
  7117.    in the group can be selected. 
  7118.  
  7119.    Note: The contents list of name/value pairs excludes unselected
  7120.    radio buttons and checkboxes. In general, any field with a null
  7121.    value can be omitted from the contents list. 
  7122.  
  7123. Client-side scripts and fill-out forms
  7124.  
  7125. Dave Raggett                                                          Page 125
  7126. HTML 3.0                                                       28th March 1995
  7127.  
  7128.  
  7129.    HTML 3.0 doesn't provide direct support for constraining the values
  7130.    entered into text fields, or for derived fields whose values are
  7131.    calculated from the values of other fields. Rather than extending
  7132.    the markup to support these features, HTML 3.0 provides a means for
  7133.    associating the form with a script. Support for scripts is not
  7134.    required, however, and the HTML 3.0 specification doesn't cover the
  7135.    scripting languages or the details of their interface with the user
  7136.    agent 
  7137.  
  7138.    The SCRIPT attribute of the FORM element specifies the script via a
  7139.    URI. The user agent down-loads the script and interprets it locally.
  7140.    Scripts handle a variety of messages for individual fields and the
  7141.    form as a whole. These messages correspond to events such as: 
  7142.  
  7143.    *   Enter/Leave Form (for initialization and clean up) 
  7144.  
  7145.    *   When a field gains or loses the input focus 
  7146.  
  7147.    *   Mouse clicks and drags over a field 
  7148.  
  7149.    *   Keyboard events 
  7150.  
  7151.    Scripts can examine and set properties of fields. They can also
  7152.    examine a small set of standard properties of the user agent, for
  7153.    instance the user's name, the time of day, the type of user agent,
  7154.    and so on. 
  7155.  
  7156.    Scripts can't do anything that might jeopardize the user or the host
  7157.    machine. Scripts can't send messages over the network, or read or
  7158.    write files. The library calls that are allowed are restricted to a
  7159.    very small and well defined set. These precautions are necessary for
  7160.    untrusted scripts. It is envisaged that script interpreters will
  7161.    offer a much wider application programming interface to trusted
  7162.    scripts, as determined on the basis of a digital signature by a
  7163.    trusted third party. 
  7164.  
  7165. Permitted Attributes for FORM
  7166.  
  7167.    ACTION 
  7168.        The ACTION attribute is a URL specifying the location to which
  7169.        the contents of the form is submitted to elicit a response. If
  7170.        the ACTION is missing, the URL for the document itself is
  7171.        assumed. The way data is submitted varies with the access
  7172.        protocol of the URL, and with the values of the METHOD and
  7173.        ENCTYPE attributes. 
  7174.  
  7175.    METHOD 
  7176.        This specifies variations in the protocol used to send the form
  7177.        contents. It is currently restricted to GET (the default) or
  7178.        POST. The attribute was introduced to inform user agents which
  7179.        HTTP methods the server supports. 
  7180.  
  7181.  
  7182. Dave Raggett                                                          Page 126
  7183. HTML 3.0                                                       28th March 1995
  7184.  
  7185.    ENCTYPE 
  7186.        This attribute specifies the MIME content type to be used to
  7187.        encode the form contents. It defaults to the string:
  7188.        "application/x-www-form-urlencoded" 
  7189.  
  7190.    SCRIPT 
  7191.        This can be used to give a URI for a script. The scripting
  7192.        language and the interface with the user agent is not part of
  7193.        the HTML 3.0 specification. 
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  
  7199.  
  7200.  
  7201.  
  7202.  
  7203.  
  7204.  
  7205.  
  7206.  
  7207.  
  7208.  
  7209.  
  7210.  
  7211.  
  7212.  
  7213.  
  7214.  
  7215.  
  7216.  
  7217.  
  7218.  
  7219.  
  7220.  
  7221.  
  7222.  
  7223.  
  7224.  
  7225.  
  7226.  
  7227.  
  7228.  
  7229.  
  7230.  
  7231.  
  7232.  
  7233.  
  7234.  
  7235.  
  7236.  
  7237.  
  7238.  
  7239. Dave Raggett                                                          Page 127
  7240. HTML 3.0                                                       28th March 1995
  7241.  
  7242. The INPUT fields
  7243.  
  7244.    Permitted Context: %Body.Content
  7245.    Content Model: --Empty!-- 
  7246.  
  7247.    The INPUT element is used for a wide variety of different kinds of
  7248.    entry fields within HTML fill-out forms. The TYPE attribute
  7249.    determines the type of field. 
  7250.  
  7251. Single-line text fields --(type=text)--
  7252.  
  7253.    These are used for entering short text strings, like peoples names,
  7254.    numbers and dates. The visible width of the field in characters can
  7255.    be set with the SIZE attribute. When using a variable pitch font,
  7256.    the SIZE attribute sets the width in en units (half the point size).
  7257.    The user should be able to enter more than this, with the contents
  7258.    of the field scrolling horizontally as needed. The MAXLENGTH
  7259.    attribute can be used to specify the maximum number of characters
  7260.    permitted for the string. 
  7261.  
  7262.    If the TYPE attribute is missing, the INPUT element is assumed to be
  7263.    a single-line text field. The NAME attribute is used to identify the
  7264.    field when the form's contents are converted to the name/value list.
  7265.    The VALUE field can be used to initialize the text string. Character
  7266.    entities can be used include accented characters in this string. 
  7267.  
  7268.    Note: Use the TEXTAREA element for multi-line text entry fields. 
  7269.  
  7270. Password fields --(type=password)--
  7271.  
  7272.    This is the same as single-line text fields except that each
  7273.    character typed is echoed by a shadow character, e.g. an asterisk or
  7274.    the space character. The user can see how many characters that have
  7275.    been typed but not what was typed. 
  7276.  
  7277. Checkbox fields --(type=checkbox)--
  7278.  
  7279.    A checkbox field has two states: selected and unselected.Its
  7280.    name/value pair only appear in the submitted data when selected.
  7281.    Checkboxes are used for boolean attributes. They can also be used
  7282.    for attributes which can take multiple values at the same time. This
  7283.    is represented by a checkbox for each optional value, with the same
  7284.    name for each of the checkboxes. Unselected checkboxes don't appear
  7285.    in the submitted data. Both NAME and VALUE are required for
  7286.    checkboxes. To initialize the checkbox to its selected state,
  7287.    include the CHECKED attribute. Checkboxes provide an alternative to
  7288.    using the SELECT element for multiple-choice menus. 
  7289.  
  7290. Radio Buttons --(type=radio)--
  7291.  
  7292.    Suitable for attributes which can take a single value from a set of
  7293.    alternatives. All radio buttons in the same group should be given
  7294.    the same NAME. Only the selected radio button in the group generates
  7295.  
  7296. Dave Raggett                                                          Page 128
  7297. HTML 3.0                                                       28th March 1995
  7298.  
  7299.    a name/value pair in the submitted data. Both NAME and VALUE are
  7300.    required for radio buttons. To initialize the radio button to its
  7301.    selected state, include the CHECKED attribute. Radio buttons offer
  7302.    an alternative to using the SELECT element for single choice menus. 
  7303.  
  7304. Range fields --(type=range)--
  7305.  
  7306.    These allow the user to pick a numeric value in between a lower and
  7307.    an upper bound. The range is specified with the MIN and MAX
  7308.    attributes, as in: 
  7309.  
  7310.        <input name=rating type=range min=1 max=10>
  7311.  
  7312.    If either the lower or upper bound is a real number, then the range
  7313.    is real valued, otherwise it is restricted to integer values only.
  7314.    The VALUE attribute can be used to initialize the range field. It an
  7315.    error for the value to lie outside the specified range. The default
  7316.    value is midway between the lower and upper limits. 
  7317.  
  7318. Scribble on Image --(type=scribble)--
  7319.  
  7320.    These fields allow the user to scribble with a pointing device (such
  7321.    as a mouse or pen) on top of a predefined image. The image is
  7322.    specified as a URI with the SRC attribute. If the user agent can't
  7323.    display images, or can't provide a means for users to scribble on
  7324.    the image, then the field should be treated as a text field. The
  7325.    VALUE attribute can be used to initialize the text field for these
  7326.    users. It is ignored when the user agent provides scribble on image
  7327.    support. 
  7328.  
  7329. File Attachments --(type=file)--
  7330.  
  7331.    This allows users to attach one or more files to be submitted with
  7332.    the form's contents. The ACCEPT attribute can be used to specify a
  7333.    comma separated list of MIME content types. These are used to
  7334.    restrict the kinds of files that can be attached to the form. For
  7335.    instance: 
  7336.  
  7337.        <input name=pictures type=file accept="image/*">
  7338.  
  7339.    This example restricts files to match "image/*", i.e. to registered
  7340.    MIME image types. For windows based user agents, it is suggested
  7341.    that file fields display the name of the last file attached, with
  7342.    the ability to open a file dialog box to view the complete list of
  7343.    files attached so far. The accept attribute then acts to specify the
  7344.    filter on the list of candidate files. 
  7345.  
  7346. Hidden fields --(type=hidden)--
  7347.  
  7348.    No field is presented to the user, but the content of the field is
  7349.    sent with the submitted form. This value may be used to transmit
  7350.    state information about client/server interaction, for instance a
  7351.    transaction identifier. These fields are needed because HTTP servers
  7352.  
  7353. Dave Raggett                                                          Page 129
  7354. HTML 3.0                                                       28th March 1995
  7355.  
  7356.    don't preserve state information from one request to the next. 
  7357.  
  7358. Submit buttons --(type=submit)--
  7359.  
  7360.    These are buttons that when pressed submit the form's data. You can
  7361.    use the VALUE attribute to provide a non-editable label to be
  7362.    displayed on the button. The default label is application-specific.
  7363.    A graphic can be specified for the submit button using the SRC
  7364.    attribute. 
  7365.  
  7366.    The submit button normally makes no contribution to the submitted
  7367.    data. The exception is when the field includes a NAME attribute, in
  7368.    which case, the name and value attributes are included with the
  7369.    submitted data. This can be used to distinguish which submit button
  7370.    the user pressed. 
  7371.  
  7372. Image fields --(type=image)--
  7373.  
  7374.    These act like submit buttons but include the location where the
  7375.    user clicked on the image. The image is specified with the SRC
  7376.    attribute. 
  7377.  
  7378.    --Should we phase these out, in favor of using SUBMIT? For this, we
  7379.    would need to ensure that the submit button included the location
  7380.    clicked when a graphic was specified with SRC.-- 
  7381.  
  7382. Reset buttons --(type=reset)--
  7383.  
  7384.    When a reset button is pressed, the form's fields are reset to their
  7385.    specified initial values. The label to be displayed on the button
  7386.    may be specified just as for the SUBMIT button. Likewise, the SRC
  7387.    attribute can be used to specify a graphic. 
  7388.  
  7389. ------------------------------------------------------------------------------
  7390. Permitted Attributes for the INPUT element
  7391.  
  7392.    ID 
  7393.        An SGML identifier used as the target for hypertext links or for
  7394.        naming particular elements in associated style sheets.
  7395.        Identifiers are NAME tokens and must be unique within the scope
  7396.        of the current document. 
  7397.  
  7398.    LANG 
  7399.        This is one of the ISO standard language abbreviations, e.g.
  7400.        "en.uk" for the variation of English spoken in the United
  7401.        Kingdom. It can be used by parsers to select language specific
  7402.        choices for quotation marks, ligatures and hypenation rules etc.
  7403.        The language attribute is composed from the two letter language
  7404.        code from ISO 639, optionally followed by a period and a two
  7405.        letter country code from ISO 3166. 
  7406.  
  7407.    CLASS 
  7408.        This a space separated list of SGML NAME tokens and is used to
  7409.  
  7410. Dave Raggett                                                          Page 130
  7411. HTML 3.0                                                       28th March 1995
  7412.  
  7413.        subclass tag names. By convention, the class names are
  7414.        interpreted hierarchically, with the most general class on the
  7415.        left and the most specific on the right, where classes are
  7416.        separated by a period. The CLASS attribute is most commonly used
  7417.        to attach a different style to some element, but it is
  7418.        recommended that where practical class names should be picked on
  7419.        the basis of the element's semantics, as this will permit other
  7420.        uses, such as restricting search through documents by matching
  7421.        on element class names. The conventions for choosing class names
  7422.        are outside the scope of this specification. 
  7423.  
  7424.    TYPE
  7425.        Defines the type of the field as one of: TEXT, PASSWORD,
  7426.        CHECKBOX, RADIO, RANGE, FILE, SCRIBBLE, HIDDEN, SUBMIT, IMAGE or
  7427.        RESET. It defaults to TEXT. The attribute value is an SGML name
  7428.        token and and as such is case insensitive. 
  7429.  
  7430.    NAME
  7431.        This provides a character string used to name the field when
  7432.        submitting the form's data. Several fields may share the same
  7433.        name, for instance a group of radio buttons or checkboxes. The
  7434.        name is case insensitive. 
  7435.  
  7436.    VALUE
  7437.        This is a character string or number which is used to initialize
  7438.        text, range and hidden fields. 
  7439.  
  7440.    DISABLED
  7441.        When present, the field should be rendered as normal, but can't
  7442.        be modified by the user. Where practical the rendering should
  7443.        provide a cue that the field is disabled e.g. by graying out the
  7444.        text, changing the color of the background or similar. 
  7445.  
  7446.    ERROR
  7447.        This attribute specifies an error message explaining why the
  7448.        field's current value is incorrect. When this attribute is
  7449.        missing, the field can be assumed to be ok. User agents are
  7450.        recommended to provide a cue to indicate that the field is in
  7451.        error. 
  7452.  
  7453.    CHECKED
  7454.        The presence of this attribute indicates that a radio button or
  7455.        checbox should be initialized to its selected state. 
  7456.  
  7457.    SIZE
  7458.        This specifies the visible width of a text or password field.
  7459.        For fixed pitch fonts, the size attribute specifies the maximum
  7460.        number of characters visible, while for variable pitch fonts,
  7461.        the attribute specifies the width in en units (half the point
  7462.        size). 
  7463.  
  7464.    MAXLENGTH
  7465.        Specifies the maximum number of characters permitted for text
  7466.  
  7467. Dave Raggett                                                          Page 131
  7468. HTML 3.0                                                       28th March 1995
  7469.  
  7470.        and password fields. 
  7471.  
  7472.    MIN
  7473.        This is an integer or real number and specifies the lower bound
  7474.        for a range field. 
  7475.  
  7476.    MAX
  7477.        This is an integer or real number and specifies the upper bound
  7478.        for a range field. 
  7479.  
  7480.    ACCEPT
  7481.        A comma separated list of MIME content types for use in
  7482.        restricting the types of files that can be attached to a form
  7483.        with a file field. 
  7484.  
  7485.    SRC (Source) 
  7486.        The SRC attribute specifies the URI for an image for use as the
  7487.        background of a SCRIBBLE, IMAGE, SUBMIT or RESET field. Its
  7488.        syntax is the same as that of the HREF attribute of the <A> tag. 
  7489.  
  7490.    MD 
  7491.        Specifies a message digest or cryptographic checksum for the
  7492.        associated image specified by the SRC attribute. It is used when
  7493.        you want to be sure that the image is indeed the same one that
  7494.        the author intended, and hasn't been modified in any way. For
  7495.        instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which specifies
  7496.        an MD5 checksum encoded as a base64 character string. The MD
  7497.        attribute is generally allowed for all elements which support
  7498.        URI based links. 
  7499.  
  7500.    ALIGN 
  7501.        This attribute only applies to fields with background images,
  7502.        i.e. SCRIBBLE, IMAGE, SUBMIT or RESET fields. It is intended to
  7503.        provide the same positional control as for the IMG element. The
  7504.        ALIGN attribute takes the values TOP or MIDDLE or BOTTOM,
  7505.        defining whether the top or middle or bottom of the field should
  7506.        be aligned with the baseline for the text line in which the
  7507.        INPUT element appears. 
  7508.  
  7509.        With ALIGN=LEFT, the field will float down and over to the
  7510.        current left margin, and subsequent text will wrap around the
  7511.        right hand side of the field. Likewise for ALIGN=RIGHT, the
  7512.        field aligns with the current right margin and, and text wraps
  7513.        around the left. 
  7514.  
  7515.  
  7516.  
  7517.  
  7518.  
  7519.  
  7520.  
  7521.  
  7522.  
  7523.  
  7524. Dave Raggett                                                          Page 132
  7525. HTML 3.0                                                       28th March 1995
  7526.  
  7527. TEXTAREA
  7528.  
  7529.    Permitted Context: %Body.Content
  7530.    Content Model: PCDATA (i.e. text and entities) 
  7531.  
  7532. TEXTAREA
  7533.  
  7534.    To let users enter more than one line of text, use the TEXTAREA
  7535.    element. For example: 
  7536.  
  7537.    <TEXTAREA NAME="address" ROWS=64 COLS=6>
  7538.    HaL Computer Systems
  7539.    1315 Dell Avenue
  7540.    Campbell, California 95008
  7541.    </TEXTAREA>
  7542.    
  7543.  
  7544.    The text up to the end tag is used to initialize the field's value.
  7545.    The initialization text can contain SGML entities, e.g. for accented
  7546.    characters, but is otherwise treated as literal text. This end tag
  7547.    is always required even if the field is initially blank. When
  7548.    submitting a form, the line terminators are implementation
  7549.    dependent. Servers should be capable of recognizing a CR immediately
  7550.    followed by an LF, or separate CRs and LFs as all signifying the
  7551.    ends of lines. User agents should tolerate the same range of line
  7552.    terminators within the initialization text. 
  7553.  
  7554.    In a typical rendering, the ROWS and COLS attributes determine the
  7555.    visible dimension of the field in characters. The field is rendered
  7556.    in a fixed-width font. User agents should allow text to grow beyond
  7557.    these limits by scrolling as needed. The user agent is recommended
  7558.    to wrap words as they are entered, to fit within the textarea field.
  7559.    It is further recommended that a means is provided for users to turn
  7560.    this feature off and on. 
  7561.  
  7562.    Note: In the initial design for forms, multi-line text fields were
  7563.    supported by the INPUT element with TYPE=TEXT. Unfortunately, this
  7564.    causes problems for fields with long text values as SGML limits the
  7565.    length of attribute literals. The HTML 2.0 DTD allows for up to 1024
  7566.    characters (the SGML default is only 240 characters). 
  7567.  
  7568. Permitted Attributes
  7569.  
  7570.    ID 
  7571.        An SGML identifier used as the target for hypertext links or for
  7572.        naming particular elements in associated style sheets.
  7573.        Identifiers are NAME tokens and must be unique within the scope
  7574.        of the current document. 
  7575.  
  7576.    LANG 
  7577.        This is one of the ISO standard language abbreviations, e.g.
  7578.        "en.uk" for the variation of English spoken in the United
  7579.        Kingdom. It can be used by parsers to select language specific
  7580.  
  7581. Dave Raggett                                                          Page 133
  7582. HTML 3.0                                                       28th March 1995
  7583.  
  7584.        choices for quotation marks, ligatures and hypenation rules etc.
  7585.        The language attribute is composed from the two letter language
  7586.        code from ISO 639, optionally followed by a period and a two
  7587.        letter country code from ISO 3166. 
  7588.  
  7589.    CLASS 
  7590.        This a space separated list of SGML NAME tokens and is used to
  7591.        subclass tag names. By convention, the class names are
  7592.        interpreted hierarchically, with the most general class on the
  7593.        left and the most specific on the right, where classes are
  7594.        separated by a period. The CLASS attribute is most commonly used
  7595.        to attach a different style to some element, but it is
  7596.        recommended that where practical class names should be picked on
  7597.        the basis of the element's semantics, as this will permit other
  7598.        uses, such as restricting search through documents by matching
  7599.        on element class names. The conventions for choosing class names
  7600.        are outside the scope of this specification. 
  7601.  
  7602.    NAME 
  7603.        The formal name of the field which is used in the form's
  7604.        contents list. 
  7605.  
  7606.    ROWS 
  7607.        This gives the visible number of text lines shown by the field.
  7608.        User agents should allow text to grow beyond these limits by
  7609.        scrolling as needed. 
  7610.  
  7611.    COLS 
  7612.        The visible number of characters across the field. User agents
  7613.        should allow text to grow beyond these limits by scrolling as
  7614.        needed. 
  7615.  
  7616.    DISABLED
  7617.        When present, the field should be rendered as normal, but can't
  7618.        be modified by the user. Where practical the rendering should
  7619.        provide a cue that the field is disabled e.g. by graying out the
  7620.        text, changing the color of the background or similar. 
  7621.  
  7622.    ERROR
  7623.        This attribute specifies an error message explaining why the
  7624.        field's current value is incorrect. When this attribute is
  7625.        missing, the field can be assumed to be ok. User agents are
  7626.        recommended to provide a cue to indicate that the field is in
  7627.        error. 
  7628.  
  7629.    ALIGN 
  7630.        Take values TOP or MIDDLE or BOTTOM, defining whether the top or
  7631.        middle or bottom row of the field should be aligned with the
  7632.        baseline for the text line in which the TEXTAREA element
  7633.        appears. The default is align=top. 
  7634.  
  7635.        With ALIGN=LEFT, the field will float down and over to the
  7636.        current left margin, and subsequent text will wrap around the
  7637.  
  7638. Dave Raggett                                                          Page 134
  7639. HTML 3.0                                                       28th March 1995
  7640.  
  7641.        right hand side of the field. Likewise for ALIGN=RIGHT, the
  7642.        field aligns with the current right margin and, and text wraps
  7643.        around the left. 
  7644.  
  7645.  
  7646.  
  7647.  
  7648.  
  7649.  
  7650.  
  7651.  
  7652.  
  7653.  
  7654.  
  7655.  
  7656.  
  7657.  
  7658.  
  7659.  
  7660.  
  7661.  
  7662.  
  7663.  
  7664.  
  7665.  
  7666.  
  7667.  
  7668.  
  7669.  
  7670.  
  7671.  
  7672.  
  7673.  
  7674.  
  7675.  
  7676.  
  7677.  
  7678.  
  7679.  
  7680.  
  7681.  
  7682.  
  7683.  
  7684.  
  7685.  
  7686.  
  7687.  
  7688.  
  7689.  
  7690.  
  7691.  
  7692.  
  7693.  
  7694.  
  7695. Dave Raggett                                                          Page 135
  7696. HTML 3.0                                                       28th March 1995
  7697.  
  7698. The SELECT element
  7699.  
  7700.    Permitted Context: %Body.Content --but-- must be within FORM
  7701.    Content Model: one ore more OPTION elements 
  7702.  
  7703.    The SELECT element is used for single and multiple choice menus. It
  7704.    is generally rendered as a drop-down or pop-up menu, and offers a
  7705.    more compact alternative to using radio buttons for single choice
  7706.    menus, or checkboxes for multiple choice menus. 
  7707.  
  7708.    Example: 
  7709.  
  7710.    <SELECT NAME="flavor">
  7711.    <OPTION>Vanilla
  7712.    <OPTION>Strawberry
  7713.    <OPTION>Rum and Raisin
  7714.    <OPTION>Peach and Orange
  7715.    </SELECT>
  7716.    
  7717.  
  7718.    This is a single choice menu. When you want a multiple choice menu,
  7719.    you need to include the MULTIPLE attribute with the SELECT element,
  7720.    e.g. <SELECT MULTIPLE NAME="flavor">. 
  7721.  
  7722.    The NAME attribute is used when creating the name/value list
  7723.    describing the form's contents. A name/value pair is contributed for
  7724.    each selected option. The value is taken from the OPTION's VALUE
  7725.    attribute, and defaults to the content of the OPTION when the VALUE
  7726.    attribute is missing. 
  7727.  
  7728.    For single choice menus, if no option is initially marked as
  7729.    selected, then the first item listed is selected. This is
  7730.    inappropriate for multiple choice menus, though. 
  7731.  
  7732. Graphical Menus
  7733.  
  7734.    HTML 3.0 extends the SELECT element to support graphical menus. This
  7735.    is allows you to specify an image for the SELECT element, and
  7736.    hotzones for each of the OPTION elements. In this way the same menu
  7737.    can be rendered as a conventional text-based menu for non-graphical
  7738.    user agents and a graphical menu for graphical user agents. 
  7739.  
  7740.    The image is specified in the same way as for IMG elements. This
  7741.    means you can specify suggested values for the width and height. You
  7742.    can also float the image to the left or right margins and flow other
  7743.    elements around it. The hotzones for OPTION elements are specified
  7744.    using the SHAPE attribute in the same way as for anchor elements. 
  7745.  
  7746. Permitted Attributes
  7747.  
  7748.    ID 
  7749.        An SGML identifier used as the target for hypertext links or for
  7750.        naming particular elements in associated style sheets.
  7751.  
  7752. Dave Raggett                                                          Page 136
  7753. HTML 3.0                                                       28th March 1995
  7754.  
  7755.        Identifiers are NAME tokens and must be unique within the scope
  7756.        of the current document. 
  7757.  
  7758.    LANG 
  7759.        This is one of the ISO standard language abbreviations, e.g.
  7760.        "en.uk" for the variation of English spoken in the United
  7761.        Kingdom. It can be used by parsers to select language specific
  7762.        choices for quotation marks, ligatures and hypenation rules etc.
  7763.        The language attribute is composed from the two letter language
  7764.        code from ISO 639, optionally followed by a period and a two
  7765.        letter country code from ISO 3166. 
  7766.  
  7767.    CLASS 
  7768.        This a space separated list of SGML NAME tokens and is used to
  7769.        subclass tag names. By convention, the class names are
  7770.        interpreted hierarchically, with the most general class on the
  7771.        left and the most specific on the right, where classes are
  7772.        separated by a period. The CLASS attribute is most commonly used
  7773.        to attach a different style to some element, but it is
  7774.        recommended that where practical class names should be picked on
  7775.        the basis of the element's semantics, as this will permit other
  7776.        uses, such as restricting search through documents by matching
  7777.        on element class names. The conventions for choosing class names
  7778.        are outside the scope of this specification. 
  7779.  
  7780.    NAME 
  7781.        The formal name of the menu which is used in the form's contents
  7782.        list. 
  7783.  
  7784.    MULTIPLE 
  7785.        The presence of this attribute denotes that the SELECT element
  7786.        defines a multiple choice menu. In its absence, the element
  7787.        defines a single choice menu. 
  7788.  
  7789.    DISABLED
  7790.        When present, the menu should be rendered as normal, but can't
  7791.        be modified by the user. Where practical the rendering should
  7792.        provide a cue that the menu is disabled e.g. by graying out the
  7793.        text, changing the color of the background or similar. 
  7794.  
  7795.    ERROR
  7796.        This attribute specifies an error message explaining why the
  7797.        menu's current selections are incorrect. Further error messages
  7798.        can be attached to individual options. When this attribute is
  7799.        missing, the menu can be assumed to be ok. User agents are
  7800.        recommended to provide a cue to indicate that the menu is in
  7801.        error. 
  7802.  
  7803.    SRC (Source) 
  7804.        The SRC attribute is used for graphical menus to specify the URI
  7805.        for the image. Its syntax is the same as that of the HREF
  7806.        attribute of the <A> tag. 
  7807.  
  7808.  
  7809. Dave Raggett                                                          Page 137
  7810. HTML 3.0                                                       28th March 1995
  7811.  
  7812.    MD 
  7813.        Specifies a message digest or cryptographic checksum for the
  7814.        associated image specified by the SRC attribute. It is used when
  7815.        you want to be sure that the image is indeed the same one that
  7816.        the author intended, and hasn't been modified in any way. For
  7817.        instance, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", which specifies
  7818.        an MD5 checksum encoded as a base64 character string. The MD
  7819.        attribute is generally allowed for all elements which support
  7820.        URI based links. 
  7821.  
  7822.    WIDTH 
  7823.        Optional suggested width for the image. By default, this is
  7824.        given in pixels. 
  7825.  
  7826.    HEIGHT 
  7827.        Optional suggested height for the image. By default, this is
  7828.        given in pixels. 
  7829.  
  7830.    UNITS 
  7831.        This optional attribute specifies the units for the width and
  7832.        height attributes. It is one of: units=pixels (the default) or
  7833.        units=em (the width of the letter "m") which scales with the
  7834.        font size. 
  7835.  
  7836.    ALIGN 
  7837.        Take values TOP or MIDDLE or BOTTOM, defining whether the top or
  7838.        middle or bottom of the graphic should be aligned with the
  7839.        baseline for the text line in which the IMG element appears. 
  7840.  
  7841.        With ALIGN=LEFT, the graphic will float down and over to the
  7842.        current left margin, and subsequent text will wrap around the
  7843.        right hand side of the graphic. Likewise for ALIGN=RIGHT, the
  7844.        graphic aligns with the current right margin and, and text wraps
  7845.        around the left. 
  7846.  
  7847.  
  7848.  
  7849.  
  7850.  
  7851.  
  7852.  
  7853.  
  7854.  
  7855.  
  7856.  
  7857.  
  7858.  
  7859.  
  7860.  
  7861.  
  7862.  
  7863.  
  7864.  
  7865.  
  7866. Dave Raggett                                                          Page 138
  7867. HTML 3.0                                                       28th March 1995
  7868.  
  7869. Menu OPTIONs
  7870.  
  7871.    Permitted Context: SELECT
  7872.    Content Model: PCDATA 
  7873.  
  7874.    The OPTION element can only occur within a SELECT element. It
  7875.    represents a possible choice. It can only contain text, together
  7876.    with SGML entities for accented characters etc. 
  7877.  
  7878.    When the form is submitted, the NAME of the enclosing SELECT element
  7879.    is paired with the OPTION's VALUE attribute to contribute a
  7880.    name/value pair for the selection. Unselected options don't
  7881.    contribute to the form's submitted data. You can initialize the
  7882.    option to its selected state by including the SELECT attribute. 
  7883.  
  7884.    The SHAPE attribute is used for graphical menus to specify the
  7885.    region of the background image to be associated with this option. It
  7886.    uses the same definition as for the anchor element. 
  7887.  
  7888. Permitted Attributes
  7889.  
  7890.    ID 
  7891.        An SGML identifier used as the target for hypertext links or for
  7892.        naming particular elements in associated style sheets.
  7893.        Identifiers are NAME tokens and must be unique within the scope
  7894.        of the current document. 
  7895.  
  7896.    LANG 
  7897.        This is one of the ISO standard language abbreviations, e.g.
  7898.        "en.uk" for the variation of English spoken in the United
  7899.        Kingdom. It can be used by parsers to select language specific
  7900.        choices for quotation marks, ligatures and hypenation rules etc.
  7901.        The language attribute is composed from the two letter language
  7902.        code from ISO 639, optionally followed by a period and a two
  7903.        letter country code from ISO 3166. 
  7904.  
  7905.    CLASS 
  7906.        This a space separated list of SGML NAME tokens and is used to
  7907.        subclass tag names. By convention, the class names are
  7908.        interpreted hierarchically, with the most general class on the
  7909.        left and the most specific on the right, where classes are
  7910.        separated by a period. The CLASS attribute is most commonly used
  7911.        to attach a different style to some element, but it is
  7912.        recommended that where practical class names should be picked on
  7913.        the basis of the element's semantics, as this will permit other
  7914.        uses, such as restricting search through documents by matching
  7915.        on element class names. The conventions for choosing class names
  7916.        are outside the scope of this specification. 
  7917.  
  7918.    DISABLED
  7919.        When present, the option should be rendered as normal, but can't
  7920.        be modified by the user. Where practical the rendering should
  7921.        provide a cue that the option is disabled e.g. by graying out
  7922.  
  7923. Dave Raggett                                                          Page 139
  7924. HTML 3.0                                                       28th March 1995
  7925.  
  7926.        the text, changing the color of the background or similar. 
  7927.  
  7928.    ERROR
  7929.        This attribute specifies an error message explaining why the
  7930.        option is inappropriate. When this attribute is missing, the
  7931.        option can be assumed to be ok. User agents are recommended to
  7932.        provide a cue to indicate that the option is in error. 
  7933.  
  7934.    VALUE
  7935.        The string to be used together with the name attribute of the
  7936.        enclosing select element, when submitting the form. It defaults
  7937.        to the content of the OPTION element. 
  7938.  
  7939.    SELECTED
  7940.        When present, this attribute signifies that the option should be
  7941.        initialized in its selected state. It is an error for more than
  7942.        one option to be selected for single choice menus. 
  7943.  
  7944.    SHAPE
  7945.        This attribute is used within menus to define shaped hotzones
  7946.        associated with this option's value. The attribute value is a
  7947.        string taking one of the following forms:
  7948.        
  7949.        
  7950.  
  7951.        "default" 
  7952.            Used to define a default menu choice for the menu
  7953.            background. 
  7954.  
  7955.        "circle x, y, r" 
  7956.            Where x and y define the center and r specifies the radius. 
  7957.  
  7958.        "rect x, y, w, h" 
  7959.            Where x, y define the upper left corner and w, h define the
  7960.            width and height respectively 
  7961.  
  7962.        "polygon x1, y1, x2, y2, ..." 
  7963.            Given n pairs of x, y coordinates, the polygon is closed by
  7964.            a line linking the n'th point to the first. Intersecting
  7965.            polygons use the non-zero winding number rule to determine
  7966.            if a point lies inside the polygon. 
  7967.  
  7968.        If a pointer event occurs in a region where two or more shapes
  7969.        overlap, the distance from the point to the center of gravity of
  7970.        each of the overlapping shapes is computed and the closest one
  7971.        chosen. This feature is useful when you want lots of closely
  7972.        spaced hotzones, for example over points on a map, as it allows
  7973.        you to use simple shapes without worrying about overlaps. 
  7974.  
  7975.        Note: The x coordinate increases to the right, and the y
  7976.        coordinate increases downwards in the same way as IMG and image
  7977.        maps. If both numbers are integers, the coordinates are
  7978.        interpreted as pixel offsets from the upper left corner of the
  7979.  
  7980. Dave Raggett                                                          Page 140
  7981. HTML 3.0                                                       28th March 1995
  7982.  
  7983.        image. Otherwise, the coordinates are interpreted as scaled
  7984.        values in the range 0.0 to 1.0 across the image. Note the syntax
  7985.        is tolerant of repeated white space characters between tokens. 
  7986.  
  7987.  
  7988.  
  7989.  
  7990.  
  7991.  
  7992.  
  7993.  
  7994.  
  7995.  
  7996.  
  7997.  
  7998.  
  7999.  
  8000.  
  8001.  
  8002.  
  8003.  
  8004.  
  8005.  
  8006.  
  8007.  
  8008.  
  8009.  
  8010.  
  8011.  
  8012.  
  8013.  
  8014.  
  8015.  
  8016.  
  8017.  
  8018.  
  8019.  
  8020.  
  8021.  
  8022.  
  8023.  
  8024.  
  8025.  
  8026.  
  8027.  
  8028.  
  8029.  
  8030.  
  8031.  
  8032.  
  8033.  
  8034.  
  8035.  
  8036.  
  8037. Dave Raggett                                                          Page 141
  8038. HTML 3.0                                                       28th March 1995
  8039.  
  8040. Special Characters
  8041.  
  8042.    This section contains information of how user agents should treat
  8043.    control characters and other special characters. 
  8044.  
  8045. Character Data
  8046.  
  8047.    The characters between the tags represent text encoded according to
  8048.    ISO 8859/1 8-bit single-byte coded graphic character set known as
  8049.    Latin Alphabet No. 1, or simply Latin-1. There are 256 character
  8050.    positions in the Latin-1 encoding. Latin-1 includes characters from
  8051.    most Western European languages. It consists of the space character,
  8052.    186 characters that form a subset of the graphic characters in ISO
  8053.    6937/2 (1983), and four additional characters that are intended for
  8054.    inclusion in ISO 6937/2. For more information, see Character Sets 
  8055.  
  8056.    The lower 128 character positions include a space, 33 control
  8057.    characters, the 26 upper- and lowercase letters of the english
  8058.    alphabet, 10 numerals and 32 other printing characters This subset,
  8059.    functionally identical to ASCII, is defined by ISO 646 7-bit coded
  8060.    character set for information interchange, also known as the
  8061.    International Reference Version. ISO 646 is identical in most
  8062.    respect to the ANSI standard for ASCII (American Standard Code for
  8063.    Information Interchange). The only significant difference between
  8064.    ISO 646 and ASCII is the specific names assigned to the control
  8065.    characters which occupy positions 00-31 and 127 
  8066.  
  8067.    The upper 128 positions include a non-breaking space, a soft hyphen
  8068.    indicator, 93 graphical characters, 8 unassigned characters, and 25
  8069.    control characters. The non-breaking space and soft hyphen indicator
  8070.    are not recognized and interpreted by all HTML browsers, and their
  8071.    use is discouraged 
  8072.  
  8073.    There are 58 character positions which are occupied by control
  8074.    characters. See the discussion for details on the interpretation of
  8075.    control characters. Because certain special characters are subject
  8076.    to interpretation and special processing, information providers and
  8077.    browser implementors should follow these guidelines 
  8078.  
  8079.    Certain characters may not be accessible from your keyboard, or some
  8080.    part of your system (i.e. translation software) may not be equipped
  8081.    to deal with 8-bit character codes. HTML and many WWW browsers
  8082.    provide character entity references and numerical character
  8083.    references to facilitate the entry and interpretation of characters
  8084.    by name and by numerical position. 
  8085.  
  8086.    Because certain characters will be interpreted as markup, they
  8087.    should be"escaped"; that is, represented by markup -- numeric
  8088.    character or entity references. 
  8089.  
  8090. ------------------------------------------------------------------------------
  8091. Special Characters
  8092.  
  8093.  
  8094. Dave Raggett                                                          Page 142
  8095. HTML 3.0                                                       28th March 1995
  8096.  
  8097.    Certain characters are taken to have special meaning within the
  8098.    context of an HTML document. There are two printing characters which
  8099.    may be interpreted by the browser to have an effect of the format of
  8100.    the text: 
  8101.  
  8102. Space
  8103.  
  8104.    *   Interpreted as a word space in all contexts except <PRE>. 
  8105.  
  8106.    *   Interpreted as a no-break space within <PRE>. 
  8107.  
  8108.    The character entities   and   denote an en space and an
  8109.    em space respectively, where an en space is half the point size and
  8110.    an em space is equal to the point size of the current font. For
  8111.    fixed pitch fonts, the user agent can treat the en space as being
  8112.    equivalent to a single space character, and the em space as being
  8113.    equuivalent to two space characters. 
  8114.  
  8115. Non-breaking Space ( )
  8116.  
  8117.    This should be treated in the same way as the space character (ASCII
  8118.    character code 32 decimal), except that the user agent should never
  8119.    break lines at this point. It is useful when you want to ensure that
  8120.    neigbouring words always stay together and don't get split across
  8121.    lines. 
  8122.  
  8123. Hyphen
  8124.  
  8125.    *   Interpreted as a hyphen glyph in all contexts. 
  8126.  
  8127.    *   Interpreted as a potential word space by hyphenation engine. 
  8128.  
  8129.    The character entities &endash; and &emdash; denote dash marks with
  8130.    the same widths as the   and   entities respectively. 
  8131.  
  8132. ------------------------------------------------------------------------------
  8133. Control Characters
  8134.  
  8135.    Control characters are non-printable characters that are typically
  8136.    used for communication and device control, as format effectors, and
  8137.    as information separators. 
  8138.  
  8139.    In SGML applications, the use of control characters is limited in
  8140.    order to maximize the chance of sucessful interchange over
  8141.    heterogenous networks and operating systems. In HTML, there are only
  8142.    three control characters which are used. The remaining 55 control
  8143.    characters are shunned and should not appear in an HTML document.
  8144.    The valid control characters and their interpretation are: 
  8145.  
  8146. Horizontal Tab (HT - 9 dec) 
  8147.  
  8148.    *   Interpreted as a word space in all contexts except <PRE>. 
  8149.  
  8150.  
  8151. Dave Raggett                                                          Page 143
  8152. HTML 3.0                                                       28th March 1995
  8153.  
  8154.    *   Within <PRE>, the tab should be interpreted to shift the
  8155.        horizontal column position to the next position which is a
  8156.        multiple of 8 on the same line; that is, col := (col+8) mod 8. 
  8157.  
  8158. Line Feed (LF - 10 dec)
  8159.  
  8160.    *   Interpreted as a word space in all contexts except <PRE>. 
  8161.  
  8162.    *   Within <PRE>, the tab should be interpreted as a shift to the
  8163.        start of a new line; that is, col := 0; row := row+1 
  8164.  
  8165. Carriage Return (CR - 13 dec) 
  8166.  
  8167.    *   Interpreted as a word space in all contexts except <PRE>. 
  8168.  
  8169.        
  8170.  
  8171.    *   Within <PRE>, the tab should be interpreted as a shift to the
  8172.        start of the line; that is, col := 0;
  8173.  
  8174.        
  8175.  
  8176. ------------------------------------------------------------------------------
  8177. Numeric Character References 
  8178.  
  8179.    Any printing character within the 8-bit character encoding of ISO
  8180.    8859/1 (256 character positions) or the 7-bit character encoding of
  8181.    ISO 646 (128 character positions) may be represented within the text
  8182.    of an HTML document by a numeric character reference, e.g. é is
  8183.    a small e with an acute accent. It is recommended that character
  8184.    entity references such as é are used in preference to
  8185.    numberic character references.  
  8186.  
  8187.  
  8188.  
  8189.  
  8190.  
  8191.  
  8192.  
  8193.  
  8194.  
  8195.  
  8196.  
  8197.  
  8198.  
  8199.  
  8200.  
  8201.  
  8202.  
  8203.  
  8204.  
  8205.  
  8206.  
  8207.  
  8208. Dave Raggett                                                          Page 144
  8209. HTML 3.0                                                       28th March 1995
  8210.  
  8211. Security Considerations
  8212.  
  8213.    Anchors, embedded images, and all other elements which contain URIs
  8214.    as parameters may cause the URI to be dereferenced. In this case,
  8215.    the security considerations of the URI specification apply. 
  8216.  
  8217.    Documents may be constructed whose visible contents mislead the
  8218.    reader to follow a link to unsuitable or offensive material. 
  8219.  
  8220.    The MD attribute is useful when authors are concerned that a linked
  8221.    object may be subsequently changed to something other than intended.
  8222.    This attribute is used to specify a cryptographic checksum for the
  8223.    linked object to provide a check on its integrity.  
  8224.  
  8225.  
  8226.  
  8227.  
  8228.  
  8229.  
  8230.  
  8231.  
  8232.  
  8233.  
  8234.  
  8235.  
  8236.  
  8237.  
  8238.  
  8239.  
  8240.  
  8241.  
  8242.  
  8243.  
  8244.  
  8245.  
  8246.  
  8247.  
  8248.  
  8249.  
  8250.  
  8251.  
  8252.  
  8253.  
  8254.  
  8255.  
  8256.  
  8257.  
  8258.  
  8259.  
  8260.  
  8261.  
  8262.  
  8263.  
  8264.  
  8265. Dave Raggett                                                          Page 145
  8266. HTML 3.0                                                       28th March 1995
  8267.  
  8268. <!SGML  "ISO 8879:1986"
  8269. --
  8270.         SGML Declaration for HyperText Markup Language (HTML).
  8271.  
  8272. --
  8273.  
  8274. CHARSET
  8275.          BASESET  "ISO 646:1983//CHARSET
  8276.                    International Reference Version
  8277.                    (IRV)//ESC 2/5 4/0"
  8278.          DESCSET  0   9   UNUSED
  8279.                   9   2   9
  8280.                   11  2   UNUSED
  8281.                   13  1   13
  8282.                   14  18  UNUSED
  8283.                   32  95  32
  8284.                   127 1   UNUSED
  8285.      BASESET   "ISO Registration Number 100//CHARSET
  8286.                 ECMA-94 Right Part of
  8287.                 Latin Alphabet Nr. 1//ESC 2/13 4/1"
  8288.  
  8289.          DESCSET  128  32   UNUSED
  8290.                   160  96    32
  8291.  
  8292. CAPACITY        SGMLREF
  8293.                 TOTALCAP        200000
  8294.                 GRPCAP          150000
  8295.   
  8296. SCOPE    DOCUMENT
  8297. SYNTAX   
  8298.          SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  8299.                  17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
  8300.          BASESET  "ISO 646:1983//CHARSET
  8301.                    International Reference Version
  8302.                    (IRV)//ESC 2/5 4/0"
  8303.          DESCSET  0 128 0
  8304.          FUNCTION
  8305.                   RE          13
  8306.                   RS          10
  8307.                   SPACE       32
  8308.                   TAB SEPCHAR  9
  8309.         
  8310.  
  8311.          NAMING   LCNMSTRT ""
  8312.                   UCNMSTRT ""
  8313.                   LCNMCHAR ".-"
  8314.                   UCNMCHAR ".-"
  8315.                   NAMECASE GENERAL YES
  8316.                            ENTITY  NO
  8317.          DELIM    GENERAL  SGMLREF
  8318.                   SHORTREF SGMLREF
  8319.          NAMES    SGMLREF
  8320.          QUANTITY SGMLREF
  8321.  
  8322. Dave Raggett                                                          Page 146
  8323. HTML 3.0                                                       28th March 1995
  8324.  
  8325.                   ATTSPLEN 2100
  8326.                   LITLEN   1024
  8327.                   NAMELEN  72    -- somewhat arbitrary; taken from
  8328.                                 internet line length conventions --
  8329.                   PILEN    1024
  8330.                   TAGLEN   2100
  8331.                   GRPGTCNT 150
  8332.                   GRPCNT   64                   
  8333.  
  8334. FEATURES
  8335.   MINIMIZE
  8336.     DATATAG  NO
  8337.     OMITTAG  YES
  8338.     RANK     NO
  8339.     SHORTTAG YES
  8340.   LINK
  8341.     SIMPLE   NO
  8342.     IMPLICIT NO
  8343.     EXPLICIT NO
  8344.   OTHER
  8345.     CONCUR   NO
  8346.     SUBDOC   NO
  8347.     FORMAL   YES
  8348.   APPINFO    "SDA"  -- conforming SGML Document Access application
  8349.                     --
  8350. >
  8351. <!-- 
  8352.         $Id: html.decl,v 1.1 1995/03/07 05:50:34 connolly Exp $
  8353.  
  8354.         Author: Daniel W. Connolly <connolly@hal.com>
  8355.  
  8356.         See also: http://www.hal.com/%7Econnolly/html-spec
  8357.           http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html
  8358.  -->
  8359.  
  8360.  
  8361.  
  8362.  
  8363.  
  8364.  
  8365.  
  8366.  
  8367.  
  8368.  
  8369.  
  8370.  
  8371.  
  8372.  
  8373.  
  8374.  
  8375.  
  8376.  
  8377.  
  8378.  
  8379. Dave Raggett                                                          Page 147
  8380. HTML 3.0                                                       28th March 1995
  8381.  
  8382. Character Entity Set(s)
  8383.  
  8384. This section is undergoing revision ... 
  8385.  
  8386.    --In particular, we need to add a more complete list of character
  8387.    entities, e.g. for the characters below decimal 128 and missing
  8388.    codes such as currency signs. 
  8389.  
  8390.    The following entity names are used in HTML, always prefixed by
  8391.    ampersand (&) and followed by a semicolon as shown. 
  8392.  
  8393.    They represent particular graphic characters which have special
  8394.    meanings in places in the markup, or may not be part of the
  8395.    character set available to the writer. 
  8396.  
  8397. ------------------------------------------------------------------------------
  8398. Numeric and Special Graphic Entities 
  8399.  
  8400.    The following table lists each of the supported characters specified
  8401.    in the Numeric and Special Graphic entity set, along with its name,
  8402.    syntax for use, and description. 
  8403.  
  8404.    This list is derived from "ISO 8879:1986//ENTITIES Numeric and
  8405.    Special Graphic//EN" however HTML does not provide support for the
  8406.    entire entity set. Only the entities listed below are supported. 
  8407.  
  8408.    
  8409.    Name             Syntax       Description            
  8410.    lt              <        Less than sign
  8411.    gt              >        Greater than sign
  8412.    amp             &       Ampersand
  8413.    quot            "      Double quote sign
  8414.    
  8415.  
  8416. ------------------------------------------------------------------------------
  8417. ISO Latin 1 Character Entities 
  8418.  
  8419.    The following table lists each of the characters specified in the
  8420.    Added Latin 1 entity set, along with its name, syntax for use, and
  8421.    description. 
  8422.  
  8423.    This list is derived from "ISO 8879:1986//ENTITIES Added Latin
  8424.    1//EN", and HTML does provide support for the entire entity set. 
  8425.  
  8426.    
  8427.    Name            Syntax      Description            
  8428.    Aacute          Á    Capital A, acute accent
  8429.    Agrave          À    Capital A, grave accent
  8430.    Acirc           Â     Capital A, circumflex accent
  8431.    Atilde          Ã    Capital A, tilde
  8432.    Aring           Å     Capital A, ring
  8433.    Auml            Ä      Capital A, dieresis or umlaut mark
  8434.    AElig           Æ     Capital AE dipthong (ligature)
  8435.  
  8436. Dave Raggett                                                          Page 148
  8437. HTML 3.0                                                       28th March 1995
  8438.  
  8439.    Ccedil          Ç    Capital C, cedilla
  8440.    Eacute          É    Capital E, acute accent
  8441.    Egrave          È    Capital E, grave accent
  8442.    Ecirc           Ê     Capital E, circumflex accent
  8443.    Euml            Ë      Capital E, dieresis or umlaut mark
  8444.    Iacute          Í    Capital I, acute accent
  8445.    Igrave          Ì    Capital I, grave accent
  8446.    Icirc           Î     Capital I, circumflex accent
  8447.    Iuml            Ï      Capital I, dieresis or umlaut mark
  8448.    ETH             Ð       Capital Eth, Icelandic
  8449.    Ntilde          Ñ    Capital N, tilde
  8450.    Oacute          Ó    Capital O, acute accent
  8451.    Ograve          Ò    Capital O, grave accent
  8452.    Ocirc           Ô     Capital O, circumflex accent
  8453.    Otilde          Õ    Capital O, tilde
  8454.    Ouml            Ö      Capital O, dieresis or umlaut mark
  8455.    Oslash          Ø    Capital O, slash
  8456.    Uacute          Ú    Capital U, acute accent
  8457.    Ugrave          Ù    Capital U, grave accent
  8458.    Ucirc           Û     Capital U, circumflex accent
  8459.    Uuml            Ü      Capital U, dieresis or umlaut mark
  8460.    Yacute          Ý    Capital Y, acute accent
  8461.    
  8462.    THORN           Þ     Capital THORN, Icelandic
  8463.    szlig           ß     Small sharp s, German (sz ligature)
  8464.    
  8465.    aacute          á    Small a, acute accent
  8466.    agrave          à    Small a, grave accent
  8467.    acirc           â     Small a, circumflex accent
  8468.    atilde          ã    Small a, tilde
  8469.    atilde          ã    Small a, tilde
  8470.    auml            ä      Small a, dieresis or umlaut mark
  8471.    aelig           æ     Small ae dipthong (ligature)
  8472.    ccedil          ç    Small c, cedilla
  8473.    eacute          é    Small e, acute accent
  8474.    egrave          è    Small e, grave accent
  8475.    ecirc           ê     Small e, circumflex accent
  8476.    euml            ë      Small e, dieresis or umlaut mark
  8477.    iacute          í    Small i, acute accent
  8478.    igrave          ì    Small i, grave accent
  8479.    icirc           î     Small i, circumflex accent
  8480.    iuml            ï      Small i, dieresis or umlaut mark
  8481.    eth             ð       Small eth, Icelandic
  8482.    ntilde          ñ    Small n, tilde
  8483.    oacute          ó    Small o, acute accent
  8484.    ograve          ò    Small o, grave accent
  8485.    ocirc           ô     Small o, circumflex accent
  8486.    otilde          õ    Small o, tilde
  8487.    ouml            ö      Small o, dieresis or umlaut mark
  8488.    oslash          ø    Small o, slash
  8489.    uacute          ú    Small u, acute accent
  8490.    ugrave          ù    Small u, grave accent
  8491.    ucirc           û     Small u, circumflex accent
  8492.  
  8493. Dave Raggett                                                          Page 149
  8494. HTML 3.0                                                       28th March 1995
  8495.  
  8496.    uuml            ü      Small u, dieresis or umlaut mark
  8497.    yacute          ý    Small y, acute accent
  8498.    thorn           þ     Small thorn, Icelandic
  8499.    yuml            ÿ      Small y, dieresis or umlaut mark
  8500.    
  8501.  
  8502. ------------------------------------------------------------------------------
  8503. Numerical Character References 
  8504.  
  8505.    This list, sorted numerically, is derived from the ISO 8859/1 8-bit
  8506.    single-byte coded graphic character set: 
  8507.  
  8508.    
  8509.    Reference           Description
  8510.    �-         Unused 
  8511.                    Horizontal tab
  8512.                    Line feed
  8513.     -         Unused
  8514.    
  8515.    &32;                Space
  8516.    &33;                Exclamation mark
  8517.    &34;                Quotation mark
  8518.    &35;                Number sign
  8519.    &36;                Dollar sign
  8520.    &37;                Percent sign
  8521.    &38;                Ampersand
  8522.    &39;                Apostrophe
  8523.    &40;                Left parenthesis
  8524.    &41;                Right parenthesis
  8525.    &42;                Asterisk
  8526.    &43;                Plus sign
  8527.    &44;                Comma
  8528.    &45;                Hyphen
  8529.    &46;                Period (fullstop)
  8530.    &47;                Solidus (slash)
  8531.    
  8532.    0 - 9       Digits 0-9
  8533.    
  8534.    &58;                Colon
  8535.    &59;                Semi-colon
  8536.    &60;                Less than
  8537.    &61;                Equals aign
  8538.    &62;                Greater than
  8539.    &63;                Question mark
  8540.    &64;                Commercial at
  8541.         
  8542.    A-Z         Letters A-Z
  8543.    
  8544.    &91;                Left square bracket
  8545.    &92;                Reverse solidus (backslash)
  8546.    &93;                Right square bracket
  8547.    &95;                Horizontal bar
  8548.    &96;                Acute accent
  8549.  
  8550. Dave Raggett                                                          Page 150
  8551. HTML 3.0                                                       28th March 1995
  8552.  
  8553.    
  8554.    a-z        Letters a-z
  8555.    
  8556.    &123;               Left curly brace
  8557.    &124;               Vertical bar
  8558.    &125;               Right curly brace
  8559.    &126;               Tilde
  8560.    
  8561.    -        Unused
  8562.    
  8563.    &161;               Inverted exclamation
  8564.    &162;               Cent sign
  8565.    &163;               Pound sterling
  8566.    &164;               General currency sign
  8567.    &165;               Yen sign
  8568.    &166;               Broken vertical bar
  8569.    &167;               Section sign
  8570.    &168;               Umlaut (dieresis)
  8571.    &169;               Copyright
  8572.    &170;               Feminine ordinal
  8573.    &171;               Left angle quote, guillemotleft
  8574.    &172;               Not sign
  8575.    &173;               Soft hyphen
  8576.    &174;               Registered trademark
  8577.    &175;               Macron accent
  8578.    &176;               Degree sign
  8579.    &177;               Plus or minus
  8580.    &178;               Superscript two
  8581.    &179;               Superscript three
  8582.    &180;               Acute accent
  8583.    &181;               Micro sign
  8584.    &182;               Paragraph sign
  8585.    &183;               Middle dot
  8586.    &184;               Cedilla
  8587.    &185;               Superscript one
  8588.    &186;               Masculine ordinal
  8589.    &187;               Right angle quote, guillemotright
  8590.    &188;               Fraction one-fourth
  8591.    &189;               Fraction one-half
  8592.    &190;               Fraction three-fourths
  8593.    &191;               Inverted question mark
  8594.    
  8595.    &192;               Capital A, acute accent
  8596.    &193;               Capital A, grave accent
  8597.    &194;               Capital A, circumflex accent
  8598.    &195;               Capital A, tilde
  8599.    &196;               Capital A, ring
  8600.    &197;               Capital A, dieresis or umlaut mark
  8601.    &198;               Capital AE dipthong (ligature)
  8602.    &199;               Capital C, cedilla
  8603.    &200;               Capital E, acute accent
  8604.    &201;               Capital E, grave accent
  8605.    &202;               Capital E, circumflex accent
  8606.  
  8607. Dave Raggett                                                          Page 151
  8608. HTML 3.0                                                       28th March 1995
  8609.  
  8610.    &203;               Capital E, dieresis or umlaut mark
  8611.    &204;               Capital I, acute accent
  8612.    &205;               Capital I, grave accent
  8613.    &206;               Capital I, circumflex accent
  8614.    &207;               Capital I, dieresis or umlaut mark
  8615.    &208;               Capital Eth, Icelandic
  8616.    &209;               Capital N, tilde
  8617.    &210;               Capital O, acute accent
  8618.    &211;               Capital O, grave accent
  8619.    &212;               Capital O, circumflex accent
  8620.    &213;               Capital O, tilde
  8621.    &214;               Capital O, dieresis or umlaut mark
  8622.    
  8623.    &215;               Multiply sign
  8624.    
  8625.    &216;               Capital O, slash
  8626.    &217;               Capital U, acute accent
  8627.    &218;               Capital U, grave accent
  8628.    &219;               Capital U, circumflex accent
  8629.    &220;               Capital U, dieresis or umlaut mark
  8630.    &221;               Capital Y, acute accent
  8631.    
  8632.    &222;               Capital THORN, Icelandic
  8633.    &223;               Small sharp s, German (sz ligature)
  8634.    
  8635.    &224;               Small a, acute accent
  8636.    &225;               Small a, grave accent
  8637.    &226;               Small a, circumflex accent
  8638.    &227;               Small a, tilde
  8639.    &228;               Small a, tilde
  8640.    &229;               Small a, dieresis or umlaut mark
  8641.    &230;               Small ae dipthong (ligature)
  8642.    &231;               Small c, cedilla
  8643.    &232;               Small e, acute accent
  8644.    &233;               Small e, grave accent
  8645.    &234;               Small e, circumflex accent
  8646.    &235;               Small e, dieresis or umlaut mark
  8647.    &236;               Small i, acute accent
  8648.    &237;               Small i, grave accent
  8649.    &238;               Small i, circumflex accent
  8650.    &239;               Small i, dieresis or umlaut mark
  8651.    &240;               Small eth, Icelandic
  8652.    &241;               Small n, tilde
  8653.    &242;               Small o, acute accent
  8654.    &243;               Small o, grave accent
  8655.    &244;               Small o, circumflex accent
  8656.    &245;               Small o, tilde
  8657.    &246;               Small o, dieresis or umlaut mark
  8658.    
  8659.    &247;               Division sign
  8660.    
  8661.    &248;               Small o, slash
  8662.    &249;               Small u, acute accent
  8663.  
  8664. Dave Raggett                                                          Page 152
  8665. HTML 3.0                                                       28th March 1995
  8666.  
  8667.    &250;               Small u, grave accent
  8668.    &251;               Small u, circumflex accent
  8669.    &252;               Small u, dieresis or umlaut mark
  8670.    &253;               Small y, acute accent
  8671.    &254;               Small thorn, Icelandic
  8672.    &255;               Small y, dieresis or umlaut mark
  8673.    
  8674.  
  8675.  
  8676.  
  8677.  
  8678.  
  8679.  
  8680.  
  8681.  
  8682.  
  8683.  
  8684.  
  8685.  
  8686.  
  8687.  
  8688.  
  8689.  
  8690.  
  8691.  
  8692.  
  8693.  
  8694.  
  8695.  
  8696.  
  8697.  
  8698.  
  8699.  
  8700.  
  8701.  
  8702.  
  8703.  
  8704.  
  8705.  
  8706.  
  8707.  
  8708.  
  8709.  
  8710.  
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  
  8717.  
  8718.  
  8719.  
  8720.  
  8721. Dave Raggett                                                          Page 153
  8722. HTML 3.0                                                       28th March 1995
  8723.  
  8724. Math Entities
  8725.  
  8726. This list is in a very preliminary stage ...
  8727.  
  8728.    --I hope to use ISO names where practical, and want to ensure that
  8729.    names are meaningful, rather than cryptic. The character codes for
  8730.    common fonts will be included, although which fonts to include is
  8731.    still under review.-- 
  8732.  
  8733.    The following sets out the range of math symbols supported by HTML
  8734.    math, giving the HTML entity name, the corresponding LaTeX command
  8735.    name and a short description. Character codes are given in
  8736.    hexadecimal when available for the Postscript symbol set and HP's
  8737.    math-8 symbol set. 
  8738.  
  8739. Continuation dots - ellipsis
  8740.  
  8741.    
  8742.    &ldots;     \ldots    three dots on the baseline
  8743.    &cdots;     \cdots    three dots on same level as a minus sign
  8744.    &vdots;     \vdots    three vertical dots
  8745.    &ddots;     \ddots    diagonal dots (top left to bottom right)
  8746.    &dotfill;   \dotfill  like cdots but fills column in an array
  8747.    
  8748.  
  8749. Added Spacing
  8750.  
  8751.    
  8752.         \,        thin space
  8753.    &sp;        \:        medium space
  8754.           \;        thick space
  8755.    &quad;      \quad     huge space
  8756.    
  8757.  
  8758. Lower case Greek Letters
  8759.  
  8760.                                          PS-Symbol Math-8
  8761.    α     \alpha        alpha          61      61
  8762.    β      \beta         beta           62      62
  8763.    γ     \gamma        gamma          67      63
  8764.    δ     \delta        delta          64      64
  8765.    ε   \epsilon      epsilon        --      65
  8766.    &vepsilon;  \varepsilon   var epsilon    65      3B
  8767.    ζ      \zeta         zeta           7A      66
  8768.    η       \eta          eta            68      67
  8769.    θ     \theta        theta          71      68
  8770.    &vtheta;    \vartheta     var theta      --      79
  8771.    ι      \iota         iota           69      69
  8772.    κ     \kappa        kappa          6B      6A
  8773.    λ    \lambda       lambda         6C      6B
  8774.    μ        \mu           mu             6D      6C
  8775.    ν        \nu           nu             6E      6D
  8776.    ξ        \xi           xi             78      6E
  8777.  
  8778. Dave Raggett                                                          Page 154
  8779. HTML 3.0                                                       28th March 1995
  8780.  
  8781.    ο   ....          omicron        6F      6F
  8782.    π        \pi           pi             70      70
  8783.    ϖ     \varpi        var pi         76      7B
  8784.    ρ       \rho          rho            72      71
  8785.    ϱ    \varrho       var rho        --      --
  8786.    σ     \sigma        sigma          73      72
  8787.    &vsigma;    \varsigma     var sigma      56      5B
  8788.    τ       \tau          tau            74      73
  8789.    υ   \upsilon      upsilon        75      74
  8790.    φ       \phi          phi            66      75
  8791.    ϕ    \varphi       var phi        6A      7A
  8792.    χ       \chi          chi            63      76
  8793.    ψ       \psi          psi            79      77
  8794.    ω     \omega        omega          77      78
  8795.    
  8796.  
  8797.    Note: LaTeX uses the latin letter o for omicron.  
  8798.  
  8799.  
  8800.  
  8801.  
  8802.  
  8803.  
  8804.  
  8805.  
  8806.  
  8807.  
  8808.  
  8809.  
  8810.  
  8811.  
  8812.  
  8813.  
  8814.  
  8815.  
  8816.  
  8817.  
  8818.  
  8819.  
  8820.  
  8821.  
  8822.  
  8823.  
  8824.  
  8825.  
  8826.  
  8827.  
  8828.  
  8829.  
  8830.  
  8831.  
  8832.  
  8833.  
  8834.  
  8835. Dave Raggett                                                          Page 155
  8836. HTML 3.0                                                       28th March 1995
  8837.  
  8838. <!-- Standard ISO/WWW icons courtesy of Bert Bos and Kevin Hughes
  8839.  
  8840.     These can be used in place of default symbols for list items or as
  8841.     part of hypertext links, and save time needed to download images.
  8842.     Browsers can define them in terms of library images or as URL/URNs.
  8843. -->
  8844.  
  8845.  
  8846. <!ENTITY ftp SDATA "ftp" -- ftp server -->
  8847. <!ENTITY gopher SDATA "gopher" -- gopher server -->
  8848. <!ENTITY telnet SDATA "telnet" -- telnet connection -->
  8849. <!ENTITY archive SDATA "archive" -- archive server -->
  8850. <!ENTITY filing.cabinet SDATA "filing.cabinet" -- filing cabinet -->
  8851. <!ENTITY folder SDATA "folder" -- folder or directory -->
  8852. <!ENTITY fixed.disk SDATA "fixed.disk" -- fixed media drive -->
  8853. <!ENTITY disk.drive SDATA "disk.drive" -- removeable media drive -->
  8854. <!ENTITY document SDATA "document" -- unspecified document type -->
  8855. <!ENTITY unknown.document SDATA "unknown.document" -- unrecognised document type -->
  8856. <!ENTITY text.document SDATA "text.document" -- text/plain, text.html etc. -->
  8857. <!ENTITY binary.document SDATA "binary.document" -- binary data -->
  8858. <!ENTITY binhex.document SDATA "binhex.document" -- binhex format -->
  8859. <!ENTITY audio SDATA "audio" -- audio sequence -->
  8860. <!ENTITY film SDATA "film" -- film or animation, such as an MPEG movie -->
  8861. <!ENTITY image SDATA "image" -- photograph, drawing or graphic of any kind -->
  8862. <!ENTITY map SDATA "map" -- geographical or a schematic map -->
  8863. <!ENTITY form SDATA "form" -- fill-out form -->
  8864. <!ENTITY mail SDATA "mail" -- email messages -->
  8865. <!ENTITY parent SDATA "parent" -- parent of current document -->
  8866. <!ENTITY next SDATA "next" -- next document in current sequence -->
  8867. <!ENTITY previous SDATA "previous" -- previous document in current sequence -->
  8868. <!ENTITY home SDATA "home" -- home document -->
  8869. <!ENTITY toc SDATA "toc" -- table of contents -->
  8870. <!ENTITY glossary SDATA "glossary" -- glossary of terms etc. -->
  8871. <!ENTITY index SDATA "index" -- searchable index -->
  8872. <!ENTITY summary SDATA "summary" -- summary -->
  8873.  
  8874. <!ENTITY calculator SDATA "calculator" -- A calculator -->
  8875. <!ENTITY caution SDATA "caution" -- Warnign sign -->
  8876. <!ENTITY clock SDATA "clock" -- A clock -->
  8877. <!ENTITY compressed.document SDATA "compressed.document">
  8878. <!ENTITY diskette SDATA "diskette" -- A diskette -->
  8879. <!ENTITY display SDATA "display" -- A computer screen -->
  8880. <!ENTITY fax SDATA "fax" -- A fax machine -->
  8881. <!ENTITY mail.in SDATA "mail.in" -- mail-in tray -->
  8882. <!ENTITY mail.out SDATA "mail.out" -- mail-out tray -->
  8883. <!ENTITY mouse SDATA "mouse" -- mouse/pointing device -->
  8884. <!ENTITY printer SDATA "printer" -- hardcopy device -->
  8885. <!ENTITY tn3270 SDATA "tn3270" --tn3270 terminal session -->
  8886. <!ENTITY trash SDATA "trash" -- waste paper basket -->
  8887. <!ENTITY uuencoded.document SDATA "uuencoded.document" -- uuencoded data -->
  8888.  
  8889.  
  8890.  
  8891.  
  8892. Dave Raggett                                                          Page 156
  8893. HTML 3.0                                                       28th March 1995
  8894.  
  8895. <!--
  8896.         html3.dtd
  8897.  
  8898.         Document Type Definition for the HyperText Markup Language (HTML DTD)
  8899.  
  8900.         Draft: Fri 24-Mar-95 09:46:33
  8901.  
  8902.         Author: Dave Raggett <dsr@hplb.hpl.hp.com>
  8903.  
  8904.         W3O is developing a testbed browser to provide practical
  8905.         experience with HTML 3.0 before it becomes a standard.
  8906.         See:  http://www.w3.org/hypertext/WWW/Arena/
  8907.  
  8908.         This is an open process and comments are welcomed on the
  8909.         www-html mailing list.
  8910.  
  8911.         Please use the following MIME content type:
  8912.         
  8913.                 Content-Type: text/html; version=3.0
  8914.                 
  8915.         This will allow clients to distinguish HTML 3.0 from current
  8916.         HTML documents. This is most easily achieved by saving
  8917.         files with the extension ".html3" or ".ht3" so that servers
  8918.         can easily distinguish these files from HTML 2.0 files.
  8919.         
  8920.         The entity HTML.Recommended can be used to give a more rigorous
  8921.         version of the DTD suitable for use with SGML authoring tools.
  8922.         The default version of the DTD offers a laxer interpretation,
  8923.         e.g. allowing authors to omit leading <P> elements. You can
  8924.         switch on the more rigorous version of the DTD by including
  8925.         the following at the start of your HTML document.
  8926.  
  8927.          <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//"
  8928.             [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
  8929.  
  8930.  
  8931.         Design Objectives:
  8932.  
  8933.         o   Backwards compatibility with 2.0
  8934.  
  8935.         o   Tightening up HTML.Recommended and
  8936.             moving more things to HTML.Deprecated
  8937.  
  8938.         o   Keep HTML - simple don't compete with CALS
  8939.  
  8940.         o   Make it practical for people to edit HTML 3.0
  8941.             documents directly, i.e. avoid long names.
  8942.  
  8943.         o   Tables, figures and math from HTML+
  8944.             with tweaks based on recent experience
  8945.  
  8946.         o   Client-side event handling for figures
  8947.             and graphical form selection menus
  8948.  
  8949. Dave Raggett                                                          Page 157
  8950. HTML 3.0                                                       28th March 1995
  8951.  
  8952.  
  8953.         o   Add limited presentational controls with
  8954.             a view to use of linked style sheets
  8955.             (style overrides are supported)
  8956.  
  8957.         o   Compatibility with ICADD as per Yuri's suggestions
  8958.  
  8959.         HTML 3.0 relies on linked style info to give authors
  8960.         control over the appearence of documents. Such info is
  8961.         placed in a linked style sheet, or as overrides in the
  8962.         HTML document head, using the STYLE element. The generic
  8963.         CLASS attribute can be used to subclass elements when
  8964.         you want to use a different style from normal, e.g. you
  8965.         might use <h2 class=bigcaps> for headers with enlarged
  8966.         capital letters. Note that the class attribute has a
  8967.         wider scope than just style changes, e.g. browsers could
  8968.         provide the means for searching through documents,
  8969.         restricting search according to element class values.
  8970.  
  8971.         The DTD contains a small number of attributes for direct
  8972.         control of basic alignment parameters; column widths for
  8973.         tables; support for custom bullets, sequence numbering for
  8974.         lists and headers; and text flow. These attributes offer
  8975.         control over appearence which would be inconvenient to
  8976.         express exclusively via associated style sheets.
  8977.  
  8978.         The MD attribute for each hypertext or inline link specifies a
  8979.         message digest such as MD5 for the linked object and is needed
  8980.         to ensure someone hasn't tampered with a linked document.
  8981.  
  8982.   History:
  8983.   
  8984.     24th March '95
  8985.     
  8986.     Changed ROLE->CLASS for HTML element
  8987.     Added dummy elements to fix problem with mixed
  8988.     content models for BODY, BLOCKQUOTE/BQ and FIG
  8989.     Dropped audio fields from FORMs
  8990.     Reinstated MIN/MAX for range fields
  8991.     Reinstated DISABLED and ERROR attributes for fields
  8992.   
  8993.     22nd March '95
  8994.     
  8995.     Changed from em to en units. The latter
  8996.     is a typographical unit = half point size
  8997.     Merged NEEDS into CLEAR for control of textflow
  8998.   
  8999.     21st March '95
  9000.     
  9001.     Added REL=Banner to LINK element
  9002.     Added BANNER element in place of <DIV CLASS=BANNER>
  9003.     Added RANGE and SPOT elements
  9004.     Added FN in place of <NOTE ROLE=FOOTNOTE>
  9005.  
  9006. Dave Raggett                                                          Page 158
  9007. HTML 3.0                                                       28th March 1995
  9008.  
  9009.     Changed ROLE->CLASS for NOTE element
  9010.  
  9011.     17th March '95
  9012.     
  9013.     Fixed bug in PRE content model
  9014.     Changed external references to omit trailling //
  9015.     Dropped <!DOCTYPE HTML [ ... ]> wrapper to avoid problems
  9016.       with "real" sgml parsers
  9017.     Added NOFLOW attribute to FIG and TABLE
  9018.     Fixed typo in IMG ALIGN attribute
  9019.     Made SELECT match IMG for graphic attributes
  9020.     Added decimal alignment for tabs and table cells
  9021.     Added ALIGN attribute to TEXTAREA for parity
  9022.       with IMG and INPUT, including ALIGN=LEFT etc.
  9023.     
  9024.     13th March '95
  9025.     
  9026.     Dropped MARK tag on advice from SGML Open
  9027.     Allowed spaces in table colspec attribute
  9028.     Changed ARRAY element
  9029.     Added CHOOSE tag to BOX element
  9030.     Cleaned up PRE content model
  9031.     Obsoleted tags incompatible with SGML
  9032.     
  9033.     6th March '95
  9034.     
  9035.     Added several tags to MATH: %mathface, %mathvec
  9036.     and improved ROOT, with new SQRT convience tag
  9037.     
  9038.     1st March '95
  9039.     
  9040.     Dropped align attribute from BR element
  9041.     Added indent attribute to TAB
  9042.     Added optional CREDIT to end of BQ
  9043.     Changed FIG to %body.content to allow headers
  9044.     
  9045.     22nd February '95
  9046.     
  9047.     Added align attribute, and dropped before, after, center and right
  9048.       attributes to clean up TAB element
  9049.     Added INS and DEL for legal documents    
  9050.     Added CREDIT to end of FIG element
  9051.     Dropped FN in favor of <NOTE ROLE=FootNote>
  9052.     
  9053.     9th Feburuary '95
  9054.  
  9055.     Dropped base attribute mechanism for scoping relative URLs
  9056.     Dropped nofold attribute for disabling whitespace folding
  9057.     Dropped border width attributes for FIG (-> style sheet)
  9058.     Dropped delims attribute from math BOX element
  9059.     Dropped stylistic attributes from OL such as inherit (-> stylesheet)
  9060.     Added baseline to list of valign attribute values for tables.
  9061.     Added DIV element for generic container class and static banners
  9062.  
  9063. Dave Raggett                                                          Page 159
  9064. HTML 3.0                                                       28th March 1995
  9065.  
  9066.     Added MARK element for marked range class
  9067.     Added closed set of LINK REL values for toolbars
  9068.     Added numbering attributes to headers
  9069.     Added bullet attributes to headers
  9070.     Added TERM element to math for style sheet control of term rendering
  9071.     Changed to imagemap=URI for server-side event handling for FIG/OVERLAY
  9072.     Changed delimiter attributes for math arrays
  9073.     Changed ROOT element for maths to allow an arbitrary radix
  9074.     Simplified numbering attributes for ordered lists
  9075.     Simplified STYLE element to leave binding to style language
  9076. -->
  9077.  
  9078. <!ENTITY % HTML.Version
  9079.         "-//IETF//DTD HTML 3.0//EN"
  9080.  
  9081.         -- Typical usage:
  9082.  
  9083.             <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
  9084.             <html>
  9085.             ...
  9086.             </html>
  9087.         --
  9088.         >
  9089.  
  9090. <!--================== Flags for Marked Sections ==========================-->
  9091.  
  9092. <!ENTITY % HTML.Recommended "IGNORE"
  9093.         -- Certain features of the language are necessary for compatibility
  9094.            with widespread usage, but they may compromise the structural
  9095.            integrity of a document. This feature test entity enables
  9096.            a more prescriptive document type definition that eliminates
  9097.            the above features.
  9098.         -->
  9099.  
  9100. <![ %HTML.Recommended [
  9101.         <!ENTITY % HTML.Deprecated "IGNORE">
  9102. ]]>
  9103.  
  9104. <!ENTITY % HTML.Deprecated "INCLUDE"
  9105.         -- Certain features of the language are necessary for compatibility
  9106.            with earlier versions of the specification, but they tend
  9107.            to be used an implemented inconsistently, and their use is
  9108.            deprecated. This feature test entity enables a document type
  9109.            definition that eliminates these features.
  9110.         -->
  9111.         
  9112. <!ENTITY % HTML.Obsoleted "IGNORE"
  9113.         -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
  9114.            and derive from very early versions of HTML. They require non-
  9115.            standard parsers and will cause problems for processing
  9116.            documents with standard SGML tools.
  9117.         -->
  9118.  
  9119.  
  9120. Dave Raggett                                                          Page 160
  9121. HTML 3.0                                                       28th March 1995
  9122.  
  9123. <!--================== Imported Names =====================================-->
  9124.  
  9125. <!ENTITY % Content-Type "CDATA"
  9126.         -- meaning a MIME content type, as per RFC1521
  9127.         -->
  9128.  
  9129. <!ENTITY % HTTP-Method "GET | POST"
  9130.         -- as per HTTP specification
  9131.         -->
  9132.  
  9133. <!ENTITY % URI "CDATA"
  9134.         -- The term URI means a CDATA attribute
  9135.            whose value is a Uniform Resource Identifier,
  9136.            as defined by
  9137.         "Uniform Resource Identifiers" by Tim Berners-Lee
  9138.         aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
  9139.         aka RFC 1630
  9140.  
  9141.         Note that CDATA attributes are limited by the LITLEN
  9142.         capacity (1024 in the current version of html.decl),
  9143.         so that URIs in HTML have a bounded length.
  9144.  
  9145.         -->
  9146.  
  9147. <!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
  9148.  
  9149. <!ENTITY % SHAPE "CDATA" 
  9150.     -- Shape of hotzone in image.
  9151.  
  9152.        All coordinates are assumed to be numbers in the range 0 to 1
  9153.        and interpreted as fractional width/height and measured from
  9154.        the top left corner of the associated image.
  9155.  
  9156.        The attribute value is a string taking one of the following forms:
  9157.        
  9158.                 "default"
  9159.                 
  9160.        Used to define a default link for the figure background.
  9161.  
  9162.             "circle x, y, r" 
  9163.  
  9164.        (x, y) define the center and r the radius.
  9165.  
  9166.             "rect x, y, w, h"
  9167.  
  9168.        (x, y) defines upper left, and w and h the width and height.
  9169.  
  9170.             "polygon x1, y1, x2, y2, ..."
  9171.  
  9172.        Given n pairs of x, y coordinates, the polygon is closed by a
  9173.        line linking the n'th point to the first. Intersecting polygons
  9174.        use the non-zero winding number rule to determine if a point lies
  9175.        inside the polygon.I
  9176.  
  9177. Dave Raggett                                                          Page 161
  9178. HTML 3.0                                                       28th March 1995
  9179.  
  9180.     --
  9181. >
  9182.  
  9183. <!-- 3.0 Parameter Entities -->
  9184.  
  9185. <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
  9186.  
  9187. <![ %HTML.Obsoleted [
  9188.     <!ENTITY % preformatted "PRE | XMP | LISTING">
  9189. ]]>
  9190.  
  9191.  
  9192. <![ %HTML.Deprecated [
  9193.     <!ENTITY % list "UL | OL | DIR | MENU">
  9194.     <!ENTITY % blockquote "BLOCKQUOTE | BQ">
  9195. ]]>
  9196.  
  9197. <!ENTITY % list "UL | OL">
  9198.  
  9199. <!ENTITY % blockquote "BQ">
  9200.  
  9201. <!ENTITY % preformatted "PRE">
  9202.  
  9203.  
  9204. <!-- The CLASS attribute is used to subclass HTML elements for
  9205.      rendering purposes, when used with style sheets, e.g. DSSSL lite -->
  9206.  
  9207. <!ENTITY % attrs  -- common attributes for elements --
  9208.         'id       ID      #IMPLIED -- as target for hrefs (link ends) --
  9209.          lang     CDATA   "en.us"  -- ISO language, country code --
  9210.          class    NAMES   #IMPLIED -- for subclassing elements --'>
  9211.  
  9212. <!-- SGML standard forces different NAMES for all attribute values
  9213.      in the same element, regardless of the attribute name! As a result
  9214.      CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
  9215.  
  9216. <!--
  9217. When text flows around a figure or table in the margin, you sometimes want
  9218. to start an element like a header, paragraph or list below the figure rather
  9219. than alongside it. The CLEAR attribute allows you to move down unconditionally:
  9220.  
  9221.         clear=left          move down until left margin is clear
  9222.         clear=right         move down until right margin is clear
  9223.         clear=all           move down until both margins are clear
  9224.  
  9225. Alternatively, you can decide to place the element alongside the figure just
  9226. so long as there is enough room. The minimum width needed is specified as:
  9227.  
  9228.         clear="40 en"       move down until there is at least 40 en units free
  9229.         clear="100 pixels"  move down until there is at least 100 pixels free
  9230.         
  9231. The style sheet (or browser defaults) may provide default minimum widths for
  9232. each class of block-like elements.
  9233.  
  9234. Dave Raggett                                                          Page 162
  9235. HTML 3.0                                                       28th March 1995
  9236.  
  9237. -->
  9238.  
  9239. <!ENTITY % needs -- Attributes for controlling text flow. Used in headers
  9240.                     and other elements to guarantee sufficient room --
  9241.         'clear  CDATA #IMPLIED'>
  9242.  
  9243. <!--
  9244.     The following attribute may be included where ever a URL can be given:
  9245.  
  9246.     md      message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
  9247.             where the digest is base64 encoded and preceded by a prefix
  9248.             denoting the algorithm (in this case MD5).
  9249. -->
  9250.  
  9251. <!ENTITY % url.link -- Attributes associated with URL based links --
  9252.         "md     CDATA  #IMPLIED  -- message digest for linked object --">
  9253.  
  9254. <!--================ Character mnemonic entities ==========================-->
  9255.  
  9256. <!-- The HTML list of Latin-1 entities includes the full range
  9257.      of characters in widely available Latin-1 fonts, and as such
  9258.      is a mixture of ISOlat1 and other ISO publishing symbols -->
  9259.  
  9260. <!ENTITY % HTMLlat1 PUBLIC
  9261.   "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
  9262. %HTMLlat1;
  9263.  
  9264. <!--================ Entities for special symbols =========================-->
  9265.  
  9266. <!ENTITY emsp   SDATA "[emsp  ]" -- em space -->
  9267. <!ENTITY ensp   SDATA "[ensp  ]" -- en space (1/2-em) -->
  9268. <!ENTITY mdash  SDATA "[ndash ]" -- em dash -->
  9269. <!ENTITY ndash  SDATA "[ndash ]" -- en dash (1/2-em) -->
  9270. <!ENTITY nbsp   SDATA "[nbsp  ]" -- non breaking space -->
  9271. <!ENTITY shy    SDATA "[shy   ]" -- soft hyphen -->
  9272. <!ENTITY copy   SDATA "[copy  ]" -- copyright sign -->
  9273. <!ENTITY trade  SDATA "[trade ]" -- trade mark sign -->
  9274. <!ENTITY reg    SDATA "[reg   ]" -- registered sign -->
  9275.  
  9276. <!--================ Entities for standard icons ==========================-->
  9277.  
  9278. <!-- a range of standard icons such as &folder; for use
  9279.      in speeding up display of directory listings etc. -->
  9280.  
  9281. <!ENTITY % HTMLicons PUBLIC
  9282.   "-//IETF//ENTITIES icons for HTML//EN">
  9283. %HTMLicons;
  9284.  
  9285. <!--================ Entities for math symbols ============================-->
  9286.  
  9287. <!-- ISO subset chosen for use with the widely available Adobe math font -->
  9288.  
  9289. <!ENTITY % HTMLmath PUBLIC
  9290.  
  9291. Dave Raggett                                                          Page 163
  9292. HTML 3.0                                                       28th March 1995
  9293.  
  9294.   "-//IETF//ENTITIES Math and Greek for HTML//EN">
  9295. %HTMLmath;
  9296.  
  9297. <!--=================== Text Markup =======================================-->
  9298.  
  9299. <!ENTITY % font " U | S | TT | I | BIG | SMALL">
  9300.  
  9301. <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
  9302.  
  9303. <!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
  9304.  
  9305. <!ENTITY % special "TAB | MATH | A | IMG | BR">
  9306.  
  9307. <!ENTITY % notmath "%font | %phrase | %special | %misc">
  9308.  
  9309. <!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
  9310.  
  9311.  
  9312. <!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
  9313.  
  9314. <!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
  9315. <!ATTLIST (%font|B|%phrase|%misc) %attrs;>
  9316.  
  9317. <!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
  9318.  
  9319. <!ELEMENT (SUB|SUP) - - (%text)+>
  9320. <!ATTLIST (SUB|SUP)
  9321.         %attrs;
  9322.         align (left|center|right) #IMPLIED
  9323.         >
  9324.  
  9325. <!-- Forced line break -->
  9326.  
  9327. <!ELEMENT BR    - O EMPTY>
  9328. <!ATTLIST BR
  9329.         %attrs;
  9330.         %needs; -- for control of text flow --
  9331.         >
  9332.  
  9333. <!-- Named left, center and right tab stops (independent of '\t' char) -->
  9334.  
  9335. <!ELEMENT TAB - O EMPTY>
  9336. <!ATTLIST TAB
  9337.         id       ID       #IMPLIED  -- defines named tab stop --
  9338.         indent   NUMBER   0         -- en units before new tab stop --
  9339.         to       IDREF    #IMPLIED  -- jump to named tab stop --
  9340.         align   (left|center|right|decimal) left
  9341.         dp      CDATA     #IMPLIED  -- decimal point e.g. dp="," --
  9342.         >
  9343.  
  9344. <!--================== Link Markup ========================================-->
  9345.  
  9346. <!--
  9347.  
  9348. Dave Raggett                                                          Page 164
  9349. HTML 3.0                                                       28th March 1995
  9350.  
  9351.      With HTML 3.0 you can use ID attributes on most elements for named
  9352.      link ends. The use of the NAME attribute on anchors is deprecated.
  9353.  
  9354.      Do we want to support arbitrary elements for link starts? This would
  9355.      involve adding HREF and related attributes to most elements.
  9356. -->
  9357.  
  9358. <![ %HTML.Deprecated [
  9359.     <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
  9360. ]]>
  9361.  
  9362. <!ENTITY % linkName "">
  9363.  
  9364.  
  9365. <!ENTITY % ToolBar "home|toc|index|glossary|copyright|
  9366.                     up|previous|next|help|bookmark"
  9367.  
  9368.         -- LINK RELationship values which are used to create toolbar
  9369.            buttons or menu items for navigation, where toc stands
  9370.            for table of contents and bookmark provides for an open
  9371.            ended set of links, i.e. you can use multiple bookmarks
  9372.            for key entry points. Use the optional TITLE attribute
  9373.            to override default names.
  9374.         -->
  9375.  
  9376. <!ENTITY % linkType "NAME"
  9377.         -- A definitive list will be specified at a later date.
  9378.  
  9379.            They are used
  9380.  
  9381.                 a) by stylesheets to control how collections of
  9382.                    html nodes are rendered into printed documents
  9383.  
  9384.                 b) for document specific toolbars/menus when used
  9385.                    with the LINK element in document head:
  9386.  
  9387.                     "home|toc|index|glossary|copyright|
  9388.                            up|previous|next|help|bookmark"
  9389.  
  9390.                    where toc stands for table of contents and
  9391.                    bookmark provides for an open ended set of links,
  9392.                    i.e. you can use several bookmarks for key entry
  9393.                    points. Use the optional TITLE attribute to
  9394.                    override default names.
  9395.  
  9396.                 c) for hypertext paths or guided tours,
  9397.                    with REL=NODE and REL=PATH. 
  9398.  
  9399.                 d) to make a link to a style sheet, e.g. rel=stylesheet
  9400.                    (used only with the LINK element).
  9401.                    
  9402.                 e) to make a link to a separate banner, e.g. rel=banner
  9403.                    (used only with the LINK element).
  9404.  
  9405. Dave Raggett                                                          Page 165
  9406. HTML 3.0                                                       28th March 1995
  9407.  
  9408.         -->
  9409.  
  9410.  
  9411. <!ENTITY % linkExtraAttributes -- URN moved to %url.link --
  9412.        "rel %linkType #IMPLIED -- forward relationship type --
  9413.         rev %linkType #IMPLIED -- reversed relationship type
  9414.                                   to referent data --
  9415.         title   CDATA #IMPLIED -- advisory only --
  9416.         methods NAMES #IMPLIED -- supported public methods of the object:
  9417.                                         TEXTSEARCH, GET, HEAD, ... --
  9418.         ">
  9419.  
  9420. <![ %HTML.Deprecated [
  9421.     <!ENTITY % A.content "(%heading|%text)+">
  9422. ]]>
  9423.  
  9424. <!ENTITY % A.content   "(%text)+">
  9425.  
  9426. <!ELEMENT A     - - %A.content -(A)>
  9427.  
  9428. <!ATTLIST A
  9429.         %attrs;
  9430.         href   %URI;  #IMPLIED
  9431.         %url.link;    -- standard link attributes --
  9432.         %linkName;     -- name attribute is deprecated; use ID instead --
  9433.         shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
  9434.         %linkExtraAttributes;
  9435.         >
  9436.  
  9437. <!--=================== Images ============================================-->
  9438.  
  9439. <!-- Desired widths are used for negotiating image size
  9440.      with the module responsible for painting the image.
  9441.      align=left or right cause image to float to margin
  9442.      and for subsequent text to wrap around image -->
  9443.  
  9444. <!ELEMENT IMG    - O EMPTY --  Embedded image -->
  9445. <!ATTLIST IMG
  9446.         %attrs;
  9447.         src  %URI;  #REQUIRED  -- URI of image to embed --
  9448.         %url.link;             -- standard link attributes --
  9449.         alt CDATA   #IMPLIED   -- for display in place of image --
  9450.         align  (top|middle|bottom|left|right) top -- relative to baseline
  9451.         --         width  NUMBER #IMPLIED -- desired width in en's or pixels --
  9452.         height NUMBER #IMPLIED -- desired height in en's or pixels --
  9453.         units  (en|pixels) pixels -- units for width and height --
  9454.         ismap (ismap) #IMPLIED -- pass clicks to server --
  9455.         >
  9456.  
  9457. <!--=================== Paragraphs=========================================-->
  9458.  
  9459. <!ELEMENT P     - O (%text)+>
  9460. <!ATTLIST P
  9461.  
  9462. Dave Raggett                                                          Page 166
  9463. HTML 3.0                                                       28th March 1995
  9464.  
  9465.         %attrs;
  9466.         align  (left|center|right|justify) #IMPLIED
  9467.         %needs; -- for control of text flow --
  9468.         nowrap (nowrap) #IMPLIED -- disable wordwrap --
  9469.         >
  9470.  
  9471. <!--=================== Headings, Titles, Sections ========================-->
  9472.  
  9473. <!ELEMENT HR    - O EMPTY -- customizable horizontal rule -->
  9474. <!ATTLIST HR
  9475.         %attrs;
  9476.         src     %URI;   #IMPLIED -- URI of custom rule graphic --
  9477.         %url.link;               -- standard link attributes --
  9478.         %needs; -- for control of text flow --
  9479.         >
  9480.  
  9481. <!--
  9482.   Headers can be numbered, although this is a matter for style sheets.
  9483.   The style sheet controls the numbering style:
  9484.  
  9485.      a) whether the parent numbering is inherited, e.g.  5.i.c
  9486.         where 5 is the current sequence number for H1 headers, and
  9487.         1 is the number for H2 headers and 3 for H3 headers.
  9488.  
  9489.      b) what style is used for current sequence number
  9490.         e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
  9491.         or a numbering scheme appropriate for the current language
  9492.  
  9493.   The skip attribute is used to skip over sequence numbers for items
  9494.   which have been left out of the list, e.g. skip=3 advances the
  9495.   sequence number past 3 omitted items. The seqnum sets the sequence
  9496.   number to a specified value. Note that the style sheet may take
  9497.   advantage of the sequence number for higher level headers.
  9498.  
  9499.   The dingbat or src attributes may be used to specify a bullet like
  9500.   image to be placed adjacent to the header. Defining this in the
  9501.   header element simplifies the document markup and avoids the need
  9502.   to use the clear or needs attribute in the following element to
  9503.   prevent it flowing around this image.
  9504. -->
  9505.  
  9506. <!ELEMENT ( %heading )  - -  (%text;)+>
  9507. <!ATTLIST ( %heading )
  9508.         %attrs;
  9509.         align  (left|center|right|justify) #IMPLIED
  9510.         %needs; -- for control of text flow --
  9511.         seqnum   NUMBER   #IMPLIED  -- starting sequence number --
  9512.         skip     NUMBER   0         -- skip seq nums for missing items --
  9513.         dingbat  ENTITY   #IMPLIED  -- dingbat entity from HTMLicons --
  9514.         src      (%URI;)  #IMPLIED  -- bullet defined by graphic --
  9515.         %url.link;                  -- standard link attributes --
  9516.         nowrap   (nowrap)  #IMPLIED -- disable wordwrap --
  9517.         >
  9518.  
  9519. Dave Raggett                                                          Page 167
  9520. HTML 3.0                                                       28th March 1995
  9521.  
  9522.  
  9523. <!ELEMENT TITLE - -  (#PCDATA)
  9524.           -- The TITLE element is not considered part of the flow of text.
  9525.              It should be displayed, for example as the page header or
  9526.              window title.
  9527.           -->
  9528.  
  9529. <!--=================== Text Flows ========================================-->
  9530.  
  9531. <!ENTITY % block
  9532.      "P | %list | DL
  9533.         | %preformatted
  9534.         | %blockquote
  9535.         | FORM | ISINDEX | FN
  9536.         | TABLE | FIG | NOTE">
  9537.  
  9538. <!--
  9539.   ((%block)* | (%text)*) would be much nicer as it would avoid the need
  9540.   for a <P> tag when all you want is a few words of text. The problem
  9541.   is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
  9542.   and hence the white space between the <LI> and the <P>.
  9543. -->
  9544.  
  9545. <![ %HTML.Recommended [
  9546.     <!ENTITY % flow "(%block)*">
  9547. ]]>
  9548.  
  9549. <!ENTITY % flow "(%text | %block)*">
  9550.  
  9551. <!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
  9552.  
  9553. <!ATTLIST PRE
  9554.         %attrs;
  9555.         width NUMBER #implied
  9556.         %needs; -- for control of text flow --
  9557.         >
  9558.  
  9559. <![ %HTML.Obsoleted [
  9560.  
  9561. <!ENTITY % literal "CDATA"
  9562.         -- special non-conforming parsing mode where
  9563.            the only markup signal is the end tag
  9564.            in full. This will cause problems for
  9565.            standard SGML tools!
  9566.         -->
  9567.  
  9568. <!ELEMENT XMP - -  %literal>
  9569. <!ELEMENT LISTING - -  %literal>
  9570. <!ELEMENT PLAINTEXT - O %literal>
  9571.  
  9572. ]]>
  9573.  
  9574. <!--=================== Lists =============================================-->
  9575.  
  9576. Dave Raggett                                                          Page 168
  9577. HTML 3.0                                                       28th March 1995
  9578.  
  9579.  
  9580. <!ELEMENT DL    - -  (LH?, (DT|DD)+) -- this is perhaps too lax? -->
  9581. <!ATTLIST DL
  9582.         %attrs;
  9583.         %needs; -- for control of text flow --
  9584.         compact (compact) #IMPLIED -- more compact style --
  9585.         >
  9586.  
  9587. <!ELEMENT DT    - O  (%text)+>
  9588. <!ELEMENT DD    - O  %flow;>
  9589. <!ATTLIST (DT|DD)
  9590.         %attrs;
  9591.         %needs; -- for control of text flow --
  9592.         >
  9593.  
  9594.  
  9595. <!ELEMENT (OL|UL) - -  (LH?, LI+) -- should we allow a list header ? -->
  9596.  
  9597. <!-- style sheet controls numbering style
  9598.     a) whether the parent numbering is inherited, e.g.  5.1.c
  9599.     b) what style is used for current sequence number
  9600.         e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
  9601.         or a numbering scheme for the current language
  9602. -->
  9603. <!ATTLIST OL
  9604.         %attrs;
  9605.         %needs; -- for control of text flow --
  9606.         continue (continue)  #IMPLIED   -- don't restart sequence number --
  9607.         seqnum    NUMBER     #IMPLIED   -- starting sequence number --
  9608.         compact (compact)    #IMPLIED   -- reduced interitem spacing --
  9609.         >
  9610.  
  9611. <!-- Unordered lists:
  9612.  
  9613.     o   single or multicolumn with
  9614.         horizontal or vertical wrapping
  9615.  
  9616.     o   plain or bulletted list items
  9617.  
  9618.     o   bullets can be customised via:
  9619.             - entities (dingbats in HTMLicons)
  9620.             - external graphic via URL
  9621.             - individual attributes on LI tags
  9622. -->
  9623. <!ATTLIST UL
  9624.         %attrs;
  9625.         %needs; -- for control of text flow --
  9626.         wrap (vert|horiz|none) none -- multicolumn list style --
  9627.         plain   (plain)  #IMPLIED   -- suppress bullets --
  9628.         dingbat  ENTITY  #IMPLIED   -- dingbat entity from HTMLicons --
  9629.         src     (%URI;)  #IMPLIED   -- bullet defined by graphic --
  9630.         %url.link;                  -- standard link attributes --
  9631.         compact (compact) #IMPLIED  -- reduced interitem spacing --
  9632.  
  9633. Dave Raggett                                                          Page 169
  9634. HTML 3.0                                                       28th March 1995
  9635.  
  9636.         >
  9637.  
  9638. <!ELEMENT LH - O (%text;)+ -- list header -->
  9639. <!ATTLIST LH %attrs;>
  9640.  
  9641. <!--
  9642.     For unordered lists, you can override the standard bullet with
  9643.     a custom graphic specified via a URI e.g. src="splash.gif" or
  9644.     a reference to one of the HTMLicons graphics e.g. dingbat=folder
  9645.  
  9646.     The skip attribute is used with ordered lists to skip over sequence
  9647.     numbers for items which have been left out of the list, e.g. skip=3
  9648.     advances the sequence number past 3 omitted items.
  9649. -->
  9650.  
  9651. <!ELEMENT LI - O %flow; -- list item -->
  9652. <!ATTLIST LI
  9653.         %attrs;
  9654.         %needs; -- for control of text flow --
  9655.         dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
  9656.         src  (%URI;) #IMPLIED   -- custom bullet graphic --
  9657.         %url.link;              -- standard link attributes --
  9658.         skip NUMBER 0           -- skip seq nums for missing items --
  9659.         >
  9660.  
  9661. <!-- DIR and MENU are now subsumed by UL with type=plain. Use the
  9662.      wrap attribute to control wrapping style for multicolumn lists -->
  9663.  
  9664. <![ %HTML.Deprecated [
  9665.     <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
  9666.     <!ATTLIST (DIR|MENU)
  9667.         compact (compact) #IMPLIED>
  9668. ]]>
  9669.  
  9670. <!--=================== Document Body =====================================-->
  9671.  
  9672. <![ %HTML.Recommended [
  9673.         <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
  9674.         -- <h1>Heading</h1>
  9675.            <p>Text ...
  9676.                 is preferred to
  9677.            <h1>Heading</h1>
  9678.            Text ...
  9679.         -->
  9680. ]]>
  9681.  
  9682. <!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
  9683.  
  9684. <!ELEMENT BODY O O  (BANNER?, BODYTEXT) +(SPOT)>
  9685. <!ATTLIST BODY
  9686.         %attrs;
  9687.         background %URI; #IMPLIED  -- texture tile for document background --
  9688.         >
  9689.  
  9690. Dave Raggett                                                          Page 170
  9691. HTML 3.0                                                       28th March 1995
  9692.  
  9693.  
  9694. <!ELEMENT BODYTEXT O O %body.content -- dummy element -->
  9695.  
  9696. <!-- 
  9697.   The BANNER element is used for a banner section which appears at
  9698.   the top of the window and doesn't scroll with window contents.
  9699.   This can be used for corporate logos, copyright statements and
  9700.   disclaimers, as well as customized navigation/search controls.
  9701. -->
  9702. <!ELEMENT BANNER - - %body.content>
  9703. <!ATTLIST BANNER %attrs; >
  9704.  
  9705. <!-- SPOT is used to insert IDs at arbitrary places
  9706.      e.g. for end points of a marked range (see RANGE) -->
  9707. <!ELEMENT SPOT - O EMPTY>
  9708. <!ATTLIST SPOT id ID #REQUIRED>
  9709.  
  9710. <!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
  9711. <!ATTLIST (%blockquote)
  9712.         %attrs;
  9713.         %needs; -- for control of text flow --
  9714.         nowrap   (nowrap)  #IMPLIED -- disable wordwrap --
  9715.         >
  9716.  
  9717. <!ENTITY % address.content "((%text;)* | P*)">
  9718.  
  9719. <!ELEMENT ADDRESS - - %address.content>
  9720. <!ATTLIST ADDRESS
  9721.         %attrs;
  9722.         %needs; -- for control of text flow --
  9723.         >
  9724.         
  9725. <!--
  9726.   DIV can be used with the CLASS attribute to represent different
  9727.   kinds of container, e.g. chapter, section, abstract, appendix.
  9728. -->
  9729.  
  9730. <!ELEMENT DIV - - %body.content>
  9731. <!ATTLIST DIV
  9732.         %attrs;
  9733.         %needs; -- for control of text flow --
  9734.         align   (left|center|right) left -- alignment of following text --
  9735.         nowrap   (nowrap)  #IMPLIED -- disable wordwrap --
  9736.         >
  9737.  
  9738. <!--================ Forms ===============================================-->
  9739.  
  9740. <!--
  9741.     As HTML 2.0 plus a few extensions:
  9742.  
  9743.         a)  A RANGE control which varies between pair of values
  9744.             specified with the size attribute, e.g. SIZE="1, 10"
  9745.  
  9746.  
  9747. Dave Raggett                                                          Page 171
  9748. HTML 3.0                                                       28th March 1995
  9749.  
  9750.         b)  FILE widget for uploading one or more files to a server
  9751.  
  9752.         c)  SCRIBBLE on image widget that sends the "ink" to the server
  9753.  
  9754.         d)  SUBMIT/RESET buttons can now be customised with an image.
  9755.             This subsumes the IMAGE type which is now deprecated.
  9756.  
  9757.         e)  Graphical SELECTion menus are now supported, using
  9758.             the new SHAPE attribute on OPTION elements.
  9759.  
  9760.     Further extensions are in the pipeline (e.g. table entry,
  9761.     multiple data formats for textarea fields and client-side
  9762.     scripts with custom widgets) but will have to wait until
  9763.     the backlog of implementation work diminishes.
  9764. -->
  9765.  
  9766. <!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
  9767. <!ATTLIST FORM
  9768.         action %URI #REQUIRED -- server-side form handler --
  9769.         method (%HTTP-Method) GET -- see HTTP specification --
  9770.         enctype %Content-Type; "application/x-www-form-urlencoded"
  9771.         script %URI #IMPLIED -- link to client-side script --
  9772.         >
  9773.  
  9774. <![ %HTML.Deprecated [
  9775.     <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
  9776.                    | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
  9777. ]]>
  9778.  
  9779. <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
  9780.                    | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
  9781.  
  9782. <!ELEMENT INPUT - O EMPTY>
  9783. <!ATTLIST INPUT
  9784.         %attrs;
  9785.         type %InputType TEXT
  9786.         name  NAME  #IMPLIED       -- required for all but submit and reset --         
  9787.         value CDATA #IMPLIED       -- required for radio buttons & checkboxes --
  9788.         disabled (disabled) #IMPLIED -- read-only fields --
  9789.         error CDATA #IMPLIED       -- why field is in error --
  9790.         checked (checked) #IMPLIED -- for radio buttons and check boxes --
  9791.         size NUMBER #IMPLIED       -- visible width of TEXT fields --
  9792.         maxlength NUMBER #IMPLIED  -- max number of chars for TEXT fields --
  9793.         min %REAL #IMPLIED         -- lower limit for RANGE fields --
  9794.         max %REAL #IMPLIED         -- upper limit for RANGE fields --
  9795.         accept CDATA #IMPLIED      -- list of MIME types for file fields --
  9796.         src   %URI  #IMPLIED       -- for fields with background images --
  9797.         %url.link;                 -- standard link attributes --
  9798.         align  (top|middle|bottom|left|right) top
  9799.         >
  9800.  
  9801. <!--
  9802.   SRC attribute added for graphical selection menus
  9803.  
  9804. Dave Raggett                                                          Page 172
  9805. HTML 3.0                                                       28th March 1995
  9806.  
  9807.   The WIDTH, HEIGHT and UNITS attributes apply to the
  9808.   image specified by the SRC attribute.
  9809.  -->
  9810.  
  9811. <!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
  9812. <!ATTLIST SELECT
  9813.         %attrs;
  9814.         name CDATA #REQUIRED
  9815.         multiple (multiple) #IMPLIED
  9816.         disabled (disabled) #IMPLIED -- read-only menu --
  9817.         error CDATA #IMPLIED   -- why selections are in error --
  9818.         src  %URI  #IMPLIED    -- for graphical selection menus --
  9819.         %url.link;             -- standard link attributes --
  9820.         width  NUMBER #IMPLIED -- desired width of in en's or pixels --
  9821.         height NUMBER #IMPLIED -- desired height in en's or pixels --
  9822.         units  (en|pixels) pixels -- units for width and height --
  9823.         align  (top|middle|bottom|left|right) top
  9824.         >
  9825.  
  9826. <!ELEMENT OPTION - O (#PCDATA)>
  9827. <!ATTLIST OPTION
  9828.         %attrs;
  9829.         selected (selected) #IMPLIED
  9830.         value  CDATA  #IMPLIED -- default to element content --
  9831.         shape %SHAPE; #IMPLIED -- for graphical selection menus --
  9832.         disabled (disabled) #IMPLIED -- unselectable option --
  9833.         error CDATA #IMPLIED   -- why this choice is in error --
  9834.         >
  9835.  
  9836. <!--
  9837.   Multi-line text input field. align=left or right
  9838.   causes the field to float to margin and for
  9839.   subsequent text to wrap around the field.
  9840. -->
  9841.      
  9842. <!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
  9843. <!ATTLIST TEXTAREA
  9844.         %attrs;
  9845.         name CDATA #REQUIRED
  9846.         rows NUMBER #REQUIRED
  9847.         cols NUMBER #REQUIRED
  9848.         disabled (disabled) #IMPLIED -- read-only field --
  9849.         error CDATA #IMPLIED         -- why field is in error --
  9850.         align  (top|middle|bottom|left|right) top
  9851.         >
  9852.  
  9853. <!--======================= Captions ======================================-->
  9854.  
  9855. <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
  9856. <!ATTLIST CAPTION
  9857.         %attrs;
  9858.         align (top|bottom|left|right) #IMPLIED
  9859.         >
  9860.  
  9861. Dave Raggett                                                          Page 173
  9862. HTML 3.0                                                       28th March 1995
  9863.  
  9864. <!--======================= Tables ========================================-->
  9865.  
  9866. <!--
  9867.     Tables and figures can be aligned in several ways:
  9868.  
  9869.     bleedleft   flush left with the left (window) border
  9870.     left        flush left with the left text margin
  9871.     center      centered (text flow is disabled for this mode)
  9872.     right       flush right with the right text margin
  9873.     bleedright  flush right with the right (window) border
  9874.     justify     when applicable the table/figure should stretch
  9875.                 to fill space between the text margins
  9876.  
  9877.     Note: text will flow around the table or figure if the browser
  9878.     judges there is enough room and the alignment is not centered
  9879.     or justified. The table or figure may itself be part of the
  9880.     text flow around some earlier figure. You can in this case use
  9881.     the clear or needs attributes to move the new table or figure
  9882.     down the page beyond the obstructing earlier figure. Similarly,
  9883.     you can use the clear or needs attributes with other elements
  9884.     such as headers and lists to move them further down the page.
  9885. -->
  9886.  
  9887. <!ENTITY % block.align
  9888.         "align  (bleedleft|left|center|right|bleedright|justify) center">
  9889.  
  9890. <!--
  9891.     The HTML 3.0 table model has been chosen for its simplicity
  9892.     and the ease in writing filters from common DTP packages.
  9893.  
  9894.     By default the table is automatically sized according to the
  9895.     cell contents and the current window size. Specifying the columns
  9896.     widths using the colspec attribute allows browsers to start
  9897.     displaying the table without having to wait for last row.
  9898.  
  9899.     The colspec attribute is a list of column widths and alignment
  9900.     specifications. The columns are listed from left to right with
  9901.     a capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
  9902.     The letter is L for left, C for center, R for right alignment of
  9903.     cell contents. J is for justification, when feasible, otherwise
  9904.     this is treated in the same way as L for left alignment.
  9905.     Column entries are delimited by one or more space characters.
  9906.     
  9907.     The number specifies the width in en's, pixels or as a
  9908.     fractional value of the table width, as according to the
  9909.     associated units attribute. This approach is more compact
  9910.     than used with most SGML table models and chosen to simplify
  9911.     hand entry. The width attribute allows you to specify the
  9912.     width of the table in pixels, en units or as a percentage
  9913.     of the space between the current left and right margins.
  9914.  
  9915.     To assist with rendering to speech, row and column headers
  9916.     can be given short names using the AXIS attribute. The AXES
  9917.  
  9918. Dave Raggett                                                          Page 174
  9919. HTML 3.0                                                       28th March 1995
  9920.  
  9921.     attribute is used to explicitly specify the row and column
  9922.     names for use with each cell. Otherwise browsers can follow
  9923.     up columns and left along rows (right for some languages)
  9924.     to find the corresponding header cells.
  9925.  
  9926.     Table content model: Braille limits the width of tables,
  9927.     placing severe limits on column widths. User agents need
  9928.     to render big cells by moving the content to a note placed
  9929.     before the table. The cell is then rendered as a link to
  9930.     the corresponding note.
  9931.  
  9932.     To assist with formatting tables to paged media, authors
  9933.     can differentiate leading and trailing rows that are to
  9934.     be duplicated when splitting tables across page boundaries.
  9935.     The recommended way is to subclass rows with the CLASS attribute
  9936.     For example: <TR CLASS=Header>, <TR CLASS=Footer> are used for
  9937.     header and footer rows. Paged browsers insert footer rows at
  9938.     the bottom of the current page and header rows at the top of
  9939.     the new page, followed by the remaining body rows.
  9940. -->
  9941.  
  9942. <!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
  9943. <!ATTLIST TABLE
  9944.         %attrs;
  9945.         %needs; -- for control of text flow --
  9946.         border (border) #IMPLIED -- draw borders --
  9947.         colspec CDATA   #IMPLIED -- column widths and alignment --
  9948.         units  (en|pixels|relative) en -- units for column widths --
  9949.         dp      CDATA   #IMPLIED -- decimal point e.g. dp="," --
  9950.         width NUMBER    #IMPLIED -- absolute or percentage width --
  9951.         %block.align;  -- horizontal alignment --
  9952.         noflow (noflow) #IMPLIED -- noflow around table --
  9953.         nowrap (nowrap) #IMPLIED -- don't wrap words --
  9954.         >
  9955.  
  9956. <!ENTITY % cell "TH | TD">
  9957. <!ENTITY % horiz.align "left|center|right|justify">
  9958. <!ENTITY % vert.align  "top|middle|bottom|baseline">
  9959.  
  9960. <!--
  9961.     Browsers should tolerate an omission of the first <TR>
  9962.     tag as it is implied by the context. Missing trailing
  9963.     <TR>s implied by rowspans should be ignored.
  9964.  
  9965.     The alignment attributes act as defaults for rows
  9966.     overriding the colspec attribute and being in turn
  9967.     overridden by alignment attributes on cell elements.
  9968.     Use valign=baseline when you want to ensure that text
  9969.     in different cells on the same row is aligned on the
  9970.     same baseline regardless of fonts. It only applies
  9971.     when the cells contain a single line of text.
  9972. -->
  9973.  
  9974.  
  9975. Dave Raggett                                                          Page 175
  9976. HTML 3.0                                                       28th March 1995
  9977.  
  9978. <!ELEMENT TR - O (%cell)* -- row container -->
  9979. <!ATTLIST TR
  9980.         %attrs;
  9981.         align  (%horiz.align) #IMPLIED -- horizontal alignment --
  9982.         valign (%vert.align)  top  -- vertical alignment --
  9983.         dp     CDATA     #IMPLIED  -- decimal point e.g. dp="," --
  9984.         nowrap (nowrap)  #IMPLIED  -- don't wrap words --
  9985.         >
  9986.  
  9987. <!--
  9988.     Note that table cells can include nested tables.
  9989.     Missing cells are considered to be empty, while
  9990.     missing rows should be ignored, i.e. if a cell
  9991.     spans a row and there are no further TR elements
  9992.     then the implied row should be ignored.
  9993. -->
  9994.  
  9995. <!ELEMENT (%cell) - O %body.content>
  9996. <!ATTLIST (%cell)
  9997.         %attrs;
  9998.         colspan NUMBER    1      -- columns spanned --
  9999.         rowspan NUMBER    1      -- rows spanned --
  10000.         align  (%horiz.align) #IMPLIED -- horizontal alignment --
  10001.         valign (%vert.align) top -- vertical alignment --
  10002.         dp      CDATA    #IMPLIED  -- decimal point e.g. dp="," --
  10003.         nowrap (nowrap)  #IMPLIED  -- don't wrap words --
  10004.         axis CDATA #IMPLIED -- axis name, defaults to element content --
  10005.         axes CDATA #IMPLIED -- comma separated list of axis names --
  10006.         >
  10007.  
  10008. <!--====================== Figures ========================================-->
  10009.  
  10010. <!--
  10011.   The element contains text for use in non-graphical displays. Note that
  10012.   you can use the shape attribute in anchors to specify hotzones on images.
  10013.   This provides for local processing of pointer clicks and a unified method
  10014.   for dealing with graphical and non-graphical displays.
  10015.  
  10016.   Text is flowed around figures when the figure is left or right aligned.
  10017.   You can request the browser to move down until there is enough room for
  10018.   the next element, see the CLEAR and NEED attributes (in %needs)
  10019.  
  10020.   Figures offer a path towards embedding arbitrary information formats
  10021.   via some kind of OLE/OpenDoc mechanism.
  10022. -->
  10023.  
  10024. <!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
  10025. <!ATTLIST FIG
  10026.         %attrs;
  10027.         %needs;                  -- for control of text flow --
  10028.         src  %URI;  #REQUIRED    -- URI of document to embed --
  10029.         %url.link;               -- standard link attributes --
  10030.         %block.align;            -- horizontal alignment --
  10031.  
  10032. Dave Raggett                                                          Page 176
  10033. HTML 3.0                                                       28th March 1995
  10034.  
  10035.         noflow (noflow) #IMPLIED -- noflow around figure --
  10036.         width  NUMBER #IMPLIED   -- desired width in units --
  10037.         height NUMBER #IMPLIED   -- desired height in units --
  10038.         units (en|pixels) pixels -- specifies units as en's or pixels --
  10039.         imagemap (%URI) #IMPLIED -- pass background clicks to server --
  10040.         >
  10041.         
  10042. <!ELEMENT FIGTEXT O O %body.content -- dummy element -->
  10043.  
  10044. <!--
  10045.     Figure overlays. When combined with local caching, overlays
  10046.     provide a cheap way of modifying a larger base image sent as
  10047.     part of a previous page.
  10048. -->
  10049.  
  10050. <!ELEMENT OVERLAY - O EMPTY -- image overlay -->
  10051. <!ATTLIST OVERLAY
  10052.         src  %URI;  #REQUIRED    -- URI of image overlay --
  10053.         %url.link;               -- standard link attributes --
  10054.         units (en|pixels) pixels -- specifies units as en's or pixels --
  10055.         x      NUMBER   0        -- offset from left in units --
  10056.         y      NUMBER   0        -- offset from top in units --
  10057.         width  NUMBER #IMPLIED   -- desired width in units --
  10058.         height NUMBER #IMPLIED   -- desired height in units --
  10059.         imagemap (%URI) #IMPLIED -- pass background clicks to server --
  10060.         >
  10061.  
  10062. <!ELEMENT CREDIT - - (%text;)* -- source of image -->
  10063. <!ATTLIST CREDIT
  10064.         %attrs;
  10065.         >
  10066.  
  10067. <!--======================== Notes ========================================-->
  10068.  
  10069. <!--
  10070. The NOTE element is used for admonishments. The CLASS attribute
  10071. is used to differentiate NOTE's, e.g. Note, Caution or Warning.
  10072. -->
  10073.  
  10074. <!ELEMENT NOTE - - %body.content; -- admonishment -->
  10075. <!ATTLIST NOTE
  10076.         %attrs;
  10077.         src %URI;   #IMPLIED  -- URI of custom graphic --
  10078.         %url.link;            -- standard link attributes --
  10079.         %needs; -- for control of text flow --
  10080.         >
  10081.  
  10082. <!--======================== Footnotes ====================================-->
  10083.  
  10084. <!--
  10085. Typically rendered as popup note. These elements are referenced
  10086. by hypertext links specified with the anchor element.
  10087. -->
  10088.  
  10089. Dave Raggett                                                          Page 177
  10090. HTML 3.0                                                       28th March 1995
  10091.  
  10092. <!ELEMENT FN - - %body.content;>
  10093. <!ATTLIST FN %attrs;>
  10094.  
  10095. <!--======================== Math  ========================================-->
  10096.  
  10097. <!-- Use     etc for greater control of spacing. -->
  10098.  
  10099. <!-- Subscripts and Superscripts
  10100.  
  10101.   <SUB> and <SUP> are used for subscripts and superscripts.
  10102.  
  10103.                                           i j
  10104.       X <SUP>i</SUP>Y<SUP>j</SUP>  is   X  Y
  10105.  
  10106.   i.e. the space following the X disambiguates the binding.
  10107.   The align attribute can be used for horizontal alignment,
  10108.   e.g. to explicitly place an index above an element:
  10109.                                               i
  10110.         X<sup align=center>i</sup>  produces  X
  10111.  
  10112. Short references are defined for superscripts, subscripts and boxes
  10113. to save typing when manually editing HTML math, e.g.
  10114.  
  10115.       x^2^    is mapped to   x<sup>2</sup>
  10116.       y_z_    is mapped to   y<sub>z</sub>
  10117.       {a+b}   is mapped to   <box>a + b</box>
  10118.  
  10119. Note that these only apply within the MATH element and can't be
  10120. used in normal text!
  10121. -->
  10122. <!ENTITY REF1   STARTTAG   "SUP">
  10123. <!ENTITY REF2   ENDTAG     "SUP">
  10124. <!ENTITY REF3   STARTTAG   "SUB">
  10125. <!ENTITY REF4   ENDTAG     "SUB">
  10126. <!ENTITY REF5   STARTTAG   "BOX">
  10127. <!ENTITY REF6   ENDTAG     "BOX">
  10128.  
  10129. <!USEMAP MAP1   MATH>
  10130. <!USEMAP MAP2   SUP>
  10131. <!USEMAP MAP3   SUB>
  10132. <!USEMAP MAP4   BOX>
  10133.  
  10134. <!SHORTREF MAP1 "^" REF1
  10135.                 "_" REF3
  10136.                 "{" REF5 >
  10137.  
  10138. <!SHORTREF MAP2 "^" REF2
  10139.                 "_" REF3
  10140.                 "{" REF5 >
  10141.  
  10142. <!SHORTREF MAP3 "_" REF4
  10143.                 "^" REF1
  10144.                 "{" REF5 >
  10145.  
  10146. Dave Raggett                                                          Page 178
  10147. HTML 3.0                                                       28th March 1995
  10148.  
  10149.  
  10150. <!SHORTREF MAP4 "}" REF6
  10151.                 "^" REF1
  10152.                 "_" REF3
  10153.                 "{" REF5 >
  10154.  
  10155. <!--
  10156.  The inclusion of %math and exclusion of %notmath is used here
  10157.  to alter the content model for the B, SUB and SUP elements,
  10158.  to limit them to formulae rather than general text elements.
  10159. -->
  10160.  
  10161. <!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
  10162. <!ENTITY % mathface "B|T|BT" -- control of font face -->
  10163. <!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
  10164. <!ENTITY % formula "#PCDATA|%math">
  10165.  
  10166. <!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
  10167. <!ATTLIST MATH
  10168.         id      ID      #IMPLIED
  10169.         class    NAMES   #IMPLIED -- e.g. class=chem -->
  10170.  
  10171. <!-- The BOX element acts as brackets. Delimiters are optional and
  10172.      stretch to match the height of the box. The OVER element is used
  10173.      when you want a line between numerator and denominator. This line
  10174.      is suppressed with the alternative ATOP element. CHOOSE acts like
  10175.      ATOP but adds enclosing round brackets as a convenience for binomial
  10176.      coefficients. Note the use of { and } as shorthand for <BOX> and
  10177.      </BOX> respectively:
  10178.  
  10179.                            1 + X
  10180.      {1 + X<OVER>Y}  is   _______
  10181.                              Y
  10182.  
  10183.                                  a + b
  10184.      {a + b<ATOP>c - d} is  
  10185.                                  c - d
  10186.  
  10187.      The delimiters are represented using the LEFT and RIGHT
  10188.      elements as in:
  10189.  
  10190.      {[<LEFT>x + y<RIGHT>]}   is   [ x + y ]
  10191.      {(<LEFT>a<RIGHT>]}       is   (a]
  10192.      {||<LEFT>a<RIGHT>||}     is   || a ||
  10193.  
  10194.      Use { and } for "{" and "}" respectively as
  10195.      these symbols are used as shorthand for BOX, e.g.
  10196.  
  10197.      {{<LEFT>a+b<RIGHT>}}  is  {a+b}
  10198.  
  10199.      You can stretch definite integrals to match the integrand, e.g.
  10200.  
  10201.      {∫<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
  10202.  
  10203. Dave Raggett                                                          Page 179
  10204. HTML 3.0                                                       28th March 1995
  10205.  
  10206.  
  10207.             b
  10208.             /  f(x)
  10209.             | ----- dx
  10210.             / 1 + x
  10211.             a
  10212.  
  10213.      Note the complex content model for BOX is a work around
  10214.      for the absence of support for infix operators in SGML.
  10215.  
  10216.      You can get oversize delimiters with the SIZE attribute,
  10217.      for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
  10218.  
  10219.      Note that the names of common functions are recognized
  10220.      by the parser without the need to use "&" and ";" around
  10221.      them, e.g. int, sum, sin, cos, tan, ...
  10222. -->
  10223.  
  10224. <!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
  10225.                    ((OVER|ATOP|CHOOSE), (%formula)*)?,
  10226.                    (RIGHT, (%formula)*)?)>
  10227. <!ATTLIST BOX
  10228.         size  (normal|medium|large|huge) normal -- oversize delims -->
  10229.  
  10230. <!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
  10231.  
  10232. <!-- Horizontal line drawn ABOVE contents
  10233.      The symbol attribute allows authors to supply
  10234.      an entity name for an accent, arrow symbol etc.
  10235.      Generalisation of LaTeX's overline command.
  10236.      
  10237.      e.g. <above sym=ssmile>x</above>
  10238.      places an upwardly turning curve above the "x"
  10239.  -->
  10240.  
  10241. <!ELEMENT ABOVE - - (%formula)+>
  10242. <!ATTLIST ABOVE sym ENTITY #IMPLIED>
  10243.  
  10244. <!-- Horizontal line drawn BELOW contents
  10245.      The symbol attribute allows authors to 
  10246.      supply an entity name for an arrow symbol etc.
  10247.      Generalisation of LaTeX's underline command.
  10248.  -->
  10249.  
  10250. <!ELEMENT BELOW - - (%formula)+>
  10251. <!ATTLIST BELOW sym ENTITY #IMPLIED>
  10252.  
  10253. <!-- Convenience tags for common accents:
  10254.      vec, bar, dot, ddot, hat and tilde
  10255. -->
  10256.  
  10257. <!ELEMENT (%mathvec) - - (%formula)+>
  10258.  
  10259.  
  10260. Dave Raggett                                                          Page 180
  10261. HTML 3.0                                                       28th March 1995
  10262.  
  10263. <!--
  10264.   T and BT are used to designate terms which should
  10265.   be rendered in an upright font (& bold face for BT)
  10266. -->
  10267.  
  10268. <!ELEMENT (T|BT) - - (%formula)+>
  10269. <!ATTLIST (T|BT) class NAMES #IMPLIED>
  10270.  
  10271. <!-- Roots  e.g. <ROOT>3<OF>1+x</ROOT> -->
  10272.  
  10273. <!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
  10274. <!ELEMENT OF - O (%formula)* -- what the root applies to -->
  10275.  
  10276. <!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
  10277.  
  10278. <!-- LaTeX like arrays. The COLDEF attribute specifies
  10279.      a single capital letter for each column determining
  10280.      how the column should be aligned, e.g. coldef="CCC"
  10281.  
  10282.         "L"     left
  10283.         "C"     center
  10284.         "R"     right
  10285.         
  10286.      An optional separator letter can occur between columns
  10287.      and should be one of + - or =, e.g. "C+C+C+C=C".
  10288.      Whitespace within coldef is ignored. By default, the
  10289.      columns are all centered.
  10290.      
  10291.      The ALIGN attribute alters the vertical position of the
  10292.      array as compared with preceding and following expressions.
  10293.  
  10294.      Use LDELIM and RDELIM attributes for delimiter entities.
  10295.      When the LABELS attribute is present, the array is
  10296.      displayed with the first row and the first column as
  10297.      labels displaced from the other elements. In this case,
  10298.      the first element of the first row should normally be
  10299.      left blank.
  10300.  
  10301.      Use &vdots; &cdots; and &ddots; for vertical, horizontal
  10302.      and diagonal ellipsis dots. Use &dotfill; to fill an array
  10303.      cell with horizontal dots (e.g. for a full row).
  10304.      Note &ldots; places the dots on the baseline, while &cdots;
  10305.      places them higher up.
  10306. -->
  10307.  
  10308. <!ELEMENT ARRAY - - (ROW)+>
  10309. <!ATTLIST ARRAY
  10310.         align (top|middle|bottom) middle -- vertical alignment --
  10311.         coldef  CDATA   #IMPLIED  -- column alignment and separator --
  10312.         ldelim  CDATA   #IMPLIED  -- stretchy left delimiter --
  10313.         rdelim  CDATA   #IMPLIED  -- stretchy right delimiter --
  10314.         labels (labels) #IMPLIED  -- TeX's \bordermatrix style -->
  10315.  
  10316.  
  10317. Dave Raggett                                                          Page 181
  10318. HTML 3.0                                                       28th March 1995
  10319.  
  10320. <!ELEMENT ROW - O (ITEM)*>
  10321. <!ELEMENT ITEM - O (%formula)*>
  10322. <!ATTLIST ITEM
  10323.         align   CDATA  #IMPLIED  -- override coldef alignment --
  10324.         colspan NUMBER 1         -- merge columns as per TABLE --
  10325.         rowspan NUMBER 1         -- merge rows as per TABLE -->
  10326.  
  10327. <!--================ Document Head ========================================-->
  10328.  
  10329. <![ %HTML.Deprecated [
  10330.     <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
  10331.                               & META* & LINK* & RANGE* & NEXTID?">
  10332. ]]>
  10333.  
  10334. <!ENTITY % head.nextid "">
  10335.  
  10336. <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
  10337.                               & META* & LINK* & RANGE*">
  10338.  
  10339. <!ELEMENT HEAD O O  (%head.content)>
  10340.  
  10341. <!ELEMENT LINK - O EMPTY>
  10342. <!ATTLIST LINK
  10343.         href %URI #REQUIRED
  10344.         %linkExtraAttributes; >
  10345.         
  10346. <!ELEMENT RANGE - O EMPTY>
  10347. <!ATTLIST RANGE
  10348.         id    ID    #IMPLIED  -- for naming marked range --
  10349.         class NAMES #IMPLIED  -- for subclassing --
  10350.         from  IDREF #REQUIRED -- start of marked range --
  10351.         until IDREF #REQUIRED -- end of marked range --
  10352.         >
  10353.  
  10354. <!ELEMENT ISINDEX - O EMPTY>
  10355. <!ATTLIST ISINDEX
  10356.         href   %URI  #IMPLIED -- server handling queries --
  10357.         prompt CDATA #IMPLIED -- prompt message -->
  10358.  
  10359. <!--
  10360.     The BASE element gives the base URL for
  10361.     dereferencing relative URLs, e.g.
  10362.  
  10363.          <BASE href="http://foo.com/images">
  10364.          ...
  10365.          <IMG SRC="bar.gif">
  10366.  
  10367.     The image is deferenced to
  10368.  
  10369.          http://foo.com/images/bar.gif
  10370. -->
  10371.  
  10372. <!ELEMENT BASE - O EMPTY>
  10373.  
  10374. Dave Raggett                                                          Page 182
  10375. HTML 3.0                                                       28th March 1995
  10376.  
  10377. <!ATTLIST BASE
  10378.         id   ID    #IMPLIED
  10379.         href %URI; #REQUIRED
  10380.         >
  10381.  
  10382. <![ %HTML.Deprecated [
  10383.     <!ELEMENT NEXTID - O EMPTY>
  10384.     <!ATTLIST NEXTID N CDATA #REQUIRED>
  10385. ]]>
  10386.  
  10387. <!ELEMENT META - O EMPTY    -- Generic Metainformation -->
  10388. <!ATTLIST META
  10389.         http-equiv  NAME    #IMPLIED  -- HTTP response header name  --
  10390.         name        NAME    #IMPLIED  -- metainformation name       --
  10391.         content     CDATA   #REQUIRED -- associated information     --
  10392.         >
  10393.  
  10394. <!--
  10395.     A style sheet can be associated with the document using the
  10396.     LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
  10397.     Style overrides can be placed in the document head using the
  10398.     STYLE element, e.g.
  10399.  
  10400.         <style notation=dsssl-lite>
  10401.            dsss-lite stuff
  10402.         </style>
  10403.  
  10404.     Later on in the document you can use:
  10405.  
  10406.         <h2 class=bigcaps>Header with bigger than normal capitals</h2>
  10407.         <p class=abstract>A paragraph with a unique style of its own
  10408.         ...
  10409.     
  10410.     Statements in the given style notation 
  10411.         
  10412.     The tag names, class and id attributes are used in the style sheet
  10413.     notation to describe how to render matching elements.
  10414. -->
  10415.  
  10416. <!ENTITY % style-notations "dsssl-lite | w3c-style">
  10417. <!NOTATION dsssl-lite PUBLIC
  10418.       "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
  10419.       
  10420. <!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
  10421.  
  10422. <!ELEMENT STYLE - O (#PCDATA)>
  10423. <!ATTLIST STYLE
  10424.     notation NOTATION (%style-notations;) #REQUIRED
  10425. >
  10426.  
  10427. <!--================ Document Structure ===================================-->
  10428.  
  10429. <!ENTITY % html.content "HEAD, BODY">
  10430.  
  10431. Dave Raggett                                                          Page 183
  10432. HTML 3.0                                                       28th March 1995
  10433.  
  10434.  
  10435. <!ELEMENT HTML O O  (%html.content)>
  10436. <!ENTITY % version.attr 'VERSION CDATA #FIXED "&HTML.Version;"'>
  10437.  
  10438. <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
  10439.  
  10440. <!ATTLIST HTML
  10441.         %version.attr;       -- report DTD version to application --
  10442.         urn   CDATA #IMPLIED -- universal resource name for this document --
  10443.         class NAMES #IMPLIED -- role of this document, eg table of contents --
  10444.         >
  10445.  
  10446. <!-- The END -->
  10447.  
  10448.  
  10449.  
  10450.  
  10451.  
  10452.  
  10453.  
  10454.  
  10455.  
  10456.  
  10457.  
  10458.  
  10459.  
  10460.  
  10461.  
  10462.  
  10463.  
  10464.  
  10465.  
  10466.  
  10467.  
  10468.  
  10469.  
  10470.  
  10471.  
  10472.  
  10473.  
  10474.  
  10475.  
  10476.  
  10477.  
  10478.  
  10479.  
  10480.  
  10481.  
  10482.  
  10483.  
  10484.  
  10485.  
  10486.  
  10487.  
  10488. Dave Raggett                                                          Page 184
  10489. HTML 3.0                                                       28th March 1995
  10490.  
  10491. Glossary of Terms
  10492.  
  10493. Pasted from HTML 2.0 spec, this is now under revision ...
  10494.  
  10495. ------------------------------------------------------------------------------
  10496.    The HTML specification uses these words with precise meanings:
  10497.  
  10498.    
  10499.  
  10500.    attribute 
  10501.        A characteristic quality of an element, other than type or
  10502.        content. 
  10503.  
  10504.        
  10505.  
  10506.    browser 
  10507.        A tool used to read electronic books. 
  10508.  
  10509.        
  10510.  
  10511.    document 
  10512.        For the purposes of this standard, an HTML instance. 
  10513.  
  10514.        
  10515.  
  10516.    element 
  10517.        A component of the hierarchical structure defined by the
  10518.        document type definition; it is identified in a document
  10519.        instance by descriptive markup, usually a start-tag and an
  10520.        end-tag. 
  10521.  
  10522.        
  10523.  
  10524.    HTML 
  10525.        HyperText Markup Language. 
  10526.  
  10527.        
  10528.  
  10529.    HTTP 
  10530.        A generic stateless object-oriented protocol, which may be used
  10531.        for many similar tasks by extending the commands, or "methods",
  10532.        used. For example, you might use HTTP for name servers and
  10533.        distributed object-oriented systems, With HTTP, the negotiation
  10534.        of data representation allows systems to be built independent of
  10535.        the development of new representations. For more information
  10536.        see:  http://www.w3.org/hypertext/WWW/Protocols/Overview.html
  10537.  
  10538.        
  10539.  
  10540.    markup 
  10541.        Text added to the data of a document to convey information about
  10542.        it. There are four different kinds of markup: descriptive markup
  10543.        (tags), references, markup declarations, and processing
  10544.  
  10545. Dave Raggett                                                          Page 185
  10546. HTML 3.0                                                       28th March 1995
  10547.  
  10548.        instructions. 
  10549.  
  10550.        
  10551.  
  10552.    MIME 
  10553.        Multipurpose Internet Mail Extensions as defined in Mechanisms
  10554.        for Specifying and Describing the Format of Internet Message
  10555.        Bodies, 09/23/1993. (Pages=81) (Format=.txt, .ps) (Obsoletes
  10556.        RFC1341) (Updated by RFC1590). 
  10557.  
  10558.        
  10559.  
  10560.    representation 
  10561.        The encoding of information for interchange. For example, HTML
  10562.        is a representation of hypertext. 
  10563.  
  10564.        
  10565.  
  10566.    rendering 
  10567.        Formatting and presenting information to human readers. 
  10568.  
  10569.        
  10570.  
  10571.    SGML 
  10572.        Standard Generalized Markup Language as defined in ISO
  10573.        8879:1986, Information Processing Text and Office Systems. 
  10574.  
  10575.        
  10576.  
  10577.    SGMLS 
  10578.        An SGML parser by James Clark, jjc@jclark.com, derived from the
  10579.        ARCSGML parser materials which were written by Charles F.
  10580.        Goldfarb. The source is available at
  10581.        ftp.ifi.uio.no/pub/SGML/SGMLS. 
  10582.  
  10583.        
  10584.  
  10585.    tag 
  10586.        Descriptive markup. There are two kinds of tags; start-tags and
  10587.        end-tags. 
  10588.  
  10589.        
  10590.  
  10591.    URI 
  10592.        Universal Resource Identifiers. Available by anonymous FTP as
  10593.        Postscript (www.w3.org/pub/www/doc/url.ps) or text
  10594.        (www.w3.org/pub/www/doc/url.txt) 
  10595.  
  10596.        
  10597.  
  10598.    W3 
  10599.        The World-Wide Web, a global information initiative. For
  10600.        bootstrap information, telnet www.w3.org or find documents at
  10601.  
  10602. Dave Raggett                                                          Page 186
  10603. HTML 3.0                                                       28th March 1995
  10604.  
  10605.        ftp://www.w3.org/pub/www/doc 
  10606.  
  10607.        
  10608.  
  10609.  
  10610.  
  10611.  
  10612.  
  10613.  
  10614.  
  10615.  
  10616.  
  10617.  
  10618.  
  10619.  
  10620.  
  10621.  
  10622.  
  10623.  
  10624.  
  10625.  
  10626.  
  10627.  
  10628.  
  10629.  
  10630.  
  10631.  
  10632.  
  10633.  
  10634.  
  10635.  
  10636.  
  10637.  
  10638.  
  10639.  
  10640.  
  10641.  
  10642.  
  10643.  
  10644.  
  10645.  
  10646.  
  10647.  
  10648.  
  10649.  
  10650.  
  10651.  
  10652.  
  10653.  
  10654.  
  10655.  
  10656.  
  10657.  
  10658.  
  10659. Dave Raggett                                                          Page 187
  10660. HTML 3.0                                                       28th March 1995
  10661.  
  10662. References
  10663.  
  10664. Under revision ..
  10665.  
  10666. ------------------------------------------------------------------------------
  10667.    The HTML specification cites these works:
  10668.  
  10669.    
  10670.  
  10671.    HTTP 
  10672.        HTTP: A Protocol for Networked Information. This document is
  10673.        available at  http://www.w3.org/WWW/Protocols/HTTP/HTTP2.html. 
  10674.  
  10675.        
  10676.  
  10677.    MIME 
  10678.        N. Borenstein, N. Freed, MIME (Multipurpose Internet Mail
  10679.        Extensions) Part One: Mechanisms for Specifying and Describing
  10680.        the Format of Internet Message Bodies, 09/23/1993. (Pages=81)
  10681.        (Format=.txt, .ps) (Obsoletes RFC1341) (Updated by RFC1590). 
  10682.  
  10683.        
  10684.  
  10685.    SGML 
  10686.        ISO 8879:1986, Information Processing Text and Office Systems
  10687.        Standard Generalized Markup Language (SGML). 
  10688.  
  10689.        
  10690.  
  10691.    SGMLS 
  10692.        An SGML parser by James Clark, jjc@jclark.com, derived from the
  10693.        ARCSGML parser materials which were written by Charles F.
  10694.        Goldfarb. The source is available at
  10695.        ftp.ifi.uio.no/pub/SGML/SGMLS. 
  10696.  
  10697.        
  10698.  
  10699.    URI 
  10700.        Universal Resource Identifiers. RFCxxx. Available by anonymous
  10701.        FTP as Postscript (info.cern.ch/pub/www/doc/url.ps) or text
  10702.        (info.cern.ch/pub/www/doc/url.txt) 
  10703.  
  10704.        
  10705.  
  10706.    W3 
  10707.        The World-Wide Web , a global information initiative. For
  10708.        bootstrap information, telnet info.cern.ch or find documents by
  10709.        ftp://info.cern.ch/pub/www/doc. 
  10710.  
  10711.        
  10712.  
  10713.  
  10714.  
  10715.  
  10716. Dave Raggett                                                          Page 188
  10717. HTML 3.0                                                       28th March 1995
  10718.  
  10719. Acknowledgments
  10720.  
  10721. Pasted from HTML 2.0 spec, this section is under revision ...
  10722.  
  10723. ------------------------------------------------------------------------------
  10724.    The HTML document type was designed by Tim Berners-Lee at CERN as
  10725.    part of the 1990 World-Wide Web project. In 1992, Dan Connolly wrote
  10726.    the HTML Document Type Definition (DTD) and a brief HTML
  10727.    specification. 
  10728.  
  10729.    Since 1993, a wide variety of Internet participants have contributed
  10730.    to the evolution of HTML. NCSA Mosaic played a particularly
  10731.    important role in establishing HTML. Mosaic pioneered the addition
  10732.    of in-line images, image maps, nested lists and fill-out forms
  10733.    (derived from work on HTML+). Minor variations in the way extensions
  10734.    were supported by different browsers eventually led to the setting
  10735.    up of the HTML working group. The HTML 2.0 specification sets out a
  10736.    definitive standard for HTML, formalizing the de facto situation
  10737.    during 1994. 
  10738.  
  10739.    HTML+ was the result of my work on possible directions for extending
  10740.    HTML to meet the needs of information providers, e.g. to support
  10741.    forms, tables, text flow around figures and math. This work has now
  10742.    culminated in the current HTML 3.0 specification, which adds a range
  10743.    of important new features to HTML while preserving simplicity and
  10744.    backwards compatibility with existing documents. 
  10745.  
  10746.    I would like to express my special thanks to members of the Internet
  10747.    community on the www-talk, www-html and html-wg mailing lists; to
  10748.    people who have written to me in person, and to members of the
  10749.    SGML-Open who have been very supportive of the Web initiative.
  10750.    Thanks also to Hewlett Packard for funding my work on HTML. 
  10751.  
  10752.    Particular thanks are due to: 
  10753.  
  10754.    *   Terry Allen; O'Reilly & Associates; terry@ora.com 
  10755.  
  10756.    *   Marc Andreessen; Netscape Communications Corp;
  10757.        marca@netscape.com 
  10758.  
  10759.    *   Eric Bina; Netscape Communications Corp; ebina@netscape.com 
  10760.  
  10761.    *   Paul Burchard; The Geometry Center, University of Minnesota;
  10762.        burchard@geom.umn.edu 
  10763.  
  10764.    *   James Clark; jjc@jclark.com 
  10765.  
  10766.    *   Daniel W. Connolly; HaL Computer Systems; connolly@hal.com 
  10767.  
  10768.    *   Stephen DeRose; EBT; ??? steve@ebt.com 
  10769.  
  10770.    *   Roy Fielding; University of California, Irvine;
  10771.        fielding@ics.uci.edu 
  10772.  
  10773. Dave Raggett                                                          Page 189
  10774. HTML 3.0                                                       28th March 1995
  10775.  
  10776.  
  10777.    *   Jay Glicksman; Enterprise Integration Technology; jay@eit.com 
  10778.  
  10779.    *   Eduardo Gutentag; Sun Microsystems; eduardo@Eng.Sun.com 
  10780.  
  10781.    *   Bill Hefley; Software Engineering Institute, Carnegie Mellon
  10782.        University; weh@sei.cmu.edu 
  10783.  
  10784.    *   Chung-Jen Ho; Xerox Corporation; cho@xsoft.xerox.com 
  10785.  
  10786.    *   Mike Knezovich; Spyglass, Inc.; mike@spyglass.com 
  10787.  
  10788.    *   Tim Berners-Lee; CERN; timbl@info.cern.ch 
  10789.  
  10790.    *   Tom Magliery; NCSA; mag@ncsa.uiuc.edu 
  10791.  
  10792.    *   Murray Maloney; SCO Canada; murray@sco.com 
  10793.  
  10794.    *   Larry Masinter; Xerox Palo Alto Research Center;
  10795.        masinter@parc.xerox.com 
  10796.  
  10797.    *   Karen Olson Muldrow; HaL Computer Systems; karen@hal.com 
  10798.  
  10799.    *   Bill Perry, Spry, Inc., wmperry@spry.com 
  10800.  
  10801.    *   E. Corprew Reed; Cold Spring Harbor Laboratory; corp@cshl.org 
  10802.  
  10803.    *   Yuri Rubinsky; SoftQuad, Inc.; yuri@sq.com 
  10804.  
  10805.    *   Eric Schieler; Spyglass, Inc.; eschieler@spyglass.com 
  10806.  
  10807.    *   Eric Severson; Avalanche, Inc.; ??? severson@avalanche.com 
  10808.  
  10809.    *   Eric W. Sink; Spyglass, Inc.; eric@spyglass.com 
  10810.  
  10811.    *   Stuart Weibel; OCLC Office of Research; weibel@oclc.org 
  10812.  
  10813.    *   Chris Wilson; Spry, Inc.; cwilson@spry.com 
  10814.  
  10815.    Dave Raggett <dsr@w3.org>, February 1995.  
  10816.  
  10817.  
  10818.  
  10819.  
  10820.  
  10821.  
  10822.  
  10823.  
  10824.  
  10825.  
  10826.  
  10827.  
  10828.  
  10829.  
  10830. Dave Raggett                                                          Page 190
  10831.