Roger Price David Abrahamson User's Guide to ISO/IEC 15445:1999 HyperText Markup Language (HTML)

Le Guide de l'Utilisateur de l'ISO/CEI 15445:1999 Langage de balisage d'hypertexte (HTML) n'est pas encore disponible en français.

Other translations may become available.

Contents

Foreword

In November 1996 we were authorized to act as the project editors of the ISO/IEC International Standard 15445:1999 for HTML, informally known as "ISO-HTML". The formal specification that we developed is intended for SGML experts who are familiar with the SGML family of International Standards, and as such is challenging to read. However we wanted the standard to be accessible to readers who do not spend their time working on SGML standards. This User's Guide is intended to encourage and assist people wishing to develop high quality IT applications on the World Wide Web and set high standards of document design and management. We assume a familiarity with the W3C Recommendation for HTML 4.0 and the HTML 4.0 Specification Errata, but the reader is not expected to be an expert in SGML.

We have received help and encouragement from many people during the development of the International Standard and this User's Guide. Many members of the IETF HTML Working Group commented on the early strawman which led to the formal introduction of the ISO-HTML project. We also received assistance from the staff of the World Wide Web Consortium (W3C) and from people in W3C member organizations. We have worked in close cooperation with the W3C Working Group which developed the HTML 4.0 Recommendation, and at the invitation of the W3C, we have taken the HTML 4.0 Recommendation as a referenced text. The ISO/IEC Working Group responsible for the SGML family of standards have provided us with direction, and encouraged and supported our close liaison with the W3C. We have also received help directly from members of National Bodies and from members of the public commenting in general mailing lists. A special word of thanks and appreciation is due to Dave Raggett who accepted an invitation to act as Invited Expert at the Dublin meeting held in July 1997 which established the principle of technically harmonized text, and made ISO-HTML a true subset of the HTML 4.0 strict specification.

This is not a formal document, neither is it intended as a reference specification, and it is not appropriate to cite it as such. However, if you the reader find it useful, then we will have met our objectives.

David M. Abrahamson
Trinity College Dublin.
[email protected]

Roger Price
University of Massachusetts Lowell.
[email protected]

Copyright notice

Copyright © 1999 Roger Price, David Abrahamson. All Rights Reserved.

This document is provided by the copyright holders under the following license. By obtaining, using and/or copying this document, or the documents from which this document is generated, you agree that you have read, understood, and will comply with the following terms and conditions:

Permission to use, copy, and distribute the contents of this document, or the document from which this document is generated, in any medium for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the document, or portions thereof, that you use:

  1. A link or URI to the original document.
  2. The pre-existing copyright notice of the original author, if it doesn't exist, a notice of the form: "Copyright © 1999 Roger Price, David Abrahamson. All Rights Reserved."
  3. If it exists, the STATUS of the document.

When space permits, inclusion of the full text of this NOTICE should be provided. In addition, credit shall be attributed to the copyright holders for any software, documents, or other items or products that you create pursuant to the implementation of the contents of this document, or any portion thereof.

No right to create modifications or derivatives is granted pursuant to this license.

THIS DOCUMENT IS PROVIDED "AS IS", AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.

The names of the copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.

This document describes ISO/IEC 15445:1999 which is subject to IETF, W3C (MIT, Inria, Keio) and ISO/IEC copyright. Because the U.S. Department of Energy, has supported the development of International Standards by JTC1/SC34 (under contract DE-AC05-84OR21400), it makes the following assertion about the International Standard:

The U.S. Government retains a paid-up, nonexclusive, irrevocable, world-wide license to publish or reproduce the published form of these documents, prepare derivative works, distribute copies to the public, and perform publicly and display publicly, or to allow others to do so, for U.S. Government purposes.

Introduction

The ISO-HTML language is an application of the International Standard ISO 8879 -- Standard Generalized Markup Language (SGML). It provides a simple way of structuring hypertext documents and of placing references in one document which point to another. These references, called "links", may be presented to readers of a document in such a way that a simple "click" summons the other document, which is then presented to the reader. The reader has the impression of moving from one document to another. This simple user interface has been wildly successful and as a result the World Wide Web, the "web", has become extremely popular.

In the frenzy of the growth, much of the discipline and good practice of the mature SGML world has been lost, and browser developers have added additional features to the markup language such as new tags and new semantics for tags. As a result, many documents have been created which can only be rendered faithfully on a limited number of browsers. Common web practice is to hide any syntactic problems detected by the browsers and thus the reader is not aware that a page being browsed is not always faithful to the original authored document.

The International Standard was developed in an effort to ensure that it will remain possible for an author to produce simple hypertext for the web and be confident that a conforming browser will be able to render the document faithfully. ISO/IEC 15445 represents a core of the language to be supported by all conforming browsers, authoring and validating systems.

The language defined by the International Standard is a refinement of the W3C Recommendation for HTML 4.0 after correction by the HTML 4.0 Specification Errata and provides additional specifications for the use of that document.

NOTE: Throughout this User's Guide, whenever we refer to the W3C Recommendation for HTML 4.0 we imply that the corrections listed in the HTML 4.0 Specification Errata have been applied.

All documents conforming to the International Standard also conform to the W3C Recommendation for HTML 4.0. ISO-HTML omits all deprecated features of the language, features whose role is purely cosmetic, and features which are still unstable or immature. This has been done in preparation for the expected wide adoption of style sheets by authors and browser manufacturers. Certain optional facilities such as markup omission of the document and other major elements have been removed to produce more robust texts in keeping with recognized good SGML practice. This does not reduce in any way the expressive power of the language.

The conformance statements in the International Standard distinguish between a conforming system and a validating system. Conforming systems behave correctly when processing conforming documents, but are not required to handle errors. Validating systems are required to identify all SGML and ISO-HTML errors, and must be able to certify that a document is valid ISO-HTML. Commercial browsers are usually conforming systems, whereas authoring tools check for validity.

NOTE: A conforming system is not sufficient to validate an ISO-HTML document. A validation system is required.

The International Standard does not define any error handling for user agents: It emphasises validation at source rather than error handling at the destination.

A minimal ISO-HTML document has the form:

<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HTML//EN">
<HTML>
<HEAD>
<TITLE>Les unités de base</TITLE>

... other head elements ...

</HEAD>
<BODY>

... document body ...

</BODY>
</HTML>

This User's Guide follows the convention of presenting element and attribute names in upper case, although there is no formal requirement for the practice.

In order to support world wide use of the markup language, the internationalization facilities specified by the IETF in RFC2070 have been included in the International Standard. It is recognised that full compliance to RFC2070 will be progressive and the conformance clause allows for progressive compliance to the use of ISO 10646.

References to the W3C Recommendation

To facilitate the use of this User's Guide, frequent references are provided to the W3C Recommendation for HTML 4.0. These take two forms: hyperlinks to the W3C's electronic sources, and clause number references to the W3C's printed version of their specification in the style [W3C 12.3].

Source markup

Both the International Standard and this User's Guide were prepared using ISO 8879 based technology. The source files were marked up using the Pre-HTML DTD specified in this User's Guide and then transformed to conforming instances of ISO/IEC 15445 using the technique described in the chapter "Document preparation".

1   Scope

The scope of ISO/IEC 15445 is specified by listing the clauses of the W3C Recommendation for HTML 4.0 which are to be refined by ISO-HTML:

  • Clause 2, Introduction to HTML 4.0.
  • Clause 5, HTML Document Representation.
  • Clause 6, Basic HTML data types, excluding subclauses 6.5, 6.14 and 6.16.
  • Clause 7: The global structure of an HTML document.
  • Clause 8: Language information and text direction.
  • Clause 9: Text.
  • Clause 10: Lists, excluding subclause 10.4.
  • Clause 11: Tables.
  • Clause 12: Links.
  • Clause 13: Objects, Images and Applets, excluding subclauses 13.4 and 13.7.
  • Clause 14: Style Sheets, excluding subclause 14.2.2.
  • Subclause 15.2.1: Font style element [type]s, excluding the <BIG> [W3C 15.2.1], <SMALL> [W3C 15.2.1], <STRIKE> [W3C 15.2.1], <S> [W3C 15.2.1] and <U> [W3C 15.2.1] element [type]s.
  • Subclause 15.3: Rules: the HR element [type].
  • Clause 17: Forms.
  • Clause 24: Character entity references in HTML 4.0.

The scope excludes any material in the W3C Recommendation for HTML 4.0 not listed in the scope clause. It also excludes any standardization of models, services, systems, protocols or applications which are likely to make use of the ISO-HTML language. ISO-HTML does not define the "look and feel" of any conforming product, and provides only sufficient semantics to allow a reader who is familiar with the W3C Recommendation for HTML 4.0 to have an intuitive idea of the requirement.

2   Conformance

The International Standard makes a very important distinction between validating systems and conforming systems.

A validating system is one that is able to verify that the document it is processing contains correct HTML. If the document is correct, the validator certifies it as such; if not, the validator identifies the errors. The notion of validation is currently poorly defined on the World Wide Web and many authors assume wrongly that their browser may be used to check out the pages they write.

I tried it with my browser and it worked!

is an all too common mistake, and is the source of many errors and broken pages.

ISO-HTML insists that a validator requires an SGML parser since ISO-HTML makes full use of the underlying SGML language. Conforming systems do not require an SGML parser since they merely promise to operate correctly provided that the documents they process are already validated as conforming to ISO-HTML.

NOTE: It is possible for a system that is simply "conforming" to identify many errors in an invalid document, and notification of such errors could be of value to a user, but it is not "validating" unless it can detect all errors.

2.1   Conforming documents

To be a conforming document, documents are required to conform to the requirements of the International Standard and to have the following structure:

  1. Optional white space.
  2. A required document type declaration.
  3. Optional white space.
  4. A single document instance, contained in an <HTML> [W3C 7.3] document element.
  5. Optional white space.

White space consists of the SGML-defined characters RS (record start), RE (record end), SEPCHAR (tab) and SPACE [8879 9.2.1 figure 2], and ISO-HTML comments.

2.2   Validating systems

To be classified as a validating system, a system must contain a validating SGML parser as defined by ISO 8879:1986 subclause 15.4, ie. it must:

  1. Be able to process any conforming ISO-HTML document,
  2. Find and report an ISO-HTML error if one exits,
  3. Not report an ISO-HTML error where none exists.

NOTE: This requires more than a validating SGML parser is able to offer, nevertheless a validation by an SGML parser is an essential first step. Some of the ISO-HTML errors a validating system are required to detect cannot be detected by an SGML parser, and require further processing.

2.2.1   Documentation of validating systems

Validating systems are required by ISO-HTML to display a text identifying them clearly as validating systems. The standard calls for the text to be displayed prominently in the front of publications, on program displays (presumably the introductory page, not all pages), and in promotional and training material. The identification is to be in the same language as the system documentation.

NOTE: Neither the ISO nor the IEC provide a certification service, nor do they provide an icon to indentify validating or conforming systems. The ISO and IEC icons are copyrighted and cannot be used without the permission of those organisations. The International Standard gives permission to use the identification text but not the icon.

The ISO-HTML validating system identification text is:

An HTML validating system conforming to International Standard ISO/IEC 15445--HyperText Markup Language, and International Standard ISO 8879--Standard Generalized Markup Language (SGML).

2.3   Conforming systems

A conforming ISO-HTML system is an ISO-HTML system which is able to process all conforming ISO-HTML documents.

NOTE: The International Standard says nothing about error handling or the processing of non-conforming documents. The basic creed is that in a high quality web application, all documents are validated as conforming before publication, and that conforming documents are sent to conforming user agents to obtain correct results.

2.3.1   Documentation of conforming systems

The International Standard specifies the documentation of conforming systems in much the same way as validating systems. The only difference is the identifying text itself which becomes:

An HTML system conforming to International Standard ISO/IEC 15445--HyperText Markup Language.

It is important that the documentation not claim or suggest that a conforming system may be used to validate ISO-HTML documents.

2.4   Character set conformance

The SGML declaration provided with the International Standard requires use of ISO/IEC 10646 Universal Multiple-Octet Coded Character Set (UCS). ISO/IEC 10646 is potentially very large and although the described character set portion identified by the DESCSET keyword [8879 13.1.1.2] calls for the whole character set, the International Standard does not require that it is fully implemented in any user agent. Only limited conformance to ISO/IEC 10646 as defined by the International Standard is practical.

NOTE: The high number in the last line of the DESCSET described character set portion of the SGML declaration should be read as a requirement on user agents and their parsers in both validating and conforming systems not to limit the character set that may be used for documents.

