/[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 - (show 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 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