/[suikacvs]/www/2005/pre-id/draft-raggett-www-html-00.txt
Suika

Contents of /www/2005/pre-id/draft-raggett-www-html-00.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Thu Mar 29 08:09:43 2007 UTC (17 years, 8 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1 wakaba 1.1 HTML+ Document Format Dave Raggett
2     Internet Draft Hewlett Packard
3     28th October 1993
4    
5    
6     HTML+ (Hypertext markup format)
7    
8     Status of this memo
9    
10     This document is an Internet-Draft. Internet-Drafts are working
11     documents of the Internet Engineering Task Force (IETF), its areas, and
12     its working groups. Note that other groups may also distribute working
13     documents as Internet-Drafts.
14    
15     Internet-Drafts are draft documents valid for a maximum of six months.
16     Internet-Drafts may be updated, replaced, or obsoleted by other
17     documents at any time. It is not appropriate to use Internet-Drafts as
18     reference material or to cite them other than as a "working draft" or
19     "work in progress".
20    
21     To learn the current status of any Internet-Draft, please check the
22     1id-abstracts.txt listing contained in the Internet-Drafts Shadow
23     directories on ds.internic.txt, nic.nordu.net, ftp.nisc.sri.com or
24     munnari.oz.au.
25    
26     Distribution of this document is unlimited. Please mail comments to the
27     author at dsr@hplb.hpl.hp.com or to the discussion list:
28     www-talk@nxoc01.cern.ch
29    
30     This draft is valid until May 1st, 1994. It is available in the file
31     draft-raggett-www-html-00.ps and draft-raggett-www-html-00.txt in the
32     internet-drafts directories on the hosts mentioned above. Readers are
33     recommended to try and obtain the Postscript version, which contains
34     figures and formattting examples which are missing from the plain text
35     version.
36    
37     Abstract
38    
39     This draft presents a proposal for a light weight delivery format for
40     browsing and querying information in a web of globally distributed
41     hypertext, accessible over the Internet. HTML+ embodies a pageless
42     model making it suitable for efficient rendering on a wide range of
43     display types, for example, VT100 terminals, X11 Workstations, Windows
44     3.x and the Macintosh. HTML+ is based upon SGML, and represents
45     document elements at a logical level, e.g. headers, paragraphs, lists,
46     tables, and figures. Authors can choose to create HTML+ documents
47     directly, or to use filters to convert from other formats such as
48     LaTeX, Framemaker, and Word for Windows.
49    
50     HTML+ has grown out of several years experience with the HTML document
51     format in the World Wide Web community. Browser writers are
52     experimenting with extensions to HTML and it is now appropriate to draw
53     these ideas together into a revised document format.. The new format is
54     designed to allow a gradual roll over from HTML, adding features like
55    
56    
57     Internet Draft 1 November 1993
58     HTML+ Document Format Raggett
59    
60    
61     tables, captioned figures and fill-out forms for querying remote
62     databases or mailing questionnaires. Large documents can be split into
63     a number of smaller nodes for reduced latency, with explicit or
64     implicit navigation links. This draft also includes a proposal to add
65     direct support for mathematical formulae. Authors can include limited
66     presentation hints, and further control may eventually be possible via
67     associated style sheets.
68    
69     Table of Contents
70    
71     HTML+ Discussion Document 4
72     Introduction 4
73     Positioning of HTML+ 4
74     HTML+ and HTML 5
75     HTML+ and SGML 5
76    
77     An Overview of HTML+ 6
78     Document Structure 6
79     Large Documents 7
80    
81     Headers 7
82    
83     Paragraphs and <P> 8
84    
85     Normal Text 9
86     Character Sets and Entity Definitions 10
87     Hypertext Links 11
88     Character Emphasis 13
89     Presentation Only Tags 13
90     Generic Emphasis 13
91     Logical Emphasis 14
92     Extending the Set of Logical Roles 15
93     Annotations 15
94     Images 15
95     Change Bars and Document Amendments 17
96     Conditional Text 18
97     Explicit Line Breaks 18
98    
99     Different Paragraph Styles 19
100     Longer Quotations 19
101     Abstracts 19
102     Bylines 19
103     Notes and admonishments 20
104    
105     Lists 20
106     Ordered Lists 21
107     Bulleted Lists 21
108     Plain Lists 22
109     Definition Lists 23
110    
111     Figures 24
112    
113    
114     Internet Draft 2 November 1993
115     HTML+ Document Format Raggett
116    
117    
118     Active Areas 25
119     Placing Hypertext Buttons on Images 25
120     Possible extensions 26
121    
122     Tables 26
123     Implementation Issues for Tables 28
124    
125     Fill-out Forms and Input fields 28
126     Sending form data to an HTTP server 33
127     Sending a form via Electronic Mail 34
128    
129     Literal and Preformatted Text 34
130    
131     Mathematical Equations 36
132    
133     Indexing 39
134    
135     Document declarations 40
136     HTMLPLUS 40
137     The HEAD and BODY elements 40
138     TITLE 40
139     ISINDEX 40
140     NEXTID 41
141     BASE 41
142     LINK 41
143    
144     Dealing with Large Documents 43
145    
146     Acknowledgements 45
147    
148     References 45
149    
150     Appendix I - The HTML+ DTD 46
151    
152     Appendix II - Character Entity Names 57
153    
154     Appendix III - Code for Polygon testing 58
155    
156     Appendix IV - Sorted list of tags and attributes 60
157    
158    
159    
160    
161    
162    
163    
164    
165    
166    
167    
168    
169    
170    
171     Internet Draft 3 November 1993
172     HTML+ Document Format Raggett
173    
174    
175     HTML+ (Hypertext markup format)
176    
177     1 HTML+ Discussion Document
178    
179     Following the WWW workshop in July 1993 and subsequent discussions on
180     www-talk, it seems an opportune moment to try and reach a consensus
181     before writing a more formal draft as an informational RFC.
182    
183     1.1 Introduction
184    
185     The World Wide Web is a wide-area client-server architecture for
186     retrieving hypermedia documents over the Internet. It also supports a
187     means of searching remote information sources, for example
188     bibliographies, phone directories and instruction manuals. There are
189     three main ingredients: naming schemes for retrievable objects,
190     protocols and interchange formats.
191    
192     o Universal naming scheme for documents. The Universal Resource
193     Location (URL) syntax specifies documents in terms of the
194     protocol to be used to retrieve them, their Internet Host and
195     path name. A format for location independent lifetime
196     identifiers is currently being defined by a working group of
197     the IETF. A network protocol will allow Universal Resource
198     Numbers (URNs) to be resolved to the URL for the nearest
199     available copy. A URN may specify a number of variants of a
200     document, but the URL will always specify a single copy.
201    
202     o Use of de facto protocols for retrieving documents over the
203     Internet including FTP, NNTP, WAIS, Gopher and HTTP. The
204     latter being designed specifically for the World Wide Web,
205     and uses the MIME message format for document exchange.
206    
207     o A document format supporting hypertext links based on URLs and
208     URNs which can be rendered on a wide variety of display types.
209     HTML+ is intended in this role as a successor to the existing
210     HTML format.
211    
212     HTML+ documents offer a means for providing hypertext links to a
213     variety of media including images, sound sequences, MPEG movies,
214     Postscript files and other formats. These links allow a global web of
215     information sources to be established as new servers and document names
216     are announced. Registers of information sources can also be made
217     available via the web, using its ability to let users search for
218     information via keywords. It is hoped that HTML+ will be useful for
219     information exchange via email and network news as well as HTTP.
220    
221     1.2 Positioning of HTML+
222    
223     HTML+ is designed for use in the World Wide Web as a non-proprietary
224     delivery format for wide-area hypertext. It embodies a pageless model
225     making it suitable for efficient rendering on a wide range of display
226    
227    
228     Internet Draft 4 November 1993
229     HTML+ Document Format Raggett
230    
231    
232     types including VT100 terminals, X11, Windows 3.1 and the Macin- tosh.
233     HTML+ is based upon SGML and represents document elements at a logical
234     level. Authors may choose to create HTML+ documents directly or to use
235     filters to convert from other formats such as LaTeX, Framemaker, and
236     Word for Windows.
237    
238     1.3 HTML+ and HTML
239    
240     HTML+ is a superset of HTML and designed to allow a gradual roll over
241     from the earlier format, with features like tables, captioned figures
242     and fill-out forms for querying remote data- bases or mailing
243     questionnaires. Large documents can be split into a number of smaller
244     nodes for reduced latency, with explicit or implicit navigation links.
245     This draft also includes a proposal to add support for mathematical
246     formulae. Authors can include limited presentation hints, and further
247     control may eventually be possible via associated style sheets.
248    
249     1.4 HTML+ and SGML
250    
251     HTML+ is based on the Standard Generalized Markup Language which is an
252     international standard for document markup that is becoming
253     increasingly important. The term markup derives from the way
254     proof-readers have traditionally pencilled in marks that indicate how a
255     document is to be revised.
256    
257     SGML grew out of a decade of work addressing the need for capturing the
258     logical elements of documents as opposed to the processing functions to
259     be performed on those elements. SGML is essentially an extensible
260     document description language, based on a notation for embedding tags
261     into the body of a document' s text. It is defined by the international
262     standard ISO 8879. The markup structure permitted for each class of
263     documents is defined by an SGML Document Type Definition, usually
264     abbreviated to DTD.
265    
266     A lot of work is underway to produce DTDs for a range of purposes.
267     These include ISO 12083 for books and ISO 10744 which defines the
268     HyTime architectural forms for hypermedia/time- based documents. The
269     Text Encoding Initiative (TEI) is an international research project for
270     SGML-based document exchange in the humanities. Publishers are
271     cooperating to produce common DTDs for computer manuals, e.g. the
272     DocBook DTD. The CALS programme of the US Department of Defence defines
273     SGML DTDs for documentation for defence procurement contracts.
274    
275     So what sets HTML+ apart from these efforts? It is impractical to
276     design a DTD to meet the needs of all possible users. Instead, the
277     markup has to be tailored to the needs of a specific community. HTML+
278     is aimed at fulfilling the dream of a web of information freely
279     accessible over the Internet with links between documents spanning
280     continents. The need to support a very wide range of display types and
281     to keep browser software as simple as possible limits the complexity
282     that can be handled. Similarly the disparate needs of authors has led
283    
284    
285     Internet Draft 5 November 1993
286     HTML+ Document Format Raggett
287    
288    
289     to the inclu- sion of limited rendering hints. The features supported
290     arise from several years experience with the World Web and the existing
291     HTML format.
292    
293     2 An Overview of HTML+
294    
295     HTML+ documents consists of headers, paragraphs, lists, tables and
296     figures. A simple example of an HTML+ document is:
297    
298     <title>A simple HTML+ Document</title>
299    
300     <h1 id="a1">This is a level one header</h1>
301    
302     <p>This is some normal text which will wrap at the window margin.
303     You can emphasise <em>parts of the text</em> if you wish.
304    
305     <p>This is a new paragraph. Note that unlike title and header tags
306     the matching end tag is not needed.
307    
308     The text of the document includes tags which are enclosed in <angle
309     brackets>. Many tags require matching end tags for which the tag name
310     is preceded by the "/" character. The tags are used to markup the
311     document's logical elements, for example the title, headers and
312     paragraphs. Tags may also be accompanied by attributes, e.g. the id
313     attribute in the header tag which can be used to name destinations for
314     hypertext links.
315    
316     Unlike most document formats, HTML+ leaves out the processing
317     instructions that determine the precise appearance, for instance the
318     font names and point size, the margins, tab settings and how much white
319     space to leave before and after different elements. The rendering
320     software makes these choices for itself (perhaps guided by user
321     preferences). This ensures that browsers can avoid problems with
322     different page sizes or missing fonts. Logical markup also preserves
323     essential distinctions that are often lost by lower level procedural
324     formats, making it easier to carry out operations like indexing and
325     conversion into other document formats.
326    
327     Note that the tag and attribute names are case insensitive. HTML+
328     parsers are expected to ignore unrecognised tags and attributes, and to
329     process their contents as if the start/end tags weren't present. SGML
330     minimisation is not supported - this avoids any possibility of
331     confusion with unrecognised tags.
332    
333     2.1 Document Structure
334    
335     An HTML+ document consists of some optional declarations followed by
336     one or more elements from the following:
337    
338     o Headers
339    
340    
341    
342     Internet Draft 6 November 1993
343     HTML+ Document Format Raggett
344    
345    
346     o Paragraphs
347    
348     o Lists
349    
350     o Figures
351    
352     o Tables
353    
354     o Forms
355    
356     o Literal or Preformatted text
357    
358     o Mathematical formulae
359    
360     2.2 Large Documents
361    
362     Keeping a large document such as a book in one node will increase the
363     time it takes to retrieve the node over the network. It is generally
364     better to split large documents into a number of smaller nodes. Many
365     documents are written with the expectation that the reader will start
366     at the beginning and read through until the end. If the document is
367     split into a number of nodes, the intended sequence is known as a path.
368     HTML+ provides a means for authors to specify such paths either
369     explicitly via declarations at the beginning of the node or implicitly
370     according to the context in which a given node is reached. Another
371     possibility is for servers to send such information independently, e.g.
372     as MIME message headers.
373    
374     You can provide navigation links for readers which appear as buttons on
375     a toolbar or as entries in a navigation menu. For works using a lot of
376     technical terms or perhaps in an unfamiliar language, you can provide
377     glossaries offering further explanation. Readers can invoke this by
378     double clicking on words, or by drag selection and clicking the
379     Glossary menu item. You can also provide a search field that is always
380     present (and can't be scrolled away), in which readers can enter one or
381     more keywords to search an index. These facilities can be specified
382     explicitly using the LINK element. Implicit links allow you to define
383     the table of contents (toc) as an HTML+ document without needing to
384     place links to the toc in every subdocument. The link back to the toc
385     is implied when you follow hypertext link from the toc to its
386     subdocuments.
387    
388     3 Headers
389    
390     The tags H1, H2, ... H6 are used to represent headers. H1 is the most
391     significant and rendered in a large font (preferably centered). H2 to
392     H6 are progressively less significant and usually rendered flush left
393     in smaller fonts. A common convention is to begin the body of a
394     document with an H1 header, e.g.
395    
396     <h1>Introduction to HTML+</h1>
397    
398    
399     Internet Draft 7 November 1993
400     HTML+ Document Format Raggett
401    
402    
403    
404     Header names should be appropriate to the following section of the
405     document, while the title should cover the document as a whole. There
406     are no restrictions on the sequence of headers, e.g. you could use a
407     level three header following a level one header.Header and section
408     elements can take an identifier, unique to the current document, for
409     use as named destinations of hypertext links. This is specified with
410     the ID attribute, e.g.
411    
412     <h1 id="intro">Introduction to HTML+</h1>
413    
414     This allows authors to create hypertext links to particular sections of
415     documents. It is a good idea to use something obvious when creating an
416     identifier, to help jog your memory at a later date. WYSIWYG editors
417     should automatically generate identifiers. In this case, they should
418     provide a point and click mechanism for defining links so that authors
419     don't need to deal explicitly with identifier names. Automatic
420     generation of IDs for headers, paragraphs and other major elements is
421     important as it makes it easier for other people to create links to
422     your document, by ensuring that there are plenty of ID attributes
423     present as potential destinations.
424    
425     Should we support headers for which the level is implicitly defined by
426     nestable section elements? We could also support autonumbering of
427     headers. Unfortunately, on further investigation these ideas proved
428     trickier than thought at first, and so have been dropped from this
429     draft.
430    
431     4 Paragraphs and <P>
432    
433     Normal text is automatically wrapped by the browser at the current
434     window margin and adapts to changes in window size. The text is
435     generally shown in a proportional font:
436    
437     <P ID="p1">The P element acts as container for the text between
438     the start tag &lt;P&gt; and end tag &lt;/P&gt;. You don't need
439     to give the end tag as it is implied by the context, e.g. the
440     following &lt;P&gt; tag.
441     <P ID="p2">If you wish, you may think of the &lt;P&gt; tag as
442     a paragraph separator. This works since HTML+ formally doesn't
443     require you to wrap text up as paragraphs.
444    
445     This would be rendered as:
446    
447     The P element acts as a container for the text between the start
448     tag <P> and the end tag </P>. You don't need to give the end
449     tag as it is implied by the context, e.g. the following <P> tag.
450    
451     If you wish, you may think of the <P> tag as a paragraph separator.
452     This works since HTML+ formally doesn't require you to wrap text up
453     as paragraphs.
454    
455    
456     Internet Draft 8 November 1993
457     HTML+ Document Format Raggett
458    
459    
460    
461     The following samples of HTML+ all produce exactly the same results
462     when displayed:
463    
464     <H1>Different ways of using the P element</H1>
465     <P>The first piece of text</P><P>The second piece</P>
466    
467     <H1>Different ways of using the P element</H1>
468     <P>The first piece of text<P>The second piece
469    
470     <H1>Different ways of using the P element</H1>
471     The first piece of text<P>The second piece
472    
473     They all produce:
474    
475     Different ways of using the P element
476    
477     The first piece of text
478    
479     The second piece
480    
481     In some situations you will want to preserve the original line breaks
482     and spacing, for this you should use the LIT or PRE elements, these are
483     described in a later section. You can force line breaks in normal
484     paragraph text with the <BR> element, but the browser may wrap lines
485     arbitrarily at window margins prior to reaching the <BR> element.
486    
487     The ALIGN attribute can be used to center a paragraph, e.g. <P
488     ALIGN=center>. Other possibilities are ALIGN=left (the default),
489     ALIGN=right, ALIGN=justify and ALIGN=indent. This attribute is a hint
490     and may be ignored by some browsers. Note that when using explicit line
491     breaks (see section 5.12) you may wish to switch off word wrap with
492     WRAP=OFF.
493    
494     Browsers, when parsing paragraphs, can choose to simply treat the <P>
495     tag as denoting a paragraph break. If the paragraph style includes a
496     blank line between paragraphs, then additional care is needed after
497     headers and other major elements to avoid inserting an unwanted blank
498     line, e.g. when a <P> tag directly follows a header. This ability to
499     perceive <P> as a paragraph break provides for continuity with HTML,
500     and allows authors to graduate to treating it as a container in their
501     own time.
502    
503     5 Normal Text
504    
505     Paragraphs can include the following:
506    
507     o Character entity names for unusual characters such as o which
508     are included using SGML entity definitions: &name; as in
509     "the dream of &oacute;engus" which is displayed as: "the dream
510     of oengus". The full list of standard entity names recognised
511    
512    
513     Internet Draft 9 November 1993
514     HTML+ Document Format Raggett
515    
516    
517     by most browsers is given in Appendix II
518    
519     o Character emphasis using logical and presentational markup. The
520     set of logical character emphasis can be extended, and HTML+
521     provides the means for browsers to deter- mine how to render
522     such extensions
523    
524     o Simple footnotes or margin notes, which can be rendered as
525     pop-up overlays
526    
527     o Images which act as single characters and which can be
528     vertically aligned relative to the text line in which
529     they are embedded
530    
531     o Hypertext Links based on the URL or URN notations
532    
533     o Markup signifying the start and end of change bars. You can
534     also mark text as being removed or added, as is common in
535     legal documents
536    
537     o Conditional text which appears only on-line or only when printed
538    
539     o Input fields when the paragraph is part of a form
540    
541     o Explicit line breaks
542    
543     5.1 Character Sets and Entity Definitions
544    
545     By default, HTML+ documents are made up of 8-bit characters from the
546     ISO 8859 Latin-1 character set. The network protocol used to retrieve
547     documents may translate the character set into a locally acceptable
548     form, e.g. EBCDIC. The HTTP protocol uses the MIME standard (RFC 1341)
549     to specify the document type and character set. ISO SGML entity
550     definitions are used to include characters which are missing from the
551     character set or which would otherwise be confused with markup
552     elements, e.g:
553    
554     &amp; ampersand &
555     &lt; less than sign <
556     &gt; greater than sign >
557     &quot; the double quote sign "
558    
559     Appendix II lists a broad range of characters and symbols, relating
560     their ISO names to the corresponding character codes in common
561     character sets. They allow authors to include accented characters in
562     7-bit ASCII documents. Some other useful entity definitions are:
563    
564     &ndash; en dash (half the width of an em unit)
565     &mdash; em dash (equal to width of an "m" character)
566     &ensp; en space
567     &emsp; em space
568    
569    
570     Internet Draft 10 November 1993
571     HTML+ Document Format Raggett
572    
573    
574     &nbsp; non breaking space
575     &shy; soft hyphen (normally invisible)
576     &copy; copyright sign
577     &trade; trade mark sign
578     &reg; registered sign
579    
580     There are a large number of entities defined by the ISO, covering most
581     languages and symbols for publishing and mathematics. Requiring all
582     browsers to support these would be impractical, e.g. how should a dumb
583     terminal show such symbols. In some cases there will be accepted ways
584     of mapping them to normal characters, e.g. as ae and e as e. Perhaps
585     the safest recommendation is that where authors need to use a
586     specialised character or symbol, they should use ISO entity names
587     rather than inventing their own. Browsers should leave unrecognised
588     entity names untranslated.
589    
590     In some cases it is useful to specify the language used in a given
591     element, with the LANG attribute. The ISO defines abbreviations for
592     most languages, e.g. FR for french as in: <Q LANG="FR">Je
593     m'aveugle.</Q>. This attribute permits language dependent layout and
594     hyphenation decisions, e.g. Hebrew uses right to left word order.
595    
596     To allow SGML parsers to recognise entity names, authors should declare
597     them before use, for example:
598    
599     <!ENTITY % ISOcyr1 PUBLIC "ISO 8879-1986//ENTITIES Russian Cyrillic/EN">
600     %ISOcyr1;
601    
602     This introduces ISOcyr1 as a local name for the ISO public identifier
603     for the cyrillic alphabet and then includes the associated set of
604     entity definitions as part of the current document. This declaration is
605     unnecessary for entities defined within the HTML+ DTD.
606    
607     5.2 Hypertext Links
608    
609     HTML+ allows authors to embed hypertext links into the document text.
610     In a browser this might look to the reader like:
611    
612     Links are defined with the A tag[1]. HTML+ supports a number of different
613     link types[2].
614    
615     Clicking on a link will normally cause the browser to retrieve the
616     linked document and display it in place of the current one. This
617     example is represented by the following piece of HTML+
618    
619     Links are defined with the <a href="#z1">A tag</a>. HTML+ supports
620     a number of <a href="links.html">different link types</a>.
621    
622     The first link is to an anchor named "z1" in the current document
623     (using an ID attribute on some element). The second is to a file named
624     "links.html" in the same directory as the current document. The link
625    
626    
627     Internet Draft 11 November 1993
628     HTML+ Document Format Raggett
629    
630    
631     caption is the text between the start and end tags. The HREF attribute
632     defines the link destination using the URL or URN notations. This may
633     be abbreviated in certain circumstances using relative URLs. The link
634     should be rendered in a clearly distinguishable way, e.g. as a raised
635     button, or with underlined text in a particular color or emphasis. For
636     displays without pointing devices, it is suggested that the link is
637     indicated with a reference number in square brackets after the caption,
638     which the reader enters to follow the link. Note that it is illegal
639     for anchors to include headers, paragraphs, lists etc. The anchor text
640     is restricted to normal text with emphasis and inline images.
641    
642     The A element has several optional attributes:
643    
644     ID This can be used to define a unique identifier for the text
645     contained by the A element. Another document can then make
646     a reference to this by putting the identifier after the URL
647     for this document, separated by a hash sign. The ID
648     attribute replaces the NAME attribute in HTML.
649    
650     HREF This specifies a URL or URN of a linked document which will
651     be retrieved when the user clicks on the anchor's label.
652     HREF=#id can be used for links to other parts of the same
653     document.
654    
655     REL The relationship the linked document has to this one.
656     REL=Subdocument is used to break long documents into
657     smaller ones. This importance of this particular
658     attribute value is explained in section 14.
659    
660     REV The reverse relationship type, and the inverse of REL.
661    
662     EFFECT This determines how the browser displays the linked document
663     when following the link. EFFECT=Replace causes the browser
664     to replace the current document with the linked one;
665     EFFECT=NEW results in the linked document being shown in a
666     new window (if practical); and EFFECT=OVERLAY causes the
667     linked document to be shown in a pop-up window, as used by
668     the Microsoft Windows Help system.
669    
670     PRINT This attribute makes it easy for users to print off the
671     current document and relevant parts. PRINT=REFERENCE (the
672     default) treats the link as a reference, i.e. the URL is
673     given as a footnote; PRINT=FOOTNOTE prints the linked
674     document as a footnote; PRINT=SIDEBAR prints the linked
675     document as a sidebar; and PRINT=SECTION prints the
676     linked document as a follow on section. Use PRINT=SILENT
677     when you don't want the link referenced or printed out.
678    
679     TITLE Defines the title to use when the linked document is
680     otherwise untitled.
681    
682    
683    
684     Internet Draft 12 November 1993
685     HTML+ Document Format Raggett
686    
687    
688     TYPE The MIME content type of the linked document - for use
689     in providing presentation cues only, as it could easily
690     become out of date.
691    
692     SIZE The size in bytes for the linked document. This should only
693     be used as a guide to progress in retrieving documents, as
694     it is likely to get out of step with changes to the target
695     document.
696    
697     METHODS This is a comma separated list of HTTP methods supported
698     by the linked object. The browser might choose a different
699     way of rendering the link for say searchable objects.
700    
701     SHAPE This is used to define shaped buttons on top of images or
702     figures, and is explained later on.
703    
704     You can also use the LINK element at the start of the document to
705     define document-wide relationships with other documents, e.g. a link to
706     a table of contents. This is described later on.
707    
708     5.3 Character Emphasis
709    
710     There has been considerable discussion on how to represent character
711     emphasis. The previous draft of HTML+ used a single element to handle
712     all forms with a role attribute for the logical role, and other
713     attributes for providing hints as to how to render the emphasis. This
714     mechanism was seen as being overloaded and prompted the use of separate
715     elements in the current draft.
716    
717     5.4 Presentation Only Tags
718    
719     In many cases it is convenient to indicate directly how the text is to
720     be rendered, e.g. as italic, bold, underline or strike-through:
721    
722     <I>italic text</I> italic text
723     <B>bold text</B> bold text
724     <U>underlined text</U> underlined text
725     <S>strike through</S> strike through
726     <SUP>superscript</SUP> superscript
727     <SUB>subscript</SUB> subscript
728     <TT>fixed pitch</TT> fixed pitch (TT for Teletype)
729    
730     These tags may be nested to combine effects, e.g.
731     bold-italic-fixed-pitch text, and should be considered as hints rather
732     than as binding obligations on the browser, e.g.
733    
734     Some <B><I><TT>bold italic fixed pitch text</TT></I></B>.
735    
736     which is rendered as: Some bold italic fixed pitch text.
737    
738     5.5 Generic Emphasis
739    
740    
741     Internet Draft 13 November 1993
742     HTML+ Document Format Raggett
743    
744    
745    
746     These are some tags for indicating a level of emphasis without
747     committing oneself to how they should be rendered:
748    
749     <EM>normal emphasis</EM> typically italic
750     <STRONG>strong emphasis</STRONG> typically bold
751    
752     5.6 Logical Emphasis
753    
754     These tags indicate the role of the marked text, e.g. bibliographic
755     references. By using a stand- ard way of marking up text, it becomes
756     possible to automatically index such references. There are a
757     potentially huge number of different distinctions that could be made,
758     and the set given below is intentionally minimalistic. Discussion is
759     welcomed on just which elements should be included in HTML+ given its
760     intended role as a delivery format for hypertext documents:
761    
762     q a short quotation which can be included inline,
763     e.g. <q>to be or not to be, that is the question</q>
764     use <q> and </q> in place of double quote marks.
765    
766     cite citation, e.g. <cite>Festinger, L.(1957), <I>A Theory
767     of Cognitive Dissonance</I>, Stanford.</cite>
768    
769     person proper names, e.g. <person>Albert Einstein</person>
770    
771     acronym acronyms e.g <acronym>NATO</acronym>
772    
773     abbrev abbreviations, e.g. <abbrev>v. aux</abbrev>
774    
775     cmd command name, e.g. chmod in Unix
776    
777     arg command argument, e.g. <arg>-s</arg>
778    
779     kbd something the use would have to type
780    
781     var named place holder, e.g. <var>filename</var>
782    
783     dfn defining instance of a term
784    
785     code code example - usually shown in a fixed pitch font
786    
787     samp sequence of literal characters usually in a variable
788     pitch font
789    
790     All these tags require a matching closing tag like the other emphasis
791     elements, e.g.
792    
793     <cmd>cmp</cmd> [<arg>-l</arg>] [<arg>-s</arg>] <var>file1</var>
794     <var>file2</var>
795    
796    
797    
798     Internet Draft 14 November 1993
799     HTML+ Document Format Raggett
800    
801    
802     5.7 Extending the Set of Logical Roles
803    
804     When translating from other SGML-based formats, documents may include
805     non-standard ele- ments e.g. PROPNAME for proper names. HTML+ browsers
806     will normally ignore such markup and process their contents as if these
807     tags weren't present. The RENDER element can be used to tell the
808     browser how to render such tags, e.g.
809    
810     <RENDER TAG="PROPNAME" STYLE="I">
811    
812     The STYLE attribute is a comma separated list of presentation tag
813     names, i.e. one or more names from the list: I, B, U, S, SUP, SUB, TT.
814     Include P in the list of styles if the element needs a paragraph break.
815     Keeping non-standard markup in HTML+ documents may be useful for
816     indexing purposes. Note that the RENDER element isn't meant to apply
817     retrospectively.
818    
819     5.8 Annotations
820    
821     Authors can include annotations which act to draw the readers attention
822     or which provide some additional comment on the main text of the
823     paragraph. There are two types:
824    
825     footnote for additional information on some point
826     margin attention getter for this paragraph
827    
828     When printed out, these annotations appear as footnotes or margin notes
829     as their name implies, e.g. <footnote>This is an example of a footnote
830     </footnote>. For on-line use, browsers may show the annotation by a
831     hypertext button, e.g. a superscripted dingbat symbol or icon, which
832     when clicked reveals the annotation in a pop-up window. Footnotes and
833     margins can contain text with emphasis and images, but not other markup
834     such as paragraphs, lists or tables. The PANEL element in the previous
835     draft has been dropped. You can however, indicate that a hypertext link
836     should be rendered as a sidebar when printed out.
837    
838     5.9 Images
839    
840     Images can be included as character like elements with text flowing
841     around the image, e.g.
842    
843     [Picture missing] Before coming to CERN, Tim worked on, among other
844     [in text version] things, document production and text processing.
845     He developed his first hypertext system,
846     "Enquire", in 1980 for his own use (although unaware of the existence
847     of the term HyperText). With a background in text processing,
848     real-time software and communications, Tim decided that high energy
849     physics needed a networked hypertext system and CERN was an ideal
850     site for the development of wide-area hypertext ideas. Tim started
851     the WorldWideWeb project at CERN in 1989. He wrote the application
852     on the NeXT along with most of the communications software.
853    
854    
855     Internet Draft 15 November 1993
856     HTML+ Document Format Raggett
857    
858    
859    
860     This example is produced by the following piece of HTML+
861    
862     <p><img align=top src="http://spoof.cern.ch/people/tbl.gif"> Before
863     coming to CERN, Tim worked on, among other things, document
864     production and text processing. He developed his first hypertext
865     system, "Enquire", in 1980 for his own use (although unaware of
866     the existence of the term HyperText). With a background in text
867     processing, real-time software and communications, Tim decided
868     that high energy physics needed a networked hypertext system and
869     CERN was an ideal site for the development of wide-area hypertext
870     ideas. Tim started the WorldWideWeb project at CERN in 1989. He
871     wrote the application on the NeXT along with most of the
872     communications software.
873    
874     The IMG element specifies an image via a URL. The ALIGN=TOP attribute
875     ensures that the top of the image is level with the top of the current
876     text line. You can also use ALIGN=MIDDLE to align the center of the
877     image with that of the current text line, and ALIGN=BOTTOM to align the
878     bottom of the image with the bottom of the current text line. Browsers
879     are not expected to apply text flow retrospectively, so using
880     ALIGN=MIDDLE and ALIGN=BOTTOM may overwrite previous lines of text. If
881     the ALIGN attribute is missing then ALIGN=TOP is assumed.
882    
883     Not all display types can show images. The IMAGE element behaves in the
884     same way as IMG but allows you to include descriptive text, which can
885     be shown on text-only displays:
886    
887     <image align=top src="http://spoof.cern.ch/people/tbl.gif">A photo
888     of Tim Berners-Lee</image> Before coming to CERN, Tim worked on,
889     among other things, document production and text processing. etc.
890    
891     On text-only displays, the text within the IMAGE element can be shown
892     in place of the image:
893    
894     [A photo of Tim Berners-Lee] Before coming to CERN, Tim worked on,
895     among other things, document production and text processing. etc.
896    
897     The SEETHRU attribute can be used to designate a chromakey so that the
898     image background matches the document background. This is an
899     experimental feature and the format of the attribute's value has yet to
900     be defined - suggestions are welcomed.
901    
902     Images can be made active in one of three ways
903    
904     o The whole image can be made into a hypertext link
905    
906     o Mouse/Pen clicks on the image can be passed to a WWW server
907    
908     o Shaped hypertext buttons can be overlayed on the image
909    
910    
911    
912     Internet Draft 16 November 1993
913     HTML+ Document Format Raggett
914    
915    
916     Making the entire image into an iconic hypertext button is simple:
917    
918     <a href="bigpic.giff"><image src="smallpic.gif">Our house</image></a>
919    
920     In this example, readers can click on a small picture embedded in the
921     document to see a larger version, which would take significantly longer
922     to retrieve. When using images as hypertext links, don't forget to
923     include a textual description. This is needed for the link caption for
924     peo- ple using text-only displays.
925    
926     In some cases, servers can handle mouse clicks or drags on the image.
927     This capability is signalled in the header information returned along
928     with the image data. You can also use the ISMAP attribute. This
929     mechanism and the ability to add shaped buttons are defined in detail
930     in the description of figures.
931    
932     The delay in connecting to the server for each image in turn can be
933     reduced by asking HTTP servers to include images with the HTML+
934     document as a MIME multipart message (include multipart/mixed with the
935     Accept: header in the request message).
936    
937     5.10 Change Bars and Document Amendments
938    
939     Change bars are shown for parts of the document designated with the
940     CHANGED element. This can appear anywhere that normal text is allowed
941     (as shown by the %text; entity reference in the DTD):
942    
943     <changed id=z34>text including some changes<changed idref=z34>
944    
945     The same element is used to designate the start and end of changes,
946     using matched ID and IDREF attribute values. This mechanism avoids
947     syntactic problems that would arise from using a conventional start and
948     end tag pair, as changes to a document can span different levels of the
949     document's formal structure. Additional attributes may be used with the
950     CHANGED element to hold related details, e.g. BY, WHEN, WHY, WHAT.
951    
952     In legal documents and amendments to proposed legislation, there is
953     often the need to show parts of the text as being removed or added to
954     the document. This is commonly shown using strike-through and
955     underlining respectively. The REMOVED and ADDED tags are provided for
956     this purpose:
957    
958     <P>This bill would require the Legislative Counsel, with the advice
959     of the Joint Rules Committee of the Senate and Assembly, to make
960     available to the public by means of access by way of
961     <removed>computer modem</removed> <added>the largest nonproprietary,
962     nonprofit cooperative public computer network,</added> specified
963     information concerning bills, the proceedings of the houses and
964     committees of the Legislature, statutory enactments, and the
965     California Constitution.
966    
967    
968    
969     Internet Draft 17 November 1993
970     HTML+ Document Format Raggett
971    
972    
973     Which might be displayed (on a dumb terminal) as:
974    
975     This bill would require the Legislative Counsel, with the advice of
976     the Joint Rules Committee of the Senate and Assembly, to make
977     available to the public by means of access by way of
978     <removed>computer modem</removed> <added>the largest nonproprietary,
979     nonprofit cooperative public computer network,</added> specified
980     information concerning bills, the proceedings of the houses and
981     committees of the Legislature, statutory enactments, and
982     the California Constitution.
983    
984     Color enhancements may be used to further distinguish the amendments,
985     e.g. red lines for strike-through. This mechanism is not intended for
986     representing revision histories, which are better served by traditional
987     change control mechanisms.
988    
989     5.11 Conditional Text
990    
991     It is often quite difficult to phrase the captions for hypertext
992     buttons so that they make sense when printed out. The ONLINE and
993     PRINTED elements can be used to define text which is for use only when
994     read on-line or on the printed page respectively:
995    
996     <online>click <a href="info.html">here</a>for more information.</online>
997     <printed>Further information can be found in [Higgins 84b].</printed>
998    
999     In many cases, you can find a way of phrasing the reference so that it
1000     makes sense both ways. Browsers can help by referencing hypertext links
1001     as footnotes when printed out. See the earlier description of the PRINT
1002     attribute for the A tag.
1003    
1004     5.12 Explicit Line Breaks
1005    
1006     You can make individual lines explicit with the <L> element, which
1007     contains the text of the line in the same way that <P> contains the
1008     text of the paragraph.
1009    
1010     <P>
1011     <L>22 The Avenue,
1012     <L>Harrow,
1013     <L>London, NW1 5ER
1014    
1015     An alternative is the <BR> element which acts as a forced line break.
1016    
1017     <P>22 The Avenue<BR>
1018     Harrow,<BR>London, NW1 5ER
1019    
1020     The <L> element is useful when you want to name each line, e.g. <L
1021     ID="L23">. You may also want to disable word wrap for the current
1022     paragraph, as in <P WRAP=OFF>.
1023    
1024    
1025    
1026     Internet Draft 18 November 1993
1027     HTML+ Document Format Raggett
1028    
1029    
1030     6 Different Paragraph Styles
1031    
1032     To avoid all text appearing in the same style, HTML+ provides distinct
1033     styles for quotes, abstracts, bylines and admonishments. All these
1034     elements can contain multiple paragraphs:
1035    
1036     6.1 Longer Quotations
1037    
1038     When you want to include a quotation that extends over more that one
1039     paragraph, you should use the QUOTE element. Quoted text should
1040     preferably be indented, and rendered using a distinctive font, e.g.
1041    
1042     <P>The following is a quotation from the forward by Yuri Rubinsky
1043     to "The SGML Handbook" by Charles F. Goldfarb, published by the
1044     Clarendon Press, Oxford, 1990.
1045    
1046     <QUOTE>The next five years will see a revolution in computing. Users
1047     will no longer have to work at every computer task as if they had
1048     no need or ability to share data with all their other computer tasks,
1049     they will not need to act as if the computer is simply a replacement
1050     for paper, nor will they have to appease computers or software
1051     programs that seem to be at war with one another.</QUOTE>
1052    
1053     which might be rendered as:
1054    
1055     The following is a quotation from the forward by Yuri Rubinsky to
1056     "The SGML Handbook" by Charles F. Goldfarb, published by the
1057     Clarendon Press, Oxford, 1990.
1058    
1059     The next five years will see a revolution in computing. Users
1060     will no longer have to work at every computer task as if they
1061     had no need or ability to share data with all their other computer
1062     tasks, they will not need to act as if the computer is simply a
1063     replacement for paper, nor will they have to appease computers or
1064     software programs that seem to be at war with one another.
1065    
1066     6.2 Abstracts
1067    
1068     The ABSTRACT element can be used to give an overview of a document and
1069     typically follows a level one heading. It should be rendered in an
1070     easily read font, distinct from normal text, and preferably indented.
1071     An example is given in the next section.
1072    
1073     6.3 Bylines
1074    
1075     The BYLINE element is similar to QUOTE and is used for information
1076     about the author, e.g. contact details and release date. A common
1077     convention is to include a hypertext link to a node with more
1078     information about the author. Bylines can occur at the beginning or end
1079     of a document, e.g:
1080    
1081    
1082    
1083     Internet Draft 19 November 1993
1084     HTML+ Document Format Raggett
1085    
1086    
1087     <H1>HTML+ (Hypertext markup format</H1>
1088    
1089     <ABSTRACT>A proposed standard for a light weight delivery format
1090     for browsing and querying information in a web of globally
1091     distributed hypertext accessible over the Internet
1092     </ABSTRACT>
1093    
1094     <BYLINE>Editor: Dave Raggett dsr@hplb.hpl.hp.com</BYLINE>
1095    
1096     6.4 Notes and admonishments
1097    
1098     The NOTE element is used when you want to draw the readers attention to
1099     some point or other. For example:
1100    
1101     <note role="NOTE" src="info.gif">
1102     The "partial-window-name" parameter must exactly match the beginning
1103     characters of the window name (as it appears on the title bar),
1104     including proper case (capital or lower letters) and any punctuation.
1105     </note>
1106    
1107     This is typically rendered as:
1108    
1109     ----------------------------------------------------------------------
1110     NOTE: The "partial-window-name" parameter must exactly match the
1111     beginning characters of the window name (as it appears on the title
1112     bar), including proper case (capital or lower letters) and any
1113     punctuation.
1114     ----------------------------------------------------------------------
1115    
1116     The text of the ROLE attribute (if given) is inserted at the start of
1117     the note in a bold font and followed by a colon. Typical roles are TIP,
1118     NOTE, WARNING and ERROR. The SRC attribute may be used to name a URL or
1119     URN as an icon which is displayed in the left margin at the start of
1120     the note. An upright hand icon is often used for tips; a warning road
1121     sign for warnings and a stop sign for errors. Horizontal rules are
1122     drawn automatically to help readers distinguish the note from the
1123     surrounding text. You can place horizontal rules in other parts of your
1124     document using the <HR> element which can appear anywhere a <P> element
1125     is allowed.
1126    
1127     7 Lists
1128    
1129     There are three kinds of lists, which can be freely nested within one
1130     another:
1131    
1132     o Ordered lists - the list items are automatically numbered
1133    
1134     o Unordered lists - bulleted or plain styles, in single or
1135     multiple columns
1136    
1137     o Definition lists of terms and associated definitions
1138    
1139    
1140     Internet Draft 20 November 1993
1141     HTML+ Document Format Raggett
1142    
1143    
1144    
1145     7.1 Ordered Lists
1146    
1147     The OL element is used with LI for each item to represent ordered
1148     lists:
1149    
1150     <OL>
1151     <LI>Wake up
1152     <LI>Get dressed
1153     <LI>Have breakfast
1154     <LI>Drive to work
1155     </OL>
1156    
1157     which is usually rendered as:
1158    
1159     1) Wake up
1160    
1161     2) Get dressed
1162    
1163     3) Have breakfast
1164    
1165     4) Drive to work
1166    
1167     The COMPACT attribute when present e.g. <OL COMPACT> has the effect of
1168     reducing inter-item spacing. The numbering style is the responsibility
1169     of the browser. Other styles use roman numerals or letters from the
1170     alphabet in upper or lower case. One issue for browsers, is how to
1171     render ordered lists, nested within a list of the same type. List item
1172     text can't include headers, see the DTD in Appendix I for details.
1173    
1174     7.2 Bulleted Lists
1175    
1176     Bulleted lists are represented with the UL and LI elements:
1177    
1178     <UL>
1179     <LI>Wake up
1180     <LI>Get dressed
1181     <LI>Have breakfast
1182     <LI>Drive to work
1183     </UL>
1184    
1185     which is usually rendered as:
1186    
1187     o Wake up
1188    
1189     o Get dressed
1190    
1191     o Have breakfast
1192    
1193     o Drive to work
1194    
1195    
1196    
1197     Internet Draft 21 November 1993
1198     HTML+ Document Format Raggett
1199    
1200    
1201     The COMPACT attribute when present e.g. <UL COMPACT> has the effect of
1202     reducing inter-item spacing. The bullet style is the responsibility of
1203     the browser, and normally an unordered list nested within a list of the
1204     same type is given a different style (bullet, dash, box or check).
1205     Authors can instead use the SRC attribute for the LI element to specify
1206     an icon with a URL or URN, e.g. <LI SRC="folder.gif">. List item text
1207     can't include headers, see the HTML+ DTD in Appendix I for details.
1208    
1209     7.3 Plain Lists
1210    
1211     Plain lists without bullets are represented by the UL element together
1212     with the PLAIN attribute, e.g. <UL PLAIN>. The WRAP attribute is used
1213     for multi-column lists and should be WRAP=HORIZ for horizontally
1214     wrapping of list items or WRAP=VERT for vertical wrapping of list
1215     items, e.g.
1216    
1217     <UL PLAIN>
1218     <LI>icons1/
1219     <LI>icons2/
1220     <LI>icons3/
1221     <LI>src/
1222     <LI>xpm-3-paper.ps
1223     <LI>xpm-3.2-to-3.2a.patch
1224     </UL>
1225    
1226     without the WRAP attribute, this is rendered as:
1227    
1228     icons1/
1229     icons2/
1230     icons3/
1231     src/
1232     xpm-3-paper.ps
1233     xpm-3.2-to-3.2a.patch
1234    
1235     with <UL PLAIN WRAP=VERT> this would appear like:
1236    
1237     icons1/ icons3/ xpm-3-paper.ps
1238     icons2/ src/ xpm-3.2-to-3.2a.patch
1239    
1240     with WRAP=HORIZ it would appear like:
1241    
1242     icons1/ icons2/ icons3/
1243     src/ xpm-3-paper.ps xpm-3.2-to-3.2a.patch
1244    
1245     Everyday familiarity with printed lists leads us to expect lists to be
1246     organized into columns which are read top to bottom; horizontally
1247     wrapped lists are seldom seen. Browsers are free to choose the number
1248     of columns to match the current window size and item widths. If there
1249     are N items and M columns then the longest column will have (N+M-1)/M
1250     rows. This requires a prepass through the list to count the items (and
1251     optionally their maximum width). However, this information can be
1252    
1253    
1254     Internet Draft 22 November 1993
1255     HTML+ Document Format Raggett
1256    
1257    
1258     cached to avoid speed penalties when resizing the window or refreshing
1259     the screen. You can use the SRC attribute for the LI element to specify
1260     an icon for each item in the list, e.g. to show the type of each
1261     document in a directory listing.
1262    
1263     For convenience, the <MENU> and <DIR> elements can be used in place of
1264     <UL PLAIN> and <UL PLAIN WRAP=VERT> respectively.
1265    
1266     7.4 Definition Lists
1267    
1268     These consist of pairs of terms and definitions, but can also be used
1269     for plays as in:
1270    
1271     <DL>
1272     <DT>King Henry
1273     <DD>I myself heard the King say he would not be ransomed.
1274     <DT>Williams
1275     <DD>Ay, he said so, to make us fight cheerfully: but when our
1276     throats are cut he may be ransomed, and we none the wiser.
1277     <DT>King Henry
1278     <DD>If I live to see it, I will never trust his word after.
1279     <DT>Williams
1280     <DD>You pay him then! That's a perilous shot out of an
1281     elder-gun, that a poor and a private displeasure can do
1282     against a monarch! You may as well go about to turn the sun
1283     to ice, with fanning in his face with a peacock's feather.
1284     You'll never trust his word after! Come `tis a foolish
1285     saying.
1286     </DL>
1287    
1288     This could be rendered as:
1289    
1290     King Henry: I myself heard the King say he would not be
1291     ransomed.
1292    
1293     Williams: Ay, he said so, to make us fight cheerfully: but
1294     when our throats are cut he may be ransomed, and we none
1295     the wiser.
1296    
1297     King Henry: If I live to see it, I will never trust his word
1298     after.
1299    
1300     Williams: You pay him then! That's a perilous shot out of an
1301     elder-gun, that a poor and private displeasure can do
1302     against a monarch! You may as well go about to turn the sun
1303     to ice, with fanning his face with a peacock's feather.
1304     You'll never trust his word after! Come `tis a foolish saying.
1305    
1306     or as:
1307    
1308     King Henry I myself heard the King say he would not be
1309    
1310    
1311     Internet Draft 23 November 1993
1312     HTML+ Document Format Raggett
1313    
1314    
1315     ransomed.
1316    
1317     Williams Ay, he said so, to make us fight cheerfully: but
1318     when our throats are cut he may be ransomed, and
1319     we none the wiser.
1320    
1321     King Henry If I live to see it, I will never trust his word
1322     after.
1323    
1324     Williams You pay him then! That's a perilous shot out of an
1325     elder-gun, that a poor and private displeasure can
1326     do against a monarch! You may as well go about to
1327     turn the sun to ice, with fanning his face with a
1328     peacock's feather. You'll never trust his word
1329     after! Come `tis a foolish saying.
1330    
1331     Browsers should make allowance for the infrequent case when the term
1332     text (DT) is longer than the definition text (DD) and wraps onto
1333     subsequent lines. Note that you are allowed to have several consecutive
1334     DT elements followed by a DD element, but you can't have DD without an
1335     associated DT element, The COMPACT attribute as in <DL COMPACT> forces
1336     the browser to use the former more compact style.
1337    
1338     8 Figures
1339    
1340     The FIG element is similar to the IMAGE element, but acts as a
1341     paragraph. The ALIGN attribute can be one of LEFT (the default),
1342     CENTER, RIGHT or FLOAT. This determines whether the figure is flush
1343     left, centered or flush right. If ALIGN=FLOAT the figure may float to
1344     another more convenient location (and possibly zoomed or reduced in the
1345     process). A caption can be defined with the CAPTION element and
1346     followed by text describing the figure for readers using text only
1347     displays:
1348    
1349     <FIG ALIGN=FLOAT SRC="cat.gif">
1350     <CAPTION>"Not curried fish again!"<CAPTION>
1351     A cartoon of a scrawny cat with its tongue out saying ACK!
1352     </FIG>
1353    
1354     <P>The text in the following paragraphs will flow around the figure
1355     if there is enough room. The browser is free to position the caption at
1356     the top, bottom or sides of the figure.
1357    
1358     which is rendered as:
1359    
1360     [ ] The text in the following paragraphs will
1361     [ picture missing ] flow around the figure if there is enough
1362     [ ] room. The browser is free to position the
1363     [ ] caption at the top, bottom or sides of the
1364     figure.
1365     "Not curried fish again!"
1366    
1367    
1368     Internet Draft 24 November 1993
1369     HTML+ Document Format Raggett
1370    
1371    
1372    
1373     Note that browsers can only support a limited range of image types.
1374     Currently these are GIF and XBM (X bitmap format). This list will
1375     evolve over time.
1376    
1377     8.1 Active Areas
1378    
1379     The uppe left of the image is designated as x,y = (0, 0), with x
1380     increasing across the page and y down the page. This choice was made
1381     for continuity with the IMG element in HTML, to ensure a simple
1382     migration path to HTML+. If points are given in real numbers, the lower
1383     right corner of the image is taken as being (1.0, 1.0), otherwise, with
1384     integer values the coordinates are assumed to be in pixels. A simple
1385     test to distinguish the two schemes is to check if a "." character
1386     occurs anywhere in the list of points. Using scaled coordinates is much
1387     safer as the pixel extent of an image may alter, e.g. as a result of
1388     format negotiation with the server.
1389    
1390     For some images, HTTP servers will be able to handle mouse/pen clicks
1391     or drags on the image. This is signalled in the header information
1392     returned along with the image data. Alternatively, the ISMAP attribute
1393     can be used to signal this capability. The mouse click is sent to the
1394     server indicated by the URL in the SRC attribute, using the same URL
1395     plus the suffix "?x=X&y=Y" where X and Y are the coordinates of the
1396     click event. Mouse drags can be used
1397     to designate a rectangular region of the image. In this case the suffix
1398     takes the form: "?x=X&y=Y&w=W&h=H" where (X, Y) is the upper left of
1399     the rectangle, and (W, H) define its width and height. The ISMAP
1400     mechanism is useful when the active regions in the image change their
1401     boundaries with time, e.g.
1402    
1403     <fig ismap src="weather.gif">
1404     <caption>Click on your area for a local forecast</caption>
1405     Todays weather map for the US.
1406     </fig>
1407    
1408     8.2 Placing Hypertext Buttons on Images
1409    
1410     The A element can be used to define shaped buttons on top of images.
1411     The shape is defined by an arbitrary polygon and specified via the
1412     SHAPE attribute, e.g.
1413    
1414     <FIG SRC="test.gif">
1415     <CAPTION>Click on the triangle or the rectangle</CAPTION>
1416     A line drawing with a
1417     <A SHAPE="0.35,0.1&0.1,0.8&0.35,0.8" HREF="button1.html">
1418     triangle</A> and a
1419     <A SHAPE="0.5,0.25&0.5,0.5&0.8,0.5&0.8,0.25" HREF="button2.html">
1420     rectangle</A>
1421     </FIG>
1422    
1423    
1424    
1425     Internet Draft 25 November 1993
1426     HTML+ Document Format Raggett
1427    
1428    
1429     Which could be rendered as:
1430    
1431     [ Picture missing in text file ]
1432    
1433     The example uses scaled coordinates, and shows how you give the
1434     vertices of the polygon defining the shape of the button. Like the
1435     ISMAP mechanism, you can use pixel-based coordinates by using integer
1436     numbers throughout. Note that clicks on shaped buttons take precedence
1437     over the ISMAP mechanism for sending events to the server. An efficient
1438     algorithm for testing if a mouse/pen click lies inside a polygon is
1439     given as a C routine in Appendix III.
1440    
1441     8.3 Possible extensions
1442    
1443     In future, HTML+ may be extended to support simple drawings with
1444     embedded hypertext links. One idea would be a line drawing primitive
1445     using the SHAPE attribute. A better approach is to extend existing
1446     drawing formats such as the ANSI Computer Graphics Metafile format
1447     (CGM) or Adobe's PDF to include URL based hypertext links. This
1448     extended format could then be used for figures within HTML+ documents.
1449    
1450     The use of the MIME multipart message format would also help to speed
1451     up the display of figures by sending image data at the same time as the
1452     HTML+ document. Another possibility would be to allow image data to be
1453     embedded in the document using an EMBED element in place of the SRC
1454     attribute. Binary data could be represented using the MIME character
1455     encoding or the more compact ASCII base 85 encoding, as used in Adobe's
1456     PDF. The drawback with this approach is the inability to use format
1457     negotiation. As a result, the EMBED element has been dropped from the
1458     current draft.
1459    
1460     9 Tables
1461    
1462     Tables are specified using the TABLE element. This allows you to define
1463     a caption and to differentiate header and data cells. Cells may
1464     contain, text, multiple paragraphs, lists and headers. Adjacent cells
1465     can be merged, e.g. to define a header which spans two columns. A
1466     simple table could look like:
1467    
1468     Table 1: A simple table
1469    
1470     -------------------------------
1471     | Year | Month | Day |
1472     -------------------------------
1473     | 1972 | June | 23rd |
1474     -------------------------------
1475     | 1982 | October | 7th |
1476     -------------------------------
1477    
1478     This is defined by the markup:
1479    
1480    
1481    
1482     Internet Draft 26 November 1993
1483     HTML+ Document Format Raggett
1484    
1485    
1486     <table border>
1487     <caption>A simple table</caption>
1488     <th>Year <th>Month <th>Day <tr>
1489     <td>1972 <td>June <td>23rd <tr>
1490     <td>1982 <td>October <td>7th
1491     </table>
1492    
1493     The BORDER attribute acts as a hint to the browser to draw lines
1494     enclosing each cell. The TH ele- ment precedes header cell text and the
1495     TD element precedes data cell text. The TR element is used to separate
1496     table rows. By default text is centered in each cell. Header text
1497     should be shown emphasised, e.g. the browser could use a bold sans
1498     serif font for headers and a serif font for the data cells. The next
1499     example shows how cells can be merged with their neighbors:
1500    
1501     Table 2: A more complex table
1502    
1503     average other
1504     height weight category
1505    
1506     males 1.9 0.003 yyy
1507    
1508     females 1.7 0.002 xxx
1509    
1510    
1511     This table is defined by the markup:
1512    
1513     <table>
1514     <caption>A more complex table</caption>
1515     <th rowspan=2><th colspan=2>average<th rowspan=2>other<br>category<tr>
1516     <th>height <th>weight <tr>
1517     <th align=left>males <td>1.9 <td>0.003 <td>yyy <tr>
1518     <th align=left>females <td>1.7 <td>0.002 <td>xxx
1519     </table>
1520    
1521     The first cell (a header cell) is merged with the cell below it: <th
1522     rowspan=2>. Note that this merged cell is empty - the definition of the
1523     next column for the first row starts immediately. Looking again at the
1524     first row, the second column is merged with the third: <th colspan=2>.
1525     The definition for the third column is skipped as it was covered by the
1526     merged cell. The fourth column/first row is also merged, this time with
1527     the next row: <th rowspan=2>. The <BR> element has been used here to
1528     force a line break between other and category. The <TR> element
1529     signifies the end of the first row and the beginning of the second.
1530     Note that empty cells at the end of a row can be omitted as the <TR>
1531     element unambiguously marks the end of the row.
1532    
1533     The second row only contains definitions for the second and third
1534     columns since the others were merged with cells on the preceding row.
1535     The general rule is to avoid defining any cell twice. The last two rows
1536     start with headers and the align=left attribute ensures that the
1537    
1538    
1539     Internet Draft 27 November 1993
1540     HTML+ Document Format Raggett
1541    
1542    
1543     browser will align these headers to the left of their cells. The ALIGN
1544     attribute can be one of LEFT, CENTER or RIGHT, with CENTER as the
1545     default. It can be used with both TH and TD.
1546    
1547     9.1 Implementation Issues for Tables
1548    
1549     Browsers need a prepass through the table markup to count the number of
1550     columns and determine their widths. A simple algorithm that takes
1551     merged cells into account will suffice. Text fields wrap to fit their
1552     columns, which should be sized to best match current window width. This
1553     information should be cached to avoid speed penalties during subsequent
1554     screen refresh/ window resize operations. Browsers can ignore alignment
1555     hints if required, and using a fixed pitch font may speed up the sizing
1556     step.
1557    
1558     The number of columns is given by the row with the largest number of
1559     <TH> and <TD> elements, remembering to add in merged cells. The widths
1560     of columns are evaluated by finding the minimum and maximum widths
1561     needed for each cell, and hence the minimum and maximum width for the
1562     column as a whole. All this can be done during a single pass through
1563     the <TABLE> element. Caching these min/max values for each column then
1564     permits the browser to instantly adjust the table when the window is
1565     resized.
1566    
1567     10 Fill-out Forms and Input fields
1568    
1569     Forms are composed by placing input fields within paragraphs,
1570     preformatted/literal text, lists and tables. This gives considerable
1571     scope in designing the layout of forms. Each field is defined by an
1572     INPUT element and must have an NAME attribute which uniquely names the
1573     field in the document. Additional optional attributes can be used to
1574     specify the type of the field (defaults to free text), its
1575     size/precision, its initial value and whether the field is currently
1576     disa- bled or in error:
1577    
1578     <FORM ACTION="mailto:www_admin@info.cern.ch">
1579     <MH HIDDEN>Subject: WWW Questionaire</MH>
1580    
1581     Please help up to improve the World Wide Web by filling in the
1582     following questionaire:
1583     <P>Your organization? <INPUT NAME="org" SIZE="48">
1584     <P>Commercial? <INPUT NAME="commerce" TYPE=checkbox>
1585     How many users? <INPUT NAME="users" TYPE=int>
1586     <P>Which browsers do you use?
1587     <OL>
1588     <LI>X Mosaic <INPUT NAME="browsers" TYPE=checkbox VALUE="xmosaic">
1589     <LI>Cello <INPUT NAME="browsers" TYPE=checkbox VALUE="cello">
1590     <LI>Others <TEXTAREA NAME="others" COLS=48 ROWS=4></TEXTAREA>
1591     </OL>
1592     A contact point for your site: <INPUT NAME="contact" SIZE="42">
1593     <P>Many thanks on behalf of the WWW central support team.
1594    
1595    
1596     Internet Draft 28 November 1993
1597     HTML+ Document Format Raggett
1598    
1599    
1600    
1601     <P ALIGN=CENTER><INPUT TYPE=submit> <INPUT TYPE=reset>
1602     </FORM>
1603    
1604     This fictitious example is a questionnaire that will be emailed to
1605     www_admin@info.cern.ch. The FORM element is used to delimit the form.
1606     There can be several forms in a single document, but the FORM element
1607     can't be nested. The ACTION attribute specifies a URL that designates
1608     an HTTP server or an email address. If missing, the URL for the
1609     document itself will be assumed. The effect of the action can be
1610     modified by including a method prefix, e.g. ACTION="POST http://....".
1611     This prefix is used to select the HTTP method when sending the form's
1612     contents to an HTTP server. Would it be cleaner to use a separate
1613     attribute, e.g. METHOD?
1614    
1615     Servers can disable forms by sending an appropriate header or by an
1616     attribute on the optional HTMLPLUS element at the very start of the
1617     document, e.g.
1618    
1619     <htmlplus forms=off>.
1620    
1621     The MH element can be used to specify RFC 822 mail headers that are
1622     included when sending the form's content either as an email message or
1623     as a HTTP request, e.g.
1624    
1625     <MH HIDDEN>
1626     Subject: WWW Questionnaire
1627     Priority: Low
1628     </MH>
1629    
1630     The MH element can contain several headers separated by line breaks.
1631     The text within the MH element is transcribed directly, preserving
1632     spaces, tabs and line breaks, with each line terminated by a CR LF pair
1633     as per the RFC 822 guidelines. The preceding example of a form might be
1634     rendered as:
1635    
1636    
1637    
1638     ----------------------------------------------------------------------
1639     Please help us to improve the World Wide Web by filling in the
1640     following questionnaire:
1641    
1642     Your organization: [ ]
1643     Commercial [N] How many users? [ ]
1644    
1645     Which browsers do you use?
1646    
1647     1) X Mosaic [ ]
1648    
1649     2) Cello
1650    
1651    
1652    
1653     Internet Draft 29 November 1993
1654     HTML+ Document Format Raggett
1655    
1656    
1657     3) Others [ ]
1658     [ ]
1659     [ ]
1660     [ ]
1661    
1662     A contact point for your site? [ ]
1663    
1664     Many thanks on behalf of the WWW Central support team.
1665    
1666     (Submit) (Reset)
1667     ----------------------------------------------------------------------
1668    
1669     Here, the <P> and <OL> elements have been used to lay out the text and
1670     input fields. The browser has changed the background color within the
1671     FORM element to distinguish the form from other parts of the document.
1672     The browser is responsible for handling the input focus, i.e. which
1673     field will currently get keyboard input.
1674    
1675     For many platforms there will be existing conventions for forms, e.g.
1676     tab and shift-tab keys to move the keyboard focus forwards and
1677     backwards between fields, while an Enter key submits the form. In the
1678     example, the Submit and Reset buttons are specified explicitly with
1679     special purpose fields. The Submit button is used to email the form or
1680     send its contents to the server as specified by the ACTION attribute,
1681     while the Reset button resets the fields to their initial values. When
1682     the form consists of a single text field, it may be appropriate to
1683     leave such buttons out and rely on the Enter key.
1684    
1685     The INPUT element has the following attributes:
1686    
1687     NAME Symbolic name used when transferring the form's
1688     contents. This attribute is always needed and
1689     should uniquely identify this field.
1690    
1691     TYPE Defines the type of data the field accepts. Defaults
1692     to free text.
1693    
1694     SIZE Specifies the size or precision of the field according
1695     to its type.
1696    
1697     MAXLENGTH The maximum number of characters that will be accepted
1698     as input. This can be greater that specified by SIZE,
1699     in which case the field will scroll appropriately.
1700     The default is unlimited.
1701    
1702     VALUE The initial value for the field, or the value when
1703     checked for checkboxes and radio buttons. This
1704     attribute is required for radio buttons.
1705    
1706     CHECKED When present indicates that a checkbox or radio
1707     button is selected.
1708    
1709    
1710     Internet Draft 30 November 1993
1711     HTML+ Document Format Raggett
1712    
1713    
1714    
1715     DISABLED When present indicates that this field is temporarily
1716     disabled. Browsers should show this by "greying it"
1717     out in some manner.
1718    
1719     ERROR When present indicates that the field's initial value
1720     is in error in some way, e.g. because it is
1721     inconsistent with the values of other fields. Servers
1722     should include an explanatory error message with the
1723     form's text.
1724    
1725     SRC A URL or URN specifying an image - for use only with
1726     TYPE=IMAGEMAP.
1727    
1728     ALIGN Vertical alignment of the image - for use only with
1729     TYPE=IMAGEMAP.
1730    
1731     The following types of fields can be defined with the TYPE attribute
1732     (upper or lower case):
1733    
1734     TEXT Single line text entry fields. Use the SIZE attribute
1735     to specify the visible width in characters, e.g.
1736     SIZE="24" for a 24 character field. The MAX attribute
1737     can be used to specify an upper limit to the number of
1738     characters that can be entered into a text field, e.g.
1739     MAX=72. Use the TEXTAREA element for text fields which
1740     can accept multiple lines (see below).
1741    
1742     INT For entering integer numbers, the maximum number of
1743     digits can be specified with the SIZE attribute
1744     (excluding the sign character), e.g. size=3 for a
1745     three digit number.
1746    
1747     FLOAT For fields which can accept floating point numbers.
1748    
1749     DATE Fields which can accept a recognized date format.
1750    
1751     URL For fields which expect document references as URLs or
1752     URNs.
1753    
1754     CHECKBOX Used for simple Boolean attributes, or for attributes
1755     which can take multiple values at the same time. The
1756     latter is represented by a number of checkbox fields
1757     each of which has the same NAME.
1758    
1759     RADIO For attributes which can take a single value from a set
1760     of alternatives. Each radio button field in the group
1761     should be given the same NAME.
1762    
1763     RANGE This allows you to specify an integer range with the
1764     MIN and MAX attributes, e.g. MIN=1 MAX=100. Users can
1765    
1766    
1767     Internet Draft 31 November 1993
1768     HTML+ Document Format Raggett
1769    
1770    
1771     select any value in this range.
1772    
1773     IMAGE This allows you to specify an image field upon which
1774     you can click with a pointing device. The SRC and
1775     ALIGN attributes are exactly the same as for the IMG
1776     and IMAGE elements. The symbolic names for the x and
1777     y coordinates of the click event are specified with
1778     name.x and name.y for the name given with the NAME
1779     attribute. The VALUE attribute is ignored.
1780    
1781     SCRIBBLE A field upon which you can write with a pen or mouse.
1782     The size of the field in millimeters is given as
1783     SIZE=width,height. The units are absolute as they
1784     relate to the dimensions of the human hand, rather
1785     than pixels of varying resolution. The scribble may
1786     involve time and pressure data in addition to the basic
1787     ink data. You can use scribble for signatures or
1788     sketches. The field can be initialised by setting the
1789     SRC attribute to a URL which contains the ink. The
1790     VALUE attribute is ignored.
1791    
1792     AUDIO This provides a way of entering spoken messages into
1793     a form. Browsers might show an icon which when clicked
1794     pops-up a set of tape controls that you can use to
1795     record and replay messages. The initial message can be
1796     set by specifying a URL with the SRC attribute. The
1797     VALUE attribute is ignored.
1798    
1799     SUBMIT This is a button that when pressed submits the form. It
1800     is provided as a kind of field to offer authors some
1801     control over the location of this button. You can use
1802     an image as a submit button by specifying a URL with
1803     the SRC attribute.
1804    
1805     RESET This is a button that when pressed resets the form's
1806     fields to their initial values as specified by the
1807     VALUE attribute. You can use an image as a reset
1808     button by specifying a URL with the SRC attribute.
1809    
1810     When you need to let users enter more than one line of text, you should
1811     use the TEXTAREA element, e.g.
1812    
1813     <TEXTAREA NAME="address" ROWS=64 COLS=6>
1814     Hewlett Packard Laboratories
1815     1501 Page Mill Road
1816     Palo Alto, California 94304-1126
1817     </TEXTAREA>
1818    
1819     The text up to the end tag is used to initialize the field's value.
1820     This end tag is always required even if the field is initially blank.
1821     The ROWS and COLS attributes determine the visible dimension of the
1822    
1823    
1824     Internet Draft 32 November 1993
1825     HTML+ Document Format Raggett
1826    
1827    
1828     field in characters. Browsers are recommended to allow text to grow
1829     beyond these limits by scrolling as needed. In the initial design for
1830     forms, multi-line text fields were supported by the INPUT element with
1831     TYPE=TEXT. Unfortunately, this causes problems for fields with long
1832     text values as SGML limits the length of attribute literals. The HTML+
1833     DTD allows for up to 1024 characters (the SGML default is only 240
1834     characters!).
1835    
1836     The RADIO and CHECKBOX fields can be used to specify multiple choice
1837     forms in which every alternative is visible as part of the form. An
1838     alternative is to use the SELECT element which is generally rendered in
1839     a more compact fashion as a pull down combo list. Every alternative is
1840     represented by the OPTION element, e.g.
1841    
1842     <SELECT NAME="flavor">
1843     <OPTION>Vanilla
1844     <OPTION>Strawberry
1845     <OPTION>Rum and Raisin
1846     <OPTION>Peach and Orange
1847     </SELECT>
1848    
1849     The SEVERAL attribute is needed when users are allowed to make several
1850     selections, e.g. <SELECT SEVERAL>. The ERROR attribute can be used to
1851     indicate that the initial selection is in error in some way, e.g.
1852     because it is inconsistent with the values of other fields.
1853    
1854     The OPTION element can take the following attributes:
1855    
1856     SELECTED Indicates that this option is initially selected.
1857    
1858     DISABLED When present indicates that this option is
1859     temporarily disabled. Browsers should show this
1860     by "greying it" out in some manner.
1861    
1862     10.1 Sending form data to an HTTP server
1863    
1864     The form contents are expressed as a property list of attribute names
1865     and values. Radio buttons and checkboxes are left out of the list when
1866     unchecked. This ensures that only the selected radio button contributes
1867     a name=value pair. Omitting the VALUE attribute for a checkbox field
1868     causes the field when checked to appear as a name without a value (this
1869     is appropriate for Boolean attributes). Currently, there are two ways
1870     of transferring form contents to an HTTP server:
1871    
1872     o As a suffix on the URL given by the ACTION attribute
1873    
1874     o As a multipart MIME message
1875    
1876     In the first approach, the property list is encoded as a sequence of
1877     name=value elements separated by the "&" character. The values for the
1878     form's fields are sent as a search string, e.g.
1879    
1880    
1881     Internet Draft 33 November 1993
1882     HTML+ Document Format Raggett
1883    
1884    
1885    
1886     URL?org=Acme%20Foods&commerce&users=42
1887    
1888     Note that "=", "&" and space characters in attribute names and values
1889     should be escaped by "%" followed by the hexadecimal code for the
1890     character in question, e.g. "%20" should be used in place of the space
1891     character. IMAGE fields are only included in the list when clicked, and
1892     give rise to something matching:
1893    
1894     URL?name.x=23&name.y=29
1895    
1896     They can be used as iconic controls for other images or data. The
1897     object-name.property-name notation paves the way for more complex input
1898     controls in the future. In the near future, for- mat negotiation will
1899     not change the number of pixels in an image, so using pixel based
1900     coordi- nates is okay. In the longer term, scaled coordinates in the
1901     range 0 to 1.0 may prove safer.
1902    
1903     Multipart MIME messages are necessary if the form contains scribble or
1904     audio fields. Form data can be sent in the same name=value
1905     representation as described above. For scribble and audio fields, the
1906     value identifies a subsequent part in the multipart message, as
1907     specified by the Content-ID: header for each part. Another approach is
1908     to send just the SGML elements used to define form fields, i.e. the
1909     INPUT, TEXTAREA and SELECT elements. The Content-ID: headers are used
1910     to define dummy URLs. It may be possible for servers to use this
1911     approach to update forms being viewed by a browser without having to
1912     send the entire document.
1913    
1914     10.2 Sending a form via Electronic Mail
1915    
1916     In this case, the form needs to be viewable on ordinary mail readers.
1917     The form should be converted to ASCII and mailed as a plain text
1918     message, preceded by the headers as specified by the MH element. Each
1919     INPUT field is copied as text and delimited by the "[" and "]"
1920     characters. An longer term alternative is to send the HTML+ document
1921     as a MIME message, along with the current values for each field.
1922    
1923     11 Literal and Preformatted Text
1924    
1925     Preformatted text started off in HTML with a simple mechanism for
1926     showing computer output, for which the spaces and line breaks were
1927     significant in determining the layout. The desire to offer Unix manual
1928     pages as hypertext forced a rethink. The next version supported
1929     character emphasis and embedded hypertext buttons. HTML+ adds the
1930     capability to use variable pitch fonts and to set up tab stops.
1931    
1932     The LIT element is rendered in a proportional font, e.g.
1933    
1934     <LIT>
1935     From Oberon in fairyland,
1936    
1937    
1938     Internet Draft 34 November 1993
1939     HTML+ Document Format Raggett
1940    
1941    
1942     The king of ghosts and shadows there,
1943     Mad Robin I, at his command,
1944     Am sent to view the night sports here.
1945     What revel rout
1946     is kept about,
1947     In every corner where I go,
1948     I will o'ersee
1949     And merry be
1950     And make good sport, with ho, ho, ho!
1951     </LIT>
1952    
1953     This is rendered literally as:
1954    
1955     From Oberon in fairyland,
1956     The king of ghosts and shadows there,
1957     Mad Robin I, at his command,
1958     Am sent to view the night sports here.
1959     What revel rout
1960     Is kept about,
1961     In every corner where I go,
1962     I will o'ersee
1963     And merry be
1964     And make good sport, with a ho, ho, ho!
1965    
1966     The ability to set tab stops in LITeral text makes it much easier to
1967     write filters that convert documents written on word processors into
1968     HTML+. Tab stops can be set by the TAB element and apply for the scope
1969     of the LIT element, e.g.
1970    
1971     <tab at=40 align=right>
1972    
1973     The AT attribute specifies the position of the tab stop, as measured
1974     from the left margin in terms of the width of a capital M. The ALIGN
1975     attribute can be LEFT, CENTER or RIGHT, defaulting to LEFT. These have
1976     the conventional meaning as used on most word processors. If greater
1977     control over fonts and layout is needed then authors should make a
1978     hypertext link to a document written in a page description format like
1979     Adobe's PDF.
1980    
1981     For computer output or plain text files, you should use the PRE element
1982     which is rendered in a fixed pitch font. The following is part of the
1983     man page for the Unix ls command:
1984    
1985     <PRE>
1986     The next 9 characters are interpreted as three sets of three
1987     bits each which identify access permissions for owner,
1988     group, and others as follows:
1989    
1990     +------------------ 0400 read by owner (<B>r</B> or <B>-</B>)
1991     | +---------------- 0200 write by owner (<B>w</B> or <B>-</B>)
1992     | | +-------------- 0100 execute (search directory) by owner
1993    
1994    
1995     Internet Draft 35 November 1993
1996     HTML+ Document Format Raggett
1997    
1998    
1999     | | | (<B>x</B>, <B>s</B>, <B>S</N>, or <B>-</B>)
2000     | | | +------------ 0040 read by group (<B>r</B> or <B>-</B>)
2001     | | | | +---------- 0020 write by group (<B>w</B> or <B>-</B>)
2002     | | | | | +-------- 0010 execute/search by group
2003     | | | | | | (<B>x</B>, <B>s</B>, <B>S</B>, or <B>-</B>)
2004     | | | | | | +------ 0004 read by others (<B>r</B> or <B>-</B>)
2005     | | | | | | | +---- 0002 write by others (<B>w</B> or <B>-</B>)
2006     | | | | | | | | +-- 0001 execute/search by others
2007     | | | | | | | | | (<B>x</B>, <B>t</B>, <B>T</B>, or <B>-</B>)
2008     | | | | | | | | |
2009     r w x r w x r w x
2010    
2011     </PRE>
2012    
2013     This is rendered as
2014    
2015     The next 9 characters are interpreted as three sets of three
2016     bits each which identify access permissions for owner,
2017     group, and others as follows:
2018    
2019     +------------------ 0400 read by owner (r or -)
2020     | +---------------- 0200 write by owner (w or -)
2021     | | +-------------- 0100 execute (search directory) by owner
2022     | | | (x, s, S, or -)
2023     | | | +------------ 0040 read by group (r or -)
2024     | | | | +---------- 0020 write by group (w or -)
2025     | | | | | +-------- 0010 execute/search by group
2026     | | | | | | (x, s, S, or -)
2027     | | | | | | +------ 0004 read by others (r or -)
2028     | | | | | | | +---- 0002 write by others (w or -)
2029     | | | | | | | | +-- 0001 execute/search by others
2030     | | | | | | | | | (x, t, T, or -)
2031     | | | | | | | | |
2032     r w x r w x r w x
2033    
2034    
2035     The SEE ALSO section of the Unix manual pages can be processed to make
2036     references to other manual pages into hypertext buttons using the <A>
2037     element (see section 5.2). The example shows how character emphasis can
2038     be added to literal or preformatted text.
2039    
2040     12 Mathematical Equations
2041    
2042     Currently, the best way of including equations in HTML documents is to
2043     first write the document in LaTeX and then use the latex2html filter to
2044     create the corresponding HTML document, together with the equations as
2045     a number of bitmap files. The previous draft of the HTML+ specification
2046     described a way of embedding LaTeX equations in HTML+ documents.
2047     Unfortunately, it now seems too cumbersome to form a practical
2048     solution, and has been dropped.
2049    
2050    
2051    
2052     Internet Draft 36 November 1993
2053     HTML+ Document Format Raggett
2054    
2055    
2056     The following is a preliminary proposal for representing equations
2057     directly as HTML+ using an SGML-based notation, inspired by the
2058     approach taken by LaTeX. It is intended to cover the majority of users
2059     needs, rather than aiming for complete coverage. This makes it
2060     practical to use a simplified notation compared with richer notations,
2061     e.g. the ISO 12083 Maths DTD. An experimental browser supporting the
2062     MATH element is being developed at CERN.
2063    
2064     Consider the equation:
2065     -st
2066     H(s) = integral from 0 to infinity of e h(t) dt
2067    
2068     This can be represented as:
2069    
2070     <math>
2071     H(s) = &int;<sub>0</sub><sup>&infin;</sup>
2072     e<sup>-st</sup> h(t) dt
2073     </math>
2074    
2075     The mathematical symbols are given with their standard ISO entity
2076     names. SUB and SUP are used to specify subscripts and superscripts. For
2077     integral signs and related operators, the subscript/superscript text is
2078     centered over the symbol, otherwise it appears to the right as shown in
2079     the preceding example. The BOX and OVER elements allow you to define
2080     more complex equations, as in:
2081    
2082     dV V - V
2083     out ( Kappa ( in out))
2084     C ----- = I tanh( -------------------)
2085     dt b ( 2 )
2086    
2087     which is represented by:
2088    
2089     <math>
2090     C <box>dV<sub>out</sub><over>dt</box> = I<sub>b</sub>
2091     &tanh;(<box>&kappa;(V<sub>in</sub> - V<sub>out</sub>)
2092     <over>2</box>)
2093     </math>
2094    
2095     The BOX element can be used to generally group items and can be thought
2096     of as non-printing parentheses. The OVER element is optional and
2097     divides the box into numerator and denomina- tor. The ARRAY element is
2098     used to specify arrays for expressions like:
2099    
2100     ( |x x | )
2101     ( | 11 12| )
2102     ( | | )
2103     ( |x x | )
2104     ( | 21 22| )
2105     ( )
2106     ( y )
2107    
2108    
2109     Internet Draft 37 November 1993
2110     HTML+ Document Format Raggett
2111    
2112    
2113     ( )
2114     ( z )
2115    
2116     The ARRAY element has a single attribute ALIGN which specifies the
2117     number of columns and the alignment of items within the columns. For
2118     each column there is a single letter that specifies how items in that
2119     column should be positioned: c for centered, l for flush left or r for
2120     flush right. Each item in the array must follow an <ITEM> element.
2121    
2122     The preceding example is represented by:
2123    
2124     <math>
2125     (<array align="c"> <item>
2126     &ldet;<array align="cc">
2127     <item>x<sub>11</sub>
2128     <item>x<sub>12</sub>
2129     <item>x<sub>21</sub>
2130     <item>x<sub>22</sub>
2131     </array><rd>&rdet;
2132     <item> y <item> z
2133     </array>)
2134     </math>
2135    
2136     The browser is responsible for working out the vertical and horizontal
2137     spacing required for the array. Parentheses are stretched to match the
2138     size of the array. Arrays can be used only in the context of the MATH
2139     element. The TABLE element should be used for other contexts.
2140    
2141     Spaces are significant within the MATH element, and used for
2142     disambiguation, as can be seen in the following two examples:
2143    
2144     integral from i to j of x &int;<sub>i</sub>i<sup>j</sup> x
2145    
2146     j
2147     integral of x &int; <sub>i</sub>i<sup>j</sup>x
2148     i
2149    
2150     Authors can adjust the default horizontal spacing with the ISO
2151     entities: &thinsp; for thin space (1/6 em) and &hairsp; for hair space.
2152     Horizontal, diagonal and vertical ellipsis are possible with &hellip;
2153     &dellip; and &vellip; respectively. Common functions like sin, log and
2154     tanh should be rendered in a non-italic font. These functions are
2155     defined by their entity namesakes. Additional elements are needed to
2156     represent roots and for over and under lining.
2157    
2158     An open question is how to render maths on dumb terminals. One approach
2159     is to translate into an existing convention such as Mathematica.
2160     Another is to write equations as they would be spoken aloud. For GUI
2161     displays, browsers need to be able to show characters in at least two
2162     point sizes as well as being able to stretch parentheses and integral
2163     signs etc. to various sizes. The processing time needed to size and
2164    
2165    
2166     Internet Draft 38 November 1993
2167     HTML+ Document Format Raggett
2168    
2169    
2170     position symbols suggests that caching may be useful to speed up
2171     subsequent scrolling and refresh operations.
2172    
2173     Comments from mathematicians are welcomed. Widespread support for
2174     formulae is likely to be delayed until most platforms support the
2175     relevant symbols fonts (or Unicode).
2176    
2177     13 Indexing
2178    
2179     A good index plays an important role in helping you find your way to
2180     the material you need. It allows you to type in one or more keywords to
2181     see a list of matching topics. The ability to view an index directly
2182     allows you to gain a feeling for what is covered, and lets you dip in
2183     and out of the associated document. Full text indexes like WAIS are
2184     easy to create, but don't give you this flexibility since the index
2185     itself cannot be viewed directly.
2186    
2187     Generating a conventional index for a document is a skilled task, and
2188     HTML+ allows authors to include directives for automatically creating
2189     hypertext indexes. These directives can be included in many HTML+
2190     elements, such as headers, paragraphs and character emphasis using the
2191     INDEX attribute. This allows each such element to be referenced in the
2192     index under primary or secondary keys, e.g.
2193    
2194     <h3 id="z23" index="Radiation damage/shielding from as difficult">
2195     Radiation shielding</h3>
2196    
2197     This can be used to generate an index like:
2198    
2199     Radiation damage
2200     classical target theory
2201     dominance of
2202     in molecular mills
2203     shielding from as difficult
2204     simple lifetime model
2205     track-structure lifetime model
2206    
2207     Radicals
2208     and so on ...
2209    
2210     In many cases, a given key will be associated with more than one part
2211     of the document. In this case you can either use secondary keys to
2212     disambiguate the references, as shown above, or allow the indexing
2213     program to generate its own names for each reference, e.g. (a), (b),
2214     (c), ...
2215    
2216     The indexing program creates an HTML+ file that can then be linked to
2217     the documents it was produced from. The program may also generate a
2218     list of references from occurrences of the CITE element. These can be
2219     simply ordered alphabetically. Sophisticated bibliographic references
2220     are beyond the scope of HTML+ as they require a much richer system of
2221    
2222    
2223     Internet Draft 39 November 1993
2224     HTML+ Document Format Raggett
2225    
2226    
2227     markup.
2228    
2229     14 Document declarations
2230    
2231     It is recommended that HTML+ documents start with the following
2232     external identifier, indicating that the document conforms to the HTML+
2233     DTD. This will ensure that other SGML parsers can process HTML+
2234     documents, without needing to include the DTD with each document.
2235    
2236     <!DOCTYPE htmlplus PUBLIC "-//Internet/RFC xxxx//EN">
2237    
2238     There are several elements that can only occur at the start of the
2239     document before any headers or text elements:
2240    
2241     14.1 HTMLPLUS
2242    
2243     This element if present must follow immediately after the DOCTYPE
2244     declaration. It can be used to disable form filling:
2245    
2246     <htmplus forms=off>
2247    
2248     Another idea is to provide a VERSION attribute for specifying the
2249     version number of HTML+ in used by this document. This would provide an
2250     alternative to including the version number in the public name given
2251     with the DOCTYPE element.
2252    
2253     14.2 The HEAD and BODY elements
2254    
2255     These may be used to delimit the document declarations and document
2256     body with the HEAD and BODY elements respectively, e.g.
2257    
2258     <HEAD>
2259     <ISINDEX>
2260     <LINK REL="Next" HREF="...">
2261     etc.
2262     </HEAD>
2263    
2264     <BODY>
2265     body elements go here
2266     </BODY>
2267    
2268     14.3 TITLE
2269    
2270     This element is used to define the title of the current document. and
2271     is often used as the win- dow banner for window-based displays. There
2272     may be only one title in any node, and it should identify the content
2273     of the node in a fairly wide context. No markup is permitted within
2274     title text, although character entity references may be used for
2275     accented characters etc.
2276    
2277     14.4 ISINDEX
2278    
2279    
2280     Internet Draft 40 November 1993
2281     HTML+ Document Format Raggett
2282    
2283    
2284    
2285     The ISINDEX element specifies that the URL given with the HREF
2286     attribute is searchable, e.g. <ISINDEX HREF="glossary.html">. If the
2287     HREF attribute is missing, the URL for this document is assumed.
2288     Servers may also indicate that the current document is searchable via
2289     the HTTP headers returned with the document. Browsers should allow
2290     users to enter a search string of one or more keywords. When the user
2291     presses the Return key, the browser maps any spaces to "+", and
2292     appends this string to the designated URL and sends it to the server,
2293     e.g.
2294    
2295     URL?word+word+word
2296    
2297     This mechanism has to a large extent been superseded by the FORM
2298     element. There are still good reasons for keeping it in HTML+. In
2299     particular, when reading a long document, having the search field
2300     always visible, makes it much easier for people to enter search
2301     strings, than if they first had to scroll to the part of the document
2302     which included a search form.
2303    
2304     14.5 NEXTID
2305    
2306     The NEXTID element is used by browsers that automatically generate
2307     identifiers for anchor points. It specifies the next identifier to use,
2308     to avoid possible confusion with older (deleted) values, e.g. <nextid
2309     n="id56">. The identifier should take the form of zero or more letters
2310     followed by one or more digits. The numeric suffix should be
2311     incremented to generate succes- sive identifiers.
2312    
2313     14.6 BASE
2314    
2315     The HREF attribute of the BASE element gives the full URL of the
2316     document, and is added by the browser when the user makes a local copy.
2317     Keeping the full URL is essential when subsequently viewing the copied
2318     document as it allows relative URLs to be resolved to their original
2319     references, e.g. <BASE HREF=URL>.
2320    
2321     14.7 LINK
2322    
2323     This provides a means of describing the relationship between this
2324     document and other documents, and has the same attributes as the <A>
2325     element (see section 5.2). A document can have multiple LINK elements.
2326     Typical uses are to indicate authorship, related indexes and
2327     glossaries, older or more recent versions etc. Another use is to
2328     indicate a stylesheet that contains the author's layout preferences,
2329     e.g. for headers and multi-columns displays. Links can also be used to
2330     indicate a static tree structure of documents with relationships such
2331     as "parent", "next" and "previous", e.g. <LINK HREF=URL REL="next">
2332    
2333     The standard values for the REL attribute are (case insensitive):
2334    
2335    
2336    
2337     Internet Draft 41 November 1993
2338     HTML+ Document Format Raggett
2339    
2340    
2341     UseIndex The linked document can be used as an index for
2342     this document. There may be several such indexes.
2343     The TITLE attribute should be used to name each
2344     index, e.g. in menus and dialog boxes. This
2345     relationship implies the document is searchable,
2346     and the browser should provide a means for users
2347     to type in one or more keywords. The index may be
2348     a full text WAIS index or a conventional hypertext-
2349     based index.
2350    
2351     UseGlossary The linked document can be used to answer glossary
2352     queries for this document. Typically invoked by a
2353     double click on a word, or by drag selection,
2354     followed by clicking a menu item. There may be
2355     several such indexes. The TITLE attribute should be
2356     used to name each index, e.g. in menus and dialog
2357     boxes.
2358    
2359     Contents The linked document acts as a contents page for a
2360     number of related documents. The browser should make
2361     this available as a button on a toolbar or as an
2362     entry in a navigation menu. The TITLE attribute can
2363     be used to override the default "Contents" name.
2364    
2365     Next The linked document is next on a path of documents.
2366     Browsers should make this available as a button on a
2367     toolbar or as an entry in a navigation menu.
2368    
2369     Previous The linked document is the previous one to the
2370     current document on a path of documents. Browsers
2371     should make this available as a button on a toolbar
2372     or as an entry in a navigation menu.
2373    
2374     Parent The linked document is at the next level up in a
2375     hierarchy of documents. Browsers should make this
2376     available as a button on a toolbar or as an entry
2377     in a navigation menu. There may be several such
2378     parents. The TITLE attribute should be used to
2379     name each such document.
2380    
2381     Bookmark The URL specified by the HREF attribute is a
2382     bookmark, which is named by the TITLE attribute.
2383     Browsers should make these available as buttons on
2384     a toolbar or as entries in a navigation menu.
2385    
2386     Made Defines who is the "maker" of this document. The
2387     HREF attribute should give an appropriate URL e.g.
2388     "mailto:dsr@hplb.hpl.hp.com". Browsers can use
2389     this to allow people to mail or post comments to
2390     the author of the document.
2391    
2392    
2393    
2394     Internet Draft 42 November 1993
2395     HTML+ Document Format Raggett
2396    
2397    
2398     Help Associates a help document with this node.
2399    
2400     Sometimes it may be useful to specify a hypertext link separately from
2401     the text associated with the start of the link. For example a sidebar
2402     could be associated with a given paragraph as follows:
2403    
2404     <LINK IDREF="z36" REL="Sidebar" HREF="sidebar.html">
2405    
2406     The IDREF attribute localizes the link to an element in the current
2407     document with a specific identifier (as defined with the ID attribute).
2408     In the absence of the IDREF attribute, the link is associated with the
2409     current document as a whole.
2410    
2411     Other suggestions for LINK currently lie outside this proposal, pending
2412     further work. In some cases, LINK elements may be implied by the
2413     context in which this document was reached. This is explained in
2414     section 15.
2415    
2416     15 Dealing with Large Documents
2417    
2418     Many classic works are available over the Internet, now that their
2419     copyright has expired. Downloading these as large documents is time
2420     consuming, and a better strategy is to split them up into smaller
2421     pieces. Other people have lots of paper documents and wish to make them
2422     available electronically. While it is easy to scan these documents in,
2423     the size of the images makes them tedious to transfer over the network.
2424     Once again, time can be saved by avoiding the need to download the
2425     whole document at once. HTML+ makes it easy to do this with explicit or
2426     implicit links between the pieces that make up the complete document.
2427    
2428     A book might have the following pieces:
2429    
2430     o `Cover page'
2431    
2432     o About the author
2433    
2434     o Copyright and publishing details
2435    
2436     o Table of contents
2437    
2438     o Foreword
2439    
2440     o Preface
2441    
2442     o Acknowledgement
2443    
2444     o One or more chapters
2445    
2446     o One or more appendices
2447    
2448     o Bibliography
2449    
2450    
2451     Internet Draft 43 November 1993
2452     HTML+ Document Format Raggett
2453    
2454    
2455    
2456     o Glossary
2457    
2458     o Index
2459    
2460     Each of these could be held as separate HTML+ subdocuments. The table
2461     of contents should obviously include hypertext links to other parts of
2462     the book rather than page numbers. You can define a linear sequence
2463     through each of these subdocuments by including LINK elements with
2464     REL=NEXT and REL=PREVIOUS. This will allow readers to read through each
2465     part of the book in turn. You should also include LINKs to the table of
2466     contents (REL=CONTENTS) and other key parts (using REL=BOOKMARK).
2467    
2468     Generating a hypertext version of the index may prove time consuming,
2469     and it may be simpler to offer a full text search facility instead. The
2470     INDEX attribute can be used with many HTML+ elements to facilitate
2471     automatic generation of a conventional looking index, see section 13.
2472    
2473     Implicit links are useful when you want to reuse a given subdocument in
2474     another independent book, and for non-HTML+ formats such as scanned
2475     page images. To define implicit links, you need to first create a HTML+
2476     document such as a table of contents, and to make each entry into a
2477     hypertext link using the <A> element with the attribute
2478     REL="SUBDOCUMENT". When the user follows one of these links, the
2479     browser scans the current document to locate the next <A> element with
2480     the subdocument relationship. If it reaches the end of the document it
2481     looks for a LINK element with REL=NEXT. This procedure is used to imply
2482     a LINK element in the retrieved subdocument. A similar process is used
2483     to imply a LINK element with REL=PREVIOUS. The other links for the
2484     current document are simply inherited, i.e. any bookmarks, glossary or
2485     index links that hold for the table of contents, also hold for the
2486     subdocument.
2487    
2488     The browser then retrieves the subdocument and merges the implied LINKs
2489     with any that are given explicitly. If the user now presses the "Next"
2490     button on the toolbar (or menu), the browser follows the implicit link
2491     to the next subdocument. The browser needs to look again at the parent
2492     document to find the new next subdocument. This mechanism is difficult
2493     to explain, but simple to write documents for. All that authors need to
2494     do, is to remember to include the subdocument relationship when
2495     defining hypertext links.
2496    
2497     For a hundred page scanned document where each page is held as a
2498     separate file, the "table of contents" is going to be pretty dull, and
2499     there is little point creating it as an HTML+ node. Instead, you should
2500     use an HTTP server which passes the missing LINK elements as header
2501     fields for each page image. The suggested representation for these
2502     header fields uses the same attributes and syntax as the LINK element:
2503    
2504     WWW-Link: REL="Next" HREF="http://info.cern.ch/...."
2505    
2506    
2507    
2508     Internet Draft 44 November 1993
2509     HTML+ Document Format Raggett
2510    
2511    
2512     There could be several WWW-Link: headers, one for each implied LINK.
2513     This idea puts the burden on the server to supply such links as
2514     appropriate to each requested document.
2515    
2516     16 Acknowledgements
2517    
2518     I would like to thank the many people on the www-talk mailing list who
2519     have contributed to the design of HTML+ and to the management of HP
2520     Labs for their support during this work.
2521    
2522     David Raggett, Hewlett Packard Laboratories, October 1993.
2523    
2524     17 References
2525    
2526     "Hypertext Markup Language (HTML)", Tim Berners-Lee, January 1993.
2527     URL=ftp://info.cern.ch/pub/www/doc/html-spec.ps
2528     or http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html
2529    
2530     "Uniform Resource Locators", Tim Berners-Lee, January 1992.
2531     URL=ftp://info.cern.ch/pub/www/doc/url7a.ps
2532     or http://info.cern.ch/hypertext/WWW/Addressing/Addressing.html
2533    
2534     "Protocol for the Retrieval and Manipulation of Texual and Hypermedia
2535     Information",
2536     Tim Berners-Lee, 1993.
2537     URL=ftp://info.cern.ch/pub/www/doc/http-spec.ps
2538     or http://info.cern.ch/hypertext/WWW/Protocols/HTTP/HTTP2.html
2539    
2540     "The SGML Handbook", Charles F. GoldFarb, pub. 1990 by the Clarendon
2541     Press, Oxford.
2542    
2543    
2544    
2545    
2546    
2547    
2548    
2549    
2550    
2551    
2552    
2553    
2554    
2555    
2556    
2557    
2558    
2559    
2560    
2561    
2562    
2563    
2564    
2565     Internet Draft 45 November 1993
2566     HTML+ Document Format Raggett
2567    
2568    
2569     Appendix I
2570     ==========
2571    
2572     The HTML+ Document Type Definition (DTD). The prelim-
2573     inaries are taken from the HTML DTD and declares the
2574     character set as Latin-1, disables markup minimisation
2575     and sets limits for tag/attribute names to 34 characters,
2576     and attribute values to a maximum of 1024 characters.
2577    
2578     <!SGML "ISO 8879:1986" -- Document Type Definition for the HyperText
2579     Markup Language Plus for use with the World Wide Web application
2580     (HTML+ DTD). These initial settings are take from the HTML DTD.
2581    
2582     NOTE: This is a definition of HTML with respect to
2583     SGML, and assumes an understanding of SGML terms.
2584     -- CHARSET
2585     BASESET "ISO 646:1983//CHARSET
2586     International Reference Version (IRV)//ESC 2/5 4/0"
2587     DESCSET 0 9 UNUSED
2588     9 2 9
2589     11 2 UNUSED
2590     13 1 13
2591     14 18 UNUSED
2592     32 95 32
2593     127 1 UNUSED
2594     BASESET "ISO Registration Number 100//CHARSET
2595     ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
2596     DESCSET 128 32 UNUSED
2597     160 95 32
2598     255 1 UNUSED
2599    
2600     CAPACITY SGMLREF
2601     TOTALCAP 150000
2602     GRPCAP 150000
2603    
2604     SCOPE DOCUMENT SYNTAX
2605     SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
2606     19 20 21 22 23 24 25 26 27 28 29 30 31 127 255
2607     BASESET "ISO 646:1983//CHARSET
2608     International Reference Version (IRV)//ESC 2/5 4/0"
2609     DESCSET 0 128 0
2610     FUNCTION RE 13
2611     RS 10
2612     SPACE 32
2613     TAB SEPCHAR 9
2614     NAMING LCNMSTRT ""
2615     UCNMSTRT ""
2616     LCNMCHAR ".-"
2617     UCNMCHAR ".-"
2618     NAMECASE GENERAL YES
2619     ENTITY NO
2620    
2621    
2622     Internet Draft 46 November 1993
2623     HTML+ Document Format Raggett
2624    
2625    
2626     DELIM GENERAL SGMLREF
2627     SHORTREF SGMLREF
2628     NAMES SGMLREF
2629     QUANTITY SGMLREF
2630     NAMELEN 34
2631     TAGLVL 100
2632     LITLEN 1024
2633     GRPGTCNT 150
2634     GRPCNT 64
2635    
2636     FEATURES
2637     MINIMIZE
2638     DATATAG NO
2639     OMITTAG NO
2640     RANK NO
2641     SHORTTAG NO
2642     LINK
2643     SIMPLE NO
2644     IMPLICIT NO
2645     EXPLICIT NO
2646     OTHER
2647     CONCUR NO
2648     SUBDOC NO
2649     FORMAL YES
2650     APPINFO NONE
2651     >
2652     <!DOCTYPE HTMLPLUS [
2653     <!-- DTD for HTML+
2654     Markup minimisation should be avoided, otherwise the default <!SGML>
2655     declaration is fine. Browsers should be forgiving of markup errors.
2656    
2657     Common Attributes:
2658    
2659     id the id attribute allows authors to name elements such as headers
2660     and paragraphs as potential destinations for links. Note that
2661     links don't specify points, but rather extended objects.
2662     index allows authors to specify how given headers etc should be
2663     indexed as primary or secondary keys, where "/" separates primary
2664     from secondary keys, ";" separates multiple entries
2665     -->
2666     <!-- ENTITY DECLARATIONS
2667     <!ENTITY % foo "X | Y | Z"> is a macro definition for parameters and
2668     in subsequent statements, the string "%foo;" is expanded to "X | Y | Z"
2669    
2670     Various classes of SGML text types:
2671    
2672     #CDATA text which doesn't include markup or entity references
2673     #RCDATA text with entity references but no markup
2674     #PCDATA text occurring in a context in which markup and entity
2675     references may occur.
2676     -->
2677    
2678    
2679     Internet Draft 47 November 1993
2680     HTML+ Document Format Raggett
2681    
2682    
2683     <!ENTITY % URL "CDATA" -- a URL or URN designating a hypertext node -->
2684     <!ENTITY % emph1 "I|B|U|S|SUP|SUB|TT">
2685     <!ENTITY % emph2 "Q|CITE|PERSON|ACRONYM|ABBREV|EM|STRONG">
2686     <!ENTITY % emph3 "CMD|ARG|KBD|VAR|DFN|CODE|SAMP|REMOVED|ADDED">
2687     <!ENTITY % emph "%emph1;|%emph2;|%emph3;">
2688     <!ENTITY % misc "RENDER|FOOTNOTE|MARGIN|INPUT|TEXTAREA|SELECT">
2689     <!ENTITY % text "#PCDATA|A|IMG|IMAGE|%emph;|%misc;|BR|CHANGED">
2690     <!ENTITY % paras "P|PRE|LIT|FIG">
2691     <!ENTITY % lists "UL|OL|DL|MENU|DIR">
2692     <!ENTITY % block "TABLE|FORM|MATH|NOTE|QUOTE|ABSTRACT|BYLINE|HR">
2693     <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
2694     <!ENTITY % table "%text;|P|%heading;|%lists;">
2695     <!ENTITY % math "BOX|%text;">
2696     <!ENTITY % main "%heading;|%block;|%lists;|%paras;|%text;">
2697     <!ENTITY % setup "(TITLE? & ISINDEX? & NEXTID? & LINK* & BASE?)">
2698    
2699     <!-- Basic types of elements:
2700     <!ELEMENT tagname - - CONTENT> elements needing end tags
2701     <!ELEMENT tagname - O CONTENT> elements with optional end tags
2702     <!ELEMENT tagname - O EMPTY> elements without content or end tags
2703    
2704     The content definition is:
2705     - an entity definition as defined above
2706     - a tagname
2707     - (brackets enclosing the above)
2708     These may be combined with the operators:
2709     A* A occurs zero or more times
2710     A+ A occurs one or more times
2711     A|B implies either A or B
2712     A? A occurs zero or one times
2713     A,B implies first A then B
2714     A&B either or both A and B (in either order)
2715     -->
2716    
2717     <!ELEMENT HTMLPLUS O O ((HEAD, BODY) | ((%setup;), (%main;)*))>
2718     <!ATTLIST HTMLPLUS
2719     version CDATA #IMPLIED -- the HTML+ version number --
2720     forms (on|off) on -- used to disable form filling -->
2721    
2722     <!ELEMENT HEAD - - (%setup;) -- delimits document wide properties -->
2723     <!ELEMENT BODY - - (%main;)* -- delimits the document's body -->
2724    
2725     <!-- Document title -->
2726     <!ELEMENT TITLE - - (#PCDATA | %emph;)+>
2727     <!ATTLIST TITLE
2728     id ID #IMPLIED -- link destination --
2729     lang CDATA #IMPLIED -- ISO language abbreviation --
2730     index CDATA #IMPLIED -- entries for index compilation -->
2731    
2732     <!-- Document headers -->
2733     <!ELEMENT (%heading;) - - (#PCDATA | %emph;)+>
2734    
2735    
2736     Internet Draft 48 November 1993
2737     HTML+ Document Format Raggett
2738    
2739    
2740     <!ATTLIST (%heading;)
2741     id ID #IMPLIED -- defines link destination --
2742     lang CDATA #IMPLIED -- ISO language abbreviation --
2743     index CDATA #IMPLIED -- entries for index compilation -->
2744    
2745     <!-- character emphasis -->
2746     <!ELEMENT (%emph;) - - (%text;)*>
2747     <!ATTLIST (%emph;)
2748     id ID #IMPLIED -- link destination --
2749     lang CDATA #IMPLIED -- ISO language abbreviation --
2750     index CDATA #IMPLIED -- entries for index compilation -->
2751    
2752     <!ELEMENT (FOOTNOTE|MARGIN) - - (%text;)* -(FOOTNOTE|MARGIN)>
2753     <!ATTLIST (FOOTNOTE|MARGIN)
2754     id ID #IMPLIED -- link destination --
2755     lang CDATA #IMPLIED -- ISO language abbreviation --
2756     index CDATA #IMPLIED -- entries for index compilation -->
2757    
2758     <!ELEMENT RENDER -O (EMPTY) -- how to render unknown elements -->
2759     <!ATTLIST RENDER
2760     tag CDATA #IMPLIED -- tag name --
2761     style CDATA #IMPLIED -- comma separated list of styles -->
2762    
2763     <!-- Paragraphs which act as containers for the following text -->
2764     <!ELEMENT P - O (L|%text;)+>
2765     <!ATTLIST P
2766     id ID #IMPLIED -- link destination --
2767     align (left|indent|center|right|justify) left
2768     lang CDATA #IMPLIED -- ISO language abbreviation --
2769     index CDATA #IMPLIED -- entries for index compilation -->
2770     <!ELEMENT L - O (%text;)+>
2771     <!ATTLIST L
2772     id ID #IMPLIED -- link destination --
2773     align (left|indent|center|right|justify) left
2774     lang CDATA #IMPLIED -- ISO language abbreviation --
2775     index CDATA #IMPLIED -- entries for index compilation -->
2776    
2777     <!ELEMENT HR - O EMPTY -- Horizontal Rule -->
2778     <!ELEMENT BR - O EMPTY -- line break in normal text-->
2779    
2780     <!ELEMENT PRE - - (TAB|%text;)+ -- preformatted fixed pitch text -->
2781     <!ATTLIST PRE
2782     id ID #IMPLIED -- link destination --
2783     lang CDATA #IMPLIED -- ISO language abbreviation --
2784     index CDATA #IMPLIED -- entries for index compilation -->
2785    
2786     <!ELEMENT LIT - - (TAB|%text;)+ -- literal variable pitch text -->
2787     <!ATTLIST LIT
2788     id ID #IMPLIED -- link destination --
2789     lang CDATA #IMPLIED -- ISO language abbreviation --
2790     index CDATA #IMPLIED -- entries for index compilation -->
2791    
2792    
2793     Internet Draft 49 November 1993
2794     HTML+ Document Format Raggett
2795    
2796    
2797    
2798     <!ELEMENT TAB - O EMPTY -- tabs for imported text -->
2799     <!ATTLIST TAB
2800     at NUMBER #IMPLIED -- measured in widths of an M --
2801     align (left|center|right|decimal) left -- tab alignment -->
2802    
2803     <!ELEMENT QUOTE - - (P|%text;)* -- block quote -->
2804     <!ATTLIST QUOTE
2805     id ID #IMPLIED -- link destination --
2806     lang CDATA #IMPLIED -- ISO language abbreviation --
2807     index CDATA #IMPLIED -- entries for index compilation -->
2808    
2809     <!ELEMENT ABSTRACT - - (P|%text;)* -- document summary -->
2810     <!ATTLIST ABSTRACT
2811     id ID #IMPLIED -- link destination --
2812     lang CDATA #IMPLIED -- ISO language abbreviation --
2813     index CDATA #IMPLIED -- entries for index compilation -->
2814     <!ELEMENT BYLINE - - (P|%text;)* -- info on author -->
2815     <!ATTLIST BYLINE
2816     id ID #IMPLIED -- link destination --
2817     lang CDATA #IMPLIED -- ISO language abbreviation --
2818     index CDATA #IMPLIED -- entries for index compilation -->
2819     <!ELEMENT NOTE - - (P|%text;)* -- admonishment -->
2820     <!ATTLIST NOTE
2821     id ID #IMPLIED -- link destination --
2822     role CDATA #IMPLIED -- eg Tip, Note, Warning, or Error --
2823     lang CDATA #IMPLIED -- ISO language abbreviation --
2824     index CDATA #IMPLIED -- entries for index compilation -->
2825    
2826     <!ELEMENT (ADDRESS|BLOCKQUOTE) - - (%text;|P)* -- needed by HTML -->
2827    
2828     <!-- Lists which can be nested -->
2829     <!ELEMENT OL - - (LI | UL | OL)+ -- ordered list -->
2830     <!ATTLIST OL
2831     id ID #IMPLIED
2832     compact (compact) #IMPLIED
2833     lang CDATA #IMPLIED -- ISO language abbreviation --
2834     index CDATA #IMPLIED -- entries for index compilation -->
2835     <!ELEMENT UL - - (LI | UL | OL)+ -- unordered list -->
2836     <!ATTLIST UL
2837     id ID #IMPLIED -- link destination --
2838     compact (compact) #IMPLIED -- reduced interitem spacing --
2839     plain (plain) #IMPLIED -- suppress bullets --
2840     wrap (vert|horiz) vert -- multicolumn list wrap style --
2841     lang CDATA #IMPLIED -- ISO language abbreviation --
2842     index CDATA #IMPLIED -- entries for index compilation -->
2843    
2844     <!-- List items for UL and OL lists -->
2845     <!ELEMENT LI - O (DL|P|%text;)+>
2846     <!ATTLIST LI
2847     id ID #IMPLIED
2848    
2849    
2850     Internet Draft 50 November 1993
2851     HTML+ Document Format Raggett
2852    
2853    
2854     src %URL; #IMPLIED -- icon for use in place of bullet --
2855     lang CDATA #IMPLIED -- ISO language abbreviation --
2856     index CDATA #IMPLIED -- entries for index compilation -->
2857    
2858     <!ELEMENT MENU - - (LI)* -- plain single column list -->
2859     <!ATTLIST MENU
2860     id ID #IMPLIED
2861     lang CDATA #IMPLIED -- ISO language abbreviation --
2862     index CDATA #IMPLIED -- entries for index compilation -->
2863     <!ELEMENT DIR - - (LI)* -- plain multi column list -->
2864     <!ATTLIST DIR
2865     id ID #IMPLIED
2866     lang CDATA #IMPLIED -- ISO language abbreviation --
2867     index CDATA #IMPLIED -- entries for index compilation -->
2868    
2869     <!-- Definition Lists (terms + definitions) -->
2870     <!ELEMENT DL - - (DT+,DD)+>
2871     <!ATTLIST DL
2872     id ID #IMPLIED
2873     compact (compact) #IMPLIED
2874     lang CDATA #IMPLIED -- ISO language abbreviation --
2875     index CDATA #IMPLIED -- entries for index compilation -->
2876    
2877     <!ELEMENT DT - O (%text;)+ -- term text -- >
2878     <!ELEMENT DD - O (P|UL|OL|DL|%text;)+ -- definition text -- >
2879     <!ATTLIST (DT|DD)
2880     id ID #IMPLIED
2881     lang CDATA #IMPLIED -- ISO language abbreviation --
2882     index CDATA #IMPLIED -- entries for index compilation -->
2883    
2884     <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
2885     <!ATTLIST CAPTION
2886     id ID #IMPLIED
2887     lang CDATA #IMPLIED -- ISO language abbreviation --
2888     index CDATA #IMPLIED -- entries for index compilation -->
2889    
2890     <!ELEMENT TABLE - - (CAPTION?, (TH|TD|TR)*) -- mixed headers & data -->
2891     <!ATTLIST TABLE
2892     id ID #IMPLIED
2893     border (border) #IMPLIED -- draw borders --
2894     lang CDATA #IMPLIED -- ISO language abbreviation --
2895     index CDATA #IMPLIED -- entries for index compilation -->
2896    
2897     <!ELEMENT TH - O (%table;)* -- a header cell -->
2898     <!ATTLIST TH
2899     colspan NUMBER 1 -- columns spanned --
2900     rowspan NUMBER 1 --. rows spanned --
2901     align (left|center|right) center -- alignment in cell --
2902     lang CDATA #IMPLIED -- ISO language abbreviation -->
2903     <!ELEMENT TD - O (%table;)* -- a data cell -->
2904     <!ATTLIST TD
2905    
2906    
2907     Internet Draft 51 November 1993
2908     HTML+ Document Format Raggett
2909    
2910    
2911     colspan NUMBER 1 -- columns spanned --
2912     rowspan NUMBER 1 --. rows spanned --
2913     align (left|center|right) center -- alignment in cell --
2914     lang CDATA #IMPLIED -- ISO language abbreviation -->
2915     <!ELEMENT TR - O (EMPTY) -- row separator -->
2916     <!ATTLIST TR id ID #IMPLIED>
2917    
2918     <!ELEMENT FORM - - (MH, (%main;)*) -(FORM) -- forms can't be nested -->
2919     <!ATTLIST FORM
2920     id ID #IMPLIED
2921     action %URL; #IMPLIED -- defaults for URL for current doc --
2922     method CDATA #IMPLIED -- PUT, POST, DELETE etc. --
2923     lang CDATA #IMPLIED -- ISO language abbreviation --
2924     index CDATA #IMPLIED -- entries for index compilation -->
2925    
2926     <!ELEMENT MH - - CDATA -- one or more RFC 822 header fields -->
2927     <!ATTLIST MH hidden (hidden) #IMPLIED -- hide mail headers from view -->
2928    
2929     <!ELEMENT INPUT - O EMPTY>
2930     <!ATTLIST INPUT
2931     name CDATA #IMPLIED -- attribute name --
2932     type CDATA #IMPLIED -- a wide variety of field types --
2933     size CDATA #IMPLIED -- visible size of text fields --
2934     min NUMBER #IMPLIED -- for range controls --
2935     max NUMBER #IMPLIED -- for range controls or text fields --
2936     value CDATA #IMPLIED -- attribute value (altered by user) --
2937     checked (checked) #IMPLIED -- check boxes and radio buttons --
2938     disabled (disabled) #IMPLIED -- if grayed out --
2939     error (error) #IMPLIED -- if in error --
2940     src %URL; #IMPLIED -- for certain fields e.g. IMAGEs --
2941     align (top|middle|bottom) top -- for IMAGE fields only --
2942     lang CDATA #IMPLIED -- ISO language abbreviation -->
2943    
2944     <!ELEMENT TEXTAREA - - CDATA -- multi-line text fields -->
2945     <!ATTLIST TEXTAREA
2946     name CDATA #IMPLIED -- attribute name --
2947     cols NUMBER #IMPLIED -- visible width in characters --
2948     rows NUMBER #IMPLIED -- visible height in characters --
2949     disabled (disabled) #IMPLIED -- if grayed out --
2950     error (error) #IMPLIED -- if in error --
2951     lang CDATA #IMPLIED -- ISO language abbreviation -->
2952    
2953     <!ELEMENT SELECT - - (OPTION+) -- combo style selection lists -->
2954     <!ATTLIST SELECT
2955     name CDATA #IMPLIED -- attribute name --
2956     several (several) #IMPLIED -- permits multiple selections --
2957     error (error) #IMPLIED -- if in error --
2958     lang CDATA #IMPLIED -- ISO language abbreviation -->
2959    
2960     <!ELEMENT OPTION - - CDATA>
2961     <!ATTLIST OPTION
2962    
2963    
2964     Internet Draft 52 November 1993
2965     HTML+ Document Format Raggett
2966    
2967    
2968     selected (selected) #IMPLIED -- if initially selected --
2969     disabled (disabled) #IMPLIED -- if grayed out --
2970     lang CDATA #IMPLIED -- ISO language abbreviation -->
2971    
2972     <!ELEMENT FIG - - (CAPTION?,(%text;)*)>
2973     <!ATTLIST FIG
2974     id ID #IMPLIED
2975     align (left|center|right|float) float -- position --
2976     ismap (ismap) #IMPLIED -- server handles mouse clicks/drags --
2977     src %URL; #IMPLIED -- link to image data --
2978     index CDATA #IMPLIED -- entries for index compilation --
2979     lang CDATA #IMPLIED -- ISO language abbreviation -->
2980     <!ELEMENT IMG - O EMPTY>
2981     <!ATTLIST IMG
2982     src %URL; #REQUIRED -- where to get image data --
2983     align (top|middle|bottom) top -- top, middle or bottom --
2984     seethru CDATA #IMPLIED -- for chromakey --
2985     alt CDATA #IMPLIED -- description for text-only displays--
2986     ismap (ismap) #IMPLIED -- send mouse clicks/drags to server-->
2987     <!ELEMENT IMAGE - - (A|%text;)*>
2988     <!ATTLIST IMAGE
2989     src %URL; #REQUIRED -- where to get image data --
2990     align (top|middle|bottom) top -- top, middle or bottom --
2991     seethru CDATA #IMPLIED -- for transparency --
2992     ismap (ismap) #IMPLIED -- send mouse clicks/drags to server--
2993     lang CDATA #IMPLIED -- ISO language abbreviation -->
2994    
2995     <!-- proposal for representing formulae -->
2996     <!ELEMENT MATH - - (%math;)*>
2997     <!ATTLIST MATH id ID #IMPLIED>
2998     <!ELEMENT BOX - - ((%math;)*, OVER?, (%math;)*)>
2999     <!ELEMENT OVER - O EMPTY>
3000    
3001     <!ELEMENT CHANGED - O EMPTY -- for change bars -->
3002     <!ATTLIST CHANGED -- one of id and idref is always required --
3003     id ID #IMPLIED -- signals start of changes --
3004     idref IDREF #IMPLIED -- signals end of changes -->
3005    
3006     <!-- Hypertext Links from points within document nodes -->
3007     <!ELEMENT A - - (#PCDATA | IMG | EM | EMBED)*>
3008     <!ATTLIST A
3009     id ID #IMPLIED -- as target of link --
3010     name CDATA #IMPLIED -- needed by HTML--
3011     shape CDATA #IMPLIED -- points for shaped buttons --
3012     href %URL; #IMPLIED -- destination node --
3013     rel CDATA #IMPLIED -- forward relationship type --
3014     rev CDATA #IMPLIED -- reverse relationship type --
3015     methods CDATA #IMPLIED -- supported public methods --
3016     effect CDATA #IMPLIED -- replace/new/overlay/embed --
3017     print CDATA #IMPLIED -- reference/footnote/section --
3018     title CDATA #IMPLIED -- when otherwise unavailable --
3019    
3020    
3021     Internet Draft 53 November 1993
3022     HTML+ Document Format Raggett
3023    
3024    
3025     type CDATA #IMPLIED -- for presentation cues --
3026     size NAMES #IMPLIED -- for progress cues --
3027     lang CDATA #IMPLIED -- ISO language abbreviation -->
3028     <!-- Other kinds of relationships between documents -->
3029     <!ELEMENT LINK - O EMPTY>
3030    
3031     <!ATTLIST LINK
3032     idref IDREF #IMPLIED -- starting point --
3033     href %URL; #IMPLIED -- destination node --
3034     rel CDATA #IMPLIED -- forward relationship type --
3035     rev CDATA #IMPLIED -- reverse relationship type --
3036     methods CDATA #IMPLIED -- supported public methods -->
3037    
3038     <!-- Original document URL for resolving relative URLs -->
3039     <!ELEMENT BASE - O EMPTY>
3040     <!ATTLIST BASE HREF %URL; #IMPLIED>
3041    
3042     <!-- Signifies the document's URL accepts queries -->
3043     <!ELEMENT ISINDEX - O (EMPTY)>
3044     <!ATTLIST ISINDEX href %URL; #IMPLIED
3045     -- defaults to document's URL -->
3046    
3047     <!-- For use with autonumbering editors - don't reuse ids,
3048     allocate next one starting from this one -->
3049     <!ELEMENT NEXTID - O (EMPTY)>
3050     <!ATTLIST NEXTID N NAME #REQUIRED>
3051    
3052     <!-- Mnemonic character entities for 8 bit ANSI Latin-1
3053     ignore when using other character sets -->
3054     <!ENTITY iexcl "&#161;" -- inverted exclamation mark -->
3055     <!ENTITY cent "&#161;" -- cent sign -->
3056     <!ENTITY pound "&#163;" -- pound sign -->
3057     <!ENTITY yen "&#165;" -- yen sign -->
3058     <!ENTITY brvbar "&#166;" -- broken vertical bar -->
3059     <!ENTITY sect "&#167;" -- section sign -->
3060     <!ENTITY copy "&#169;" -- copyright sign -->
3061     <!ENTITY laquo "&#171;" -- angle quotation mark, left -->
3062     <!ENTITY raquo "&#187;" -- angle quotation mark, right -->
3063     <!ENTITY not "&#172;" -- negation sign -->
3064     <!ENTITY reg "&#174;" -- circled R registered sign -->
3065     <!ENTITY deg "&#176;" -- degree sign -->
3066     <!ENTITY plusmn "&#177;" -- plus or minus sign -->
3067     <!ENTITY sup2 "&#178;" -- superscript 2 -->
3068     <!ENTITY sup3 "&#179;" -- superscript 3 -->
3069     <!ENTITY micro "&#181;" -- micro sign -->
3070     <!ENTITY para "&#182;" -- paragraph sign -->
3071     <!ENTITY sup1 "&#185;" -- superscript 1 -->
3072     <!ENTITY middot "&#183;" -- center dot -->
3073     <!ENTITY frac14 "&#188;" -- fraction 1/4 -->
3074     <!ENTITY frac12 "&#189;" -- fraction 1/2 -->
3075     <!ENTITY iquest "&#191;" -- inverted question mark -->
3076    
3077    
3078     Internet Draft 54 November 1993
3079     HTML+ Document Format Raggett
3080    
3081    
3082     <!ENTITY frac34 "&#190;" -- fraction 3/4 -->
3083     <!ENTITY AElig "&#198;" -- capital AE diphthong (ligature) -->
3084     <!ENTITY Aacute "&#193;" -- capital A, acute accent -->
3085     <!ENTITY Acirc "&#194;" -- capital A, circumflex accent -->
3086     <!ENTITY Agrave "&#192;" -- capital A, grave accent -->
3087     <!ENTITY Aring "&#197;" -- capital A, ring -->
3088     <!ENTITY Atilde "&#195;" -- capital A, tilde -->
3089     <!ENTITY Auml "&#196;" -- capital A, dieresis or umlaut mark -->
3090     <!ENTITY Ccedil "&#199;" -- capital C, cedilla -->
3091     <!ENTITY ETH "&#208;" -- capital Eth, Icelandic -->
3092     <!ENTITY Eacute "&#201;" -- capital E, acute accent -->
3093     <!ENTITY Ecirc "&#202;" -- capital E, circumflex accent -->
3094     <!ENTITY Egrave "&#200;" -- capital E, grave accent -->
3095     <!ENTITY Euml "&#203;" -- capital E, dieresis or umlaut mark -->
3096     <!ENTITY Iacute "&#205;" -- capital I, acute accent -->
3097     <!ENTITY Icirc "&#206;" -- capital I, circumflex accent -->
3098     <!ENTITY Igrave "&#204;" -- capital I, grave accent -->
3099     <!ENTITY Iuml "&#207;" -- capital I, dieresis or umlaut mark -->
3100     <!ENTITY Ntilde "&#209;" -- capital N, tilde -->
3101     <!ENTITY Oacute "&#211;" -- capital O, acute accent -->
3102     <!ENTITY Ocirc "&#212;" -- capital O, circumflex accent -->
3103     <!ENTITY Ograve "&#210;" -- capital O, grave accent -->
3104     <!ENTITY Oslash "&#216;" -- capital O, slash -->
3105     <!ENTITY Otilde "&#213;" -- capital O, tilde -->
3106     <!ENTITY Ouml "&#214;" -- capital O, dieresis or umlaut mark -->
3107     <!ENTITY THORN "&#222;" -- capital THORN, Icelandic -->
3108     <!ENTITY Uacute "&#218;" -- capital U, acute accent -->
3109     <!ENTITY Ucirc "&#219;" -- capital U, circumflex accent -->
3110     <!ENTITY Ugrave "&#217;" -- capital U, grave accent -->
3111     <!ENTITY Uuml "&#220;" -- capital U, dieresis or umlaut mark -->
3112     <!ENTITY Yacute "&#221;" -- capital Y, acute accent -->
3113     <!ENTITY aacute "&#225;" -- small a, acute accent -->
3114     <!ENTITY acirc "&#226;" -- small a, circumflex accent -->
3115     <!ENTITY aelig "&#230;" -- small ae diphthong (ligature) -->
3116     <!ENTITY agrave "&#224;" -- small a, grave accent -->
3117     <!ENTITY amp "&amp;" -- ampersand -->
3118     <!ENTITY aring "&#229;" -- small a, ring -->
3119     <!ENTITY atilde "&#227;" -- small a, tilde -->
3120     <!ENTITY auml "&#228;" -- small a, dieresis or umlaut mark -->
3121     <!ENTITY ccedil "&#231;" -- small c, cedilla -->
3122     <!ENTITY eacute "&#233;" -- small e, acute accent -->
3123     <!ENTITY ecirc "&#234;" -- small e, circumflex accent -->
3124     <!ENTITY egrave "&#232;" -- small e, grave accent -->
3125     <!ENTITY eth "&#240;" -- small eth, Icelandic -->
3126     <!ENTITY euml "&#235;" -- small e, dieresis or umlaut mark -->
3127     <!ENTITY gt "&#62;" -- greater than -->
3128     <!ENTITY iacute "&#237;" -- small i, acute accent -->
3129     <!ENTITY icirc "&#238;" -- small i, circumflex accent -->
3130     <!ENTITY igrave "&#236;" -- small i, grave accent -->
3131     <!ENTITY iuml "&#239;" -- small i, dieresis or umlaut mark -->
3132     <!ENTITY lt "&lt;" -- less than -->
3133    
3134    
3135     Internet Draft 55 November 1993
3136     HTML+ Document Format Raggett
3137    
3138    
3139     <!ENTITY ntilde "&#241;" -- small n, tilde -->
3140     <!ENTITY oacute "&#243;" -- small o, acute accent -->
3141     <!ENTITY ocirc "&#244;" -- small o, circumflex accent -->
3142     <!ENTITY ograve "&#242;" -- small o, grave accent -->
3143     <!ENTITY oslash "&#248;" -- small o, slash -->
3144     <!ENTITY otilde "&#245;" -- small o, tilde -->
3145     <!ENTITY ouml "&#246;" -- small o, dieresis or umlaut mark -->
3146     <!ENTITY szlig "&#223;" -- small sharp s, German (sz ligature) -->
3147     <!ENTITY thorn "&#254;" -- small thorn, Icelandic -->
3148     <!ENTITY uacute "&#250;" -- small u, acute accent -->
3149     <!ENTITY ucirc "&#251;" -- small u, circumflex accent -->
3150     <!ENTITY ugrave "&#249;" -- small u, grave accent -->
3151     <!ENTITY uuml "&#252;" -- small u, dieresis or umlaut mark -->
3152     <!ENTITY yacute "&#253;" -- small y, acute accent -->
3153     <!ENTITY yuml "&#255;" -- small y, dieresis or umlaut mark -->
3154    
3155     <!-- The END -->
3156     ]>
3157    
3158    
3159    
3160    
3161    
3162    
3163    
3164    
3165    
3166    
3167    
3168    
3169    
3170    
3171    
3172    
3173    
3174    
3175    
3176    
3177    
3178    
3179    
3180    
3181    
3182    
3183    
3184    
3185    
3186    
3187    
3188    
3189    
3190    
3191    
3192     Internet Draft 56 November 1993
3193     HTML+ Document Format Raggett
3194    
3195    
3196     Appendix II
3197    
3198     The proposed character entities for HTML+ and their corresponding
3199     character codes for Unicode and the Adobe Latin-1 & Symbol
3200     character sets.
3201    
3202     [this table is only available in the <draft-raggett-www-html-00.ps>
3203     version]
3204    
3205     Many thanks to Bob Stayton for volunteering his time and effort to
3206     prepare this table.
3207    
3208    
3209    
3210    
3211    
3212    
3213    
3214    
3215    
3216    
3217    
3218    
3219    
3220    
3221    
3222    
3223    
3224    
3225    
3226    
3227    
3228    
3229    
3230    
3231    
3232    
3233    
3234    
3235    
3236    
3237    
3238    
3239    
3240    
3241    
3242    
3243    
3244    
3245    
3246    
3247    
3248    
3249     Internet Draft 57 November 1993
3250     HTML+ Document Format Raggett
3251    
3252    
3253     Appendix III
3254    
3255     ANSI C Code for testing if a point lies within a polygon. This may be
3256     freely used provided the original copyright message is retained in
3257     full.
3258    
3259     /* ** Reproduced with thanks from mapper 1.2 ** 7/26/93 Kevin Hughes,
3260     kevinh@pulua.hcc.hawaii.edu ** polygon code copyright 1992 by Eric
3261     Haines, erich@eye.com */
3262    
3263     #include <stdio.h>
3264    
3265     #define MAXLINE 500 #define MAXVERTS 100
3266    
3267     #define X 0 #define Y 1
3268    
3269     int pointinpoly(double point[2], double pgon[MAXVERTS][2]) {
3270     int i, numverts, inside_flag, xflag0;
3271     int crossings;
3272     double *p, *stop;
3273     double tx, ty, y;
3274    
3275     for (i = 0; pgon[i][X] != -1 && i < MAXVERTS; i++)
3276     ;
3277     numverts = i;
3278     crossings = 0;
3279    
3280     tx = point[X];
3281     ty = point[Y];
3282     y = pgon[numverts - 1][Y];
3283    
3284     p = (double *) pgon + 1;
3285     if ((y >= ty) != (*p >= ty))
3286     {
3287     if ((xflag0 = (pgon[numverts - 1][X] >= tx)) ==
3288     (*(double *) pgon >= tx))
3289     {
3290     if (xflag0)
3291     crossings++;
3292     }
3293     else
3294     {
3295     crossings += (pgon[numverts - 1][X] - (y - ty) *
3296     (*(double *) pgon - pgon[numverts - 1][X]) /
3297     (*p - y)) >= tx;
3298     }
3299     }
3300    
3301     stop = pgon[numverts];
3302    
3303     for (y = *p, p += 2; p < stop; y = *p, p += 2)
3304    
3305    
3306     Internet Draft 58 November 1993
3307     HTML+ Document Format Raggett
3308    
3309    
3310     {
3311     if (y >= ty)
3312     {
3313     while ((p < stop) && (*p >= ty))
3314     p += 2;
3315     if (p >= stop)
3316     break;
3317     if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx))
3318     {
3319     if (xflag0)
3320     crossings++;
3321     }
3322     else
3323     {
3324     crossings += (*(p - 3) - (*(p - 2) - ty) *
3325     (*(p - 1) - *(p - 3)) / (*p - *(p - 2))) >= tx;
3326     }
3327     }
3328     else
3329     {
3330     while ((p < stop) && (*p < ty))
3331     p += 2;
3332     if (p >= stop)
3333     break;
3334     if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx))
3335     {
3336     if (xflag0)
3337     crossings++;
3338     }
3339     else
3340     {
3341     crossings += (*(p - 3) - (*(p - 2) - ty) *
3342     (*(p - 1) - *(p - 3)) / (*p - *(p - 2))) >= tx;
3343     }
3344     }
3345     }
3346     inside_flag = crossings & 0x01;
3347     return (inside_flag);
3348     }
3349    
3350    
3351    
3352    
3353    
3354    
3355    
3356    
3357    
3358    
3359    
3360    
3361    
3362    
3363     Internet Draft 59 November 1993
3364     HTML+ Document Format Raggett
3365    
3366    
3367     Appendix IV
3368     ===========
3369    
3370     Alphabetically sorted list of HTML+ tags and their
3371     associated attribute names.
3372    
3373     A id, name, shape, href, rel, rev, methods,
3374     effect, print, title, type, size, lang
3375     ABBREV id, lang, index
3376     ABSTRACT id, lang, index
3377     ACRONYM id, lang, index
3378     ADDED id, lang, index
3379     ADDRESS
3380     ARG id, lang, index
3381     B id, lang, index
3382     BASE href
3383     BLOCKQUOTE
3384     BODY
3385     BOX
3386     BR
3387     BYLINE id, lang, index
3388     CAPTION id, lang, index
3389     CHANGED id, idref
3390     CITE id, lang, index
3391     CMD id, lang, index
3392     CODE id, lang, index
3393     DD id, lang, index
3394     DFN id, lang, index
3395     DIR id, lang, index
3396     DL id, compact, lang, index
3397     DT id, lang, index
3398     EM id, lang, index
3399     FIG id, align, ismap, src, index, lang
3400     FOOTNOTE id, lang, index
3401     FORM id, action, method, lang, index
3402     H1 id, lang, index
3403     H2 id, lang, index
3404     H3 id, lang, index
3405     H4 id, lang, index
3406     H5 id, lang, index
3407     H6 id, lang, index
3408     HEAD
3409     HTMLPLUS version, forms
3410     I id, lang, index
3411     IMAGE src, align, seethru, ismap, lang
3412     IMG src, align, seethru, alt, ismap
3413     INPUT name, type, size, min, max, value, checked,
3414     disabled, error, src, align, lang
3415     ISINDEX href
3416     KBD id, lang, index
3417     L id, align, lang, index
3418    
3419    
3420     Internet Draft 60 November 1993
3421     HTML+ Document Format Raggett
3422    
3423    
3424     LI id, src, lang, index
3425     LINK idref, href, rel, rev, methods
3426     LIT id, lang, index
3427     MARGIN id, lang, index
3428     MATH id
3429     MENU id, lang, index
3430     NEXTID n
3431     NOTE id, role, lang, index
3432     OL id, compact, lang, index
3433     OPTION selected, disabled, lang
3434     OVER
3435     P id, align, lang, index
3436     PERSON id, lang, index
3437     PRE id, lang, index
3438     Q id, lang, index
3439     QUOTE id, lang, index
3440     RENDER tag, style
3441     REMOVED id, lang, index
3442     S id, lang, index
3443     SAMP id, lang, index
3444     SELECT name, several, error, lang
3445     STRONG id, lang, index
3446     SUB id, lang, index
3447     SUP id, lang, index
3448     TAB at, align
3449     TABLE id, border, lang, index
3450     TD colspan, rowspan, align, lang
3451     TEXTAREA name, cols, rows, disabled, error, lang
3452     TH colspan, rowspan, align, lang
3453     TITLE id, lang, index
3454     TR id
3455     TT id, lang, index
3456     U id, lang, index
3457     UL id, compact, plain, wrap, lang, index
3458     VAR id, lang, index
3459    
3460    
3461    
3462    
3463    
3464    
3465    
3466    
3467    
3468    
3469    
3470    
3471    
3472    
3473    
3474    
3475    
3476    
3477     Internet Draft 61 November 1993
3478    

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24