Limited conformance means that:

  1. When the characters described by ISO/IEC 10646 are used, they must be used as specified in ISO/IEC 10646, ie. with the 10646 meanings and coded representation.
  2. If a server discovers that a user agent's character set is one in which the server cannot express the document, it should instead deliver a document in a limited character set such as ISO/IEC 646 (often called ASCII) explaining the problem.

    NOTE: The International Standard does not say how the problem is to be explained. This is left entirely to the implementor to decide. Neither does the International Standard discuss any negotiation that might be done, or the operation of the HTTP protocol.

  3. Code positions that are either reserved for registration or reserved for future standardization must not be used.
  4. Any registered escape sequence that is used must be used with the meaning defined by ISO/IEC 10646.

The International Standard warns that the UTF-1 transformation format registered by IANA as ISO-10646-UTF-1, has been removed from the ISO/IEC 10646 and should not be used.

NOTE: The initial specification of the W3C Recommendation for HTML 4.0 did not automatically make reference to the latest version of ISO/IEC 10646, as would an ISO/IEC standard. As a result, recently defined characters such as the Euro which has position hexadecimal 20AC (decimal 8364) were not initially available. This situation is being addressed by the W3C. The required correction is to be posted in the HTML 4.0 Specification Errata.

3   Normative references

The International Standard refers normatively to some of the clauses and subclauses of the W3C Recommendation for HTML 4.0 as corrected by the HTML 4.0 Specification Errata. The full list is given in the scope clause of the International Standard.

NOTE: The W3C Recommendation consists of the current version corrected by the errata. The W3C HTML 4.0 Specification Errata are normative corrections to the W3C Recommendation for HTML 4.0. Although some or all of the errata may be included in the current version, the Recommendation to which the International Standard refers contains all the errata.

NOTE: In an ISO/IEC specification, a normative reference has the effect of including all the provisions of the referenced text into the referencing text. The W3C Recommendation itself contains normative references, but it is implicit that the effect is not one of "total normative inclusion". The W3C normative references appear to be closer in spirit to ISO/IEC informative references defining good practice, and we recommend that they should be treated as such.

The International Standard also refers normatively to ISO/IEC 10744 HyTime which provides the techniques which allow ISO-HTML to satisfy the requirement that it could used as a base architecture for other SGML applications.

4   Definitions

All the definitions of SGML are incorporated into ISO-HTML. The International Standard also provides definitions for a number of familiar terms such as "browser" and "user agent", and repeats the definitions of character, character encoding scheme, character repertoire, code position, coded character set, form data set and fragment identifier given in RFC1866. The definition of CRLF is taken from RFC1521.

The multiple definitions and techniques for the representation of characters may be the source of confusion. The following figure shows some of the ideas involved. It is based on the character set defined by ISO 8859-1:1987 "8-bit single-byte coded graphic character sets", Part 1: Latin alphabet No. 1.

Relationship of character name to glyph, numerical value and ISOlat1 entity

Figure 1: Illustration of some character representation definitions.

5   Symbols and abbreviations

The International Standard provides the meaning of acronyms such as HTML, HTTP, WWW and URL which should be familiar to readers of the W3C Recommendation for HTML 4.0.

6   Requirements

The International Standard states the requirements it had to meet in terms of the relationship between ISO-HTML and SGML and the need for ISO-HTML to be viewable with browsers which conform to the W3C Recommendation for HTML 4.0.

The underlying requirements were to:

  1. Provide a stable core for the W3C Recommendation.
  2. Distinguish between "conforming" and "validating" systems, and provide a basis for contracts which make reference to HTML. For example an organisation which receives HTML documentation from a subcontractor might wish to establish formal acceptance criteria as part of an ISO 9000 based quality plan. The acceptance criteria could be based an an ISO-HTML validator as defined by the International Standard.
  3. Reinforce the W3C text. The W3C Recommendation for HTML 4.0 sometimes "recommends" or "deprecates" practices which we believe should be required or forbidden, but the requirement cannot be made normative by the W3C because of the need for backward compatibility. There is no backward compatibility requirement for ISO-HTML and such requirements can be made a normative. An example of such a practice is the required structuring of sections and subsections.
  4. Encourage good SGML practice, such as the use of the id attribute rather than the name attribute. This allows an SGML parser to check that the value is unique.
  5. Facilitate the use of HTML in situations, such as government procurement, where the use of ISO/IEC International Standards is required.
  6. Reinforce the practice of separating content and style by excluding all elements such as <FONT> [W3C 15.2.2] and attributes such as BGCOLOR which provide style rather than structure.

7   Use of the referenced text

Throughout this User's Guide, references to the printed version of the referenced text are given in the abbreviated style [W3C 12.3].

ISO 8879 distinguishes between element type [8879 11.2.1] and element [8879 7.3], which is an instance of the type, whereas the W3C Recommendation for HTML 4.0 uses the term "element" for both element and element type. This guide follows the ISO practice, and when quoting from the W3C Recommendation for HTML 4.0 inserts the missing word in square brackets when it is needed, eg. [type].

7.1   Element [type]s defined by the W3C Recommendation

While the syntax of ISO-HTML is defined by the DTD provided by the International Standard, the semantics of the following element types are defined normatively in the W3C Recommendation for HTML 4.0:

  1. <ABBR> [W3C 9.2.1]--Abbreviation
  2. <ACRONYM> [W3C 9.2.1]--Acronym
  3. <B> [W3C 15.2.1]--Bold character style
  4. <BDO> [W3C 8.2.4]--Bidirectional override
  5. <BR> [W3C 9.3.2]--Line break
  6. <CAPTION> [W3C 11.2.2]--Table caption
  7. <CITE> [W3C 9.2.1]--Citation
  8. <CODE> [W3C 9.2.1]--Program code
  9. <DD> [W3C 10.3]--Definition data
  10. <DEL> [W3C 9.4]--Deleted material
  11. <DFN> [W3C 9.2.1]--Defining instance
  12. <DIV> [W3C 7.5.4]--Document division
  13. <DL> [W3C 10.3]--Definition list
  14. <DT> [W3C 10.3]--Definition term
  15. <EM> [W3C 9.2.1]--Emphasized text
  16. <FIELDSET> [W3C 17.10]--Group of form items
  17. <FORM> [W3C 17.3]--Forms
  18. <HR> [W3C 15.3]--Horizontal rule
  19. <I> [W3C 15.2.1]--Italic character style
  20. <INS> [W3C 9.4]--Inserted material
  21. <KBD> [W3C 9.2.1]--Keyboard input
  22. <LEGEND> [W3C 17.10]--Fieldset label
  23. <LI> [W3C 10.2]--List item
  24. <META> [W3C 7.4.4]--Document meta-information
  25. <OL> [W3C 10.2]--Ordered list
  26. <OPTGROUP> [W3C 17.6]--Group of user choices
  27. <OPTION> [W3C 17.6]--User choice
  28. <P> [W3C 9.3.1]--Paragraph
  29. <PARAM> [W3C 13.3.2]--Agent interface parameter
  30. <PRE> [W3C 9.3.4]--Preformatted text
  31. <SAMP> [W3C 9.2.1]--Sample output
  32. <SELECT> [W3C 17.6]--Form selection
  33. <SPAN> [W3C 7.5.4]--Generic container
  34. <STRONG> [W3C 9.2.1]--Strong emphasis
  35. <SUB> [W3C 9.2.3]--Subscript character style
  36. <SUP> [W3C 9.2.3]--Superscript character style
  37. <TEXTAREA> [W3C 17.7]--Multi-line text field
  38. <TFOOT> [W3C 11.2.3]--Table footer
  39. <THEAD> [W3C 11.2.3]--Table header cell
  40. <TITLE> [W3C 7.4.2]--Document title
  41. <TT> [W3C 15.2.1]--Monospaced character style
  42. <UL> [W3C 10.2]--Unordered list
  43. <VAR> [W3C 9.2.1]--Generic variable

7.2   Element [type]s refined by ISO-HTML

The definitions of the following element types are refined by the International Standard:

  1. <A> [W3C 12.2]--Source and target anchors
  2. <ADDRESS> [W3C 7.5.6]--Author's address
  3. <AREA> [W3C 13.6.1]--Image map region
  4. <BLOCKQUOTE> [W3C 9.2.2]--Block quotation
  5. <BODY> [W3C 7.5.1]--Document body
  6. <BUTTON> [W3C 17.5]--Selectable input mechanism
  7. <COL> [W3C 11.2.4]--Table column properties
  8. <COLGROUP> [W3C 11.2.4]--Table column group properties
  9. <HEAD> [W3C 7.4.1]--Document header
  10. <HTML> [W3C 7.3]--Document instance
  11. <H1> [W3C 7.5.5]--Major section header
  12. <H2> [W3C 7.5.5]--Section header
  13. <H3> [W3C 7.5.5]--Subsection header
  14. <H4> [W3C 7.5.5]--Subsubsection header
  15. <H5> [W3C 7.5.5]--Subsubsubsection header
  16. <H6> [W3C 7.5.5]--Minor subsubsubsection header
  17. <IMG> [W3C 13.2]--Inline images
  18. <INPUT> [W3C 17.4]--User input field
  19. <LABEL> [W3C 17.9.1]--Form field label
  20. <LINK> [W3C 12.3]--Interdocument relations
  21. <MAP> [W3C 13.6.1]--Client-side image map
  22. <OBJECT> [W3C 13.3]--Simple agent
  23. <Q> [W3C 9.2.2]--Quote
  24. <STYLE> [W3C 14.2.3]--Style specification
  25. <TABLE> [W3C 11.2.1]--Tables
  26. <TBODY> [W3C 11.2.3]--Table body
  27. <TD> [W3C 11.2.6]--Table data cell
  28. <TH> [W3C 11.2.6]--Table header cell
  29. <TR> [W3C 11.2.5]--Table row

Any element type not listed in this or the preceding subclause is excluded from the International Standard.

7.3   Attributes omitted by ISO-HTML

The W3C Recommendation for HTML 4.0 provides a number of attributes that are not supported by the International Standard. They have been omitted because they are used to describe appearance rather than structure, or because the feature is considered to be still too unstable or immature for an International Standard.

  1. ALIGN--Omitted from all elements on which it occurs.
  2. ALINK--Omitted from all elements on which it occurs.
  3. ALT--Omitted from <INPUT> [W3C 17.4].
  4. ARCHIVE--Omitted from <OBJECT> [W3C 13.3].
  5. BACKGROUND--Omitted from <BODY> [W3C 7.5.1].
  6. BGCOLOR--Omitted from all elements on which it occurs.
  7. BORDER--Omitted from all elements on which it occurs.
  8. CELLPADDING--Omitted from <TABLE> [W3C 11.2.1].
  9. CELLSPACING--Omitted from <TABLE> [W3C 11.2.1].
  10. CHAR--Omitted from all elements on which it occurs.
  11. CHAROFF--Omitted from all elements on which it occurs.
  12. CLEAR--Omitted from <BR> [W3C 9.3.2].
  13. COMPACT--Omitted from all elements on which it occurs.
  14. COORDS--Omitted from <A> [W3C 12.2].
  15. FRAME--Omitted from <TABLE> [W3C 11.2.1].
  16. HEIGHT--Omitted from all elements on which it occurs.
  17. HSPACE--Omitted from all elements on which it occurs.
  18. LINK--Omitted from <BODY> [W3C 7.5.1].
  19. NOSHADE--Omitted from <HR> [W3C 15.3].
  20. NOWRAP--Omitted from <TD> [W3C 11.2.6] and <TH> [W3C 11.2.6].
  21. ONBLUR--Omitted from all elements on which it occurs.
  22. ONCHANGE--Omitted from all elements on which it occurs.
  23. ONCLICK--Omitted from all elements on which it occurs.
  24. ONDBLCLICK--Omitted from all elements on which it occurs.
  25. ONFOCUS--Omitted from all elements on which it occurs.
  26. ONKEYDOWN--Omitted from all elements on which it occurs.
  27. ONKEYPRESS--Omitted from all elements on which it occurs.
  28. ONKEYUP--Omitted from all elements on which it occurs.
  29. ONLOAD--Omitted from all elements on which it occurs.
  30. ONMOUSEDOWN--Omitted from all elements on which it occurs.
  31. ONMOUSEMOVE--Omitted from all elements on which it occurs.
  32. ONMOUSEOUT--Omitted from all elements on which it occurs.
  33. ONMOUSEOVER--Omitted from all elements on which it occurs.
  34. ONMOUSEUP--Omitted from all elements on which it occurs.
  35. ONRESET--Omitted from all elements on which it occurs.
  36. ONSELECT--Omitted from all elements on which it occurs.
  37. ONSUBMIT--Omitted from all elements on which it occurs.
  38. ONUNLOAD--Omitted from all elements on which it occurs.
  39. RULES--Omitted from <TABLE> [W3C 11.2.1].
  40. SHAPE--Omitted from <A> [W3C 12.2].
  41. SIZE--Omitted from <HR> [W3C 15.3].
  42. SRC--Omitted from <INPUT> [W3C 17.4].
  43. START--Omitted from <OL> [W3C 10.2].
  44. STYLE--Omitted from all elements on which it occurs.
  45. TARGET--Omitted from all elements on which it occurs.
  46. TEXT--Omitted from <BODY> [W3C 7.5.1].
  47. TYPE--Omitted from <LI> [W3C 10.2], <OL> [W3C 10.2] and <UL> [W3C 10.2].
  48. USEMAP--Omitted from <INPUT> [W3C 17.4].
  49. VALIGN--Omitted from all elements on which it occurs.
  50. VALUE--Omitted from <LI> [W3C 10.2].
  51. VERSION--Omitted from <HTML> [W3C 7.3].
  52. VLINK--Omitted from all elements on which it occurs.
  53. VSPACE--Omitted from all elements on which it occurs.
  54. WIDTH--Omitted from all elements on which it occurs.

