]> matita.cs.unibo.it Git - helm.git/blob - matita/help/C/xhtml1-transitional.dtd
restored the good factorization file
[helm.git] / matita / help / C / xhtml1-transitional.dtd
1 <!--
2    Extensible HTML version 1.0 Transitional DTD
3
4    This is the same as HTML 4 Transitional except for
5    changes due to the differences between XML and SGML.
6
7    Namespace = http://www.w3.org/1999/xhtml
8
9    For further information, see: http://www.w3.org/TR/xhtml1
10
11    Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
12    All Rights Reserved. 
13
14    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
15
16    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
17    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
18
19    $Revision: 1.2 $
20    $Date: 2002/08/01 18:37:55 $
21
22 -->
23
24 <!--================ Character mnemonic entities =========================-->
25
26 <!-- <!ENTITY % HTMLlat1 PUBLIC
27    "-//W3C//ENTITIES Latin 1 for XHTML//EN"
28    "xhtml-lat1.ent">
29 %HTMLlat1;
30
31 <!ENTITY % HTMLsymbol PUBLIC
32    "-//W3C//ENTITIES Symbols for XHTML//EN"
33    "xhtml-symbol.ent">
34 %HTMLsymbol;
35
36 <!ENTITY % HTMLspecial PUBLIC
37    "-//W3C//ENTITIES Special for XHTML//EN"
38    "xhtml-special.ent">
39 %HTMLspecial; -->
40
41
42 <!-- Portions (C) International Organization for Standardization 1986
43      Permission to copy in any form is granted for use with
44      conforming SGML systems and applications as defined in
45      ISO 8879, provided this notice is included in all copies.
46 -->
47 <!-- Character entity set. Typical invocation:
48     <!ENTITY % HTMLlat1 PUBLIC
49        "-//W3C//ENTITIES Latin 1 for XHTML//EN"
50        "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
51     %HTMLlat1;
52 -->
53
54 <!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
55                                   U+00A0 ISOnum -->
56 <!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
57 <!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
58 <!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
59 <!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
60 <!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
61 <!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
62                                   U+00A6 ISOnum -->
63 <!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
64 <!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
65                                   U+00A8 ISOdia -->
66 <!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
67 <!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
68 <!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
69                                   = left pointing guillemet, U+00AB ISOnum -->
70 <!ENTITY not    "&#172;"> <!-- not sign = angled dash,
71                                   U+00AC ISOnum -->
72 <!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
73                                   U+00AD ISOnum -->
74 <!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
75                                   U+00AE ISOnum -->
76 <!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
77                                   = APL overbar, U+00AF ISOdia -->
78 <!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
79 <!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
80                                   U+00B1 ISOnum -->
81 <!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
82                                   = squared, U+00B2 ISOnum -->
83 <!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
84                                   = cubed, U+00B3 ISOnum -->
85 <!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
86                                   U+00B4 ISOdia -->
87 <!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
88 <!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
89                                   U+00B6 ISOnum -->
90 <!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
91                                   = Greek middle dot, U+00B7 ISOnum -->
92 <!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
93 <!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
94                                   U+00B9 ISOnum -->
95 <!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
96                                   U+00BA ISOnum -->
97 <!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
98                                   = right pointing guillemet, U+00BB ISOnum -->
99 <!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
100                                   = fraction one quarter, U+00BC ISOnum -->
101 <!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
102                                   = fraction one half, U+00BD ISOnum -->
103 <!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
104                                   = fraction three quarters, U+00BE ISOnum -->
105 <!ENTITY iquest "&#191;"> <!-- inverted question mark
106                                   = turned question mark, U+00BF ISOnum -->
107 <!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
108                                   = latin capital letter A grave,
109                                   U+00C0 ISOlat1 -->
110 <!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
111                                   U+00C1 ISOlat1 -->
112 <!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
113                                   U+00C2 ISOlat1 -->
114 <!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
115                                   U+00C3 ISOlat1 -->
116 <!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
117                                   U+00C4 ISOlat1 -->
118 <!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
119                                   = latin capital letter A ring,
120                                   U+00C5 ISOlat1 -->
121 <!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
122                                   = latin capital ligature AE,
123                                   U+00C6 ISOlat1 -->
124 <!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
125                                   U+00C7 ISOlat1 -->
126 <!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
127                                   U+00C8 ISOlat1 -->
128 <!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
129                                   U+00C9 ISOlat1 -->
130 <!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
131                                   U+00CA ISOlat1 -->
132 <!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
133                                   U+00CB ISOlat1 -->
134 <!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
135                                   U+00CC ISOlat1 -->
136 <!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
137                                   U+00CD ISOlat1 -->
138 <!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
139                                   U+00CE ISOlat1 -->
140 <!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
141                                   U+00CF ISOlat1 -->
142 <!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
143 <!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
144                                   U+00D1 ISOlat1 -->
145 <!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
146                                   U+00D2 ISOlat1 -->
147 <!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
148                                   U+00D3 ISOlat1 -->
149 <!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
150                                   U+00D4 ISOlat1 -->
151 <!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
152                                   U+00D5 ISOlat1 -->
153 <!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
154                                   U+00D6 ISOlat1 -->
155 <!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
156 <!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
157                                   = latin capital letter O slash,
158                                   U+00D8 ISOlat1 -->
159 <!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
160                                   U+00D9 ISOlat1 -->
161 <!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
162                                   U+00DA ISOlat1 -->
163 <!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
164                                   U+00DB ISOlat1 -->
165 <!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
166                                   U+00DC ISOlat1 -->
167 <!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
168                                   U+00DD ISOlat1 -->
169 <!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
170                                   U+00DE ISOlat1 -->
171 <!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
172                                   U+00DF ISOlat1 -->
173 <!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
174                                   = latin small letter a grave,
175                                   U+00E0 ISOlat1 -->
176 <!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
177                                   U+00E1 ISOlat1 -->
178 <!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
179                                   U+00E2 ISOlat1 -->
180 <!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
181                                   U+00E3 ISOlat1 -->
182 <!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
183                                   U+00E4 ISOlat1 -->
184 <!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
185                                   = latin small letter a ring,
186                                   U+00E5 ISOlat1 -->
187 <!ENTITY aelig  "&#230;"> <!-- latin small letter ae
188                                   = latin small ligature ae, U+00E6 ISOlat1 -->
189 <!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
190                                   U+00E7 ISOlat1 -->
191 <!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
192                                   U+00E8 ISOlat1 -->
193 <!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
194                                   U+00E9 ISOlat1 -->
195 <!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
196                                   U+00EA ISOlat1 -->
197 <!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
198                                   U+00EB ISOlat1 -->
199 <!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
200                                   U+00EC ISOlat1 -->
201 <!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
202                                   U+00ED ISOlat1 -->
203 <!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
204                                   U+00EE ISOlat1 -->
205 <!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
206                                   U+00EF ISOlat1 -->
207 <!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
208 <!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
209                                   U+00F1 ISOlat1 -->
210 <!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
211                                   U+00F2 ISOlat1 -->
212 <!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
213                                   U+00F3 ISOlat1 -->
214 <!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
215                                   U+00F4 ISOlat1 -->
216 <!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
217                                   U+00F5 ISOlat1 -->
218 <!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
219                                   U+00F6 ISOlat1 -->
220 <!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
221 <!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
222                                   = latin small letter o slash,
223                                   U+00F8 ISOlat1 -->
224 <!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
225                                   U+00F9 ISOlat1 -->
226 <!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
227                                   U+00FA ISOlat1 -->
228 <!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
229                                   U+00FB ISOlat1 -->
230 <!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
231                                   U+00FC ISOlat1 -->
232 <!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
233                                   U+00FD ISOlat1 -->
234 <!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
235                                   U+00FE ISOlat1 -->
236 <!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
237                                   U+00FF ISOlat1 -->
238 <!-- Mathematical, Greek and Symbolic characters for XHTML -->
239
240 <!-- Character entity set. Typical invocation:
241      <!ENTITY % HTMLsymbol PUBLIC
242         "-//W3C//ENTITIES Symbols for XHTML//EN"
243         "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
244      %HTMLsymbol;
245 -->
246
247 <!-- Portions (C) International Organization for Standardization 1986:
248      Permission to copy in any form is granted for use with
249      conforming SGML systems and applications as defined in
250      ISO 8879, provided this notice is included in all copies.
251 -->
252
253 <!-- Relevant ISO entity set is given unless names are newly introduced.
254      New names (i.e., not in ISO 8879 list) do not clash with any
255      existing ISO 8879 entity names. ISO 10646 character numbers
256      are given for each character, in hex. values are decimal
257      conversions of the ISO 10646 values and refer to the document
258      character set. Names are Unicode names. 
259 -->
260
261 <!-- Latin Extended-B -->
262 <!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function
263                                     = florin, U+0192 ISOtech -->
264
265 <!-- Greek -->
266 <!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
267 <!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
268 <!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
269                                     U+0393 ISOgrk3 -->
270 <!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
271                                     U+0394 ISOgrk3 -->
272 <!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
273 <!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
274 <!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
275 <!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
276                                     U+0398 ISOgrk3 -->
277 <!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
278 <!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
279 <!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,
280                                     U+039B ISOgrk3 -->
281 <!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
282 <!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
283 <!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
284 <!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
285 <!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
286 <!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
287 <!-- there is no Sigmaf, and no U+03A2 character either -->
288 <!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
289                                     U+03A3 ISOgrk3 -->
290 <!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
291 <!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
292                                     U+03A5 ISOgrk3 -->
293 <!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
294                                     U+03A6 ISOgrk3 -->
295 <!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
296 <!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
297                                     U+03A8 ISOgrk3 -->
298 <!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
299                                     U+03A9 ISOgrk3 -->
300
301 <!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
302                                     U+03B1 ISOgrk3 -->
303 <!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
304 <!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
305                                     U+03B3 ISOgrk3 -->
306 <!ENTITY delta    "&#948;"> <!-- greek small letter delta,
307                                     U+03B4 ISOgrk3 -->
308 <!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
309                                     U+03B5 ISOgrk3 -->
310 <!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
311 <!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
312 <!ENTITY theta    "&#952;"> <!-- greek small letter theta,
313                                     U+03B8 ISOgrk3 -->
314 <!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
315 <!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
316                                     U+03BA ISOgrk3 -->
317 <!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,
318                                     U+03BB ISOgrk3 -->
319 <!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
320 <!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
321 <!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
322 <!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
323 <!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
324 <!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
325 <!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
326                                     U+03C2 ISOgrk3 -->
327 <!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
328                                     U+03C3 ISOgrk3 -->
329 <!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
330 <!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
331                                     U+03C5 ISOgrk3 -->
332 <!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
333 <!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
334 <!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
335 <!ENTITY omega    "&#969;"> <!-- greek small letter omega,
336                                     U+03C9 ISOgrk3 -->
337 <!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
338                                     U+03D1 NEW -->
339 <!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
340                                     U+03D2 NEW -->
341 <!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
342
343 <!-- General Punctuation -->
344 <!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
345                                      U+2022 ISOpub  -->
346 <!-- bullet is NOT the same as bullet operator, U+2219 -->
347 <!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
348                                      U+2026 ISOpub  -->
349 <!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
350 <!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
351                                      U+2033 ISOtech -->
352 <!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
353                                      U+203E NEW -->
354 <!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
355
356 <!-- Letterlike Symbols -->
357 <!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
358                                      = Weierstrass p, U+2118 ISOamso -->
359 <!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,
360                                      U+2111 ISOamso -->
361 <!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,
362                                      U+211C ISOamso -->
363 <!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
364 <!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,
365                                      U+2135 NEW -->
366 <!-- alef symbol is NOT the same as hebrew letter alef,
367      U+05D0 although the same glyph could be used to depict both characters -->
368
369 <!-- Arrows -->
370 <!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
371 <!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
372 <!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
373 <!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
374 <!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
375 <!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
376                                      = carriage return, U+21B5 NEW -->
377 <!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->
378 <!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
379     but also does not have any other character for that function. So lArr can
380     be used for 'is implied by' as ISOtech suggests -->
381 <!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
382 <!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,
383                                      U+21D2 ISOtech -->
384 <!-- Unicode does not say this is the 'implies' character but does not have 
385      another character with this function so rArr can be used for 'implies'
386      as ISOtech suggests -->
387 <!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
388 <!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
389                                      U+21D4 ISOamsa -->
390
391 <!-- Mathematical Operators -->
392 <!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
393 <!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
394 <!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
395 <!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
396 <!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
397                                      U+2207 ISOtech -->
398 <!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
399 <!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
400 <!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
401 <!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,
402                                      U+220F ISOamsb -->
403 <!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
404      the same glyph might be used for both -->
405 <!ENTITY sum      "&#8721;"> <!-- n-ary summation, U+2211 ISOamsb -->
406 <!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
407      though the same glyph might be used for both -->
408 <!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
409 <!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
410 <!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
411                                      U+221A ISOtech -->
412 <!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
413 <!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
414 <!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
415 <!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
416 <!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
417 <!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
418 <!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
419 <!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
420 <!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
421 <!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,
422                                      U+223C ISOtech -->
423 <!-- tilde operator is NOT the same character as the tilde, U+007E,
424      although the same glyph might be used to represent both  -->
425 <!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
426 <!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
427                                      U+2248 ISOamsr -->
428 <!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
429 <!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
430 <!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
431 <!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
432                                      U+2265 ISOtech -->
433 <!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
434 <!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
435 <!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
436 <!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
437 <!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
438                                      U+2287 ISOtech -->
439 <!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
440                                      U+2295 ISOamsb -->
441 <!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
442                                      U+2297 ISOamsb -->
443 <!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
444                                      U+22A5 ISOtech -->
445 <!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
446 <!-- dot operator is NOT the same character as U+00B7 middle dot -->
447
448 <!-- Miscellaneous Technical -->
449 <!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,
450                                      U+2308 ISOamsc  -->
451 <!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
452 <!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,
453                                      U+230A ISOamsc  -->
454 <!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
455 <!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
456                                      U+2329 ISOtech -->
457 <!-- lang is NOT the same character as U+003C 'less than sign' 
458      or U+2039 'single left-pointing angle quotation mark' -->
459 <!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
460                                      U+232A ISOtech -->
461 <!-- rang is NOT the same character as U+003E 'greater than sign' 
462      or U+203A 'single right-pointing angle quotation mark' -->
463
464 <!-- Geometric Shapes -->
465 <!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
466
467 <!-- Miscellaneous Symbols -->
468 <!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
469 <!-- black here seems to mean filled as opposed to hollow -->
470 <!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
471                                      U+2663 ISOpub -->
472 <!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
473                                      U+2665 ISOpub -->
474 <!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
475
476 <!-- Special characters for XHTML -->
477
478 <!-- Character entity set. Typical invocation:
479      <!ENTITY % HTMLspecial PUBLIC
480         "-//W3C//ENTITIES Special for XHTML//EN"
481         "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
482      %HTMLspecial;
483 -->
484
485 <!-- Portions (C) International Organization for Standardization 1986:
486      Permission to copy in any form is granted for use with
487      conforming SGML systems and applications as defined in
488      ISO 8879, provided this notice is included in all copies.
489 -->
490
491 <!-- Relevant ISO entity set is given unless names are newly introduced.
492      New names (i.e., not in ISO 8879 list) do not clash with any
493      existing ISO 8879 entity names. ISO 10646 character numbers
494      are given for each character, in hex. values are decimal
495      conversions of the ISO 10646 values and refer to the document
496      character set. Names are Unicode names. 
497 -->
498
499 <!-- C0 Controls and Basic Latin -->
500 <!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->
501 <!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
502 <!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
503 <!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
504 <!ENTITY apos    "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->
505
506 <!-- Latin Extended-A -->
507 <!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
508                                     U+0152 ISOlat2 -->
509 <!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
510 <!-- ligature is a misnomer, this is a separate character in some languages -->
511 <!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
512                                     U+0160 ISOlat2 -->
513 <!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
514                                     U+0161 ISOlat2 -->
515 <!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
516                                     U+0178 ISOlat2 -->
517
518 <!-- Spacing Modifier Letters -->
519 <!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
520                                     U+02C6 ISOpub -->
521 <!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
522
523 <!-- General Punctuation -->
524 <!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
525 <!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
526 <!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
527 <!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
528                                     U+200C NEW RFC 2070 -->
529 <!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
530 <!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
531 <!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
532 <!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
533 <!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
534 <!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
535                                     U+2018 ISOnum -->
536 <!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
537                                     U+2019 ISOnum -->
538 <!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
539 <!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
540                                     U+201C ISOnum -->
541 <!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
542                                     U+201D ISOnum -->
543 <!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
544 <!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
545 <!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
546 <!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
547 <!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
548                                     U+2039 ISO proposed -->
549 <!-- lsaquo is proposed but not yet ISO standardized -->
550 <!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
551                                     U+203A ISO proposed -->
552 <!-- rsaquo is proposed but not yet ISO standardized -->
553
554 <!-- Currency Symbols -->
555 <!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
556
557 <!--================== Imported Names ====================================-->
558
559 <!ENTITY % ContentType "CDATA">
560     <!-- media type, as per [RFC2045] -->
561
562 <!ENTITY % ContentTypes "CDATA">
563     <!-- comma-separated list of media types, as per [RFC2045] -->
564
565 <!ENTITY % Charset "CDATA">
566     <!-- a character encoding, as per [RFC2045] -->
567
568 <!ENTITY % Charsets "CDATA">
569     <!-- a space separated list of character encodings, as per [RFC2045] -->
570
571 <!ENTITY % LanguageCode "NMTOKEN">
572     <!-- a language code, as per [RFC3066] -->
573
574 <!ENTITY % Character "CDATA">
575     <!-- a single character, as per section 2.2 of [XML] -->
576
577 <!ENTITY % Number "CDATA">
578     <!-- one or more digits -->
579
580 <!ENTITY % LinkTypes "CDATA">
581     <!-- space-separated list of link types -->
582
583 <!ENTITY % MediaDesc "CDATA">
584     <!-- single or comma-separated list of media descriptors -->
585
586 <!ENTITY % URI "CDATA">
587     <!-- a Uniform Resource Identifier, see [RFC2396] -->
588
589 <!ENTITY % UriList "CDATA">
590     <!-- a space separated list of Uniform Resource Identifiers -->
591
592 <!ENTITY % Datetime "CDATA">
593     <!-- date and time information. ISO date format -->
594
595 <!ENTITY % Script "CDATA">
596     <!-- script expression -->
597
598 <!ENTITY % StyleSheet "CDATA">
599     <!-- style sheet data -->
600
601 <!ENTITY % Text "CDATA">
602     <!-- used for titles etc. -->
603
604 <!ENTITY % FrameTarget "NMTOKEN">
605     <!-- render in this frame -->
606
607 <!ENTITY % Length "CDATA">
608     <!-- nn for pixels or nn% for percentage length -->
609
610 <!ENTITY % MultiLength "CDATA">
611     <!-- pixel, percentage, or relative -->
612
613 <!ENTITY % Pixels "CDATA">
614     <!-- integer representing length in pixels -->
615
616 <!-- these are used for image maps -->
617
618 <!ENTITY % Shape "(rect|circle|poly|default)">
619
620 <!ENTITY % Coords "CDATA">
621     <!-- comma separated list of lengths -->
622
623 <!-- used for object, applet, img, input and iframe -->
624 <!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
625
626 <!-- a color using sRGB: #RRGGBB as Hex values -->
627 <!ENTITY % Color "CDATA">
628
629 <!-- There are also 16 widely known color names with their sRGB values:
630
631     Black  = #000000    Green  = #008000
632     Silver = #C0C0C0    Lime   = #00FF00
633     Gray   = #808080    Olive  = #808000
634     White  = #FFFFFF    Yellow = #FFFF00
635     Maroon = #800000    Navy   = #000080
636     Red    = #FF0000    Blue   = #0000FF
637     Purple = #800080    Teal   = #008080
638     Fuchsia= #FF00FF    Aqua   = #00FFFF
639 -->
640
641 <!--=================== Generic Attributes ===============================-->
642
643 <!-- core attributes common to most elements
644   id       document-wide unique id
645   class    space separated list of classes
646   style    associated style info
647   title    advisory title/amplification
648 -->
649 <!ENTITY % coreattrs
650  "id          ID             #IMPLIED
651   class       CDATA          #IMPLIED
652   style       %StyleSheet;   #IMPLIED
653   title       %Text;         #IMPLIED"
654   >
655
656 <!-- internationalization attributes
657   lang        language code (backwards compatible)
658   xml:lang    language code (as per XML 1.0 spec)
659   dir         direction for weak/neutral text
660 -->
661 <!ENTITY % i18n
662  "lang        %LanguageCode; #IMPLIED
663   xml:lang    %LanguageCode; #IMPLIED
664   dir         (ltr|rtl)      #IMPLIED"
665   >
666
667 <!-- attributes for common UI events
668   onclick     a pointer button was clicked
669   ondblclick  a pointer button was double clicked
670   onmousedown a pointer button was pressed down
671   onmouseup   a pointer button was released
672   onmousemove a pointer was moved onto the element
673   onmouseout  a pointer was moved away from the element
674   onkeypress  a key was pressed and released
675   onkeydown   a key was pressed down
676   onkeyup     a key was released
677 -->
678 <!ENTITY % events
679  "onclick     %Script;       #IMPLIED
680   ondblclick  %Script;       #IMPLIED
681   onmousedown %Script;       #IMPLIED
682   onmouseup   %Script;       #IMPLIED
683   onmouseover %Script;       #IMPLIED
684   onmousemove %Script;       #IMPLIED
685   onmouseout  %Script;       #IMPLIED
686   onkeypress  %Script;       #IMPLIED
687   onkeydown   %Script;       #IMPLIED
688   onkeyup     %Script;       #IMPLIED"
689   >
690
691 <!-- attributes for elements that can get the focus
692   accesskey   accessibility key character
693   tabindex    position in tabbing order
694   onfocus     the element got the focus
695   onblur      the element lost the focus
696 -->
697 <!ENTITY % focus
698  "accesskey   %Character;    #IMPLIED
699   tabindex    %Number;       #IMPLIED
700   onfocus     %Script;       #IMPLIED
701   onblur      %Script;       #IMPLIED"
702   >
703
704 <!ENTITY % attrs "%coreattrs; %i18n; %events;">
705
706 <!-- text alignment for p, div, h1-h6. The default is
707      align="left" for ltr headings, "right" for rtl -->
708
709 <!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
710
711 <!--=================== Text Elements ====================================-->
712
713 <!ENTITY % special.extra
714    "object | applet | img | map | iframe">
715         
716 <!ENTITY % special.basic
717         "br | span | bdo">
718
719 <!ENTITY % special
720    "%special.basic; | %special.extra;">
721
722 <!ENTITY % fontstyle.extra "big | small | font | basefont">
723
724 <!ENTITY % fontstyle.basic "tt | i | b | u
725                       | s | strike ">
726
727 <!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
728
729 <!ENTITY % phrase.extra "sub | sup">
730 <!ENTITY % phrase.basic "em | strong | dfn | code | q |
731                    samp | kbd | var | cite | abbr | acronym">
732
733 <!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
734
735 <!ENTITY % inline.forms "input | select | textarea | label | button">
736
737 <!-- these can occur at block or inline level -->
738 <!ENTITY % misc.inline "ins | del | script">
739
740 <!-- these can only occur at block level -->
741 <!ENTITY % misc "noscript | %misc.inline;">
742
743 <!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
744
745 <!-- %Inline; covers inline or "text-level" elements -->
746 <!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
747
748 <!--================== Block level elements ==============================-->
749
750 <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
751 <!ENTITY % lists "ul | ol | dl | menu | dir">
752 <!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
753
754 <!ENTITY % block
755     "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
756
757 <!-- %Flow; mixes block and inline and is used for list items etc. -->
758 <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
759
760 <!--================== Content models for exclusions =====================-->
761
762 <!-- a elements use %Inline; excluding a -->
763
764 <!ENTITY % a.content
765    "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
766
767 <!-- pre uses %Inline excluding img, object, applet, big, small,
768      font, or basefont -->
769
770 <!ENTITY % pre.content
771    "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
772            %inline.forms; | %misc.inline;)*">
773
774 <!-- form uses %Flow; excluding form -->
775
776 <!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
777
778 <!-- button uses %Flow; but excludes a, form, form controls, iframe -->
779
780 <!ENTITY % button.content
781    "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
782       table | br | span | bdo | object | applet | img | map |
783       %fontstyle; | %phrase; | %misc;)*">
784
785 <!--================ Document Structure ==================================-->
786
787 <!-- the namespace URI designates the document profile -->
788
789 <!ELEMENT html (head, body)>
790 <!ATTLIST html
791   %i18n;
792   id          ID             #IMPLIED
793   xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
794   >
795
796 <!--================ Document Head =======================================-->
797
798 <!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
799
800 <!-- content model is %head.misc; combined with a single
801      title and an optional base element in any order -->
802
803 <!ELEMENT head (%head.misc;,
804      ((title, %head.misc;, (base, %head.misc;)?) |
805       (base, %head.misc;, (title, %head.misc;))))>
806
807 <!ATTLIST head
808   %i18n;
809   id          ID             #IMPLIED
810   profile     %URI;          #IMPLIED
811   >
812
813 <!-- The title element is not considered part of the flow of text.
814        It should be displayed, for example as the page header or
815        window title. Exactly one title is required per document.
816     -->
817 <!ELEMENT title (#PCDATA)>
818 <!ATTLIST title 
819   %i18n;
820   id          ID             #IMPLIED
821   >
822
823 <!-- document base URI -->
824
825 <!ELEMENT base EMPTY>
826 <!ATTLIST base
827   id          ID             #IMPLIED
828   href        %URI;          #IMPLIED
829   target      %FrameTarget;  #IMPLIED
830   >
831
832 <!-- generic metainformation -->
833 <!ELEMENT meta EMPTY>
834 <!ATTLIST meta
835   %i18n;
836   id          ID             #IMPLIED
837   http-equiv  CDATA          #IMPLIED
838   name        CDATA          #IMPLIED
839   content     CDATA          #REQUIRED
840   scheme      CDATA          #IMPLIED
841   >
842
843 <!--
844   Relationship values can be used in principle:
845
846    a) for document specific toolbars/menus when used
847       with the link element in document head e.g.
848         start, contents, previous, next, index, end, help
849    b) to link to a separate style sheet (rel="stylesheet")
850    c) to make a link to a script (rel="script")
851    d) by stylesheets to control how collections of
852       html nodes are rendered into printed documents
853    e) to make a link to a printable version of this document
854       e.g. a PostScript or PDF version (rel="alternate" media="print")
855 -->
856
857 <!ELEMENT link EMPTY>
858 <!ATTLIST link
859   %attrs;
860   charset     %Charset;      #IMPLIED
861   href        %URI;          #IMPLIED
862   hreflang    %LanguageCode; #IMPLIED
863   type        %ContentType;  #IMPLIED
864   rel         %LinkTypes;    #IMPLIED
865   rev         %LinkTypes;    #IMPLIED
866   media       %MediaDesc;    #IMPLIED
867   target      %FrameTarget;  #IMPLIED
868   >
869
870 <!-- style info, which may include CDATA sections -->
871 <!ELEMENT style (#PCDATA)>
872 <!ATTLIST style
873   %i18n;
874   id          ID             #IMPLIED
875   type        %ContentType;  #REQUIRED
876   media       %MediaDesc;    #IMPLIED
877   title       %Text;         #IMPLIED
878   xml:space   (preserve)     #FIXED 'preserve'
879   >
880
881 <!-- script statements, which may include CDATA sections -->
882 <!ELEMENT script (#PCDATA)>
883 <!ATTLIST script
884   id          ID             #IMPLIED
885   charset     %Charset;      #IMPLIED
886   type        %ContentType;  #REQUIRED
887   language    CDATA          #IMPLIED
888   src         %URI;          #IMPLIED
889   defer       (defer)        #IMPLIED
890   xml:space   (preserve)     #FIXED 'preserve'
891   >
892
893 <!-- alternate content container for non script-based rendering -->
894
895 <!ELEMENT noscript %Flow;>
896 <!ATTLIST noscript
897   %attrs;
898   >
899
900 <!--======================= Frames =======================================-->
901
902 <!-- inline subwindow -->
903
904 <!ELEMENT iframe %Flow;>
905 <!ATTLIST iframe
906   %coreattrs;
907   longdesc    %URI;          #IMPLIED
908   name        NMTOKEN        #IMPLIED
909   src         %URI;          #IMPLIED
910   frameborder (1|0)          "1"
911   marginwidth %Pixels;       #IMPLIED
912   marginheight %Pixels;      #IMPLIED
913   scrolling   (yes|no|auto)  "auto"
914   align       %ImgAlign;     #IMPLIED
915   height      %Length;       #IMPLIED
916   width       %Length;       #IMPLIED
917   >
918
919 <!-- alternate content container for non frame-based rendering -->
920
921 <!ELEMENT noframes %Flow;>
922 <!ATTLIST noframes
923   %attrs;
924   >
925
926 <!--=================== Document Body ====================================-->
927
928 <!ELEMENT body %Flow;>
929 <!ATTLIST body
930   %attrs;
931   onload      %Script;       #IMPLIED
932   onunload    %Script;       #IMPLIED
933   background  %URI;          #IMPLIED
934   bgcolor     %Color;        #IMPLIED
935   text        %Color;        #IMPLIED
936   link        %Color;        #IMPLIED
937   vlink       %Color;        #IMPLIED
938   alink       %Color;        #IMPLIED
939   >
940
941 <!ELEMENT div %Flow;>  <!-- generic language/style container -->
942 <!ATTLIST div
943   %attrs;
944   %TextAlign;
945   >
946
947 <!--=================== Paragraphs =======================================-->
948
949 <!ELEMENT p %Inline;>
950 <!ATTLIST p
951   %attrs;
952   %TextAlign;
953   >
954
955 <!--=================== Headings =========================================-->
956
957 <!--
958   There are six levels of headings from h1 (the most important)
959   to h6 (the least important).
960 -->
961
962 <!ELEMENT h1  %Inline;>
963 <!ATTLIST h1
964   %attrs;
965   %TextAlign;
966   >
967
968 <!ELEMENT h2 %Inline;>
969 <!ATTLIST h2
970   %attrs;
971   %TextAlign;
972   >
973
974 <!ELEMENT h3 %Inline;>
975 <!ATTLIST h3
976   %attrs;
977   %TextAlign;
978   >
979
980 <!ELEMENT h4 %Inline;>
981 <!ATTLIST h4
982   %attrs;
983   %TextAlign;
984   >
985
986 <!ELEMENT h5 %Inline;>
987 <!ATTLIST h5
988   %attrs;
989   %TextAlign;
990   >
991
992 <!ELEMENT h6 %Inline;>
993 <!ATTLIST h6
994   %attrs;
995   %TextAlign;
996   >
997
998 <!--=================== Lists ============================================-->
999
1000 <!-- Unordered list bullet styles -->
1001
1002 <!ENTITY % ULStyle "(disc|square|circle)">
1003
1004 <!-- Unordered list -->
1005
1006 <!ELEMENT ul (li)+>
1007 <!ATTLIST ul
1008   %attrs;
1009   type        %ULStyle;     #IMPLIED
1010   compact     (compact)     #IMPLIED
1011   >
1012
1013 <!-- Ordered list numbering style
1014
1015     1   arabic numbers      1, 2, 3, ...
1016     a   lower alpha         a, b, c, ...
1017     A   upper alpha         A, B, C, ...
1018     i   lower roman         i, ii, iii, ...
1019     I   upper roman         I, II, III, ...
1020
1021     The style is applied to the sequence number which by default
1022     is reset to 1 for the first list item in an ordered list.
1023 -->
1024 <!ENTITY % OLStyle "CDATA">
1025
1026 <!-- Ordered (numbered) list -->
1027
1028 <!ELEMENT ol (li)+>
1029 <!ATTLIST ol
1030   %attrs;
1031   type        %OLStyle;      #IMPLIED
1032   compact     (compact)      #IMPLIED
1033   start       %Number;       #IMPLIED
1034   >
1035
1036 <!-- single column list (DEPRECATED) --> 
1037 <!ELEMENT menu (li)+>
1038 <!ATTLIST menu
1039   %attrs;
1040   compact     (compact)     #IMPLIED
1041   >
1042
1043 <!-- multiple column list (DEPRECATED) --> 
1044 <!ELEMENT dir (li)+>
1045 <!ATTLIST dir
1046   %attrs;
1047   compact     (compact)     #IMPLIED
1048   >
1049
1050 <!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
1051 <!ENTITY % LIStyle "CDATA">
1052
1053 <!-- list item -->
1054
1055 <!ELEMENT li %Flow;>
1056 <!ATTLIST li
1057   %attrs;
1058   type        %LIStyle;      #IMPLIED
1059   value       %Number;       #IMPLIED
1060   >
1061
1062 <!-- definition lists - dt for term, dd for its definition -->
1063
1064 <!ELEMENT dl (dt|dd)+>
1065 <!ATTLIST dl
1066   %attrs;
1067   compact     (compact)      #IMPLIED
1068   >
1069
1070 <!ELEMENT dt %Inline;>
1071 <!ATTLIST dt
1072   %attrs;
1073   >
1074
1075 <!ELEMENT dd %Flow;>
1076 <!ATTLIST dd
1077   %attrs;
1078   >
1079
1080 <!--=================== Address ==========================================-->
1081
1082 <!-- information on author -->
1083
1084 <!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
1085 <!ATTLIST address
1086   %attrs;
1087   >
1088
1089 <!--=================== Horizontal Rule ==================================-->
1090
1091 <!ELEMENT hr EMPTY>
1092 <!ATTLIST hr
1093   %attrs;
1094   align       (left|center|right) #IMPLIED
1095   noshade     (noshade)      #IMPLIED
1096   size        %Pixels;       #IMPLIED
1097   width       %Length;       #IMPLIED
1098   >
1099
1100 <!--=================== Preformatted Text ================================-->
1101
1102 <!-- content is %Inline; excluding 
1103         "img|object|applet|big|small|sub|sup|font|basefont" -->
1104
1105 <!ELEMENT pre %pre.content;>
1106 <!ATTLIST pre
1107   %attrs;
1108   width       %Number;      #IMPLIED
1109   xml:space   (preserve)    #FIXED 'preserve'
1110   >
1111
1112 <!--=================== Block-like Quotes ================================-->
1113
1114 <!ELEMENT blockquote %Flow;>
1115 <!ATTLIST blockquote
1116   %attrs;
1117   cite        %URI;          #IMPLIED
1118   >
1119
1120 <!--=================== Text alignment ===================================-->
1121
1122 <!-- center content -->
1123 <!ELEMENT center %Flow;>
1124 <!ATTLIST center
1125   %attrs;
1126   >
1127
1128 <!--=================== Inserted/Deleted Text ============================-->
1129
1130 <!--
1131   ins/del are allowed in block and inline content, but its
1132   inappropriate to include block content within an ins element
1133   occurring in inline content.
1134 -->
1135 <!ELEMENT ins %Flow;>
1136 <!ATTLIST ins
1137   %attrs;
1138   cite        %URI;          #IMPLIED
1139   datetime    %Datetime;     #IMPLIED
1140   >
1141
1142 <!ELEMENT del %Flow;>
1143 <!ATTLIST del
1144   %attrs;
1145   cite        %URI;          #IMPLIED
1146   datetime    %Datetime;     #IMPLIED
1147   >
1148
1149 <!--================== The Anchor Element ================================-->
1150
1151 <!-- content is %Inline; except that anchors shouldn't be nested -->
1152
1153 <!ELEMENT a %a.content;>
1154 <!ATTLIST a
1155   %attrs;
1156   %focus;
1157   charset     %Charset;      #IMPLIED
1158   type        %ContentType;  #IMPLIED
1159   name        NMTOKEN        #IMPLIED
1160   href        %URI;          #IMPLIED
1161   hreflang    %LanguageCode; #IMPLIED
1162   rel         %LinkTypes;    #IMPLIED
1163   rev         %LinkTypes;    #IMPLIED
1164   shape       %Shape;        "rect"
1165   coords      %Coords;       #IMPLIED
1166   target      %FrameTarget;  #IMPLIED
1167   >
1168
1169 <!--===================== Inline Elements ================================-->
1170
1171 <!ELEMENT span %Inline;> <!-- generic language/style container -->
1172 <!ATTLIST span
1173   %attrs;
1174   >
1175
1176 <!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
1177 <!ATTLIST bdo
1178   %coreattrs;
1179   %events;
1180   lang        %LanguageCode; #IMPLIED
1181   xml:lang    %LanguageCode; #IMPLIED
1182   dir         (ltr|rtl)      #REQUIRED
1183   >
1184
1185 <!ELEMENT br EMPTY>   <!-- forced line break -->
1186 <!ATTLIST br
1187   %coreattrs;
1188   clear       (left|all|right|none) "none"
1189   >
1190
1191 <!ELEMENT em %Inline;>   <!-- emphasis -->
1192 <!ATTLIST em %attrs;>
1193
1194 <!ELEMENT strong %Inline;>   <!-- strong emphasis -->
1195 <!ATTLIST strong %attrs;>
1196
1197 <!ELEMENT dfn %Inline;>   <!-- definitional -->
1198 <!ATTLIST dfn %attrs;>
1199
1200 <!ELEMENT code %Inline;>   <!-- program code -->
1201 <!ATTLIST code %attrs;>
1202
1203 <!ELEMENT samp %Inline;>   <!-- sample -->
1204 <!ATTLIST samp %attrs;>
1205
1206 <!ELEMENT kbd %Inline;>  <!-- something user would type -->
1207 <!ATTLIST kbd %attrs;>
1208
1209 <!ELEMENT var %Inline;>   <!-- variable -->
1210 <!ATTLIST var %attrs;>
1211
1212 <!ELEMENT cite %Inline;>   <!-- citation -->
1213 <!ATTLIST cite %attrs;>
1214
1215 <!ELEMENT abbr %Inline;>   <!-- abbreviation -->
1216 <!ATTLIST abbr %attrs;>
1217
1218 <!ELEMENT acronym %Inline;>   <!-- acronym -->
1219 <!ATTLIST acronym %attrs;>
1220
1221 <!ELEMENT q %Inline;>   <!-- inlined quote -->
1222 <!ATTLIST q
1223   %attrs;
1224   cite        %URI;          #IMPLIED
1225   >
1226
1227 <!ELEMENT sub %Inline;> <!-- subscript -->
1228 <!ATTLIST sub %attrs;>
1229
1230 <!ELEMENT sup %Inline;> <!-- superscript -->
1231 <!ATTLIST sup %attrs;>
1232
1233 <!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
1234 <!ATTLIST tt %attrs;>
1235
1236 <!ELEMENT i %Inline;>   <!-- italic font -->
1237 <!ATTLIST i %attrs;>
1238
1239 <!ELEMENT b %Inline;>   <!-- bold font -->
1240 <!ATTLIST b %attrs;>
1241
1242 <!ELEMENT big %Inline;>   <!-- bigger font -->
1243 <!ATTLIST big %attrs;>
1244
1245 <!ELEMENT small %Inline;>   <!-- smaller font -->
1246 <!ATTLIST small %attrs;>
1247
1248 <!ELEMENT u %Inline;>   <!-- underline -->
1249 <!ATTLIST u %attrs;>
1250
1251 <!ELEMENT s %Inline;>   <!-- strike-through -->
1252 <!ATTLIST s %attrs;>
1253
1254 <!ELEMENT strike %Inline;>   <!-- strike-through -->
1255 <!ATTLIST strike %attrs;>
1256
1257 <!ELEMENT basefont EMPTY>  <!-- base font size -->
1258 <!ATTLIST basefont
1259   id          ID             #IMPLIED
1260   size        CDATA          #REQUIRED
1261   color       %Color;        #IMPLIED
1262   face        CDATA          #IMPLIED
1263   >
1264
1265 <!ELEMENT font %Inline;> <!-- local change to font -->
1266 <!ATTLIST font
1267   %coreattrs;
1268   %i18n;
1269   size        CDATA          #IMPLIED
1270   color       %Color;        #IMPLIED
1271   face        CDATA          #IMPLIED
1272   >
1273
1274 <!--==================== Object ======================================-->
1275 <!--
1276   object is used to embed objects as part of HTML pages.
1277   param elements should precede other content. Parameters
1278   can also be expressed as attribute/value pairs on the
1279   object element itself when brevity is desired.
1280 -->
1281
1282 <!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
1283 <!ATTLIST object
1284   %attrs;
1285   declare     (declare)      #IMPLIED
1286   classid     %URI;          #IMPLIED
1287   codebase    %URI;          #IMPLIED
1288   data        %URI;          #IMPLIED
1289   type        %ContentType;  #IMPLIED
1290   codetype    %ContentType;  #IMPLIED
1291   archive     %UriList;      #IMPLIED
1292   standby     %Text;         #IMPLIED
1293   height      %Length;       #IMPLIED
1294   width       %Length;       #IMPLIED
1295   usemap      %URI;          #IMPLIED
1296   name        NMTOKEN        #IMPLIED
1297   tabindex    %Number;       #IMPLIED
1298   align       %ImgAlign;     #IMPLIED
1299   border      %Pixels;       #IMPLIED
1300   hspace      %Pixels;       #IMPLIED
1301   vspace      %Pixels;       #IMPLIED
1302   >
1303
1304 <!--
1305   param is used to supply a named property value.
1306   In XML it would seem natural to follow RDF and support an
1307   abbreviated syntax where the param elements are replaced
1308   by attribute value pairs on the object start tag.
1309 -->
1310 <!ELEMENT param EMPTY>
1311 <!ATTLIST param
1312   id          ID             #IMPLIED
1313   name        CDATA          #REQUIRED
1314   value       CDATA          #IMPLIED
1315   valuetype   (data|ref|object) "data"
1316   type        %ContentType;  #IMPLIED
1317   >
1318
1319 <!--=================== Java applet ==================================-->
1320 <!--
1321   One of code or object attributes must be present.
1322   Place param elements before other content.
1323 -->
1324 <!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
1325 <!ATTLIST applet
1326   %coreattrs;
1327   codebase    %URI;          #IMPLIED
1328   archive     CDATA          #IMPLIED
1329   code        CDATA          #IMPLIED
1330   object      CDATA          #IMPLIED
1331   alt         %Text;         #IMPLIED
1332   name        NMTOKEN        #IMPLIED
1333   width       %Length;       #REQUIRED
1334   height      %Length;       #REQUIRED
1335   align       %ImgAlign;     #IMPLIED
1336   hspace      %Pixels;       #IMPLIED
1337   vspace      %Pixels;       #IMPLIED
1338   >
1339
1340 <!--=================== Images ===========================================-->
1341
1342 <!--
1343    To avoid accessibility problems for people who aren't
1344    able to see the image, you should provide a text
1345    description using the alt and longdesc attributes.
1346    In addition, avoid the use of server-side image maps.
1347 -->
1348
1349 <!ELEMENT img EMPTY>
1350 <!ATTLIST img
1351   %attrs;
1352   src         %URI;          #REQUIRED
1353   alt         %Text;         #REQUIRED
1354   name        NMTOKEN        #IMPLIED
1355   longdesc    %URI;          #IMPLIED
1356   height      %Length;       #IMPLIED
1357   width       %Length;       #IMPLIED
1358   usemap      %URI;          #IMPLIED
1359   ismap       (ismap)        #IMPLIED
1360   align       %ImgAlign;     #IMPLIED
1361   border      %Length;       #IMPLIED
1362   hspace      %Pixels;       #IMPLIED
1363   vspace      %Pixels;       #IMPLIED
1364   >
1365
1366 <!-- usemap points to a map element which may be in this document
1367   or an external document, although the latter is not widely supported -->
1368
1369 <!--================== Client-side image maps ============================-->
1370
1371 <!-- These can be placed in the same document or grouped in a
1372      separate document although this isn't yet widely supported -->
1373
1374 <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
1375 <!ATTLIST map
1376   %i18n;
1377   %events;
1378   id          ID             #REQUIRED
1379   class       CDATA          #IMPLIED
1380   style       %StyleSheet;   #IMPLIED
1381   title       %Text;         #IMPLIED
1382   name        CDATA          #IMPLIED
1383   >
1384
1385 <!ELEMENT area EMPTY>
1386 <!ATTLIST area
1387   %attrs;
1388   %focus;
1389   shape       %Shape;        "rect"
1390   coords      %Coords;       #IMPLIED
1391   href        %URI;          #IMPLIED
1392   nohref      (nohref)       #IMPLIED
1393   alt         %Text;         #REQUIRED
1394   target      %FrameTarget;  #IMPLIED
1395   >
1396
1397 <!--================ Forms ===============================================-->
1398
1399 <!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
1400
1401 <!ATTLIST form
1402   %attrs;
1403   action      %URI;          #REQUIRED
1404   method      (get|post)     "get"
1405   name        NMTOKEN        #IMPLIED
1406   enctype     %ContentType;  "application/x-www-form-urlencoded"
1407   onsubmit    %Script;       #IMPLIED
1408   onreset     %Script;       #IMPLIED
1409   accept      %ContentTypes; #IMPLIED
1410   accept-charset %Charsets;  #IMPLIED
1411   target      %FrameTarget;  #IMPLIED
1412   >
1413
1414 <!--
1415   Each label must not contain more than ONE field
1416   Label elements shouldn't be nested.
1417 -->
1418 <!ELEMENT label %Inline;>
1419 <!ATTLIST label
1420   %attrs;
1421   for         IDREF          #IMPLIED
1422   accesskey   %Character;    #IMPLIED
1423   onfocus     %Script;       #IMPLIED
1424   onblur      %Script;       #IMPLIED
1425   >
1426
1427 <!ENTITY % InputType
1428   "(text | password | checkbox |
1429     radio | submit | reset |
1430     file | hidden | image | button)"
1431    >
1432
1433 <!-- the name attribute is required for all but submit & reset -->
1434
1435 <!ELEMENT input EMPTY>     <!-- form control -->
1436 <!ATTLIST input
1437   %attrs;
1438   %focus;
1439   type        %InputType;    "text"
1440   name        CDATA          #IMPLIED
1441   value       CDATA          #IMPLIED
1442   checked     (checked)      #IMPLIED
1443   disabled    (disabled)     #IMPLIED
1444   readonly    (readonly)     #IMPLIED
1445   size        CDATA          #IMPLIED
1446   maxlength   %Number;       #IMPLIED
1447   src         %URI;          #IMPLIED
1448   alt         CDATA          #IMPLIED
1449   usemap      %URI;          #IMPLIED
1450   onselect    %Script;       #IMPLIED
1451   onchange    %Script;       #IMPLIED
1452   accept      %ContentTypes; #IMPLIED
1453   align       %ImgAlign;     #IMPLIED
1454   >
1455
1456 <!ELEMENT select (optgroup|option)+>  <!-- option selector -->
1457 <!ATTLIST select
1458   %attrs;
1459   name        CDATA          #IMPLIED
1460   size        %Number;       #IMPLIED
1461   multiple    (multiple)     #IMPLIED
1462   disabled    (disabled)     #IMPLIED
1463   tabindex    %Number;       #IMPLIED
1464   onfocus     %Script;       #IMPLIED
1465   onblur      %Script;       #IMPLIED
1466   onchange    %Script;       #IMPLIED
1467   >
1468
1469 <!ELEMENT optgroup (option)+>   <!-- option group -->
1470 <!ATTLIST optgroup
1471   %attrs;
1472   disabled    (disabled)     #IMPLIED
1473   label       %Text;         #REQUIRED
1474   >
1475
1476 <!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
1477 <!ATTLIST option
1478   %attrs;
1479   selected    (selected)     #IMPLIED
1480   disabled    (disabled)     #IMPLIED
1481   label       %Text;         #IMPLIED
1482   value       CDATA          #IMPLIED
1483   >
1484
1485 <!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
1486 <!ATTLIST textarea
1487   %attrs;
1488   %focus;
1489   name        CDATA          #IMPLIED
1490   rows        %Number;       #REQUIRED
1491   cols        %Number;       #REQUIRED
1492   disabled    (disabled)     #IMPLIED
1493   readonly    (readonly)     #IMPLIED
1494   onselect    %Script;       #IMPLIED
1495   onchange    %Script;       #IMPLIED
1496   >
1497
1498 <!--
1499   The fieldset element is used to group form fields.
1500   Only one legend element should occur in the content
1501   and if present should only be preceded by whitespace.
1502 -->
1503 <!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
1504 <!ATTLIST fieldset
1505   %attrs;
1506   >
1507
1508 <!ENTITY % LAlign "(top|bottom|left|right)">
1509
1510 <!ELEMENT legend %Inline;>     <!-- fieldset label -->
1511 <!ATTLIST legend
1512   %attrs;
1513   accesskey   %Character;    #IMPLIED
1514   align       %LAlign;       #IMPLIED
1515   >
1516
1517 <!--
1518  Content is %Flow; excluding a, form, form controls, iframe
1519 --> 
1520 <!ELEMENT button %button.content;>  <!-- push button -->
1521 <!ATTLIST button
1522   %attrs;
1523   %focus;
1524   name        CDATA          #IMPLIED
1525   value       CDATA          #IMPLIED
1526   type        (button|submit|reset) "submit"
1527   disabled    (disabled)     #IMPLIED
1528   >
1529
1530 <!-- single-line text input control (DEPRECATED) -->
1531 <!ELEMENT isindex EMPTY>
1532 <!ATTLIST isindex
1533   %coreattrs;
1534   %i18n;
1535   prompt      %Text;         #IMPLIED
1536   >
1537
1538 <!--======================= Tables =======================================-->
1539
1540 <!-- Derived from IETF HTML table standard, see [RFC1942] -->
1541
1542 <!--
1543  The border attribute sets the thickness of the frame around the
1544  table. The default units are screen pixels.
1545
1546  The frame attribute specifies which parts of the frame around
1547  the table should be rendered. The values are not the same as
1548  CALS to avoid a name clash with the valign attribute.
1549 -->
1550 <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
1551
1552 <!--
1553  The rules attribute defines which rules to draw between cells:
1554
1555  If rules is absent then assume:
1556      "none" if border is absent or border="0" otherwise "all"
1557 -->
1558
1559 <!ENTITY % TRules "(none | groups | rows | cols | all)">
1560   
1561 <!-- horizontal placement of table relative to document -->
1562 <!ENTITY % TAlign "(left|center|right)">
1563
1564 <!-- horizontal alignment attributes for cell contents
1565
1566   char        alignment char, e.g. char=':'
1567   charoff     offset for alignment char
1568 -->
1569 <!ENTITY % cellhalign
1570   "align      (left|center|right|justify|char) #IMPLIED
1571    char       %Character;    #IMPLIED
1572    charoff    %Length;       #IMPLIED"
1573   >
1574
1575 <!-- vertical alignment attributes for cell contents -->
1576 <!ENTITY % cellvalign
1577   "valign     (top|middle|bottom|baseline) #IMPLIED"
1578   >
1579
1580 <!ELEMENT table
1581      (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
1582 <!ELEMENT caption  %Inline;>
1583 <!ELEMENT thead    (tr)+>
1584 <!ELEMENT tfoot    (tr)+>
1585 <!ELEMENT tbody    (tr)+>
1586 <!ELEMENT colgroup (col)*>
1587 <!ELEMENT col      EMPTY>
1588 <!ELEMENT tr       (th|td)+>
1589 <!ELEMENT th       %Flow;>
1590 <!ELEMENT td       %Flow;>
1591
1592 <!ATTLIST table
1593   %attrs;
1594   summary     %Text;         #IMPLIED
1595   width       %Length;       #IMPLIED
1596   border      %Pixels;       #IMPLIED
1597   frame       %TFrame;       #IMPLIED
1598   rules       %TRules;       #IMPLIED
1599   cellspacing %Length;       #IMPLIED
1600   cellpadding %Length;       #IMPLIED
1601   align       %TAlign;       #IMPLIED
1602   bgcolor     %Color;        #IMPLIED
1603   >
1604
1605 <!ENTITY % CAlign "(top|bottom|left|right)">
1606
1607 <!ATTLIST caption
1608   %attrs;
1609   align       %CAlign;       #IMPLIED
1610   >
1611
1612 <!--
1613 colgroup groups a set of col elements. It allows you to group
1614 several semantically related columns together.
1615 -->
1616 <!ATTLIST colgroup
1617   %attrs;
1618   span        %Number;       "1"
1619   width       %MultiLength;  #IMPLIED
1620   %cellhalign;
1621   %cellvalign;
1622   >
1623
1624 <!--
1625  col elements define the alignment properties for cells in
1626  one or more columns.
1627
1628  The width attribute specifies the width of the columns, e.g.
1629
1630      width=64        width in screen pixels
1631      width=0.5*      relative width of 0.5
1632
1633  The span attribute causes the attributes of one
1634  col element to apply to more than one column.
1635 -->
1636 <!ATTLIST col
1637   %attrs;
1638   span        %Number;       "1"
1639   width       %MultiLength;  #IMPLIED
1640   %cellhalign;
1641   %cellvalign;
1642   >
1643
1644 <!--
1645     Use thead to duplicate headers when breaking table
1646     across page boundaries, or for static headers when
1647     tbody sections are rendered in scrolling panel.
1648
1649     Use tfoot to duplicate footers when breaking table
1650     across page boundaries, or for static footers when
1651     tbody sections are rendered in scrolling panel.
1652
1653     Use multiple tbody sections when rules are needed
1654     between groups of table rows.
1655 -->
1656 <!ATTLIST thead
1657   %attrs;
1658   %cellhalign;
1659   %cellvalign;
1660   >
1661
1662 <!ATTLIST tfoot
1663   %attrs;
1664   %cellhalign;
1665   %cellvalign;
1666   >
1667
1668 <!ATTLIST tbody
1669   %attrs;
1670   %cellhalign;
1671   %cellvalign;
1672   >
1673
1674 <!ATTLIST tr
1675   %attrs;
1676   %cellhalign;
1677   %cellvalign;
1678   bgcolor     %Color;        #IMPLIED
1679   >
1680
1681 <!-- Scope is simpler than headers attribute for common tables -->
1682 <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
1683
1684 <!-- th is for headers, td for data and for cells acting as both -->
1685
1686 <!ATTLIST th
1687   %attrs;
1688   abbr        %Text;         #IMPLIED
1689   axis        CDATA          #IMPLIED
1690   headers     IDREFS         #IMPLIED
1691   scope       %Scope;        #IMPLIED
1692   rowspan     %Number;       "1"
1693   colspan     %Number;       "1"
1694   %cellhalign;
1695   %cellvalign;
1696   nowrap      (nowrap)       #IMPLIED
1697   bgcolor     %Color;        #IMPLIED
1698   width       %Length;       #IMPLIED
1699   height      %Length;       #IMPLIED
1700   >
1701
1702 <!ATTLIST td
1703   %attrs;
1704   abbr        %Text;         #IMPLIED
1705   axis        CDATA          #IMPLIED
1706   headers     IDREFS         #IMPLIED
1707   scope       %Scope;        #IMPLIED
1708   rowspan     %Number;       "1"
1709   colspan     %Number;       "1"
1710   %cellhalign;
1711   %cellvalign;
1712   nowrap      (nowrap)       #IMPLIED
1713   bgcolor     %Color;        #IMPLIED
1714   width       %Length;       #IMPLIED
1715   height      %Length;       #IMPLIED
1716   >
1717