Use local xhtml DTDs to avoid W3C traffic
diff --git a/lib/dtds/xhtml11/xhtml-symbol.ent b/lib/dtds/xhtml11/xhtml-symbol.ent
new file mode 100644
index 0000000..e92a1c7
--- /dev/null
+++ b/lib/dtds/xhtml11/xhtml-symbol.ent
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- ISO Math, Greek and Symbolic Character Entity Set for XHTML .......... -->
+<!-- file: xhtml-symbol.ent
+
+ Typical invocation:
+
+ <!ENTITY % xhtml-symbol
+ PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
+ "xhtml-symbol.ent" >
+ %xhtml-symbol;
+
+ This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
+ SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-symbol.ent"
+
+ Revision: $Id: xhtml-symbol.ent,v 4.1 2001/04/10 09:34:14 altheim Exp $ SMI
+
+ Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with conforming
+ SGML systems and applications as defined in ISO 8879, provided
+ this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+ New names (i.e., not in ISO 8879 [SGML] list) do not clash with
+ any existing ISO 8879 entity names. ISO 10646 [ISO10646] character
+ numbers are given for each character, in hex. Entity values are
+ decimal conversions of the ISO 10646 values and refer to the
+ document character set. Names are Unicode [UNICODE] names.
+-->
+
+<!-- Latin Extended-B -->
+<!ENTITY fnof "ƒ" ><!-- latin small f with hook = function
+ = florin, U+0192 ISOtech -->
+
+<!-- Greek -->
+<!ENTITY Alpha "Α" ><!-- greek capital letter alpha, U+0391 -->
+<!ENTITY Beta "Β" ><!-- greek capital letter beta, U+0392 -->
+<!ENTITY Gamma "Γ" ><!-- greek capital letter gamma, U+0393 ISOgrk3 -->
+<!ENTITY Delta "Δ" ><!-- greek capital letter delta, U+0394 ISOgrk3 -->
+<!ENTITY Epsilon "Ε" ><!-- greek capital letter epsilon, U+0395 -->
+<!ENTITY Zeta "Ζ" ><!-- greek capital letter zeta, U+0396 -->
+<!ENTITY Eta "Η" ><!-- greek capital letter eta, U+0397 -->
+<!ENTITY Theta "Θ" ><!-- greek capital letter theta, U+0398 ISOgrk3 -->
+<!ENTITY Iota "Ι" ><!-- greek capital letter iota, U+0399 -->
+<!ENTITY Kappa "Κ" ><!-- greek capital letter kappa, U+039A -->
+<!ENTITY Lambda "Λ" ><!-- greek capital letter lambda, U+039B ISOgrk3 -->
+<!ENTITY Mu "Μ" ><!-- greek capital letter mu, U+039C -->
+<!ENTITY Nu "Ν" ><!-- greek capital letter nu, U+039D -->
+<!ENTITY Xi "Ξ" ><!-- greek capital letter xi, U+039E ISOgrk3 -->
+<!ENTITY Omicron "Ο" ><!-- greek capital letter omicron, U+039F -->
+<!ENTITY Pi "Π" ><!-- greek capital letter pi, U+03A0 ISOgrk3 -->
+<!ENTITY Rho "Ρ" ><!-- greek capital letter rho, U+03A1 -->
+<!-- there is no Sigmaf, and no U+03A2 character either -->
+<!ENTITY Sigma "Σ" ><!-- greek capital letter sigma, U+03A3 ISOgrk3 -->
+<!ENTITY Tau "Τ" ><!-- greek capital letter tau, U+03A4 -->
+<!ENTITY Upsilon "Υ" ><!-- greek capital letter upsilon,
+ U+03A5 ISOgrk3 -->
+<!ENTITY Phi "Φ" ><!-- greek capital letter phi, U+03A6 ISOgrk3 -->
+<!ENTITY Chi "Χ" ><!-- greek capital letter chi, U+03A7 -->
+<!ENTITY Psi "Ψ" ><!-- greek capital letter psi, U+03A8 ISOgrk3 -->
+<!ENTITY Omega "Ω" ><!-- greek capital letter omega, U+03A9 ISOgrk3 -->
+<!ENTITY alpha "α" ><!-- greek small letter alpha, U+03B1 ISOgrk3 -->
+<!ENTITY beta "β" ><!-- greek small letter beta, U+03B2 ISOgrk3 -->
+<!ENTITY gamma "γ" ><!-- greek small letter gamma, U+03B3 ISOgrk3 -->
+<!ENTITY delta "δ" ><!-- greek small letter delta, U+03B4 ISOgrk3 -->
+<!ENTITY epsilon "ε" ><!-- greek small letter epsilon, U+03B5 ISOgrk3 -->
+<!ENTITY zeta "ζ" ><!-- greek small letter zeta, U+03B6 ISOgrk3 -->
+<!ENTITY eta "η" ><!-- greek small letter eta, U+03B7 ISOgrk3 -->
+<!ENTITY theta "θ" ><!-- greek small letter theta, U+03B8 ISOgrk3 -->
+<!ENTITY iota "ι" ><!-- greek small letter iota, U+03B9 ISOgrk3 -->
+<!ENTITY kappa "κ" ><!-- greek small letter kappa, U+03BA ISOgrk3 -->
+<!ENTITY lambda "λ" ><!-- greek small letter lambda, U+03BB ISOgrk3 -->
+<!ENTITY mu "μ" ><!-- greek small letter mu, U+03BC ISOgrk3 -->
+<!ENTITY nu "ν" ><!-- greek small letter nu, U+03BD ISOgrk3 -->
+<!ENTITY xi "ξ" ><!-- greek small letter xi, U+03BE ISOgrk3 -->
+<!ENTITY omicron "ο" ><!-- greek small letter omicron, U+03BF NEW -->
+<!ENTITY pi "π" ><!-- greek small letter pi, U+03C0 ISOgrk3 -->
+<!ENTITY rho "ρ" ><!-- greek small letter rho, U+03C1 ISOgrk3 -->
+<!ENTITY sigmaf "ς" ><!-- greek small letter final sigma, U+03C2 ISOgrk3 -->
+<!ENTITY sigma "σ" ><!-- greek small letter sigma, U+03C3 ISOgrk3 -->
+<!ENTITY tau "τ" ><!-- greek small letter tau, U+03C4 ISOgrk3 -->
+<!ENTITY upsilon "υ" ><!-- greek small letter upsilon, U+03C5 ISOgrk3 -->
+<!ENTITY phi "φ" ><!-- greek small letter phi, U+03C6 ISOgrk3 -->
+<!ENTITY chi "χ" ><!-- greek small letter chi, U+03C7 ISOgrk3 -->
+<!ENTITY psi "ψ" ><!-- greek small letter psi, U+03C8 ISOgrk3 -->
+<!ENTITY omega "ω" ><!-- greek small letter omega, U+03C9 ISOgrk3 -->
+<!ENTITY thetasym "ϑ" ><!-- greek small letter theta symbol, U+03D1 NEW -->
+<!ENTITY upsih "ϒ" ><!-- greek upsilon with hook symbol, U+03D2 NEW -->
+<!ENTITY piv "ϖ" ><!-- greek pi symbol, U+03D6 ISOgrk3 -->
+
+<!-- General Punctuation -->
+<!ENTITY bull "•" ><!-- bullet = black small circle, U+2022 ISOpub -->
+<!-- bullet is NOT the same as bullet operator, U+2219 -->
+<!ENTITY hellip "…" ><!-- horizontal ellipsis = three dot leader, U+2026 ISOpub -->
+<!ENTITY prime "′" ><!-- prime = minutes = feet, U+2032 ISOtech -->
+<!ENTITY Prime "″" ><!-- double prime = seconds = inches, U+2033 ISOtech -->
+<!ENTITY oline "‾" ><!-- overline = spacing overscore, U+203E NEW -->
+<!ENTITY frasl "⁄" ><!-- fraction slash, U+2044 NEW -->
+
+<!-- Letterlike Symbols -->
+<!ENTITY weierp "℘" ><!-- script capital P = power set = Weierstrass p, U+2118 ISOamso -->
+<!ENTITY image "ℑ" ><!-- blackletter capital I = imaginary part, U+2111 ISOamso -->
+<!ENTITY real "ℜ" ><!-- blackletter capital R = real part symbol, U+211C ISOamso -->
+<!ENTITY trade "™" ><!-- trade mark sign, U+2122 ISOnum -->
+<!ENTITY alefsym "ℵ" ><!-- alef symbol = first transfinite cardinal, U+2135 NEW -->
+<!-- alef symbol is NOT the same as hebrew letter alef, U+05D0 although
+ the same glyph could be used to depict both characters -->
+
+<!-- Arrows -->
+<!ENTITY larr "←" ><!-- leftwards arrow, U+2190 ISOnum -->
+<!ENTITY uarr "↑" ><!-- upwards arrow, U+2191 ISOnum-->
+<!ENTITY rarr "→" ><!-- rightwards arrow, U+2192 ISOnum -->
+<!ENTITY darr "↓" ><!-- downwards arrow, U+2193 ISOnum -->
+<!ENTITY harr "↔" ><!-- left right arrow, U+2194 ISOamsa -->
+<!ENTITY crarr "↵" ><!-- downwards arrow with corner leftwards
+ = carriage return, U+21B5 NEW -->
+<!ENTITY lArr "⇐" ><!-- leftwards double arrow, U+21D0 ISOtech -->
+<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
+ but also does not have any other character for that function. So ? lArr can
+ be used for 'is implied by' as ISOtech suggests -->
+<!ENTITY uArr "⇑" ><!-- upwards double arrow, U+21D1 ISOamsa -->
+<!ENTITY rArr "⇒" ><!-- rightwards double arrow, U+21D2 ISOtech -->
+<!-- Unicode does not say this is the 'implies' character but does not have
+ another character with this function so ?
+ rArr can be used for 'implies' as ISOtech suggests -->
+<!ENTITY dArr "⇓" ><!-- downwards double arrow, U+21D3 ISOamsa -->
+<!ENTITY hArr "⇔" ><!-- left right double arrow, U+21D4 ISOamsa -->
+
+<!-- Mathematical Operators -->
+<!ENTITY forall "∀" ><!-- for all, U+2200 ISOtech -->
+<!ENTITY part "∂" ><!-- partial differential, U+2202 ISOtech -->
+<!ENTITY exist "∃" ><!-- there exists, U+2203 ISOtech -->
+<!ENTITY empty "∅" ><!-- empty set = null set, U+2205 ISOamso -->
+<!ENTITY nabla "∇" ><!-- nabla = backward difference, U+2207 ISOtech -->
+<!ENTITY isin "∈" ><!-- element of, U+2208 ISOtech -->
+<!ENTITY notin "∉" ><!-- not an element of, U+2209 ISOtech -->
+<!ENTITY ni "∋" ><!-- contains as member, U+220B ISOtech -->
+<!-- should there be a more memorable name than 'ni'? -->
+<!ENTITY prod "∏" ><!-- n-ary product = product sign, U+220F ISOamsb -->
+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
+ the same glyph might be used for both -->
+<!ENTITY sum "∑" ><!-- n-ary sumation, U+2211 ISOamsb -->
+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
+ though the same glyph might be used for both -->
+<!ENTITY minus "−" ><!-- minus sign, U+2212 ISOtech -->
+<!ENTITY lowast "∗" ><!-- asterisk operator, U+2217 ISOtech -->
+<!ENTITY radic "√" ><!-- square root = radical sign, U+221A ISOtech -->
+<!ENTITY prop "∝" ><!-- proportional to, U+221D ISOtech -->
+<!ENTITY infin "∞" ><!-- infinity, U+221E ISOtech -->
+<!ENTITY ang "∠" ><!-- angle, U+2220 ISOamso -->
+<!ENTITY and "∧" ><!-- logical and = wedge, U+2227 ISOtech -->
+<!ENTITY or "∨" ><!-- logical or = vee, U+2228 ISOtech -->
+<!ENTITY cap "∩" ><!-- intersection = cap, U+2229 ISOtech -->
+<!ENTITY cup "∪" ><!-- union = cup, U+222A ISOtech -->
+<!ENTITY int "∫" ><!-- integral, U+222B ISOtech -->
+<!ENTITY there4 "∴" ><!-- therefore, U+2234 ISOtech -->
+<!ENTITY sim "∼" ><!-- tilde operator = varies with = similar to, U+223C ISOtech -->
+<!-- tilde operator is NOT the same character as the tilde, U+007E,
+ although the same glyph might be used to represent both -->
+<!ENTITY cong "≅" ><!-- approximately equal to, U+2245 ISOtech -->
+<!ENTITY asymp "≈" ><!-- almost equal to = asymptotic to, U+2248 ISOamsr -->
+<!ENTITY ne "≠" ><!-- not equal to, U+2260 ISOtech -->
+<!ENTITY equiv "≡" ><!-- identical to, U+2261 ISOtech -->
+<!ENTITY le "≤" ><!-- less-than or equal to, U+2264 ISOtech -->
+<!ENTITY ge "≥" ><!-- greater-than or equal to, U+2265 ISOtech -->
+<!ENTITY sub "⊂" ><!-- subset of, U+2282 ISOtech -->
+<!ENTITY sup "⊃" ><!-- superset of, U+2283 ISOtech -->
+<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol
+ font encoding and is not included. Should it be, for symmetry?
+ It is in ISOamsn -->
+<!ENTITY nsub "⊄" ><!-- not a subset of, U+2284 ISOamsn -->
+<!ENTITY sube "⊆" ><!-- subset of or equal to, U+2286 ISOtech -->
+<!ENTITY supe "⊇" ><!-- superset of or equal to, U+2287 ISOtech -->
+<!ENTITY oplus "⊕" ><!-- circled plus = direct sum, U+2295 ISOamsb -->
+<!ENTITY otimes "⊗" ><!-- circled times = vector product, U+2297 ISOamsb -->
+<!ENTITY perp "⊥" ><!-- up tack = orthogonal to = perpendicular, U+22A5 ISOtech -->
+<!ENTITY sdot "⋅" ><!-- dot operator, U+22C5 ISOamsb -->
+<!-- dot operator is NOT the same character as U+00B7 middle dot -->
+
+<!-- Miscellaneous Technical -->
+<!ENTITY lceil "⌈" ><!-- left ceiling = apl upstile, U+2308 ISOamsc -->
+<!ENTITY rceil "⌉" ><!-- right ceiling, U+2309 ISOamsc -->
+<!ENTITY lfloor "⌊" ><!-- left floor = apl downstile, U+230A ISOamsc -->
+<!ENTITY rfloor "⌋" ><!-- right floor, U+230B ISOamsc -->
+<!ENTITY lang "〈" ><!-- left-pointing angle bracket = bra, U+2329 ISOtech -->
+<!-- lang is NOT the same character as U+003C 'less than'
+ or U+2039 'single left-pointing angle quotation mark' -->
+<!ENTITY rang "〉" ><!-- right-pointing angle bracket = ket, U+232A ISOtech -->
+<!-- rang is NOT the same character as U+003E 'greater than'
+ or U+203A 'single right-pointing angle quotation mark' -->
+
+<!-- Geometric Shapes -->
+<!ENTITY loz "◊" ><!-- lozenge, U+25CA ISOpub -->
+
+<!-- Miscellaneous Symbols -->
+<!ENTITY spades "♠" ><!-- black spade suit, U+2660 ISOpub -->
+<!-- black here seems to mean filled as opposed to hollow -->
+<!ENTITY clubs "♣" ><!-- black club suit = shamrock, U+2663 ISOpub -->
+<!ENTITY hearts "♥" ><!-- black heart suit = valentine, U+2665 ISOpub -->
+<!ENTITY diams "♦" ><!-- black diamond suit, U+2666 ISOpub -->
+
+<!-- end of xhtml-symbol.ent -->