8   General provisions

This clause in the International Standard covers matters that are not associated with a particular element.

8.1   Byte order

When an ISO-HTML text is transmitted as a multibyte character set UCS-2 or UCS-4, the International Standard follows RFC2070 in recommending:

  1. That it be transmitted in big-endian byte order--high order byte first.
  2. That the document always begin with a ZERO-WIDTH NON-BREAKING SPACE character (hexadecimal FEFF or 0000FEFF) which, when byte-reversed becomes number FFFE or FFFE0000, a character guaranteed never to be assigned. Thus a user agent receiving an FFFE as the first two octets of a text would know that bytes have to be reversed for the remainder of the text.

8.2   Block and text element types

The International Standard defines two classes of structure: block element types and text element types. The two classes are defined in the ISO-HTML DTD by the entities:

%block;
The block class contains the element types <BLOCKQUOTE> [W3C 9.2.2], <DIV> [W3C 7.5.4], <DL> [W3C 10.3], <FIELDSET> [W3C 17.10], <FORM> [W3C 17.3], <HR> [W3C 15.3], <OL> [W3C 10.2], <P> [W3C 9.3.1], <PRE> [W3C 9.3.4], <TABLE> [W3C 11.2.1] and <UL> [W3C 10.2].

NOTE: The %block; class corresponds to the %block; parameter entity in the W3C Recommendation for HTML 4.0, but excludes the %heading; element [type]s and the <ADDRESS> [W3C 7.5.6] element [type].

%text;
The text class contains parsed character data (PCDATA) [8879 4.228 and 11.2.4] and the subclasses physical styles, logical styles and special.

NOTE: The %text; class corresponds to the %inline; parameter entity in the W3C Recommendation for HTML 4.0, but without the %formctrl; element [type].

The subclasses are defined by entities:

%physical.styles;
The physical styles subclass contains the element types <B> [W3C 15.2.1], <I> [W3C 15.2.1], <SUB> [W3C 9.2.3], <SUP> [W3C 9.2.3] and <TT> [W3C 15.2.1].

NOTE: The physical styles are called %fontstyle; in the W3C Recommendation for HTML 4.0. ISO-HTML adds <SUB> [W3C 9.2.3] and <SUP> [W3C 9.2.3] taken from %special;, and sorts the set into alphabetical order.

%logical.styles;
The logical styles subclass contains the element types <ABBR> [W3C 9.2.1], <ACRONYM> [W3C 9.2.1], <CITE> [W3C 9.2.1], <CODE> [W3C 9.2.1], <DFN> [W3C 9.2.1], <EM> [W3C 9.2.1], <KBD> [W3C 9.2.1], <SAMP> [W3C 9.2.1], <STRONG> [W3C 9.2.1] and <VAR> [W3C 9.2.1].

NOTE: %logical.styles; are called %phrase; in the W3C Recommendation for HTML 4.0. The ISO-HTML DTD presents the elements in alphabetical order.

%special;
The special subclass contains the element types <A> [W3C 12.2], <BDO> [W3C 8.2.4], <BR> [W3C 9.3.2], <IMG> [W3C 13.2], <OBJECT> [W3C 13.3], <MAP> [W3C 13.6.1], <Q> [W3C 9.2.2] and <SPAN> [W3C 7.5.4].

NOTE: The ISO-HTML special subclass corresponds to %special; in the W3C Recommendation for HTML 4.0, but excludes <SUB> [W3C 9.2.3] and <SUP> [W3C 9.2.3] which ISO-HTML considers to be physical styles. Those that are included are in alphabetical order.

The distinction between block elements and text elements appears in

  • The content model,
  • Formatting and presentation,
  • Text directionality.

For details, see the W3C Recommendation for HTML 4.0.

9   Invocation

The DTD provided by the International Standard has the following formal public identifiers [8879 10.2]:

"ISO/IEC 15445:1999//DTD HyperText Markup Language//EN"
"ISO/IEC 15445:1999//DTD HTML//EN"

NOTE: The second formal public identifier is shorter, but has exactly the same meaning as the first.

9.1   Document type declaration

The DTD provided by the International Standard is typically invoked by one of the following declarations:

<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HyperText Markup Language//EN">
<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HTML//EN">

The International Standard formally excludes use of the document type declaration subset [8879 11.1].

9.1.1   Document type declaration for preparation of ISO-HTML

The exclusion of the document type declaration subset [8879 11.1] by the International Standard prevents the use of parameter entities [8879 B.6] in conforming documents. Parameter entities declared in the subset can be useful in documents in the same way that macros are useful in programming languages. We will explain later how to take advantage of the power of parameter entities when preparing ISO-HTML documents. This will require a modified document type which is invoked by the document type declaration:

<!DOCTYPE Pre-HTML PUBLIC 
   "-//ISO-HTML User's Guide//DTD Preparation of ISO-HTML//EN" 
[<!ENTITY % Preparation "INCLUDE" >

general entity declarations...

]>

This modified document type declaration is not a part of the International Standard, but is useful in preparing documents which conform to ISO-HTML.

NOTE: Both the International Standard and this User's Guide were prepared from sources based on the modified document type declaration.

9.2   Architectural support declaration

In order to use the ISO-HTML document type definition as a base architecture for other SGML applications, the following architectural support declaration should be used:

<?IS10744 arch name="html"
public-id="ISO/IEC 15445:1999//DTD HyperText Markup Language//EN"
dtd-system-id="[insert URL to official version here]"
renamer-att="HTMLnames"
doc-elem-form="HTML"
>

9.3   Comments in the DTD

The International Standard makes the comments in the DTD a part of the normative text. Those comments which use the words "shall" or "shall not" are normative requirements. Comments which use the words "should" or "should not" are recommendations, and comments which use the verbs "recommend" or "deprecate" are recommendations or deprecations of the International Standard.

NOTE: DTD comments in the W3C Recommendation for HTML 4.0 are informative only.

10   Availability of the DTD

The document type definition (DTD) [8879 11.1] provided by ISO-HTML is divided into three parts which are grouped within a single file. Part 1 is a set of entity definitions required by the DTD and forms the ISO-HTML entity set. Part 2 defines the ISO-HTML element types and their content models, and Part 3 defines the attribute sets for each element type and provides additional normative refinements.

The International Standard also provides an SGML declaration [8879 13] which gives instructions to the SGML parser.

NOTE: The ISO-HTML SGML declaration is essentially the same as the SGML declaration in the W3C Recommendation for HTML 4.0.

The ISO-HTML DTD and the ISO-HTML SGML declaration are formal parts of the International Standard and are protected by copyright held by the IETF, the W3C (MIT, Inria, Keio) and the ISO/IEC. The International Standard grants permission to copy provided the following copyright notice is included with all copies.

Permission to copy in any form is granted for use with validating and conforming systems and applications as defined in ISO/IEC 15445:1999, provided this copyright notice is included with all copies.

This provision allows you to make electronic copies of the file that contains the ISO-HTML DTD and the file that contains the SGML declaration. Make sure that the copies that you use are pristine. They should have the following 128 bit MD5 Message-Digest Algorithm checksums specified by RFC1321 and calculated by the GNU md5sum utility for text (not binary) files:


d4b33c05d10a9ac432fa7ba6ece89aa6  15445.dcl
a9f85f8ced01bb84b6c8f0e0c9b46e03  15445.dtd

NOTE: The OASIS catalogue fragment described in this User's Guide is not a part of the International Standard. It may be copied without payment under the terms of the GNU General Public License.

NOTE: The checksums which appear in this clause are an example of automatically computed text in an ISO-HTML page. The technique is described in chapter Document preparation.

11   Style

The International Standard is based on the well established principle that it is good document design to separate the content of a document from the intended style in which it is to be presented to a reader. This facilitates the reprocessing of documents in ways that were not envisaged when they were created, and thus protects the content owners' long term investment in documents.

Although the International Standard does not specify a style sheet language, this User's Guide recommends that authors of ISO-HTML documents use Cascading Style Sheets as specified by the World Wide Web Consortium.

11.1   Descriptions of presentation style

Wherever the International Standard or this User's Guide describe a possible presentation, eg. as a button, the styling information is intended to provide assistance to the reader in understanding the semantics of the element or attribute. It is not intended as a normative style requirement.

12   Comments in ISO-HTML

SGML differentiates between a comment [8879 10.3] which appears between pairs of double hyphens:

-- This is a comment --

and a comment declaration [8879 10.3] which has the form

<!--comment--   --comment--  --comment--  >

Notice that a comment may be followed by whitespace. The degenerate case

<!>

is allowed by SGML. A common beginner's mistake is to place multiple hyphens in a comment for decorative purposes:

<!----------------------------------------------------
    Joe: have the Whizz-Bang lawyers check this out:
  ---------------------------------------------------->

This example is not valid SGML and it is not valid ISO-HTML, since the additional hyphens are not present in multiples of four.

Validating systems should find an SGML error in such invalid examples (the characters Joe: have the Whizz-Bang lawyers check this out: should not appear in whitespace). We leave you to count the hyphens and appreciate that you should not write -- within a comment.

The International Standard requires that all comments in ISO-HTML documents appear in comment declarations [8879 10.3]. There shall be one and only one comment per comment declaration. For example:

<!-- This is a single comment 
     in a comment declaration. -->

The intention of this provision is to facilitate the use of popular user agents which are unable to parse SGML and which cannot handle comments outside comment declarations.

The International Standard allows white space following the comment, so an author could write:

<!-- This is a single comment 
     followed by white space. --
>

13   Refinement of element types

The following subchapters describe the refinements that the International Standard makes to those element [type]s defined by the W3C Recommendation for HTML 4.0 which are included in ISO-HTML.

13.1   The A element type--Source and target anchors

The attributes of the <A> [W3C 12.2] element are restricted to:

  • Common attributes CLASS and TITLE.
  • Common attribute ID.

    The case sensitivity of the ID attribute is controlled by the SYNTAX NAMING NAMECASE GENERAL YES rule [8879 13.4.5] of the SGML declaration used with ISO-HTML. The YES means that upper case folding is to be done: lower case characters in the ID value are to be replaced by the corresponding upper case characters. This results in ID values that are not case sensitive. Unfortunately the attribute NAME has also been used with the same purpose as ID, and NAME values are case sensitive.

    To resolve this apparent contradiction, the International Standard requires that case not be taken into account when determining matches for ID values with NAME and HREF values. Comparisons should be made after the NAME and HREF values have been folded to upper case.

    Authors should take a conservative approach. Do not assume that the values PiZZa and pizza will match; if they are to match, write both as PIZZA. Do not assume that PiZZa and Pizza are different; if they are to be different, write them as PIZZA-1 and PIZZA-2.

    NOTE: Despite this good advice, neither the International Standard nor the User's Guide use the ID attribute as a target anchor since conformance by popular browsers to this part of the W3C Recommendation for HTML 4.0 was inconsistent at the time of writing.

  • Internationalization attributes DIR and LANG.
  • ACCESSKEY, CHARSET
  • HREF

    In order to resolve the ID/NAME case folding contradiction, the International Standard requires that case not be taken into account when determining matches for HREF values with NAME or ID values.

    Although the International Standard is silent on the subject, it implies that HREF values should be tokenized in the same way as NAME values.

  • HREFLANG
  • NAME

    In order to clarify which names will match, the International Standard requires that NAME attribute value specifications be processed as if the declared value were NAME even though the declared value is CDATA. This calls for the attribute value to be tokenized which means that entity references and character references are replaced, entity ends and record starts are removed, and record end and separator characters (horizontal tabs) are replaced by a space. Any sequence of space characters is replaced by a single space and leading and trailing spaces are deleted [8879 7.9.3 and 10.1.7]. As a result the following examples specify the same NAME value:

    NAME="Uncle Joe"
    NAME="
          &#85;ncle  
          &#74;oe
         "

    The International Standard requires that case not be taken into account when determining matches with HREF values or ID values.

  • REL, REV, TABINDEX and TYPE.

The International Standard recommends that authors of ISO-HTML documents give preference to the ID attribute over the NAME attribute since this allows an SGML parser to verify that the ID values are distinct.

