0
|
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
|
2
|
363 <!ENTITY % HTMLicons PUBLIC
|
|
364 "-//IETF//ENTITIES icons for HTML//EN">
|
|
365 %HTMLicons;
|
0
|
366
|
|
367 <!--================ Entities for math symbols ============================-->
|
|
368
|
|
369 <!-- ISO subset chosen for use with the widely available Adobe math font -->
|
|
370
|
2
|
371 <!ENTITY % HTMLmath PUBLIC
|
|
372 "-//IETF//ENTITIES Math and Greek for HTML//EN">
|
|
373 %HTMLmath;
|
0
|
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 --
|
2
|
580 src %URI; #IMPLIED -- bullet defined by graphic --
|
0
|
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 --
|
2
|
687 src %URI; #IMPLIED -- bullet defined by graphic --
|
0
|
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 --
|
2
|
710 src %URI; #IMPLIED -- custom bullet graphic --
|
0
|
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 --
|
2
|
1065 imagemap %URI; #IMPLIED -- pass background clicks to server --
|
0
|
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 --
|
2
|
1085 imagemap %URI; #IMPLIED -- pass background clicks to server --
|
0
|
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     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 { and } for "{" and "}" respectively as
|
|
1213 these symbols are used as shorthand for BOX, e.g.
|
|
1214
|
|
1215 {{<LEFT>a+b<RIGHT>}} is {a+b}
|
|
1216
|
|
1217 You can stretch definite integrals to match the integrand, e.g.
|
|
1218
|
|
1219 {∫<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">
|
2
|
1419
|
|
1420 <!--
|
0
|
1421 <!NOTATION dsssl-lite PUBLIC
|
|
1422 "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
|
|
1423
|
|
1424 <!NOTATION w3c-style PUBLIC "IETF/RFC nnn/W3C Style Language//EN">
|
2
|
1425 -->
|
0
|
1426
|
|
1427 <!ELEMENT STYLE - O (#PCDATA)>
|
|
1428 <!ATTLIST STYLE
|
|
1429 notation NOTATION (%style-notations;) #REQUIRED
|
|
1430 >
|
|
1431
|
|
1432 <!--================ Document Structure ===================================-->
|
|
1433
|
|
1434 <!ENTITY % html.content "HEAD, BODY">
|
|
1435
|
|
1436 <!ELEMENT HTML O O (%html.content)>
|
2
|
1437 <!ENTITY % version.attr 'VERSION CDATA #FIXED "%HTML.Version;"'>
|
0
|
1438
|
|
1439 <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
|
|
1440
|
|
1441 <!ATTLIST HTML
|
|
1442 %version.attr; -- report DTD version to application --
|
|
1443 urn CDATA #IMPLIED -- universal resource name for this document --
|
|
1444 class NAMES #IMPLIED -- role of this document, eg table of contents --
|
|
1445 >
|
|
1446
|
|
1447 <!-- The END -->
|