comparison etc/sgml/html-3.dtd @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 <!--
2 html3.dtd
3
4 Document Type Definition for the HyperText Markup Language (HTML DTD)
5
6 Draft: Fri 24-Mar-95 09:46:33
7
8 Author: Dave Raggett <dsr@hplb.hpl.hp.com>
9
10 W3O is developing a testbed browser to provide practical
11 experience with HTML 3.0 before it becomes a standard.
12 See: http://www.w3.org/hypertext/WWW/Arena/
13
14 This is an open process and comments are welcomed on the
15 www-html mailing list.
16
17 Please use the following MIME content type:
18
19 Content-Type: text/html; version=3.0
20
21 This will allow clients to distinguish HTML 3.0 from current
22 HTML documents. This is most easily achieved by saving
23 files with the extension ".html3" or ".ht3" so that servers
24 can easily distinguish these files from HTML 2.0 files.
25
26 The entity HTML.Recommended can be used to give a more rigorous
27 version of the DTD suitable for use with SGML authoring tools.
28 The default version of the DTD offers a laxer interpretation,
29 e.g. allowing authors to omit leading <P> elements. You can
30 switch on the more rigorous version of the DTD by including
31 the following at the start of your HTML document.
32
33 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//"
34 [ <!ENTITY % HTML.Recommended "INCLUDE"> ] >
35
36
37 Design Objectives:
38
39 o Backwards compatibility with 2.0
40
41 o Tightening up HTML.Recommended and
42 moving more things to HTML.Deprecated
43
44 o Keep HTML - simple don't compete with CALS
45
46 o Make it practical for people to edit HTML 3.0
47 documents directly, i.e. avoid long names.
48
49 o Tables, figures and math from HTML+
50 with tweaks based on recent experience
51
52 o Client-side event handling for figures
53 and graphical form selection menus
54
55 o Add limited presentational controls with
56 a view to use of linked style sheets
57 (style overrides are supported)
58
59 o Compatibility with ICADD as per Yuri's suggestions
60
61 HTML 3.0 relies on linked style info to give authors
62 control over the appearence of documents. Such info is
63 placed in a linked style sheet, or as overrides in the
64 HTML document head, using the STYLE element. The generic
65 CLASS attribute can be used to subclass elements when
66 you want to use a different style from normal, e.g. you
67 might use <h2 class=bigcaps> for headers with enlarged
68 capital letters. Note that the class attribute has a
69 wider scope than just style changes, e.g. browsers could
70 provide the means for searching through documents,
71 restricting search according to element class values.
72
73 The DTD contains a small number of attributes for direct
74 control of basic alignment parameters; column widths for
75 tables; support for custom bullets, sequence numbering for
76 lists and headers; and text flow. These attributes offer
77 control over appearence which would be inconvenient to
78 express exclusively via associated style sheets.
79
80 The MD attribute for each hypertext or inline link specifies a
81 message digest such as MD5 for the linked object and is needed
82 to ensure someone hasn't tampered with a linked document.
83
84 History:
85
86 24th March '95
87
88 Changed ROLE->CLASS for HTML element
89 Added dummy elements to fix problem with mixed
90 content models for BODY, BLOCKQUOTE/BQ and FIG
91 Dropped audio fields from FORMs
92 Reinstated MIN/MAX for range fields
93 Reinstated DISABLED and ERROR attributes for fields
94
95 22nd March '95
96
97 Changed from em to en units. The latter
98 is a typographical unit = half point size
99 Merged NEEDS into CLEAR for control of textflow
100
101 21st March '95
102
103 Added REL=Banner to LINK element
104 Added BANNER element in place of <DIV CLASS=BANNER>
105 Added RANGE and SPOT elements
106 Added FN in place of <NOTE ROLE=FOOTNOTE>
107 Changed ROLE->CLASS for NOTE element
108
109 17th March '95
110
111 Fixed bug in PRE content model
112 Changed external references to omit trailling //
113 Dropped <!DOCTYPE HTML [ ... ]> wrapper to avoid problems
114 with "real" sgml parsers
115 Added NOFLOW attribute to FIG and TABLE
116 Fixed typo in IMG ALIGN attribute
117 Made SELECT match IMG for graphic attributes
118 Added decimal alignment for tabs and table cells
119 Added ALIGN attribute to TEXTAREA for parity
120 with IMG and INPUT, including ALIGN=LEFT etc.
121
122 13th March '95
123
124 Dropped MARK tag on advice from SGML Open
125 Allowed spaces in table colspec attribute
126 Changed ARRAY element
127 Added CHOOSE tag to BOX element
128 Cleaned up PRE content model
129 Obsoleted tags incompatible with SGML
130
131 6th March '95
132
133 Added several tags to MATH: %mathface, %mathvec
134 and improved ROOT, with new SQRT convience tag
135
136 1st March '95
137
138 Dropped align attribute from BR element
139 Added indent attribute to TAB
140 Added optional CREDIT to end of BQ
141 Changed FIG to %body.content to allow headers
142
143 22nd February '95
144
145 Added align attribute, and dropped before, after, center and right
146 attributes to clean up TAB element
147 Added INS and DEL for legal documents
148 Added CREDIT to end of FIG element
149 Dropped FN in favor of <NOTE ROLE=FootNote>
150
151 9th Feburuary '95
152
153 Dropped base attribute mechanism for scoping relative URLs
154 Dropped nofold attribute for disabling whitespace folding
155 Dropped border width attributes for FIG (-> style sheet)
156 Dropped delims attribute from math BOX element
157 Dropped stylistic attributes from OL such as inherit (-> stylesheet)
158 Added baseline to list of valign attribute values for tables.
159 Added DIV element for generic container class and static banners
160 Added MARK element for marked range class
161 Added closed set of LINK REL values for toolbars
162 Added numbering attributes to headers
163 Added bullet attributes to headers
164 Added TERM element to math for style sheet control of term rendering
165 Changed to imagemap=URI for server-side event handling for FIG/OVERLAY
166 Changed delimiter attributes for math arrays
167 Changed ROOT element for maths to allow an arbitrary radix
168 Simplified numbering attributes for ordered lists
169 Simplified STYLE element to leave binding to style language
170 -->
171
172 <!ENTITY % HTML.Version
173 "-//IETF//DTD HTML 3.0//EN"
174
175 -- Typical usage:
176
177 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
178 <html>
179 ...
180 </html>
181 --
182 >
183
184 <!--================== Flags for Marked Sections ==========================-->
185
186 <!ENTITY % HTML.Recommended "IGNORE"
187 -- Certain features of the language are necessary for compatibility
188 with widespread usage, but they may compromise the structural
189 integrity of a document. This feature test entity enables
190 a more prescriptive document type definition that eliminates
191 the above features.
192 -->
193
194 <![ %HTML.Recommended [
195 <!ENTITY % HTML.Deprecated "IGNORE">
196 ]]>
197
198 <!ENTITY % HTML.Deprecated "INCLUDE"
199 -- Certain features of the language are necessary for compatibility
200 with earlier versions of the specification, but they tend
201 to be used an implemented inconsistently, and their use is
202 deprecated. This feature test entity enables a document type
203 definition that eliminates these features.
204 -->
205
206 <!ENTITY % HTML.Obsoleted "IGNORE"
207 -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
208 and derive from very early versions of HTML. They require non-
209 standard parsers and will cause problems for processing
210 documents with standard SGML tools.
211 -->
212
213 <!--================== Imported Names =====================================-->
214
215 <!ENTITY % Content-Type "CDATA"
216 -- meaning a MIME content type, as per RFC1521
217 -->
218
219 <!ENTITY % HTTP-Method "GET | POST"
220 -- as per HTTP specification
221 -->
222
223 <!ENTITY % URI "CDATA"
224 -- The term URI means a CDATA attribute
225 whose value is a Uniform Resource Identifier,
226 as defined by
227 "Uniform Resource Identifiers" by Tim Berners-Lee
228 aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
229 aka RFC 1630
230
231 Note that CDATA attributes are limited by the LITLEN
232 capacity (1024 in the current version of html.decl),
233 so that URIs in HTML have a bounded length.
234
235 -->
236
237 <!ENTITY % REAL "CDATA" -- real numbers (not in SGML) -->
238
239 <!ENTITY % SHAPE "CDATA"
240 -- Shape of hotzone in image.
241
242 All coordinates are assumed to be numbers in the range 0 to 1
243 and interpreted as fractional width/height and measured from
244 the top left corner of the associated image.
245
246 The attribute value is a string taking one of the following forms:
247
248 "default"
249
250 Used to define a default link for the figure background.
251
252 "circle x, y, r"
253
254 (x, y) define the center and r the radius.
255
256 "rect x, y, w, h"
257
258 (x, y) defines upper left, and w and h the width and height.
259
260 "polygon x1, y1, x2, y2, ..."
261
262 Given n pairs of x, y coordinates, the polygon is closed by a
263 line linking the n'th point to the first. Intersecting polygons
264 use the non-zero winding number rule to determine if a point lies
265 inside the polygon.I
266 --
267 >
268
269 <!-- 3.0 Parameter Entities -->
270
271 <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
272
273 <![ %HTML.Obsoleted [
274 <!ENTITY % preformatted "PRE | XMP | LISTING">
275 ]]>
276
277
278 <![ %HTML.Deprecated [
279 <!ENTITY % list "UL | OL | DIR | MENU">
280 <!ENTITY % blockquote "BLOCKQUOTE | BQ">
281 ]]>
282
283 <!ENTITY % list "UL | OL">
284
285 <!ENTITY % blockquote "BQ">
286
287 <!ENTITY % preformatted "PRE">
288
289
290 <!-- The CLASS attribute is used to subclass HTML elements for
291 rendering purposes, when used with style sheets, e.g. DSSSL lite -->
292
293 <!ENTITY % attrs -- common attributes for elements --
294 'id ID #IMPLIED -- as target for hrefs (link ends) --
295 lang CDATA "en.us" -- ISO language, country code --
296 class NAMES #IMPLIED -- for subclassing elements --'>
297
298 <!-- SGML standard forces different NAMES for all attribute values
299 in the same element, regardless of the attribute name! As a result
300 CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
301
302 <!--
303 When text flows around a figure or table in the margin, you sometimes want
304 to start an element like a header, paragraph or list below the figure rather
305 than alongside it. The CLEAR attribute allows you to move down unconditionally:
306
307 clear=left move down until left margin is clear
308 clear=right move down until right margin is clear
309 clear=all move down until both margins are clear
310
311 Alternatively, you can decide to place the element alongside the figure just
312 so long as there is enough room. The minimum width needed is specified as:
313
314 clear="40 en" move down until there is at least 40 en units free
315 clear="100 pixels" move down until there is at least 100 pixels free
316
317 The style sheet (or browser defaults) may provide default minimum widths for
318 each class of block-like elements.
319 -->
320
321 <!ENTITY % needs -- Attributes for controlling text flow. Used in headers
322 and other elements to guarantee sufficient room --
323 'clear CDATA #IMPLIED'>
324
325 <!--
326 The following attribute may be included where ever a URL can be given:
327
328 md message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
329 where the digest is base64 encoded and preceded by a prefix
330 denoting the algorithm (in this case MD5).
331 -->
332
333 <!ENTITY % url.link -- Attributes associated with URL based links --
334 "md CDATA #IMPLIED -- message digest for linked object --">
335
336 <!--================ Character mnemonic entities ==========================-->
337
338 <!-- The HTML list of Latin-1 entities includes the full range
339 of characters in widely available Latin-1 fonts, and as such
340 is a mixture of ISOlat1 and other ISO publishing symbols -->
341
342 <!ENTITY % HTMLlat1 PUBLIC
343 "-//IETF//ENTITIES Added Latin 1 for HTML//EN">
344 %HTMLlat1;
345
346 <!--================ Entities for special symbols =========================-->
347
348 <!ENTITY emsp SDATA "[emsp ]" -- em space -->
349 <!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
350 <!ENTITY mdash SDATA "[ndash ]" -- em dash -->
351 <!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
352 <!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
353 <!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
354 <!ENTITY copy SDATA "[copy ]" -- copyright sign -->
355 <!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
356 <!ENTITY reg SDATA "[reg ]" -- registered sign -->
357
358 <!--================ Entities for standard icons ==========================-->
359
360 <!-- a range of standard icons such as &folder; for use
361 in speeding up display of directory listings etc. -->
362
363 <!-- <!ENTITY % HTMLicons PUBLIC -->
364 <!-- "-//IETF//ENTITIES icons for HTML//EN"> -->
365 <!-- %HTMLicons; -->
366
367 <!--================ Entities for math symbols ============================-->
368
369 <!-- ISO subset chosen for use with the widely available Adobe math font -->
370
371 <!-- <!ENTITY % HTMLmath PUBLIC -->
372 <!-- "-//IETF//ENTITIES Math and Greek for HTML//EN"> -->
373 <!-- %HTMLmath; -->
374
375 <!--=================== Text Markup =======================================-->
376
377 <!ENTITY % font " U | S | TT | I | BIG | SMALL">
378
379 <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
380
381 <!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
382
383 <!ENTITY % special "TAB | MATH | A | IMG | BR">
384
385 <!ENTITY % notmath "%font | %phrase | %special | %misc">
386
387 <!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
388
389
390 <!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP">
391
392 <!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
393 <!ATTLIST (%font|B|%phrase|%misc) %attrs;>
394
395 <!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
396
397 <!ELEMENT (SUB|SUP) - - (%text)+>
398 <!ATTLIST (SUB|SUP)
399 %attrs;
400 align (left|center|right) #IMPLIED
401 >
402
403 <!-- Forced line break -->
404
405 <!ELEMENT BR - O EMPTY>
406 <!ATTLIST BR
407 %attrs;
408 %needs; -- for control of text flow --
409 >
410
411 <!-- Named left, center and right tab stops (independent of '\t' char) -->
412
413 <!ELEMENT TAB - O EMPTY>
414 <!ATTLIST TAB
415 id ID #IMPLIED -- defines named tab stop --
416 indent NUMBER 0 -- en units before new tab stop --
417 to IDREF #IMPLIED -- jump to named tab stop --
418 align (left|center|right|decimal) left
419 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
420 >
421
422 <!--================== Link Markup ========================================-->
423
424 <!--
425 With HTML 3.0 you can use ID attributes on most elements for named
426 link ends. The use of the NAME attribute on anchors is deprecated.
427
428 Do we want to support arbitrary elements for link starts? This would
429 involve adding HREF and related attributes to most elements.
430 -->
431
432 <![ %HTML.Deprecated [
433 <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
434 ]]>
435
436 <!ENTITY % linkName "">
437
438
439 <!ENTITY % ToolBar "home|toc|index|glossary|copyright|
440 up|previous|next|help|bookmark"
441
442 -- LINK RELationship values which are used to create toolbar
443 buttons or menu items for navigation, where toc stands
444 for table of contents and bookmark provides for an open
445 ended set of links, i.e. you can use multiple bookmarks
446 for key entry points. Use the optional TITLE attribute
447 to override default names.
448 -->
449
450 <!ENTITY % linkType "NAME"
451 -- A definitive list will be specified at a later date.
452
453 They are used
454
455 a) by stylesheets to control how collections of
456 html nodes are rendered into printed documents
457
458 b) for document specific toolbars/menus when used
459 with the LINK element in document head:
460
461 "home|toc|index|glossary|copyright|
462 up|previous|next|help|bookmark"
463
464 where toc stands for table of contents and
465 bookmark provides for an open ended set of links,
466 i.e. you can use several bookmarks for key entry
467 points. Use the optional TITLE attribute to
468 override default names.
469
470 c) for hypertext paths or guided tours,
471 with REL=NODE and REL=PATH.
472
473 d) to make a link to a style sheet, e.g. rel=stylesheet
474 (used only with the LINK element).
475
476 e) to make a link to a separate banner, e.g. rel=banner
477 (used only with the LINK element).
478 -->
479
480
481 <!ENTITY % linkExtraAttributes -- URN moved to %url.link --
482 "rel %linkType #IMPLIED -- forward relationship type --
483 rev %linkType #IMPLIED -- reversed relationship type
484 to referent data --
485 title CDATA #IMPLIED -- advisory only --
486 methods NAMES #IMPLIED -- supported public methods of the object:
487 TEXTSEARCH, GET, HEAD, ... --
488 ">
489
490 <![ %HTML.Deprecated [
491 <!ENTITY % A.content "(%heading|%text)+">
492 ]]>
493
494 <!ENTITY % A.content "(%text)+">
495
496 <!ELEMENT A - - %A.content -(A)>
497
498 <!ATTLIST A
499 %attrs;
500 href %URI; #IMPLIED
501 %url.link; -- standard link attributes --
502 %linkName; -- name attribute is deprecated; use ID instead --
503 shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
504 %linkExtraAttributes;
505 >
506
507 <!--=================== Images ============================================-->
508
509 <!-- Desired widths are used for negotiating image size
510 with the module responsible for painting the image.
511 align=left or right cause image to float to margin
512 and for subsequent text to wrap around image -->
513
514 <!ELEMENT IMG - O EMPTY -- Embedded image -->
515 <!ATTLIST IMG
516 %attrs;
517 src %URI; #REQUIRED -- URI of image to embed --
518 %url.link; -- standard link attributes --
519 alt CDATA #IMPLIED -- for display in place of image --
520 align (top|middle|bottom|left|right) top -- relative to baseline
521 -- width NUMBER #IMPLIED -- desired width in en's or pixels --
522 height NUMBER #IMPLIED -- desired height in en's or pixels --
523 units (en|pixels) pixels -- units for width and height --
524 ismap (ismap) #IMPLIED -- pass clicks to server --
525 >
526
527 <!--=================== Paragraphs=========================================-->
528
529 <!ELEMENT P - O (%text)+>
530 <!ATTLIST P
531 %attrs;
532 align (left|center|right|justify) #IMPLIED
533 %needs; -- for control of text flow --
534 nowrap (nowrap) #IMPLIED -- disable wordwrap --
535 >
536
537 <!--=================== Headings, Titles, Sections ========================-->
538
539 <!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
540 <!ATTLIST HR
541 %attrs;
542 src %URI; #IMPLIED -- URI of custom rule graphic --
543 %url.link; -- standard link attributes --
544 %needs; -- for control of text flow --
545 >
546
547 <!--
548 Headers can be numbered, although this is a matter for style sheets.
549 The style sheet controls the numbering style:
550
551 a) whether the parent numbering is inherited, e.g. 5.i.c
552 where 5 is the current sequence number for H1 headers, and
553 1 is the number for H2 headers and 3 for H3 headers.
554
555 b) what style is used for current sequence number
556 e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
557 or a numbering scheme appropriate for the current language
558
559 The skip attribute is used to skip over sequence numbers for items
560 which have been left out of the list, e.g. skip=3 advances the
561 sequence number past 3 omitted items. The seqnum sets the sequence
562 number to a specified value. Note that the style sheet may take
563 advantage of the sequence number for higher level headers.
564
565 The dingbat or src attributes may be used to specify a bullet like
566 image to be placed adjacent to the header. Defining this in the
567 header element simplifies the document markup and avoids the need
568 to use the clear or needs attribute in the following element to
569 prevent it flowing around this image.
570 -->
571
572 <!ELEMENT ( %heading ) - - (%text;)+>
573 <!ATTLIST ( %heading )
574 %attrs;
575 align (left|center|right|justify) #IMPLIED
576 %needs; -- for control of text flow --
577 seqnum NUMBER #IMPLIED -- starting sequence number --
578 skip NUMBER 0 -- skip seq nums for missing items --
579 dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
580 src (%URI;) #IMPLIED -- bullet defined by graphic --
581 %url.link; -- standard link attributes --
582 nowrap (nowrap) #IMPLIED -- disable wordwrap --
583 >
584
585 <!ELEMENT TITLE - - (#PCDATA)
586 -- The TITLE element is not considered part of the flow of text.
587 It should be displayed, for example as the page header or
588 window title.
589 -->
590
591 <!--=================== Text Flows ========================================-->
592
593 <!ENTITY % block
594 "P | %list | DL
595 | %preformatted
596 | %blockquote
597 | FORM | ISINDEX | FN
598 | TABLE | FIG | NOTE">
599
600 <!--
601 ((%block)* | (%text)*) would be much nicer as it would avoid the need
602 for a <P> tag when all you want is a few words of text. The problem
603 is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
604 and hence the white space between the <LI> and the <P>.
605 -->
606
607 <![ %HTML.Recommended [
608 <!ENTITY % flow "(%block)*">
609 ]]>
610
611 <!ENTITY % flow "(%text | %block)*">
612
613 <!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
614
615 <!ATTLIST PRE
616 %attrs;
617 width NUMBER #implied
618 %needs; -- for control of text flow --
619 >
620
621 <![ %HTML.Obsoleted [
622
623 <!ENTITY % literal "CDATA"
624 -- special non-conforming parsing mode where
625 the only markup signal is the end tag
626 in full. This will cause problems for
627 standard SGML tools!
628 -->
629
630 <!ELEMENT XMP - - %literal>
631 <!ELEMENT LISTING - - %literal>
632 <!ELEMENT PLAINTEXT - O %literal>
633
634 ]]>
635
636 <!--=================== Lists =============================================-->
637
638 <!ELEMENT DL - - (LH?, (DT|DD)+) -- this is perhaps too lax? -->
639 <!ATTLIST DL
640 %attrs;
641 %needs; -- for control of text flow --
642 compact (compact) #IMPLIED -- more compact style --
643 >
644
645 <!ELEMENT DT - O (%text)+>
646 <!ELEMENT DD - O %flow;>
647 <!ATTLIST (DT|DD)
648 %attrs;
649 %needs; -- for control of text flow --
650 >
651
652
653 <!ELEMENT (OL|UL) - - (LH?, LI+) -- should we allow a list header ? -->
654
655 <!-- style sheet controls numbering style
656 a) whether the parent numbering is inherited, e.g. 5.1.c
657 b) what style is used for current sequence number
658 e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
659 or a numbering scheme for the current language
660 -->
661 <!ATTLIST OL
662 %attrs;
663 %needs; -- for control of text flow --
664 continue (continue) #IMPLIED -- don't restart sequence number --
665 seqnum NUMBER #IMPLIED -- starting sequence number --
666 compact (compact) #IMPLIED -- reduced interitem spacing --
667 >
668
669 <!-- Unordered lists:
670
671 o single or multicolumn with
672 horizontal or vertical wrapping
673
674 o plain or bulletted list items
675
676 o bullets can be customised via:
677 - entities (dingbats in HTMLicons)
678 - external graphic via URL
679 - individual attributes on LI tags
680 -->
681 <!ATTLIST UL
682 %attrs;
683 %needs; -- for control of text flow --
684 wrap (vert|horiz|none) none -- multicolumn list style --
685 plain (plain) #IMPLIED -- suppress bullets --
686 dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
687 src (%URI;) #IMPLIED -- bullet defined by graphic --
688 %url.link; -- standard link attributes --
689 compact (compact) #IMPLIED -- reduced interitem spacing --
690 >
691
692 <!ELEMENT LH - O (%text;)+ -- list header -->
693 <!ATTLIST LH %attrs;>
694
695 <!--
696 For unordered lists, you can override the standard bullet with
697 a custom graphic specified via a URI e.g. src="splash.gif" or
698 a reference to one of the HTMLicons graphics e.g. dingbat=folder
699
700 The skip attribute is used with ordered lists to skip over sequence
701 numbers for items which have been left out of the list, e.g. skip=3
702 advances the sequence number past 3 omitted items.
703 -->
704
705 <!ELEMENT LI - O %flow; -- list item -->
706 <!ATTLIST LI
707 %attrs;
708 %needs; -- for control of text flow --
709 dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
710 src (%URI;) #IMPLIED -- custom bullet graphic --
711 %url.link; -- standard link attributes --
712 skip NUMBER 0 -- skip seq nums for missing items --
713 >
714
715 <!-- DIR and MENU are now subsumed by UL with type=plain. Use the
716 wrap attribute to control wrapping style for multicolumn lists -->
717
718 <![ %HTML.Deprecated [
719 <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
720 <!ATTLIST (DIR|MENU)
721 compact (compact) #IMPLIED>
722 ]]>
723
724 <!--=================== Document Body =====================================-->
725
726 <![ %HTML.Recommended [
727 <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
728 -- <h1>Heading</h1>
729 <p>Text ...
730 is preferred to
731 <h1>Heading</h1>
732 Text ...
733 -->
734 ]]>
735
736 <!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
737
738 <!ELEMENT BODY O O (BANNER?, BODYTEXT) +(SPOT)>
739 <!ATTLIST BODY
740 %attrs;
741 background %URI; #IMPLIED -- texture tile for document background --
742 >
743
744 <!ELEMENT BODYTEXT O O %body.content -- dummy element -->
745
746 <!--
747 The BANNER element is used for a banner section which appears at
748 the top of the window and doesn't scroll with window contents.
749 This can be used for corporate logos, copyright statements and
750 disclaimers, as well as customized navigation/search controls.
751 -->
752 <!ELEMENT BANNER - - %body.content>
753 <!ATTLIST BANNER %attrs; >
754
755 <!-- SPOT is used to insert IDs at arbitrary places
756 e.g. for end points of a marked range (see RANGE) -->
757 <!ELEMENT SPOT - O EMPTY>
758 <!ATTLIST SPOT id ID #REQUIRED>
759
760 <!ELEMENT (%blockquote) - - (BODYTEXT, CREDIT?)>
761 <!ATTLIST (%blockquote)
762 %attrs;
763 %needs; -- for control of text flow --
764 nowrap (nowrap) #IMPLIED -- disable wordwrap --
765 >
766
767 <!ENTITY % address.content "((%text;)* | P*)">
768
769 <!ELEMENT ADDRESS - - %address.content>
770 <!ATTLIST ADDRESS
771 %attrs;
772 %needs; -- for control of text flow --
773 >
774
775 <!--
776 DIV can be used with the CLASS attribute to represent different
777 kinds of container, e.g. chapter, section, abstract, appendix.
778 -->
779
780 <!ELEMENT DIV - - %body.content>
781 <!ATTLIST DIV
782 %attrs;
783 %needs; -- for control of text flow --
784 align (left|center|right) left -- alignment of following text --
785 nowrap (nowrap) #IMPLIED -- disable wordwrap --
786 >
787
788 <!--================ Forms ===============================================-->
789
790 <!--
791 As HTML 2.0 plus a few extensions:
792
793 a) A RANGE control which varies between pair of values
794 specified with the size attribute, e.g. SIZE="1, 10"
795
796 b) FILE widget for uploading one or more files to a server
797
798 c) SCRIBBLE on image widget that sends the "ink" to the server
799
800 d) SUBMIT/RESET buttons can now be customised with an image.
801 This subsumes the IMAGE type which is now deprecated.
802
803 e) Graphical SELECTion menus are now supported, using
804 the new SHAPE attribute on OPTION elements.
805
806 Further extensions are in the pipeline (e.g. table entry,
807 multiple data formats for textarea fields and client-side
808 scripts with custom widgets) but will have to wait until
809 the backlog of implementation work diminishes.
810 -->
811
812 <!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
813 <!ATTLIST FORM
814 action %URI #REQUIRED -- server-side form handler --
815 method (%HTTP-Method) GET -- see HTTP specification --
816 enctype %Content-Type; "application/x-www-form-urlencoded"
817 script %URI #IMPLIED -- link to client-side script --
818 >
819
820 <![ %HTML.Deprecated [
821 <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
822 | RESET | RANGE | FILE | SCRIBBLE | HIDDEN | IMAGE)">
823 ]]>
824
825 <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT
826 | RESET | RANGE | FILE | SCRIBBLE | HIDDEN)">
827
828 <!ELEMENT INPUT - O EMPTY>
829 <!ATTLIST INPUT
830 %attrs;
831 type %InputType TEXT
832 name NAME #IMPLIED -- required for all but submit and reset --
833 value CDATA #IMPLIED -- required for radio buttons & checkboxes --
834 disabled (disabled) #IMPLIED -- read-only fields --
835 error CDATA #IMPLIED -- why field is in error --
836 checked (checked) #IMPLIED -- for radio buttons and check boxes --
837 size NUMBER #IMPLIED -- visible width of TEXT fields --
838 maxlength NUMBER #IMPLIED -- max number of chars for TEXT fields --
839 min %REAL #IMPLIED -- lower limit for RANGE fields --
840 max %REAL #IMPLIED -- upper limit for RANGE fields --
841 accept CDATA #IMPLIED -- list of MIME types for file fields --
842 src %URI #IMPLIED -- for fields with background images --
843 %url.link; -- standard link attributes --
844 align (top|middle|bottom|left|right) top
845 >
846
847 <!--
848 SRC attribute added for graphical selection menus
849 The WIDTH, HEIGHT and UNITS attributes apply to the
850 image specified by the SRC attribute.
851 -->
852
853 <!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
854 <!ATTLIST SELECT
855 %attrs;
856 name CDATA #REQUIRED
857 multiple (multiple) #IMPLIED
858 disabled (disabled) #IMPLIED -- read-only menu --
859 error CDATA #IMPLIED -- why selections are in error --
860 src %URI #IMPLIED -- for graphical selection menus --
861 %url.link; -- standard link attributes --
862 width NUMBER #IMPLIED -- desired width of in en's or pixels --
863 height NUMBER #IMPLIED -- desired height in en's or pixels --
864 units (en|pixels) pixels -- units for width and height --
865 align (top|middle|bottom|left|right) top
866 >
867
868 <!ELEMENT OPTION - O (#PCDATA)>
869 <!ATTLIST OPTION
870 %attrs;
871 selected (selected) #IMPLIED
872 value CDATA #IMPLIED -- default to element content --
873 shape %SHAPE; #IMPLIED -- for graphical selection menus --
874 disabled (disabled) #IMPLIED -- unselectable option --
875 error CDATA #IMPLIED -- why this choice is in error --
876 >
877
878 <!--
879 Multi-line text input field. align=left or right
880 causes the field to float to margin and for
881 subsequent text to wrap around the field.
882 -->
883
884 <!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
885 <!ATTLIST TEXTAREA
886 %attrs;
887 name CDATA #REQUIRED
888 rows NUMBER #REQUIRED
889 cols NUMBER #REQUIRED
890 disabled (disabled) #IMPLIED -- read-only field --
891 error CDATA #IMPLIED -- why field is in error --
892 align (top|middle|bottom|left|right) top
893 >
894
895 <!--======================= Captions ======================================-->
896
897 <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
898 <!ATTLIST CAPTION
899 %attrs;
900 align (top|bottom|left|right) #IMPLIED
901 >
902 <!--======================= Tables ========================================-->
903
904 <!--
905 Tables and figures can be aligned in several ways:
906
907 bleedleft flush left with the left (window) border
908 left flush left with the left text margin
909 center centered (text flow is disabled for this mode)
910 right flush right with the right text margin
911 bleedright flush right with the right (window) border
912 justify when applicable the table/figure should stretch
913 to fill space between the text margins
914
915 Note: text will flow around the table or figure if the browser
916 judges there is enough room and the alignment is not centered
917 or justified. The table or figure may itself be part of the
918 text flow around some earlier figure. You can in this case use
919 the clear or needs attributes to move the new table or figure
920 down the page beyond the obstructing earlier figure. Similarly,
921 you can use the clear or needs attributes with other elements
922 such as headers and lists to move them further down the page.
923 -->
924
925 <!ENTITY % block.align
926 "align (bleedleft|left|center|right|bleedright|justify) center">
927
928 <!--
929 The HTML 3.0 table model has been chosen for its simplicity
930 and the ease in writing filters from common DTP packages.
931
932 By default the table is automatically sized according to the
933 cell contents and the current window size. Specifying the columns
934 widths using the colspec attribute allows browsers to start
935 displaying the table without having to wait for last row.
936
937 The colspec attribute is a list of column widths and alignment
938 specifications. The columns are listed from left to right with
939 a capital letter followed by a number, e.g. COLSPEC="L20 C8 L40".
940 The letter is L for left, C for center, R for right alignment of
941 cell contents. J is for justification, when feasible, otherwise
942 this is treated in the same way as L for left alignment.
943 Column entries are delimited by one or more space characters.
944
945 The number specifies the width in en's, pixels or as a
946 fractional value of the table width, as according to the
947 associated units attribute. This approach is more compact
948 than used with most SGML table models and chosen to simplify
949 hand entry. The width attribute allows you to specify the
950 width of the table in pixels, en units or as a percentage
951 of the space between the current left and right margins.
952
953 To assist with rendering to speech, row and column headers
954 can be given short names using the AXIS attribute. The AXES
955 attribute is used to explicitly specify the row and column
956 names for use with each cell. Otherwise browsers can follow
957 up columns and left along rows (right for some languages)
958 to find the corresponding header cells.
959
960 Table content model: Braille limits the width of tables,
961 placing severe limits on column widths. User agents need
962 to render big cells by moving the content to a note placed
963 before the table. The cell is then rendered as a link to
964 the corresponding note.
965
966 To assist with formatting tables to paged media, authors
967 can differentiate leading and trailing rows that are to
968 be duplicated when splitting tables across page boundaries.
969 The recommended way is to subclass rows with the CLASS attribute
970 For example: <TR CLASS=Header>, <TR CLASS=Footer> are used for
971 header and footer rows. Paged browsers insert footer rows at
972 the bottom of the current page and header rows at the top of
973 the new page, followed by the remaining body rows.
974 -->
975
976 <!ELEMENT TABLE - - (CAPTION?, TR*) -- mixed headers and data -->
977 <!ATTLIST TABLE
978 %attrs;
979 %needs; -- for control of text flow --
980 border (border) #IMPLIED -- draw borders --
981 colspec CDATA #IMPLIED -- column widths and alignment --
982 units (en|pixels|relative) en -- units for column widths --
983 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
984 width NUMBER #IMPLIED -- absolute or percentage width --
985 %block.align; -- horizontal alignment --
986 noflow (noflow) #IMPLIED -- noflow around table --
987 nowrap (nowrap) #IMPLIED -- don't wrap words --
988 >
989
990 <!ENTITY % cell "TH | TD">
991 <!ENTITY % horiz.align "left|center|right|justify">
992 <!ENTITY % vert.align "top|middle|bottom|baseline">
993
994 <!--
995 Browsers should tolerate an omission of the first <TR>
996 tag as it is implied by the context. Missing trailing
997 <TR>s implied by rowspans should be ignored.
998
999 The alignment attributes act as defaults for rows
1000 overriding the colspec attribute and being in turn
1001 overridden by alignment attributes on cell elements.
1002 Use valign=baseline when you want to ensure that text
1003 in different cells on the same row is aligned on the
1004 same baseline regardless of fonts. It only applies
1005 when the cells contain a single line of text.
1006 -->
1007
1008 <!ELEMENT TR - O (%cell)* -- row container -->
1009 <!ATTLIST TR
1010 %attrs;
1011 align (%horiz.align) #IMPLIED -- horizontal alignment --
1012 valign (%vert.align) top -- vertical alignment --
1013 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
1014 nowrap (nowrap) #IMPLIED -- don't wrap words --
1015 >
1016
1017 <!--
1018 Note that table cells can include nested tables.
1019 Missing cells are considered to be empty, while
1020 missing rows should be ignored, i.e. if a cell
1021 spans a row and there are no further TR elements
1022 then the implied row should be ignored.
1023 -->
1024
1025 <!ELEMENT (%cell) - O %body.content>
1026 <!ATTLIST (%cell)
1027 %attrs;
1028 colspan NUMBER 1 -- columns spanned --
1029 rowspan NUMBER 1 -- rows spanned --
1030 align (%horiz.align) #IMPLIED -- horizontal alignment --
1031 valign (%vert.align) top -- vertical alignment --
1032 dp CDATA #IMPLIED -- decimal point e.g. dp="," --
1033 nowrap (nowrap) #IMPLIED -- don't wrap words --
1034 axis CDATA #IMPLIED -- axis name, defaults to element content --
1035 axes CDATA #IMPLIED -- comma separated list of axis names --
1036 >
1037
1038 <!--====================== Figures ========================================-->
1039
1040 <!--
1041 The element contains text for use in non-graphical displays. Note that
1042 you can use the shape attribute in anchors to specify hotzones on images.
1043 This provides for local processing of pointer clicks and a unified method
1044 for dealing with graphical and non-graphical displays.
1045
1046 Text is flowed around figures when the figure is left or right aligned.
1047 You can request the browser to move down until there is enough room for
1048 the next element, see the CLEAR and NEED attributes (in %needs)
1049
1050 Figures offer a path towards embedding arbitrary information formats
1051 via some kind of OLE/OpenDoc mechanism.
1052 -->
1053
1054 <!ELEMENT FIG - - (OVERLAY*, CAPTION?, FIGTEXT, CREDIT?) -(FIG|IMG)>
1055 <!ATTLIST FIG
1056 %attrs;
1057 %needs; -- for control of text flow --
1058 src %URI; #REQUIRED -- URI of document to embed --
1059 %url.link; -- standard link attributes --
1060 %block.align; -- horizontal alignment --
1061 noflow (noflow) #IMPLIED -- noflow around figure --
1062 width NUMBER #IMPLIED -- desired width in units --
1063 height NUMBER #IMPLIED -- desired height in units --
1064 units (en|pixels) pixels -- specifies units as en's or pixels --
1065 imagemap (%URI) #IMPLIED -- pass background clicks to server --
1066 >
1067
1068 <!ELEMENT FIGTEXT O O %body.content -- dummy element -->
1069
1070 <!--
1071 Figure overlays. When combined with local caching, overlays
1072 provide a cheap way of modifying a larger base image sent as
1073 part of a previous page.
1074 -->
1075
1076 <!ELEMENT OVERLAY - O EMPTY -- image overlay -->
1077 <!ATTLIST OVERLAY
1078 src %URI; #REQUIRED -- URI of image overlay --
1079 %url.link; -- standard link attributes --
1080 units (en|pixels) pixels -- specifies units as en's or pixels --
1081 x NUMBER 0 -- offset from left in units --
1082 y NUMBER 0 -- offset from top in units --
1083 width NUMBER #IMPLIED -- desired width in units --
1084 height NUMBER #IMPLIED -- desired height in units --
1085 imagemap (%URI) #IMPLIED -- pass background clicks to server --
1086 >
1087
1088 <!ELEMENT CREDIT - - (%text;)* -- source of image -->
1089 <!ATTLIST CREDIT
1090 %attrs;
1091 >
1092
1093 <!--======================== Notes ========================================-->
1094
1095 <!--
1096 The NOTE element is used for admonishments. The CLASS attribute
1097 is used to differentiate NOTE's, e.g. Note, Caution or Warning.
1098 -->
1099
1100 <!ELEMENT NOTE - - %body.content; -- admonishment -->
1101 <!ATTLIST NOTE
1102 %attrs;
1103 src %URI; #IMPLIED -- URI of custom graphic --
1104 %url.link; -- standard link attributes --
1105 %needs; -- for control of text flow --
1106 >
1107
1108 <!--======================== Footnotes ====================================-->
1109
1110 <!--
1111 Typically rendered as popup note. These elements are referenced
1112 by hypertext links specified with the anchor element.
1113 -->
1114 <!ELEMENT FN - - %body.content;>
1115 <!ATTLIST FN %attrs;>
1116
1117 <!--======================== Math ========================================-->
1118
1119 <!-- Use &thinsp; &emsp; etc for greater control of spacing. -->
1120
1121 <!-- Subscripts and Superscripts
1122
1123 <SUB> and <SUP> are used for subscripts and superscripts.
1124
1125 i j
1126 X <SUP>i</SUP>Y<SUP>j</SUP> is X Y
1127
1128 i.e. the space following the X disambiguates the binding.
1129 The align attribute can be used for horizontal alignment,
1130 e.g. to explicitly place an index above an element:
1131 i
1132 X<sup align=center>i</sup> produces X
1133
1134 Short references are defined for superscripts, subscripts and boxes
1135 to save typing when manually editing HTML math, e.g.
1136
1137 x^2^ is mapped to x<sup>2</sup>
1138 y_z_ is mapped to y<sub>z</sub>
1139 {a+b} is mapped to <box>a + b</box>
1140
1141 Note that these only apply within the MATH element and can't be
1142 used in normal text!
1143 -->
1144 <!ENTITY REF1 STARTTAG "SUP">
1145 <!ENTITY REF2 ENDTAG "SUP">
1146 <!ENTITY REF3 STARTTAG "SUB">
1147 <!ENTITY REF4 ENDTAG "SUB">
1148 <!ENTITY REF5 STARTTAG "BOX">
1149 <!ENTITY REF6 ENDTAG "BOX">
1150
1151 <!USEMAP MAP1 MATH>
1152 <!USEMAP MAP2 SUP>
1153 <!USEMAP MAP3 SUB>
1154 <!USEMAP MAP4 BOX>
1155
1156 <!SHORTREF MAP1 "^" REF1
1157 "_" REF3
1158 "{" REF5 >
1159
1160 <!SHORTREF MAP2 "^" REF2
1161 "_" REF3
1162 "{" REF5 >
1163
1164 <!SHORTREF MAP3 "_" REF4
1165 "^" REF1
1166 "{" REF5 >
1167
1168 <!SHORTREF MAP4 "}" REF6
1169 "^" REF1
1170 "_" REF3
1171 "{" REF5 >
1172
1173 <!--
1174 The inclusion of %math and exclusion of %notmath is used here
1175 to alter the content model for the B, SUB and SUP elements,
1176 to limit them to formulae rather than general text elements.
1177 -->
1178
1179 <!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
1180 <!ENTITY % mathface "B|T|BT" -- control of font face -->
1181 <!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
1182 <!ENTITY % formula "#PCDATA|%math">
1183
1184 <!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
1185 <!ATTLIST MATH
1186 id ID #IMPLIED
1187 class NAMES #IMPLIED -- e.g. class=chem -->
1188
1189 <!-- The BOX element acts as brackets. Delimiters are optional and
1190 stretch to match the height of the box. The OVER element is used
1191 when you want a line between numerator and denominator. This line
1192 is suppressed with the alternative ATOP element. CHOOSE acts like
1193 ATOP but adds enclosing round brackets as a convenience for binomial
1194 coefficients. Note the use of { and } as shorthand for <BOX> and
1195 </BOX> respectively:
1196
1197 1 + X
1198 {1 + X<OVER>Y} is _______
1199 Y
1200
1201 a + b
1202 {a + b<ATOP>c - d} is
1203 c - d
1204
1205 The delimiters are represented using the LEFT and RIGHT
1206 elements as in:
1207
1208 {[<LEFT>x + y<RIGHT>]} is [ x + y ]
1209 {(<LEFT>a<RIGHT>]} is (a]
1210 {||<LEFT>a<RIGHT>||} is || a ||
1211
1212 Use &lbrace; and &rbrace; for "{" and "}" respectively as
1213 these symbols are used as shorthand for BOX, e.g.
1214
1215 {&lbrace;<LEFT>a+b<RIGHT>&rbrace;} is {a+b}
1216
1217 You can stretch definite integrals to match the integrand, e.g.
1218
1219 {&int;<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
1220
1221 b
1222 / f(x)
1223 | ----- dx
1224 / 1 + x
1225 a
1226
1227 Note the complex content model for BOX is a work around
1228 for the absence of support for infix operators in SGML.
1229
1230 You can get oversize delimiters with the SIZE attribute,
1231 for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
1232
1233 Note that the names of common functions are recognized
1234 by the parser without the need to use "&" and ";" around
1235 them, e.g. int, sum, sin, cos, tan, ...
1236 -->
1237
1238 <!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
1239 ((OVER|ATOP|CHOOSE), (%formula)*)?,
1240 (RIGHT, (%formula)*)?)>
1241 <!ATTLIST BOX
1242 size (normal|medium|large|huge) normal -- oversize delims -->
1243
1244 <!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
1245
1246 <!-- Horizontal line drawn ABOVE contents
1247 The symbol attribute allows authors to supply
1248 an entity name for an accent, arrow symbol etc.
1249 Generalisation of LaTeX's overline command.
1250
1251 e.g. <above sym=ssmile>x</above>
1252 places an upwardly turning curve above the "x"
1253 -->
1254
1255 <!ELEMENT ABOVE - - (%formula)+>
1256 <!ATTLIST ABOVE sym ENTITY #IMPLIED>
1257
1258 <!-- Horizontal line drawn BELOW contents
1259 The symbol attribute allows authors to
1260 supply an entity name for an arrow symbol etc.
1261 Generalisation of LaTeX's underline command.
1262 -->
1263
1264 <!ELEMENT BELOW - - (%formula)+>
1265 <!ATTLIST BELOW sym ENTITY #IMPLIED>
1266
1267 <!-- Convenience tags for common accents:
1268 vec, bar, dot, ddot, hat and tilde
1269 -->
1270
1271 <!ELEMENT (%mathvec) - - (%formula)+>
1272
1273 <!--
1274 T and BT are used to designate terms which should
1275 be rendered in an upright font (& bold face for BT)
1276 -->
1277
1278 <!ELEMENT (T|BT) - - (%formula)+>
1279 <!ATTLIST (T|BT) class NAMES #IMPLIED>
1280
1281 <!-- Roots e.g. <ROOT>3<OF>1+x</ROOT> -->
1282
1283 <!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
1284 <!ELEMENT OF - O (%formula)* -- what the root applies to -->
1285
1286 <!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
1287
1288 <!-- LaTeX like arrays. The COLDEF attribute specifies
1289 a single capital letter for each column determining
1290 how the column should be aligned, e.g. coldef="CCC"
1291
1292 "L" left
1293 "C" center
1294 "R" right
1295
1296 An optional separator letter can occur between columns
1297 and should be one of + - or =, e.g. "C+C+C+C=C".
1298 Whitespace within coldef is ignored. By default, the
1299 columns are all centered.
1300
1301 The ALIGN attribute alters the vertical position of the
1302 array as compared with preceding and following expressions.
1303
1304 Use LDELIM and RDELIM attributes for delimiter entities.
1305 When the LABELS attribute is present, the array is
1306 displayed with the first row and the first column as
1307 labels displaced from the other elements. In this case,
1308 the first element of the first row should normally be
1309 left blank.
1310
1311 Use &vdots; &cdots; and &ddots; for vertical, horizontal
1312 and diagonal ellipsis dots. Use &dotfill; to fill an array
1313 cell with horizontal dots (e.g. for a full row).
1314 Note &ldots; places the dots on the baseline, while &cdots;
1315 places them higher up.
1316 -->
1317
1318 <!ELEMENT ARRAY - - (ROW)+>
1319 <!ATTLIST ARRAY
1320 align (top|middle|bottom) middle -- vertical alignment --
1321 coldef CDATA #IMPLIED -- column alignment and separator --
1322 ldelim CDATA #IMPLIED -- stretchy left delimiter --
1323 rdelim CDATA #IMPLIED -- stretchy right delimiter --
1324 labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
1325
1326 <!ELEMENT ROW - O (ITEM)*>
1327 <!ELEMENT ITEM - O (%formula)*>
1328 <!ATTLIST ITEM
1329 align CDATA #IMPLIED -- override coldef alignment --
1330 colspan NUMBER 1 -- merge columns as per TABLE --
1331 rowspan NUMBER 1 -- merge rows as per TABLE -->
1332
1333 <!--================ Document Head ========================================-->
1334
1335 <![ %HTML.Deprecated [
1336 <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
1337 & META* & LINK* & RANGE* & NEXTID?">
1338 ]]>
1339
1340 <!ENTITY % head.nextid "">
1341
1342 <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
1343 & META* & LINK* & RANGE*">
1344
1345 <!ELEMENT HEAD O O (%head.content)>
1346
1347 <!ELEMENT LINK - O EMPTY>
1348 <!ATTLIST LINK
1349 href %URI #REQUIRED
1350 %linkExtraAttributes; >
1351
1352 <!ELEMENT RANGE - O EMPTY>
1353 <!ATTLIST RANGE
1354 id ID #IMPLIED -- for naming marked range --
1355 class NAMES #IMPLIED -- for subclassing --
1356 from IDREF #REQUIRED -- start of marked range --
1357 until IDREF #REQUIRED -- end of marked range --
1358 >
1359
1360 <!ELEMENT ISINDEX - O EMPTY>
1361 <!ATTLIST ISINDEX
1362 href %URI #IMPLIED -- server handling queries --
1363 prompt CDATA #IMPLIED -- prompt message -->
1364
1365 <!--
1366 The BASE element gives the base URL for
1367 dereferencing relative URLs, e.g.
1368
1369 <BASE href="http://foo.com/images">
1370 ...
1371 <IMG SRC="bar.gif">
1372
1373 The image is deferenced to
1374
1375 http://foo.com/images/bar.gif
1376 -->
1377
1378 <!ELEMENT BASE - O EMPTY>
1379 <!ATTLIST BASE
1380 id ID #IMPLIED
1381 href %URI; #REQUIRED
1382 >
1383
1384 <![ %HTML.Deprecated [
1385 <!ELEMENT NEXTID - O EMPTY>
1386 <!ATTLIST NEXTID N CDATA #REQUIRED>
1387 ]]>
1388
1389 <!ELEMENT META - O EMPTY -- Generic Metainformation -->
1390 <!ATTLIST META
1391 http-equiv NAME #IMPLIED -- HTTP response header name --
1392 name NAME #IMPLIED -- metainformation name --
1393 content CDATA #REQUIRED -- associated information --
1394 >
1395
1396 <!--
1397 A style sheet can be associated with the document using the
1398 LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
1399 Style overrides can be placed in the document head using the
1400 STYLE element, e.g.
1401
1402 <style notation=dsssl-lite>
1403 dsss-lite stuff
1404 </style>
1405
1406 Later on in the document you can use:
1407
1408 <h2 class=bigcaps>Header with bigger than normal capitals</h2>
1409 <p class=abstract>A paragraph with a unique style of its own
1410 ...
1411
1412 Statements in the given style notation
1413
1414 The tag names, class and id attributes are used in the style sheet
1415 notation to describe how to render matching elements.
1416 -->
1417
1418 <!ENTITY % style-notations "dsssl-lite | w3c-style">
1419 <!NOTATION dsssl-lite PUBLIC
1420 "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
1421
1422 <!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
1423
1424 <!ELEMENT STYLE - O (#PCDATA)>
1425 <!ATTLIST STYLE
1426 notation NOTATION (%style-notations;) #REQUIRED
1427 >
1428
1429 <!--================ Document Structure ===================================-->
1430
1431 <!ENTITY % html.content "HEAD, BODY">
1432
1433 <!ELEMENT HTML O O (%html.content)>
1434 <!ENTITY % version.attr 'VERSION CDATA #FIXED "&HTML.Version;"'>
1435
1436 <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
1437
1438 <!ATTLIST HTML
1439 %version.attr; -- report DTD version to application --
1440 urn CDATA #IMPLIED -- universal resource name for this document --
1441 class NAMES #IMPLIED -- role of this document, eg table of contents --
1442 >
1443
1444 <!-- The END -->