NOTE: Despite this good advice, neither the International Standard nor the User's Guide use the ID attribute as a target anchor since conformance by popular browsers to this part of the W3C Recommendation for HTML 4.0 was inconsistent at the time of writing.

13.2   The ADDRESS element type--Author's address

The <ADDRESS> [W3C 7.5.6] element indicates the author or originator of a document or major part of a document. The International Standard discourages its use for general markup by requiring that it appear only in the content of the elements: <BLOCKQUOTE> [W3C 9.2.2], <BODY> [W3C 7.5.1], <DIV> [W3C 7.5.4], <FIELDSET> [W3C 17.10], <FORM> [W3C 17.3] and <OBJECT> [W3C 13.3].

The <ADDRESS> [W3C 7.5.6] element should not to be used to markup up for example a list of addresses of the members of a club.

13.3   The AREA element type--Image map region

ISO-HTML resticts the attributes of the <AREA> [W3C 13.6.1] element to:

  • Common attributes CLASS, ID and TITLE.
  • Internationalization attributes DIR and LANG.
  • ACCESSKEY
  • ALT

    Authors are very strongly recommended to provide meaningful ALT attributes to support interoperability with speech-based and text-only agents. The language and direction of text are defined by the containing elements.

  • COORDS, HREF, NOHREF, SHAPE and TABINDEX

The International Standard requires that a value be provided for the ALT attribute, and that one of HREF or NOHREF be specified. The International Standard also requires that COORDS not be specified if SHAPE has the value default.

13.4   The BLOCKQUOTE element type--Block quotation

ISO-HTML strengthens a recommendation in the W3C Recommendation for HTML 4.0 by insisting that the contents of the <BLOCKQUOTE> [W3C 9.2.2] element be specified without surrounding quotation marks. These may be added by a user agent through the use of a style sheet.

NOTE: We anxiously await the arrival of a version of the W3C's Cascading Style Sheet which will allow this.

NOTE: Authors have recognized that popular browsers often present the <BLOCKQUOTE> [W3C 9.2.2] contents indented left and right, and they have misused the element to obtain this formatting effect for text which was not a block quotation. True block quotations were marked up with quotation marks such as ". The W3C try to provide backward compatibility in the W3C Recommendation for HTML 4.0 and this prevents them requiring the omission of quotation marks. ISO-HTML does not have a backward compatibility requirement, and can insist on quotation mark omission.

13.4.1   Example

This example quotes from article 129C of the European Union Treaty. Here is the markup:

<BLOCKQUOTE
   LANG=fr
   TITLE="Trait&eacute; sur l'Union Europ&eacute;enne, Article 129 C.">
<p>
Afin de r&eacute;aliser les objectifs vis&eacute;s &agrave; l'article
129B, la Communaut&eacute; :
<p>
met en oeuvre toute action qui peut s'av&eacute;rer n&eacute;cessaire
pour assurer l'interoperabilit&eacute; des r&eacute;seaux, en
particulier dans le domaine de l'harmonisation des
normes techniques ;
</BLOCKQUOTE>

Here is a possible rendering:

<< Afin de réaliser les objectifs visés à l'article 129B, 
   la Communauté :

   met en oeuvre toute action qui peut s'avérer nécessaire
   pour assurer l'interoperabilité des réseaux, en
   particulier dans le domaine de l'harmonisation des
   normes techniques ; >>

Although there is no requirement in SGML or ISO-HTML to place the value of the TITLE attribute on a single line, authors are encouraged to do this, to facilitate the use of popular browsers while they move towards fuller conformance.

13.5   The BODY element type--Document body

The start tag is required but the end tag is optional. Authors are recommended to include the end tag if the document is to be the subject of further processing.

13.5.1   Preparation

In order to facilitate the preparation of conforming ISO-HTML documents, the User's Guide provides a stricter definition for the content model of the <BODY> [W3C 7.5.1] element.

<!ELEMENT BODY  - O  ((%block;)*,(H1,DIV1)*)  +(DEL|INS) >

This content model makes use of the element <DIV1>, which is not a part of ISO-HTML, to enforce strictly progressive nesting of sections. The <DIV1> tags generated during the preparation process will be removed after the document has been validated as conforming to the strict nesting requirement.

NOTE: Author are not required to place <DIV1> tags in documents; they are deduced automatically by the SGML parser.

13.6   The BUTTON element type--Selectable input mechanism

The International Standard requires that the <BUTTON> [W3C 17.5] element not contain the <A> [W3C 12.2], <BUTTON> [W3C 17.5], <FIELDSET> [W3C 17.10], <FORM> [W3C 17.3], <INPUT> [W3C 17.4], <LABEL> [W3C 17.9.1], <SELECT> [W3C 17.6] or <TEXTAREA> [W3C 17.7] elements. If the <BUTTON> [W3C 17.5] element contains an <IMG> [W3C 13.2] element, the International Standard requires that the <IMG> [W3C 13.2] not have an ISMAP or USEMAP attribute.

The attributes of the <BUTTON> [W3C 17.5] element are restricted to:

  • Common attributes CLASS, ID and TITLE.
  • Internationalization attributes DIR and LANG.
  • ACCESSKEY, DISABLED
  • NAME

    This attribute is required if the TYPE attribute has the value submit.

  • TABINDEX
  • TYPE

    Specifies the behaviour associated with the button and takes one of the following values:

  • VALUE

    This attribute is required if the TYPE attribute has the value submit, and specifies the value to be returned if the button is selected.

ISO-HTML requires that the TYPE attribute be provided, and when the TYPE is specified as submit, the NAME and VALUE attributes shall be provided.

13.7   The COL element type--Table column properties

The International Standard restricts the attributes of the <COL> [W3C 11.2.4] element to:

13.8   The COLGROUP element type--Table column group properties

The International Standard restricts the attributes of the <COLGROUP> [W3C 11.2.4] element to:

The SPAN attribute should only be used if the <COLGROUP> [W3C 11.2.4] element has no content.

13.9   The HEAD element type--Document header

The header of a document provides information about the document rather than the content of the document. Such meta-information is potentially very important for libraries and applications based on large document collections. Authors are recommended to give careful attention to their document headers as part of the overall architecture and design of their applications.

The start tag of the <HEAD> [W3C 7.4.1] element is required by ISO-HTML and shall not be omitted.

Scripting is not yet considered to be sufficiently stable and mature to be included in an International Standard, so the <HEAD> [W3C 7.4.1] element content model does not include the <SCRIPT> [W3C 18.2.1] element.

13.10   The HTML element type--Document instance

In SGML vocabulary, the element which contains the document instance is known as the document element [8879 4.99 and 7.2]. Many historic HTML documents omitted the document element tags, and the W3C Recommendation for HTML 4.0, in an effort at backward compatibility, continues to allow omission of the document element start and end tags. ISO-HTML has no backward compatibility requirement, and requires that both the start and end tags of the <HTML> [W3C 7.3] element be present. They shall not be omitted.

13.10.1   Preparation

This User's Guide provides a specification for an "HTML in preparation" document which facilitates validation. Since the preparation documents are technically not ISO-HTML, their document element is changed to <Pre-HTML> to avoid any possible confusion.

13.11   The H1 element type--Major section header

ISO-HTML takes a very strict view of the nesting of sections. Sections are considered to be important building blocks in documents, and maintaining the integrity of their relationships is considered vital. ISO-HTML considers that the <H1> [W3C 7.5.5] element specifies the beginning of a major section of a document and contains the title of that major section. In the past, many authors have used section header elements only for their appearance, typically giving the author a set of larger fonts with a visual browser. The W3C offer the following light deprecation of this usage:

Some people consider skipping heading levels to be bad practice

but accept headings in any order, in an effort to promote backward compatibility.

ISO-HTML considers that the <H1> [W3C 7.5.5] through <H6> [W3C 7.5.5] elements identify sections of increasing depth and requires that the trees formed by the containment of sections be rooted at the <H1> [W3C 7.5.5] element, and that no intermediate level be skipped.

The International Standard requires that the <H1> [W3C 7.5.5] element not be followed by an <H3> [W3C 7.5.5], <H4> [W3C 7.5.5], <H5> [W3C 7.5.5], or <H6> [W3C 7.5.5] element without an intervening <H2> [W3C 7.5.5] element. This requirement is expressed as normative text in the DTD, but cannot be specified in the DTD content models without introducing additional elements which are not a part of the language. It is possible to make the introduction of new elements entirely automatic, without them appearing in the source document, but the use of general purpose SGML tools which parse documents and re-issue then with all start and end tags included poses a problem since these "normalized" documents are not valid ISO-HTML.

The attributes of the <H1> [W3C 7.5.5] element are restricted to:

13.11.1   Preparation

To make it possible for an SGML parser to validate the correct nesting of sections, this User's Guide provides an "almost ISO-HTML" document type definition which may be used to facilitate preparation of valid ISO-HTML. The document element of this "preparation ISO-HTML" has been changed from <HTML> [W3C 7.3] to <Pre-HTML> to avoid any confusion. The <Pre-HTML> DTD automatically introduces new elements required for the validation process. A simple program may be used later to remove the unwanted elements to produce valid ISO-HTML.

The ISO-HTML DTD may be switched to the <Pre-HTML> DTD through use of the Preparation parameter entity. If Preparation has the value INCLUDE, the alternate definition of the <H1> [W3C 7.5.5] element requires the correct nesting of headings and sections:

<!ELEMENT H1    - -     (%text;)+ >
<!ELEMENT DIV1  O O     ((%block;)*,(H2,DIV2)*) >

For further details, see SGML engineering.

The recommended way of specifying that the <Pre-HTML> DTD is to be used is by preceeding the document instance with the ISO-HTML preparation document type declaration. This has the effect of setting the Preparation parameter entity to the value INCLUDE.

The <DIV1> through <DIV6> elements are for internal use only within the DTD and are not a part of the language. They shall not appear in any ISO-HTML document or associated style sheet.

13.11.2   Example of structured headings

Nested boxes illustrate nested sections

Figure 2: Progressive nesting of sections.

13.12   The H2 element type--Section header

ISO-HTML considers that the <H2> [W3C 7.5.5] element specifies the beginning of a section of a document and contains the title of that section.

The International Standard requires that the <H2> [W3C 7.5.5] element not be followed by an <H4> [W3C 7.5.5], <H5> [W3C 7.5.5], or <H6> [W3C 7.5.5] element without an intervening <H3> [W3C 7.5.5] element. An <H2> [W3C 7.5.5] element shall be preceded by an <H1> [W3C 7.5.5] element.

The attributes of the <H2> [W3C 7.5.5] element are restricted to:

13.13   The H3 element type--Subsection header

ISO-HTML considers that the <H3> [W3C 7.5.5] element specifies the beginning of a subsection of a document and contains the title of the subsection.

The <H3> [W3C 7.5.5] element shall not be followed by an <H5> [W3C 7.5.5] or <H6> [W3C 7.5.5] element without an intervening <H4> [W3C 7.5.5] element. An <H3> [W3C 7.5.5] element shall be preceded by an <H2> [W3C 7.5.5] element.

The attributes of the <H3> [W3C 7.5.5] element are restricted to:

13.14   The H4 element type--Subsubsection header

ISO-HTML considers that the <H4> [W3C 7.5.5] element specifies the beginning of a subsubsection of a document and contains the title of the subsubsection.

The <H4> [W3C 7.5.5] element shall not be followed by an <H6> [W3C 7.5.5] element without an intervening <H5> [W3C 7.5.5] element. An <H4> [W3C 7.5.5] element shall be preceded by an <H3> [W3C 7.5.5] element.

The attributes of the <H4> [W3C 7.5.5] element are restricted to:

13.15   The H5 element type--Subsubsubsection header

ISO-HTML considers that the <H5> [W3C 7.5.5] element specifies the beginning of a subsubsubsection of a document and contains the title of the subsubsubsection.

An <H5> [W3C 7.5.5] element shall be preceded by an <H4> [W3C 7.5.5] element.

The attributes of the <H5> [W3C 7.5.5] element are restricted to:

13.16   The H6 element type--Minor subsubsubsection header

ISO-HTML considers that the <H6> [W3C 7.5.5] element specifies the beginning of a minor subsubsubsection of a document and contains the title of the minor subsubsubsection.

An <H6> [W3C 7.5.5] element shall be preceded by an <H5> [W3C 7.5.5] element.

The attributes of the <H6> [W3C 7.5.5] element are restricted to:

13.17   The IMG element type--Inline images

The attributes of the <IMG> [W3C 13.2] element are restricted to:

  • Common attributes CLASS, ID and TITLE.
  • Internationalization attributes DIR and LANG.
  • ALT
  • ISMAP

    The International Standard requires that if the ISMAP attribute is present in an <IMG> [W3C 13.2] element, the <IMG> [W3C 13.2] element shall be contained in an <A> [W3C 12.2] element with an HREF attribute present.

  • LONGDESC, SRC, USEMAP.

