Mercurial > hg > xemacs-beta
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     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"> | |
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 --> |