The International Standard requires that the SRC and ALT attributes be provided. At most one of the attributes ISMAP and USEMAP may be provided.

13.18   The INPUT element type--User input field

The TYPE attribute of the <INPUT> [W3C 17.4] element discriminates between several different types of input field. The set of applicable attributes depends on the value of the TYPE attribute as specified in the following subchapters. By default the value of the TYPE attribute is "text".

The value "button" for the attribute TYPE is not available in ISO-HTML. Authors wishing to place button-like devices in documents should use the <BUTTON> [W3C 17.5] element.

ISO-HTML restricts the attributes of the <INPUT> [W3C 17.4] element to the common attributes CLASS, ID, TITLE, the internationalization attributes DIR, LANG, and ACCEPT, ACCESSKEY, CHECKED, DISABLED, MAXLENGTH, NAME, READONLY, SIZE, TABINDEX, TYPE and VALUE. Their use depends on the value of the TYPE attribute as specified in the following subchapters.

13.18.1   TYPE=checkbox

An <INPUT> [W3C 17.4] element with TYPE=checkbox specifies a boolean choice. A set of <INPUT> [W3C 17.4] elements in the same <FORM> [W3C 17.3] element with the same NAME attribute value represents an n-of-many choice.

The other attribute values are as follows:

  • Common attributes CLASS, ID and TITLE.
  • Internationalization attributes DIR and LANG.
  • ACCESSKEY, CHECKED, DISABLED.
  • NAME

    This attribute is required.

  • TABINDEX

    The value is a non-negative integer. An SGML number [8879 9.3] is merely a token in which the characters are restricted to digits. 14 and 00014 are not the same number/token since the character strings are not the same. ISO-HTML recommends that the number be given an integer interpretation, with leading zeroes ignored, in the manner of a programming language.

  • VALUE

    This attribute is required.

13.18.2   TYPE=file

An <INPUT> [W3C 17.4] element with TYPE=file provides a means for users to attach a file to a form's content. The <INPUT> [W3C 17.4] is typically structured within a <FIELDSET> [W3C 17.10] containing text and an associated <BUTTON> [W3C 17.5] which when selected invokes a file browser to select a file name. The file name can also be entered directly in the text field. See RFC1867 for further details.

It is important that a user agent not send any file that the user has not explicitly authorized to be sent. Thus ISO-HTML interpreting agents are expected to confirm any default file names that might be suggested. ISO-HTML requires that fields specifying files not be hidden.

The other attribute values are as follows:

13.18.3   TYPE=hidden

An <INPUT> [W3C 17.4] element with TYPE=hidden declares that a field should not be rendered--it is hidden from the user. The user does not interact with the field; instead, the VALUE attribute specifies the value of the field. The NAME and VALUE attributes are required, and are returned to the server when the form is submitted.

This input element may be used to provide state information in a form.

The other attribute values are as follows:

13.18.4   TYPE=password

An <INPUT> [W3C 17.4] element with TYPE=password specifies a single line text field into which users may type a password. As the user types, the characters are usually echoed as `*' to hide the password from prying eyes.

Application designers should note that this is only a light security protection. Although the password is masked by the browser from casual observers, it is transmitted back to the server in clear text, and can be read by anyone with low-level access to the network.

The other attribute values are as follows:

13.18.5   TYPE=radio

An <INPUT> [W3C 17.4] element with TYPE=radio specifies a boolean choice. A set of <INPUT> [W3C 17.4] elements in a <FORM> [W3C 17.3] element with the same NAME attribute value represents a 1-of-many choice.

The other attribute values are as follows:

ISO-HTML requires that at all times one and only one of the radio buttons in a set be checked. Initially, if none of the <INPUT> [W3C 17.4] elements in a set of radio buttons specifies CHECKED, then the user agent shall mark the first radio button of the set as checked.

13.18.6   TYPE=reset

An <INPUT> [W3C 17.4] element with TYPE=reset specifies an input option, usually represented by a button, that instructs a user agent to reset the form's fields to their initial states.

This behaviour is also offered by the <BUTTON> [W3C 17.5] element which should be preferred.

The other attribute values are as follows:

13.18.7   TYPE=submit

An <INPUT> [W3C 17.4] element with TYPE=submit represents an input option, typically a button, that instructs a user agent to submit the form.

This behaviour is also offered by the <BUTTON> [W3C 17.5] element which should be preferred.

The other attribute values are as follows:

13.18.8   TYPE=text

An <INPUT> [W3C 17.4] element with TYPE=text specifies a single line text field into which users may type a string.

The other attribute values are as follows:

13.19   The LABEL element type--Form field label

The International Standard requires that the <LABEL> [W3C 17.9.1] element refer to a form field in the content of the <FORM> [W3C 17.3] element which contains the <LABEL> [W3C 17.9.1].

ISO-HTML restricts the attributes of the <LINK> [W3C 12.3] element to:

  • Common attributes CLASS, ID and TITLE.
  • Internationalization attributes DIR and LANG.
  • CHARSET
  • HREF

    See the HREF attribute of the <A> [W3C 12.2] element.

  • HREFLANG, MEDIA
  • REL

    The REL attribute defines the relationship of the target anchor to the source anchor.

  • REV

    The REV attribute defines the relationship of the source anchor to the target anchor. The same generally recognized values are available for the REV attribute as for the REL attribute, but the semantics are reversed for a given link. For example

    • REV=contents

      The current document serves as a table of contents for the document refered to by the link.

    The corresponding behaviour of the user agent is not specified by the International Standard.
  • TYPE

13.20.1   Example

In this example the current document is "Chapter2.html", and the links describe the relationships with the preceding and following chapters:

<HEAD>
 <LINK REL="Index"     HREF="../index.html">
 <LINK REL="Next"      HREF="Chapter3.html">
 <LINK REV="Previous"  HREF="Chapter3.html">
 <LINK REV="Next"      HREF="Chapter1.html">
</HEAD>

If the HREF is unchanged, changing REL to REV or vice versa requires reversing the semantics of the REL/REV attribute.

13.21   The MAP element type--Client-side image map

The International Standard requires that the NAME attribute be provided. Its value is case sensitive, and the attribute value specification shall be processed as if the declared value were NAME.

Entity references and character references are replaced, entity ends and record starts are removed, record end and separator characters are replaced by a space. Any sequence of space characters is replaced by a single space and leading and trailing spaces are deleted, [8879 7.9.3 and 10.1.7].

13.22   The OBJECT element type--Simple agent

The attributes of the <OBJECT> [W3C 13.3] element are restricted to:

13.23   The Q element type--Quote

The contents of the <Q> [W3C 9.2.2] element shall not be surrounded with quotation marks. These may be added by the user agent through the use of a style sheet.

13.23.1   Example

A <Q LANG=de>quotation in German</Q> and a <Q
LANG=fr>quotation in French</Q>.

might be rendered as:

A ,,quotation in German'' and a << quotation in French >>.

13.24   The STYLE element type--Style specification

The <STYLE> [W3C 14.2.3] element contains style sheet information which shall be passed to the user agent's style manager. Any style sheet language may be used, and none is defined by the International Standard.

It is a user agent error to render the style sheet information as if it were part of a document's text.

We recommend that authors:

  1. Offer a range of styles for their documents to take into account the different types of user agent on which the document may be rendered, and the special needs of the readers, eg. larger fonts for the visually impaired.
  2. Do not use style as an intrinsic part of the content. For example: The correct answer is shown in green, the others are in red, would be useless with a user agent which does not render in colour.
  3. Specify the default style sheet language using the <META> [W3C 7.4.4] element.

13.25   The TABLE element type--Tables

The attributes of the <TABLE> [W3C 11.2.1] element are restricted to:

  • Common attributes CLASS, ID and TITLE.
  • Internationalization attributes DIR and LANG.
  • SUMMARY

    The SUMMARY attribute is required by the International Standard and shall be provided.

13.26   The TBODY element type--Table body

In ISO-HTML the start tag is required for the <TBODY> [W3C 11.2.3] element.

13.27   The TD element type--Table data cell

The attributes of the <TD> [W3C 11.2.6] element are restricted to:

13.28   The TH element type--Table header cell

The attributes of the <TH> [W3C 11.2.6] element are restricted to:

13.29   The TR element type--Table row

It is recommended that authors pay attention to the following points in order to avoid inconsistent rendering of their tables.

The <TR> [W3C 11.2.5] element should require exactly the same number of columns as the number of columns specified by the <COL> [W3C 11.2.4] or <COLGROUP> [W3C 11.2.4] elements in the containing <TABLE> [W3C 11.2.1] element, if present, taking into account the effect of the ROWSPAN and COLSPAN attributes of the <TD> [W3C 11.2.6] and <TH> [W3C 11.2.6] elements, the SPAN attributes of the <COL> [W3C 11.2.4] and <COLGROUP> [W3C 11.2.4] elements and the padding of incomplete rows by a user agent.

The attributes of the <TR> [W3C 11.2.5] element are restricted to:

14   Document preparation

This chapter describes an SGML-based process for preparing ISO-HTML conforming documents. The process is not a part of the International Standard, but is intended to make it easier to conform to the International Standard. The principal advantages are:

  1. Documents are validated by an SGML parser which verifies conformance to the DTD.
  2. The parser is also able to validate the correct progressive nesting of sections required by ISO-HTML.
  3. The author may split a page into convenient pieces and recombine them during the preparation process. This is particularly convenient for authors working with a set of pages each containing the same piece of "boiler-plate" information.
  4. Often a page will contain pieces of information which may change from time to time. This form of ephemeral data may be placed in a set of entities grouped together to facilitate maintenance and updating.

    NOTE: This is the technique used to specify the many links between the User's Guide and the W3C Recommendation for HTML 4.0.

  5. An SGML parser is able to incorporate computed text automatically.

More complex SGML-based processes are possible. For example the source document may be structured using a richer DTD or a richly structured document database. This has advantages when a document represents a major investment and is used to generate a range of output. The processing of such documents is beyond the scope of this User's Guide.

NOTE: The limited process we describe offers the most that can be achieved with just an SGML parser. If you are interested in more complex processing, consider LT NSL developed by the language technology group of the University of Edinburgh.

14.1   Pre-HTML

The process uses the document type declaration internal subset [8879 11.1] which is a feature of the DOCTYPE declaration not supported by the International Standard or the W3C Recommendation for HTML 4.0. In order to clearly identify the documents-in-preparation as being different from ISO-HTML or HTML 4.0, we give them a different document element <Pre-HTML>. This document element is only valid for documents-in-preparation.

The internal subset appears between square brackets in the DOCTYPE declaration as shown in the following figure.

Use of the DOCTYPE internal subset

Figure 3: Use of the DOCTYPE internal subset.

Before describing the contents of the figure, a short discussion of entities in SGML may be useful. An SGML entity [8879 B.6] may be thought of as a chunk of document -- a programmer might prefer to use the term macro. There are two types of entity in SGML:

  1. Parameter entities. These entities are defined and called (the SGML world uses the term referenced) only in the document type declaration, including the subset. They are used to provide convenient references to chunks of DTD and to other useful constructs that may be placed in a DTD.
  2. General entities. These entities are defined in a document type declaration, including the subset, but are called/referenced in document instances. A well known example is &agrave; used to provide a lower case a with a grave accent which appears at the end of the word voilà.

NOTE: The two types of entity serve the same basic purpose. The reason for having two types is to have two name spaces. The document author need not be concerned about overloading an entity name already chosen by the support people who define the document type declaration.

The "legal" ENTITY declaration [8879 10.5] in the subset has a % character before the entity name. This indicates that "legal" is a parameter entity for use in the subset. The notation "%legal;" [8879 9.4.4] is a reference to the parameter entity and in the example shown, an SGML parser will resolve the parameter entity to a declaration of the general entity &fineprint; which may be used in the document. The resolution process is indirect: an OASIS catalogue fragment, usually in a file "catalog", points to the file which contains the general entity definition. The lookup is done using the Formal Public Identifier [8879 10.2], in the example given: "-//Whiz-Bang//TEXT Legal blurb//EN". The result is to make the general entity &fineprint; available for use in the document.

At first sight this process may seem complex, but in a large production environment it has many advantages. The document author can work without having to be concerned about which file contains the latest fine print. The system administrator manages the OASIS catalogue and the legal department can work independently on their fine print. We have shown an external file "fineprint.txt" which contains only one general entity declaration. In practice the external file may contain hundreds of entity declarations, for example the offical list of all the publicly avalaible URLs and URI's offered by a corporation.

The ISO-HTML page produced by the process does not contain an internal subset or any indication of the existence of the parameter entity %legal; or the general entity &fineprint;

NOTE: The catalogue fragment may be in the same "catalog" file as the OASIS catalogue fragment described in "SGML engineering" and the sample SGML catalog fragment provided by the W3C Recommendation for HTML 4.0.

14.2   Preparation process

The preparation process uses the sgmlnorm feature of the SP parser to produce a version of the document-in-preparation in which all the entities have been resolved and all the omitted element start and end tags inserted. This intermediate document contains the <DIV1> ... <DIV6> element tags which are not permitted in ISO-HTML. They are removed by a "scrubber" which also replaces <Pre-HTML> start and end tags by <HTML> [W3C 7.3] start and end tags. In addition, the scrubber places the ISO-HTML document type declaration at the head of the file.

The incantation used by the editors when they prepared the International Standard and this User's Guide was of the form:

sgmlnorm -e -g -w all -E 5 UG.Pre-HTML | scrub8 > UG.html

14.3   An example -- Document time stamps

It is common to see a time stamp at the foot of an HTML page such as that of the Free Software Foundation: Updated: 1 Jan 1998 rms. It is possible to use the <Pre-HTML> techniques to set this time stamp automatically. We will assume that you are using a Makefile to build your pages.

  1. In the Makefile, just before you parse a page in which you wish to place a time stamp, insert the following shell commands:
    	echo "<!ENTITY lastchange '" > lastchange
    	date >> lastchange
    	echo "' >" >> lastchange

    NOTE: The three lines are indented with a tab, not spaces.

  2. In the document type declaration subset, between the square brackets, place the following declaration and reference:
    <!ENTITY % lastchange PUBLIC "-//ISO-HTML User's Guide//TEXT Last change time stamp//EN" >
    %lastchange;
  3. In your catalogue, add the entry:
            -- Last change time stamp --
    PUBLIC  "-//ISO-HTML User's Guide//TEXT Last change time stamp//EN" lastchange
  4. At the foot of your document, or wherever you want the time stamp to appear, add the following markup:
    <hr>
    <p>Last change was on &lastchange;
    <hr>
  5. See the foot of this document for an example of the result.

You can adapt the formal public identifiers, entity names and time stamp text to your own needs.

NOTE: The parameter entity, the general entity and the temporary file which contains the time stamp all have the same name but since they are in different name spaces there is no ambiguity.

15   SGML engineering

This chapter describes the SGML techniques that are used in the formal specification of ISO-HTML and Pre-HTML. Validating systems are required to support these techniques, but conforming systems are not.

The engineering is based on a three step process:

  1. The ISO-HTML or Pre-HTML document instance always contains a DOCTYPE declaration [8879 11.1], which identifies the set of features to be used. The formal public identifiers in the DOCTYPE declarations are used as keys in an OASIS catalogue which identifies the file containing the DTD shared by ISO-HTML and Pre-HTML. In the case of ISO-HTML, the DTD is complete; there is no internal subset, and conforming systems are not required to support such a construction. In the case of Pre-HTML, a further parameter entity declaration in the internal subset completes the DTD.
  2. The DTD contains a default value IGNORE for the %Preparation; parameter entity which manages the customization of the DTD. This default value is overridden by Pre-HTML documents which specify the value INCLUDE for the %Preparation; parameter entity.
  3. The SGML parser parses the formal definition of ISO-HTML or Pre-HTML, taking into account the value of the %Preparation; parameter entity.

15.1   Step 1--DTD identification

The DOCTYPE declarations [8879 11.1] for ISO-HTML are:

<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HyperText Markup Language//EN">
<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HTML//EN">

and the declaration for Pre-HTML is

<!DOCTYPE Pre-HTML PUBLIC 
   "-//ISO-HTML User's Guide//DTD Preparation of ISO-HTML//EN" 
[<!ENTITY % Preparation "INCLUDE"> 

general entity declarations...

]> 

The formal public identifiers (FPI) [8879 10.2] in the DOCTYPE declarations for ISO-HTML and Pre-HTML are used as keys to identify the corresponding entries in a catalogue which is usually placed in a file named catalog. The catalogue associates the same file name with the three FPIs:

PUBLIC  "ISO/IEC 15445:1999//DTD HyperText Markup Language//EN"   15445.dtd
PUBLIC  "ISO/IEC 15445:1999//DTD HTML//EN">                       15445.dtd
PUBLIC  "-//ISO-HTML User's Guide//DTD ISO-HTML Preparation//EN"  15445.dtd

Parsers such as SP which support use of a catalogue use the FPIs to find the name of the file containing the DTD.

NOTE: The file name is system dependent. A different name may be needed on restricted operating systems.

15.2   Step 2--Declaration of parameter entities

The Pre-HTML internal subset contains a declaration for the parameter entity %Preparation; for which the default value is defined in the ISO-HTML DTD. The value in the Pre-HTML internal subset takes precedence over the default value provided in the ISO-HTML DTD (see [8879 9.4.4.1]).

If %Preparation; has the value INCLUDE, the mechanisms which require correct nesting of the elements <H1> [W3C 7.5.5] through <H6> [W3C 7.5.5] are included. If the value is IGNORE, the mechanisms which require correct nesting of headings are omitted.

The ISO-HTML DTD defines the inverse parameter entity %NoPreparation;. The result is that the DTD specifies the following parameter entities:

  • When ISO-HTML uses the DTD, %Preparation; = IGNORE, %NoPreparation; = INCLUDE
  • When Pre-HTML uses the DTD, %Preparation; = INCLUDE, %NoPreparation; = IGNORE

15.3   Step 3--Parsing the formal definition

The SGML parser parses the files making up the formal definition of ISO-HTML, taking into account the values of the %Preparation; and %NoPreparation; parameter entities specified in step 2. The parameter entities control the inclusion or exclusion of marked sections, see [8879 10.4], thus changing the formal definitions.

A typical effect of the parameter entity is in the modification of the element <BODY> [W3C 7.5.1].

<![ %Preparation;   
  [ 
      <!ELEMENT BODY  - O  ((%block;)*, (H1,DIV1)* ) 
                              +(DEL|INS) >
  ]]>
<![ %NoPreparation; 
  [
      <!ELEMENT BODY  - O  (%block;|H1|H2|H3|H4|H5|H6)+ 
                              +(DEL|INS) >
  ]]>

When the author's DOCTYPE declaration calls for ISO-HTML, this is the same as:

<!ELEMENT BODY  - O  (%block;|H1|H2|H3|H4|H5|H6)+ 
                        +(DEL|INS) >

but when the author's DOCTYPE declaration calls for Pre-HTML, this is the same as:

<!ELEMENT BODY  - O  ((%block;)*, (H1,DIV1)* ) 
                        +(DEL|INS) >

16   The SGML declaration

The SGML declaration for ISO-HTML is provided by this file:


<!SGML  "ISO 8879:1986 (WWW)"
--   ISO/IEC 15445 Hypertext Markup Language (ISO-HTML)
     SGML Declaration

     Copyright (C) 1999 IETF, W3C (MIT, Inria, Keio), ISO/IEC.

     Permission to copy in any form is granted for use with
     validating and conforming systems and applications as defined 
     in ISO/IEC 15445, provided this copyright notice is included
     with all copies.
--
CHARSET
         -- First 17 planes of ISO 10646. --
         BASESET  "ISO Registration Number 177//CHARSET
                   ISO/IEC 10646-1:1993 UCS-4 with
                   implementation level 3//ESC 2/5 2/15 4/6"
         DESCSET 0       9       UNUSED
                 9       2       9
                 11      2       UNUSED
                 13      1       13
                 14      18      UNUSED
                 32      95      32
                 127     1       UNUSED
                 128     32      UNUSED
                 160     55136   160
                 55296   2048    UNUSED
                 57344   1056768 57344

-- 
        ISO/IEC 10646 does not define all positions. For example, it reserves
        positions with hexadecimal values 0000D800 - 0000DFFF, used in the
        UTF-16 encoding of UCS-4, as well as the last two code values in each
        plane of UCS-4, ie. all values of the hexadecimal form xxxxFFFE and
        xxxxFFFF. Undefined code values and the corresponding numeric
        character references should not be included in an HTML document, and
        they shall be ignored if encountered when processing an HTML document.
--
CAPACITY        SGMLREF
                TOTALCAP        150000
                GRPCAP          150000
                ENTCAP          150000

SCOPE    DOCUMENT
SYNTAX
         SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
                  17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127
         BASESET "ISO 646IRV:1991//CHARSET
                  International Reference Version
                  (IRV)//ESC 2/8 4/2"
         DESCSET  0 128 0

         FUNCTION
                  RE          13
                  RS          10
                  SPACE       32
                  TAB SEPCHAR  9 -- Deprecated --

         NAMING   LCNMSTRT ""
                  UCNMSTRT ""
                  LCNMCHAR ".-_:"
                  UCNMCHAR ".-_:"
                  NAMECASE GENERAL YES
                           ENTITY   NO
         DELIM    GENERAL  SGMLREF
                  HCRO     "&#38;#x" -- 38 is Ampersand --
                  SHORTREF SGMLREF

         NAMES    SGMLREF
         QUANTITY SGMLREF
                  ATTCNT      60
                  ATTSPLEN 65536 -- These are the largest values --
                  LITLEN   65536 -- permitted in the declaration. --
                  NAMELEN  65536 -- Avoid fixed limits in actual --
                  PILEN    65536 -- implementations of user agents. --
                  TAGLVL     100
                  TAGLEN   65536
                  GRPGTCNT   150
                  GRPCNT      64
FEATURES
  MINIMIZE
    DATATAG   NO
    OMITTAG  YES
    RANK      NO
    SHORTTAG YES
  LINK
    SIMPLE    NO
    IMPLICIT  NO
    EXPLICIT  NO
  OTHER
    CONCUR    NO
    SUBDOC    NO
    FORMAL   YES
    APPINFO NONE
>

17   The entities, element types and attributes

The document type definition (DTD) for ISO-HTML is provided by this file.

Part 1 of the DTD for ISO-HTML contains parameter entity definitions used in Parts 2 and 3, and the short reference mapping [8879 11.5] which converts the deprecated horizontal tab into a space. Part 2 contains the elements and their content models. Part 3 provides the attribute definitions and additional normative refinements that ISO-HTML places on the elements.


<!-- 15445.dtd
     ISO/IEC 15445:1999  Hypertext Markup Language (HTML) 
     Document Type Definition.

     Copyright (C) 1999, IETF, W3C (MIT, Inria, Keio), ISO/IEC.

     Permission to copy in any form is granted for use with
     validating and conforming systems and applications as defined
     in ISO/IEC 15445:1999, provided this copyright notice is included
     with all copies.  

     The DTD is typically invoked by one of the following declarations:

     <!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HyperText Markup Language//EN">
     <!DOCTYPE HTML PUBLIC "ISO/IEC 15445:1999//DTD HTML//EN">

     In order to use the HTML document type definition as a base architecture for
     other SGML applications, the following architectural support declaration 
     should be used:

     <?IS10744 arch name="html"
     public-id="ISO/IEC 15445:1999//DTD HyperText Markup Language//EN"
     dtd-system-id="[insert URL to official version here]"
     renamer-att="HTMLnames"
     doc-elem-form="HTML"
     >
-->
                <!-- Part 1. Entity set. -->

<!-- The Preparation parameter entity shall be set to IGNORE for HTML, 
     and to INCLUDE for a document to be submitted to the preparation
     process. -->
<!ENTITY % Preparation "IGNORE" >

<!-- This definition generates the inverse entity 
     NoPreparation which is internal to the DTD. -->
<![ %Preparation; [
<!ENTITY % NoPreparation "IGNORE"    -- Inverse of Preparation = INCLUDE -->
                   ]]>
<!ENTITY % NoPreparation "INCLUDE"   -- Inverse of Preparation = IGNORE -->
<!-- End of definition -->


        <!-- Tokens defined by other standards -->

<!ENTITY % Content-Type "CDATA" -- MIME content type, RFC1521 -->
<!ENTITY % HTTP-Method "(get | post)" -- as per HTTP/1.1 RFC2068  -->
<!ENTITY % URI "CDATA" -- Universal Resource Identifier, RFC1630 -->

        <!-- Element tokens -->

<!ENTITY % special "A | BDO | BR | IMG | OBJECT | 
                    MAP | Q | SPAN" >

<!-- Logical character styles -->
<!ENTITY % logical.styles "ABBR | ACRONYM | CITE | CODE | DFN | EM |
                           KBD | SAMP | STRONG | VAR" >

<!-- Physical character styles -->
<!ENTITY % physical.styles "B | I | SUB | SUP | TT" >

        <!-- Model groups -->

<!-- Block-like elements eg. paragraphs and lists -->
<!ENTITY % block "BLOCKQUOTE | DIV | DL | FIELDSET | FORM |
                  HR | OL | P | PRE | TABLE | UL" >

<!-- Form fields - input elements that may appear only within forms -->
<!ENTITY % form.fields "BUTTON | INPUT | LABEL | SELECT | TEXTAREA" >

<!-- Character level elements and text strings -->
<!ENTITY % text "#PCDATA | %physical.styles; | %logical.styles; | %special;" >

<!-- Elements that may appear in a form, section or table -->
<!ENTITY % form.content    "(%block; | %text; | %form.fields; | ADDRESS)+" >
<!ENTITY % section.content "(%block; | %text; | ADDRESS)+" >
<!ENTITY % table.content   "(%block; | %text;)*" >

        <!-- Generic attributes -->

<!ENTITY % core
   "CLASS      CDATA      #IMPLIED -- Comma separated list of class values --

    --The name space of the ID attribute is shared with the name space
      of the NAME attributes of <A> elements.  ID and NAME values shall be
      distinct.  It is an error for an ID or NAME value to be
      duplicated within a document.  It is recommended that
      authors of documents intended for further processing specify the ID
      attribute in preference to the NAME attribute. --
    ID         ID         #IMPLIED -- Document-wide unique id --
    TITLE      CDATA      #IMPLIED -- Advisory title or amplification --" >

        <!-- Internationalization attributes -->

<!ENTITY % i18n
   "DIR        (ltr|rtl)  #IMPLIED -- Direction for weak/neutral text --
    LANG       NAME       #IMPLIED -- RFC1766 language value --" >

        <!-- Presentation styles -->

<!ENTITY % shape     "(circle | default | poly | rect)" >
<!ENTITY % InputType "(checkbox | file | hidden | password | 
                       radio | reset | submit | text)" >

<!-- SHORTREF mapping for the tab character -->
<!-- Use of the tab character is deprecated.  However, to facilitate
     the preparation of conforming documents by authors who use it,
     the tab character is tolerated and is mapped into a single space. -->
<!ENTITY   nontab  " " >
<!SHORTREF tabmap  "	" nontab >
<!USEMAP   tabmap  HTML >

        <!-- Specify character entity sets defined by W3C -->

<!ENTITY % HTMLlat1    PUBLIC "-//W3C//ENTITIES Full Latin 1//EN//HTML" >
<!ENTITY % HTMLsymbol  PUBLIC "-//W3C//ENTITIES Symbolic//EN//HTML" >
<!ENTITY % HTMLspecial PUBLIC "-//W3C//ENTITIES Special//EN//HTML" >
<!-- Reference character entities. -->
%HTMLlat1;%HTMLsymbol;%HTMLspecial;

                <!-- Part 2. Document structure -->

<!-- Further normative requirements on the elements defined in this part
     of the DTD are provided in Part 3.-->
<!--      ELEMENTS    MIN  CONTENT  (EXCEPTIONS) -->
<!ELEMENT HTML        - -  (HEAD, BODY) >
<!ELEMENT HEAD        - O  (TITLE) +(LINK | META | STYLE) >
<!ELEMENT TITLE       - -  (#PCDATA) -(LINK | META | STYLE) >
<!ELEMENT LINK        - O  EMPTY >
<!ELEMENT META        - O  EMPTY >
<!ELEMENT STYLE       - -  CDATA >

<!-- The following marked section is informative only. -->
<![ %Preparation; [
<!ELEMENT Pre-HTML    - -  (HEAD, BODY) >
<!ELEMENT BODY        - O  ((%block;)*,(H1,DIV1)* ) +(DEL|INS) >
<!ELEMENT H1          - -  (%text;)+ >
<!ELEMENT DIV1        O O  ((%block;)*, (H2,DIV2)* ) >
<!ELEMENT H2          - -  (%text;)+ >
<!ELEMENT DIV2        O O  ((%block;)*, (H3,DIV3)* ) >
<!ELEMENT H3          - -  (%text;)+ >
<!ELEMENT DIV3        O O  ((%block;)*, (H4,DIV4)* ) >
<!ELEMENT H4          - -  (%text;)+ >
<!ELEMENT DIV4        O O  ((%block;)*, (H5,DIV5)* ) >
<!ELEMENT H5          - -  (%text;)+ >
<!ELEMENT DIV5        O O  ((%block;)*, (H6,DIV6)* ) >
<!ELEMENT H6          - -  (%text;)+ >
<!ELEMENT DIV6        O O  ((%block;)*) >
                 ]]>
<!-- The following marked section is normative. -->
<![ %NoPreparation; [
<!ELEMENT BODY        - O  (%block;|H1|H2|H3|H4|H5|H6)+ +(DEL|INS) >
<!ELEMENT (H1|H2|H3|H4|H5|H6) - - (%text;)+ >
                   ]]>
<!ELEMENT DIV         - -  %section.content; >
<!ELEMENT ADDRESS     - -  (%text;)+ -(IMG|OBJECT|MAP) >
<!ELEMENT P           - O  (%text;)+ >
<!ELEMENT (OL|UL)     - -  (LI)+ >
<!ELEMENT LI          - O  (%text; | %block;)+ >
<!ELEMENT DL          - -  (DT|DD)+ >
<!ELEMENT DT          - O  (%text;)+ >
<!ELEMENT DD          - O  %section.content; -(ADDRESS) >
<!ELEMENT PRE         - -  (%text;)+ -(IMG|MAP|OBJECT|SUB|SUP) >
<!ELEMENT BLOCKQUOTE  - -  (%block;)+ >
<!ELEMENT Q           - -  (%text;)+ >
<!ELEMENT FORM        - -  %form.content; -(FORM) >
<!-- #PCDATA required to absorb leading white space. -->
<!ELEMENT FIELDSET    - -  (#PCDATA,LEGEND,%form.content;) -(FIELDSET) >
<!ELEMENT INPUT       - O  EMPTY >
<!ELEMENT BUTTON      - -  (%text;)+ -(A|FIELDSET|FORM|%form.fields;) >
<!ELEMENT LABEL       - -  (%text;|%form.fields;)+ -(LABEL) >
<!ELEMENT LEGEND      - -  (#PCDATA) >
<!ELEMENT SELECT      - -  (OPTGROUP|OPTION)+ >
<!ELEMENT OPTGROUP    - -  (OPTION)+ >
<!ELEMENT OPTION      - O  (#PCDATA) >
<!ELEMENT TEXTAREA    - -  (#PCDATA) >
<!ELEMENT HR          - O  EMPTY >
<!ELEMENT TABLE       - -  (CAPTION?, (COL*|COLGROUP*), 
                              THEAD?, TFOOT?, TBODY+) >
<!ELEMENT CAPTION     - -  (%text;)+ >
<!ELEMENT (THEAD,TFOOT,TBODY) - O  (TR)+ >
<!ELEMENT COL         - O  EMPTY >
<!ELEMENT COLGROUP    - O  (COL)* >
<!ELEMENT TR          - O  (TH|TD)+ >  
<!ELEMENT (TH|TD)     - O  %table.content; >
<!ELEMENT (%logical.styles;|%physical.styles;)
                      - -  (%text;)+ >
<!ELEMENT A           - -  (%text;)* -(A) >
<!ELEMENT IMG         - O  EMPTY >
<!ELEMENT OBJECT      - -  (PARAM | %section.content;)* >
<!ELEMENT PARAM       - O  EMPTY >
<!ELEMENT BR          - O  EMPTY >
<!ELEMENT MAP         - -  (AREA)+ > <!-- (*) -->
<!ELEMENT AREA        - O  EMPTY >
<!ELEMENT SPAN        - -  (%text;)+ >
<!ELEMENT (DEL|INS)   - -  (%text;)+ >
<!ELEMENT BDO         - -  (%text;)+ >

                <!-- Part 3. Attribute definition lists -->

<!--      ELEMENTS 
    NAME       VALUE       DEFAULT --> 
<!ATTLIST A
  --Case shall not be taken into account when determining a match
    between an ID value and a NAME value, between an ID value and 
    an HREF value or between a NAME value and an HREF value.  
    Comparisons should be made with the values folded to upper case.

    The NAME attribute value specification shall be processed as if the
    declared value were NAME.

    It is recommended that authors of HTML documents give
    preference to the ID attribute over the NAME attribute.
    (*)
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character --
    CHARSET    CDATA      #IMPLIED -- Character encoding as per RFC2045 --
    HREF       %URI;      #IMPLIED -- Source anchor is URI of target --
    HREFLANG   NAME       #IMPLIED -- Language code of resource --
    NAME       CDATA      #IMPLIED -- Target anchor --
    REL        CDATA      #IMPLIED -- Forward link types --
    REV        CDATA      #IMPLIED -- Reverse link types --
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order --
    TYPE       CDATA      #IMPLIED -- Advisory content type -->

<!ATTLIST ADDRESS
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST AREA     
  --One of HREF or NOHREF shall be specified.  

    COORDS shall not be specified if SHAPE has the value `default'.

    Authors are very strongly recommended to provide meaningful ALT 
    attributes to support interoperability with speech-based or text-only 
    agents.  The language and direction of the text provided by the ALT 
    attribute are defined by the containing elements.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character --
    ALT        CDATA     #REQUIRED -- Description for text-only UAs --
    COORDS     CDATA      #IMPLIED -- Comma separated list of values --
    HREF       %URI;      #IMPLIED -- This region acts as hypertext link --
    NOHREF     (nohref)   #IMPLIED -- This region has no action --
    SHAPE      %shape;        rect -- Control interpretation of coords --
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order -->

<!ATTLIST BDO
    %core;                         -- Element CLASS, ID and TITLE --
    DIR        (ltr|rtl) #REQUIRED -- Direction of writing --
    LANG       NAME       #IMPLIED -- RFC1766 language value -->

<!ATTLIST BLOCKQUOTE
  --The contents of the BLOCKQUOTE element shall not be surrounded with
    quotation marks.  These may be added by the user agent through the use
    of a style sheet.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    CITE       %URI;      #IMPLIED -- URI for source document or message -->

<!ATTLIST BODY
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST BR
    %core;                         -- Element CLASS, ID and TITLE -->

<!ATTLIST BUTTON
  --The BUTTON element shall not contain the A, BUTTON, FIELDSET, FORM,
    INPUT, LABEL, SELECT or TEXTAREA elements.

    If the BUTTON element contains an IMG element, the IMG shall not have
    an ISMAP or USEMAP attribute.
    
    The TYPE attribute shall be provided, and when the TYPE is
    specified as `submit', the NAME and VALUE attributes shall be provided.

    The NAME attribute is required if the TYPE attribute has the value 
    `submit'.

    If the TYPE attribute has value `reset', and the BUTTON is contained 
    in a FIELDSET, the reset action is limited to the contents of the 
    FIELDSET.

    The VALUE attribute is required if the TYPE attribute has the value
    `submit' and specifies the value to be returned if the button
    is selected.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character --
    DISABLED   (disabled) #IMPLIED -- Control unavailable in this context --
    NAME       CDATA      #IMPLIED -- Required for all except submit, reset -- 
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order --
    TYPE  (submit|reset)    submit -- For use as form submit/reset button --
    VALUE      CDATA      #IMPLIED -- Passed to server when submitted -->

<!ATTLIST CAPTION
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST COL
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    SPAN       NUMBER            1 -- Number of cols spanned -->

<!ATTLIST COLGROUP
  --The SPAN attribute should only be used if the COLGROUP element
    has no content.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    SPAN       NUMBER            1 -- Number of cols spanned by group -->

<!ATTLIST DD
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST DEL
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    CITE       %URI;      #IMPLIED -- Information on reason for change --
    DATETIME   CDATA      #IMPLIED -- When changed, subset of ISO/IEC 8601 -->

<!ATTLIST DIV
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST DL
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST DT
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST FIELDSET
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST FORM
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCEPT     CDATA      #IMPLIED -- List of MIME types for file upload --
    ACCEPT-CHARSET CDATA  #IMPLIED -- List of supported char sets --
    ACTION     %URI;     #REQUIRED -- Server-side form handler --
    ENCTYPE    %Content-Type; "application/x-www-form-urlencoded"
    METHOD     %HTTP-Method;   get -- See HTTP specification -->

<!ATTLIST HEAD
    %i18n;                         -- Internationalization DIR and LANG --
    PROFILE    %URI;      #IMPLIED -- Named dictionary of meta info -->

<!ATTLIST HR
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST HTML 
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST (H1 | H2 | H3 | H4 | H5 | H6)
  --The H1 element shall not be followed by an H3, H4, H5 or H6 element
    without an intervening H2 element.  

    The H2 element shall not be followed by an H4, H5 or H6 element 
    without an intervening H3 element.

    The H3 element shall not be followed by an H5 or H6 element without 
    an intervening H4 element.

    The H4 element shall not be followed by an H6 element without an 
    intervening H5 element.

    An H2 element shall be preceded by an H1 element.

    An H3 element shall be preceded by an H2 element.

    An H4 element shall be preceded by an H3 element.

    An H5 element shall be preceded by an H4 element.

    An H6 element shall be preceded by an H5 element.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST IMG
  --If the IMG element is contained in a BUTTON element, the IMG shall not 
    have an ISMAP or USEMAP attribute.

    If the ISMAP attribute is present in an IMG element, that IMG element 
    shall be contained in an A element with an HREF attribute present.

    At most one of the attributes ISMAP and USEMAP may be provided.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ALT        CDATA     #REQUIRED -- Text for text-only user agent --
    ISMAP      (ismap)    #IMPLIED -- Use server image map --
    LONGDESC   %URI;      #IMPLIED -- Extended description for text UA --
    SRC        %URI;     #REQUIRED -- URI of image to embed --
    USEMAP     %URI;      #IMPLIED -- Use client-side image map -->

<!ATTLIST INPUT
  --If the attribute TYPE has the value `checkbox', values shall be 
    provided for the the NAME and VALUE attributes.
  
    If the attribute TYPE has the value `file', a value shall be 
    provided for the NAME attribute; HTML interpreting agents should 
    request user confirmation of any default file names that might 
    be suggested, and fields specifying files shall not be hidden.

    If the attribute TYPE has the value `hidden', values shall be 
    provided for the NAME and VALUE attributes.
  
    If the attribute TYPE has the value `password', a value shall be 
    provided for the NAME attribute.

    If the attribute TYPE has the value `radio', values shall be 
    provided for the the NAME and VALUE attributes. At all times, 
    one and only one of the radio buttons shall be checked.  
    Initially, if none of the INPUT elements in a set of radio 
    buttons specifies CHECKED, then the user agent shall mark the 
    first radio button of the set as checked.

    If the attribute TYPE has the value `submit', and a value is 
    specified for the VALUE attribute, then a value shall be provided 
    for the NAME attribute.

    If the attribute TYPE has the value `text', values shall be 
    provided for the NAME and VALUE attributes.
  
    The MAXLENGTH and TABINDEX values shall be considered as integers 
    with any leading zeroes ignored.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCEPT     CDATA      #IMPLIED -- List of MIME types for file upload --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character --
    CHECKED    (checked)  #IMPLIED -- For radio buttons, checkboxes --
    DISABLED   (disabled) #IMPLIED -- Control unavailable in this context --
    MAXLENGTH  NUMBER     #IMPLIED -- Max chars for text fields --
    NAME       CDATA      #IMPLIED -- Required for all except submit, reset --
    READONLY   (READONLY) #IMPLIED -- For text --
    SIZE       CDATA      #IMPLIED -- Specific to each type of field --
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order --
    TYPE       %InputType;    text -- Widget --
    VALUE      CDATA      #IMPLIED -- Required for radio, checkboxes -->

<!ATTLIST INS
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    CITE       %URI;      #IMPLIED -- Information on reason for change --
    DATETIME   CDATA      #IMPLIED -- When changed, subset of ISO/IEC 8601 -->

<!ATTLIST LABEL
  --The LABEL element shall refer to a form field in the content of the 
    FORM element which contains the LABEL.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character --
    FOR        IDREF      #IMPLIED -- Points to associated field -->

<!ATTLIST LEGEND
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character -->

<!ATTLIST LI
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST LINK
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    CHARSET    CDATA      #IMPLIED -- Character encoding as per RFC2045 --
    HREF       %URI;      #IMPLIED -- URI for link resource --
    HREFLANG   NAME       #IMPLIED -- Language code of resource --
    MEDIA      CDATA      #IMPLIED -- Destination media of referenced doc --
    REL        CDATA      #IMPLIED -- Forward link types --
    REV        CDATA      #IMPLIED -- Reverse link types --
    TYPE       CDATA      #IMPLIED -- Advisory Internet content type -->

<!ATTLIST MAP
  --The value of the NAME attribute is case sensitive, and the attribute 
    value specification shall be processed as if the declared value were 
    NAME.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    NAME       CDATA     #REQUIRED -- Referenced by USEMAP in <IMG> -->

<!ATTLIST META     
    %i18n;                         -- Internationalization DIR and LANG --
    CONTENT    CDATA     #REQUIRED -- Associated information --
    HTTP-EQUIV NAME       #IMPLIED -- HTTP response header name --
    NAME       NAME       #IMPLIED -- Meta-information name --
    SCHEME     CDATA      #IMPLIED -- Nature of content -->

<!ATTLIST OBJECT   
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    CLASSID    %URI;      #IMPLIED -- Identifies implementation --
    CODEBASE   %URI;      #IMPLIED -- Needed by some systems --
    CODETYPE   CDATA      #IMPLIED -- Internet content type for code --
    DATA       %URI;      #IMPLIED -- Reference to objects data --
    DECLARE    (declare)  #IMPLIED -- Flag: declare but dont instantiate --
    NAME       CDATA      #IMPLIED -- Submit as part of form --
    STANDBY    CDATA      #IMPLIED -- Show this msg while loading --
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order --
    TYPE       CDATA      #IMPLIED -- Internet content type for data --
    USEMAP     %URI;      #IMPLIED -- Reference to image map -->

<!ATTLIST OL
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST OPTGROUP
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    DISABLED   (disabled) #IMPLIED -- Control unavailable in this context --
    LABEL      CDATA     #REQUIRED -- For use in hierarchical menus -->

<!ATTLIST OPTION
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    DISABLED   (disabled) #IMPLIED -- Control unavailable in this context --
    LABEL      CDATA      #IMPLIED -- For use in hierarchical menus --
    SELECTED   (selected) #IMPLIED -- Pre-selected option --
    VALUE      CDATA      #IMPLIED -- Defaults to content -->

<!ATTLIST P
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST PARAM
    ID         ID         #IMPLIED -- Document-wide unique id --
    NAME       CDATA     #REQUIRED -- Name of parameter --
    TYPE       CDATA      #IMPLIED -- Internet Media Type --
    VALUE      CDATA      #IMPLIED -- Value of parameter --
    VALUETYPE  (data|ref|object)
                              data -- Interpret value as -->

<!ATTLIST PRE
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST Q
  --The textual contents of the Q element shall not be surrounded with
    quotation marks.  These may be added by the user agent through the
    use of a style sheet.
  --
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    CITE       %URI;      #IMPLIED -- URI for source document or message -->

<!ATTLIST SELECT
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    DISABLED   (disabled) #IMPLIED -- Control unavailable in this context --
    MULTIPLE   (multiple) #IMPLIED -- Default is single selection --
    NAME       CDATA     #REQUIRED -- Field name --
    SIZE       NUMBER     #IMPLIED -- Rows visible --
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order -->

<!ATTLIST SPAN
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST STYLE
  --The STYLE element contains style sheet information which shall be
    passed to the user agent's style manager.  Any style sheet language
    may be used.  It is a user agent error to render the style sheet 
    information as if it were part of a document's text.
  --
    %i18n;                         -- Internationalization DIR and LANG --
    MEDIA      CDATA      #IMPLIED -- Designed for use with these media --
    TITLE      CDATA      #IMPLIED -- Advisory title --
    TYPE       CDATA     #REQUIRED -- Internet content type for style lang. -->

<!ATTLIST TABLE
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    SUMMARY    CDATA     #REQUIRED -- Purpose/structure for speech output -->

<!ATTLIST TBODY
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST TD
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ABBR       CDATA      #IMPLIED -- Abbreviation for header cell (*) --
    AXIS       CDATA      #IMPLIED -- Names groups of related headers --
    COLSPAN    NUMBER            1 -- Number of columns spanned by cell --
    HEADERS    IDREFS     #IMPLIED -- List of ID's for header cells --
    ROWSPAN    NUMBER            1 -- Number of rows spanned by cell --
    SCOPE      (col|colgroup|row|rowgroup)
                          #IMPLIED -- Scope covered by header cells -->

<!ATTLIST TEXTAREA
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ACCESSKEY  CDATA      #IMPLIED -- Accessibility key character --
    COLS       NUMBER    #REQUIRED -- Number required in av char widths --
    DISABLED   (disabled) #IMPLIED -- Control unavailable in this context --
    NAME       CDATA     #REQUIRED -- Name of form field --
    READONLY   (readonly) #IMPLIED -- For text --
    ROWS       NUMBER    #REQUIRED -- Number of rows required --
    TABINDEX   NUMBER     #IMPLIED -- Position in tabbing order -->

<!ATTLIST TFOOT
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST TH
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG --
    ABBR       CDATA      #IMPLIED -- Abbreviation for header cell (*) --
    AXIS       CDATA      #IMPLIED -- Names groups of related headers --
    COLSPAN    NUMBER            1 -- Number of columns spanned by cell --
    HEADERS    IDREFS     #IMPLIED -- List of ID's for header cells --
    ROWSPAN    NUMBER            1 -- Number of rows spanned by cell --
    SCOPE      (col|colgroup|row|rowgroup)
                          #IMPLIED -- Scope covered by header cells -->

<!ATTLIST THEAD
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST TITLE
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST TR
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST UL
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

        <!-- Attribute group definition lists -->

<!ATTLIST (%physical.styles;)
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!ATTLIST (%logical.styles;)
    %core;                         -- Element CLASS, ID and TITLE --
    %i18n;                         -- Internationalization DIR and LANG -->

<!-- End of file -->

18   Maintenance of the International Standard

Every effort has been made to provide a language specification that is correct and rigorously specified. However since change is inevitable, facilities have been provided to manage the maintenance of this text.

An informal list of error notifications is available at the location ftp://ftp.cs.tcd.ie/isohtml/errata. This service is provided by Trinity College Dublin. Error notifications should be made via your national body or via a liaison organization such as the World Wide Web Consortium. Once confirmed, error notifications will be made public on the server cited above, and will be incorporated in the formal ISO/IEC standard maintenance process.

19   Bibliography

There is an excellent online bibliography by Robin Cover for SGML and XML topics. Detailed references for international standards are available at the ISO's WWW site and details of the ISO/IEC JTC1 programme of work are available at the JTC1 WWW site. W3C documents will be found at the W3C site. The IETF RFC's will be found at the IETF WWW site. A bibliography of ``Dublin Core Relevant Publications'' is available.

  1. Barbara F. Grimes Ethnologue, Languages of the World 12th edition. Summer Institute of Linguistics, Dallas 1992
  2. Ernesto Nebel, Larry Masinter. Form-based File Upload in HTML Internet Engineering Task Force, November 1994. RFC1867
  3. Charles F. Goldfarb. The SGML Handbook First edition. Oxford University Press, 1990. ISBN 0-19-853737-9.
  4. Tim Berners-Lee, Daniel Connolly. Hypertext Markup Language--2.0 Internet Engineering Task Force RFC1866 1995.
  5. Dave Raggett, Arnaud Le Hors, Ian Jacobs. HTML 4.0 Specification W3C Recommendation REC-html40-971218, 18-Dec-1997. World Wide Web Consortium.
  6. Roy T. Fielding, Jim Gettys, Jeffrey C. Mogul, Henrik Frystyk Nielsen, Tim Berners-Lee. Hypertext Transfer Protocol--HTTP/1.1 Internet Engineering Task Force, 1997 RFC2068.
  7. Dave Ragget, Charlie Kindel, Lou Montulli, Eric Sink, Wayne Gramlich, Jonathan Hirschman, Tim Berners-Lee, Dan Connolly. Inserting objects into HTML. (work in progress) World Wide Web Consortium, 1996. WD-object-960422
  8. François Yergeau, Gavin Nicol, Glenn Adams, Martin Dürst. Internationalization of the Hypertext Markup Language Internet Engineering Task Force, January 1997. RFC2070
  9. J. Reynolds, Jon Postel. Assigned Numbers Internet Engineering Task Force, October 1994. RFC1700
  10. H. Alverstrand. Tags for the Identification of languages Internet Engineering Task Force, March 1995. RFC1766
  11. Dave Raggett. HTML Tables Internet Engineering Task Force, May 1996. RFC1942
  12. Tim Berners-Lee, R. Fielding and L. Masinter. Uniform Resource Identifiers (URI): Generic Syntax Internet Engineering Task Force, August 1998. RFC2396
  13. N. Freed, N. Borenstein. Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies Internet Engineering Task Force, December 2nd, 1996. RFC2045
  14. Registered Internet MIME types
  15. Håkon W. Lie, Bert Bos. Cascading Style Sheets, level 1 World Wide Web Consortium, 1996. REC-CSS1-961217
  16. David McKelvie, Henry Thompson, Steve Finch. The Normalised SGML Library, LT NSL version 1.5, 21 August 1997. Language Technology Group, Human Communication Research Centre, University of Edinburgh, 2 Buccleuch Place, EH89LW, Edinburgh, Scotland.
  17. Paul Grosso, Ed., Entity Management. OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401), Organization for the Advancement of Structured Information Standards (OASIS), 1997 September 10.