diff --git a/Makefile b/Makefile
index d14f5e1..2ee433d 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@
 MAKE ?= make -j $(shell nproc)
 KORAPXML2CONLLU_HEAP ?= $(shell echo "$$(($(MAX_THREADS) * 2500))")
 KORAPXML2CONLLU ?= java -Xmx$(KORAPXML2CONLLU_HEAP)m -jar lib/korapxml2conllu.jar
-SAXON ?= java -Djava.util.logging.config.file=/logging.properties -cp lib/saxon-ee-12.4.jar:lib/xmlresolver-5.2.2.jar:lib/textclassifier.jar:lib/xmlresolver-5.2.2-data.jar net.sf.saxon.Transform -expand:off -catalog:"lib/dtds/xhtml11/xhtmlcatalog.xml;lib/dtds/xhtml/dtd/xhtmlcatalog.xml"
+SAXON ?= java -Djava.util.logging.config.file=/logging.properties -cp lib/saxon-ee-12.4.jar:lib/xmlresolver-5.2.2.jar:lib/textclassifier.jar:lib/xmlresolver-5.2.2-data.jar net.sf.saxon.Transform -expand:off
 
 .DELETE_ON_ERROR:
 
diff --git a/lib/dtds/xhtml/dtd/xhtml-lat1.ent b/lib/dtds/xhtml/dtd/xhtml-lat1.ent
deleted file mode 100644
index ffee223..0000000
--- a/lib/dtds/xhtml/dtd/xhtml-lat1.ent
+++ /dev/null
@@ -1,196 +0,0 @@
-<!-- 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.
--->
-<!-- Character entity set. Typical invocation:
-    <!ENTITY % HTMLlat1 PUBLIC
-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
-    %HTMLlat1;
--->
-
-<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
-                                  U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
-                                  U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
-                                  U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
-                                  = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
-                                  U+00AC ISOnum -->
-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
-                                  U+00AD ISOnum -->
-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
-                                  U+00AE ISOnum -->
-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
-                                  = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
-                                  U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
-                                  = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
-                                  = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
-                                  U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
-                                  U+00B6 ISOnum -->
-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
-                                  = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
-                                  U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
-                                  U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
-                                  = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
-                                  = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
-                                  = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
-                                  = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;"> <!-- inverted question mark
-                                  = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
-                                  = latin capital letter A grave,
-                                  U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
-                                  U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
-                                  U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
-                                  U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
-                                  U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
-                                  = latin capital letter A ring,
-                                  U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
-                                  = latin capital ligature AE,
-                                  U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
-                                  U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
-                                  U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
-                                  U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
-                                  U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
-                                  U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
-                                  U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
-                                  U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
-                                  U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
-                                  U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
-                                  U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
-                                  U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
-                                  U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
-                                  U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
-                                  U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
-                                  U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
-                                  = latin capital letter O slash,
-                                  U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
-                                  U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
-                                  U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
-                                  U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
-                                  U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
-                                  U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
-                                  U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
-                                  U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
-                                  = latin small letter a grave,
-                                  U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
-                                  U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
-                                  U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
-                                  U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
-                                  U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
-                                  = latin small letter a ring,
-                                  U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
-                                  = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
-                                  U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
-                                  U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
-                                  U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
-                                  U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
-                                  U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
-                                  U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
-                                  U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
-                                  U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
-                                  U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
-                                  U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
-                                  U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
-                                  U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
-                                  U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
-                                  U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
-                                  U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
-                                  = latin small letter o slash,
-                                  U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
-                                  U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
-                                  U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
-                                  U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
-                                  U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
-                                  U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
-                                  U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
-                                  U+00FF ISOlat1 -->
diff --git a/lib/dtds/xhtml/dtd/xhtml-special.ent b/lib/dtds/xhtml/dtd/xhtml-special.ent
deleted file mode 100644
index ca358b2..0000000
--- a/lib/dtds/xhtml/dtd/xhtml-special.ent
+++ /dev/null
@@ -1,80 +0,0 @@
-<!-- Special characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLspecial PUBLIC
-        "-//W3C//ENTITIES Special for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
-     %HTMLspecial;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->
-<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
-<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
-<!ENTITY apos	 "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
-                                    U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
-                                    U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
-                                    U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
-                                    U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
-                                    U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
-                                    U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
-                                    U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
-                                    U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
-                                    U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
-                                    U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
-                                    U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
-                                    U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-
-<!-- Currency Symbols -->
-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
diff --git a/lib/dtds/xhtml/dtd/xhtml-symbol.ent b/lib/dtds/xhtml/dtd/xhtml-symbol.ent
deleted file mode 100644
index 63c2abf..0000000
--- a/lib/dtds/xhtml/dtd/xhtml-symbol.ent
+++ /dev/null
@@ -1,237 +0,0 @@
-<!-- Mathematical, Greek and Symbolic characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLsymbol PUBLIC
-        "-//W3C//ENTITIES Symbols for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
-     %HTMLsymbol;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function
-                                    = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
-                                    U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
-                                    U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
-                                    U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,
-                                    U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
-                                    U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
-                                    U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
-                                    U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
-                                    U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
-                                    U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
-                                    U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
-                                    U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
-                                    U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
-                                    U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
-                                    U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
-                                    U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,
-                                    U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
-                                    U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
-                                    U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
-                                    U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
-                                    U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
-                                    U+03D1 NEW -->
-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
-                                    U+03D2 NEW -->
-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
-                                     U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
-                                     U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
-                                     U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
-                                     U+203E NEW -->
-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
-                                     = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,
-                                     U+2111 ISOamso -->
-<!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,
-                                     U+211C ISOamso -->
-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;"> <!-- 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     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
-                                     = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;"> <!-- 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     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;"> <!-- 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     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
-                                     U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
-                                     U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
-<!ENTITY prod     "&#8719;"> <!-- 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      "&#8721;"> <!-- n-ary summation, 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    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
-                                     U+221A ISOtech -->
-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;"> <!-- 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     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
-                                     U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
-                                     U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
-<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
-                                     U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
-                                     U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
-                                     U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
-                                     U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,
-                                     U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,
-                                     U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
-                                     U+2329 ISOtech -->
-<!-- lang is NOT the same character as U+003C 'less than sign' 
-     or U+2039 'single left-pointing angle quotation mark' -->
-<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
-                                     U+232A ISOtech -->
-<!-- rang is NOT the same character as U+003E 'greater than sign' 
-     or U+203A 'single right-pointing angle quotation mark' -->
-
-<!-- Geometric Shapes -->
-<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
-                                     U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
-                                     U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/lib/dtds/xhtml/dtd/xhtml.soc b/lib/dtds/xhtml/dtd/xhtml.soc
deleted file mode 100644
index 0624dea..0000000
--- a/lib/dtds/xhtml/dtd/xhtml.soc
+++ /dev/null
@@ -1,14 +0,0 @@
-OVERRIDE	YES
-        -- Oasis entity catalog for Extensible HTML 1.0 --
-
-PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN"        "xhtml1-strict.dtd"
-PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"  "xhtml1-transitional.dtd"
-PUBLIC  "-//W3C//DTD XHTML 1.0 Frameset//EN"      "xhtml1-frameset.dtd"
-
-        -- ISO latin 1 entity set for Extensible HTML (XML 1.0 format) --
-
-PUBLIC	"-//W3C//ENTITIES Latin 1 for XHTML//EN"  "xhtml-lat1.ent"
-PUBLIC	"-//W3C//ENTITIES Symbols for XHTML//EN" "xhtml-symbol.ent"
-PUBLIC	"-//W3C//ENTITIES Special for XHTML//EN" "xhtml-special.ent"
-
-SGMLDECL "xhtml1.dcl"
diff --git a/lib/dtds/xhtml/dtd/xhtml1-frameset.dtd b/lib/dtds/xhtml/dtd/xhtml1-frameset.dtd
deleted file mode 100644
index 6a6df55..0000000
--- a/lib/dtds/xhtml/dtd/xhtml1-frameset.dtd
+++ /dev/null
@@ -1,1213 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Frameset DTD
-
-   This is the same as HTML 4 Frameset except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
-
-   $Revision: 1.26 $
-   $Date: 2002/08/01 18:16:48 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-     <!-- media type, as per [RFC2045] -->
-<!ENTITY % ContentType "CDATA">
-
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-<!ENTITY % ContentTypes "CDATA">
-
-    <!-- a character encoding, as per [RFC2045] -->
-<!ENTITY % Charset "CDATA">
-
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-<!ENTITY % Charsets "CDATA">
-
-    <!-- a language code, as per [RFC3066] -->
-<!ENTITY % LanguageCode "NMTOKEN">
-
-    <!-- a single character, as per section 2.2 of [XML] -->
-<!ENTITY % Character "CDATA">
-
-    <!-- one or more digits -->
-<!ENTITY % Number "CDATA">
-
-    <!-- space-separated list of link types -->
-<!ENTITY % LinkTypes "CDATA">
-
-    <!-- single or comma-separated list of media descriptors -->
-<!ENTITY % MediaDesc "CDATA">
-
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-<!ENTITY % URI "CDATA">
-
-    <!-- a space separated list of Uniform Resource Identifiers -->
-<!ENTITY % UriList "CDATA">
-
-    <!-- date and time information. ISO date format -->
-<!ENTITY % Datetime "CDATA">
-
-    <!-- script expression -->
-<!ENTITY % Script "CDATA">
-
-    <!-- style sheet data -->
-<!ENTITY % StyleSheet "CDATA">
-
-    <!-- used for titles etc. -->
-<!ENTITY % Text "CDATA">
-
-    <!-- render in this frame -->
-<!ENTITY % FrameTarget "NMTOKEN">
-
-    <!-- nn for pixels or nn% for percentage length -->
-<!ENTITY % Length "CDATA">
-
-    <!-- pixel, percentage, or relative -->
-<!ENTITY % MultiLength "CDATA">
-
-    <!-- comma-separated list of MultiLength -->
-<!ENTITY % MultiLengths "CDATA">
-
-    <!-- integer representing length in pixels -->
-<!ENTITY % Pixels "CDATA">
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-    <!-- comma separated list of lengths -->
-<!ENTITY % Coords "CDATA">
-
-<!-- used for object, applet, img, input and iframe -->
-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
-
-<!-- a color using sRGB: #RRGGBB as Hex values -->
-<!ENTITY % Color "CDATA">
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
--->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!-- text alignment for p, div, h1-h6. The default is
-     align="left" for ltr headings, "right" for rtl -->
-
-<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.extra
-   "object | applet | img | map | iframe">
-	
-<!ENTITY % special.basic
-	"br | span | bdo">
-
-<!ENTITY % special
-   "%special.basic; | %special.extra;">
-
-<!ENTITY % fontstyle.extra "big | small | font | basefont">
-
-<!ENTITY % fontstyle.basic "tt | i | b | u
-                      | s | strike ">
-
-<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
-
-<!ENTITY % phrase.extra "sub | sup">
-<!ENTITY % phrase.basic "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym">
-
-<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl | menu | dir">
-<!ENTITY % blocktext "pre | hr | blockquote | address | center">
-
-<!ENTITY % block
-    "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding img, object, applet, big, small,
-     sub, sup, font, or basefont -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
-	   %inline.forms; | %misc.inline;)*">
-
-
-<!-- form uses %Flow; excluding form -->
-
-<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-      table | br | span | bdo | object | applet | img | map |
-      %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!--doc:This element identifies the document to be XHTML. The remainder of the XHTML document is contained by this element.-->
-<!ELEMENT html (head, frameset)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
-
-<!--doc:The HEAD element contains information about the current document,for example the title and the list of keywords that may be used by the search engines.-->
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!--doc:The TITLE element is not considered part of the flow of text. It is displayed as the page header or window title.-->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!--doc:The BASE element allows authors to specify a document's base URI explicitly. The path information specified by the BASE element only affects relative URIs from the same document.-->
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  id          ID             #IMPLIED
-  href        %URI;          #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--doc:The META element can be used to identify properties of a document (e.g., author, expiration date, a list of key words, etc.). The specification does not define a normative set of properties.-->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--doc:This element defines a link. Unlike A, it may only appear in the HEAD section of a document, although it may appear any number of times. Although LINK has no content, it conveys relationship information that may be rendered by user agents in a variety of ways (e.g., a tool-bar with a drop-down menu of links).-->
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--doc:The STYLE element allows authors to put style sheet rules in the head of the document. XHTML permits any number of STYLE elements in the HEAD section of a document. Some style sheet implementations may allow a wider variety of rules in the STYLE element than in the style attribute. For example, with CSS, rules may be declared within a STYLE element.-->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!--doc:The SCRIPT element places a script within a document. This element may appear any number of times in the HEAD or BODY of an XHTML document.-->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  language    CDATA          #IMPLIED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!--doc:The NOSCRIPT element allows authors to provide alternate content when a script is not executed. The content of a NOSCRIPT element should only be rendered by a script-aware user agent in the following cases: 1. The user agent is configured not to evaluate scripts; 2The user agent doesn't support a scripting language invoked by a SCRIPT element earlier in the document.-->
-<!ELEMENT noscript %Flow;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--======================= Frames =======================================-->
-
-<!--doc:An HTML document that describes frame layout (called a frameset document) has a different makeup than an HTML document without frames. A standard document has one HEAD section and one BODY. A frameset document has a HEAD, and a FRAMESET in place of the BODY.-->
-<!ELEMENT frameset (frameset|frame|noframes)*>
-<!ATTLIST frameset
-  %coreattrs;
-  rows        %MultiLengths; #IMPLIED
-  cols        %MultiLengths; #IMPLIED
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  >
-
-<!-- reserved frame names start with "_" otherwise starts with letter -->
-
-<!--doc:The FRAME element defines the contents and appearance of a single frame.-->
-<!ELEMENT frame EMPTY>
-<!ATTLIST frame
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  noresize    (noresize)     #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  >
-
-<!--doc:The IFRAME element allows authors to insert a frame within a block of text. Inserting an inline frame within a section of text is much like inserting an object via the OBJECT element: they both allow you to insert an XHTML document in the middle of another, they may both be aligned with surrounding text, etc.-->
-<!ELEMENT iframe %Flow;>
-<!ATTLIST iframe
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  align       %ImgAlign;     #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--doc:The NOFRAMES element specifies content that should be displayed only by user agents that do not support frames or are configured not to display frames. User agents that support frames must only display the contents of a NOFRAMES declaration when configured not to display frames. User agents that do not support frames must display the contents of NOFRAMES in any case.-->
-<!ELEMENT noframes (body)>
-<!ATTLIST noframes
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-<!--doc:The body of a document contains the document's content. The content may be presented by a user agent in a variety of ways. For example, for visual browsers, you can think of the body as a canvas where the content appears: text, images, colors, graphics, etc.-->
-<!ELEMENT body %Flow;>
-<!ATTLIST body
-  %attrs;
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  background  %URI;          #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  text        %Color;        #IMPLIED
-  link        %Color;        #IMPLIED
-  vlink       %Color;        #IMPLIED
-  alink       %Color;        #IMPLIED
-  >
-
-<!--doc:The DIV element defines a division/section in a document. It offer a generic mechanism for adding structure to documents. This element define content to be block-level but impose no other presentational idioms on the content.-->
-<!ELEMENT div %Flow;>  
-<!ATTLIST div
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Paragraphs =======================================-->
-<!--doc:The P element represents a paragraph. It cannot contain block-level elements (including P itself).-->
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list bullet styles -->
-
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!--doc:The UL element defines an unordered list. Unordered list items are not numbered.-->
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  type        %ULStyle;     #IMPLIED
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- Ordered list numbering style
-
-    1   arabic numbers      1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default is reset to 1 for the first list item in an ordered list.
--->
-<!ENTITY % OLStyle "CDATA">
-
-<!--doc:The OL element defines an ordered list. Ordered list items are numbered.-->
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  type        %OLStyle;      #IMPLIED
-  compact     (compact)      #IMPLIED
-  start       %Number;       #IMPLIED
-  >
-
-<!--doc:The MENU element was designed to be used for single column menu lists. (DEPRECATED)-->
-<!ELEMENT menu (li)+>
-<!ATTLIST menu
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!--doc:The DIR element was designed to be used for creating multicolumn directory lists. (DEPRECATED)-->
-<!ELEMENT dir (li)+>
-<!ATTLIST dir
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
-<!ENTITY % LIStyle "CDATA">
-
-<!--doc:The LI element is used to define a list item. The LI element is used in ordered (OL) and unordered lists (UL).-->
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  type        %LIStyle;      #IMPLIED
-  value       %Number;       #IMPLIED
-  >
-
-<!--doc:The DL element is used to define a definition list. They consist consist of two parts for each item: a term (DT) and a description (DD).-->
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  compact     (compact)      #IMPLIED
-  >
-
-<!--doc:The DT element defines a term in a definition list.-->
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!--doc:The DD element defines the description of a term in a definition list.-->
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!--doc:The ADDRESS element may be used by authors to supply contact information for a document or a major part of a document such as a form. This element often appears at the beginning or end of a document.-->
-<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!--doc:The HR element causes a horizontal rule to be rendered by visual user agents.-->
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!--doc:The PRE element defines blocks of preformatted text. The text enclosed in the pre element preserves spaces and line breaks and is rendered in a fixed-pitch font.-->
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  width       %Number;      #IMPLIED
-  xml:space   (preserve)    #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!--doc:The BLOCKQUOTE element defines the start of a long quotation (block-level content) . It creates white space on both sides of the text.-->
-<!ELEMENT blockquote %Flow;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Text alignment ===================================-->
-
-<!--doc:The CENTER element is exactly equivalent to specifying the DIV element with the align attribute set to "center". The CENTER element is deprecated.-->
-<!ELEMENT center %Flow;>
-<!ATTLIST center
-  %attrs;
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-
-<!--doc:INS is used to markup sections of the document that have been inserted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).-->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--doc:DEL is used to markup sections of the document that have been deleted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).-->
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!--doc:The A element defines an anchor element. An anchor can be used: 1.To create a link to another document by using the href attribute; 2.To create a bookmark inside a document by using the name or id attribute.-->
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!--doc:The SPAN element is used to group inline-elements in a document. Use the SPAN element to group inline-elements to format them with styles.-->
-<!ELEMENT span %Inline;> 
-<!ATTLIST span
-  %attrs;
-  >
-
-<!--doc:The BDO element overrides the default text direction. It should be used in scenarios where absolute control over sequence order is required (e.g., multi-language part numbers).-->
-<!ELEMENT bdo %Inline;>  
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!--doc:The BR element forcibly breaks (ends) the current line of text. Use the BR element to enter blank lines, not to separate paragraphs.-->
-<!ELEMENT br EMPTY>   
-<!ATTLIST br
-  %coreattrs;
-  clear       (left|all|right|none) "none"
-  >
-
-<!--doc:Renders as emphasized text. Generally, visual user agents present EM text in italics.-->
-<!ELEMENT em %Inline;>   
-<!ATTLIST em %attrs;>
-
-<!--doc:Renders as strong emphasized text. Generally, visual user agents present STRONG text in bold font.-->
-<!ELEMENT strong %Inline;>   
-<!ATTLIST strong %attrs;>
-
-<!--doc:Indicates that this is the defining instance of the enclosed term.-->
-<!ELEMENT dfn %Inline;>   
-<!ATTLIST dfn %attrs;>
-
-<!--doc:Designates a fragment of computer code.-->
-<!ELEMENT code %Inline;>   
-<!ATTLIST code %attrs;>
-
-<!--doc:Designates sample output from programs, scripts, etc.-->
-<!ELEMENT samp %Inline;>   
-<!ATTLIST samp %attrs;>
-
-<!--doc:Indicates text to be entered by the user.-->
-<!ELEMENT kbd %Inline;>  
-<!ATTLIST kbd %attrs;>
-
-<!--doc:Indicates an instance of a variable or program argument.-->
-<!ELEMENT var %Inline;>   
-<!ATTLIST var %attrs;>
-
-<!--doc:Contains a citation or a reference to other sources.-->
-<!ELEMENT cite %Inline;>   
-<!ATTLIST cite %attrs;>
-
-<!--doc:The ABBR element is used to indicates an abbreviated form, like "ie.", "Ltd.", "etc.".-->
-<!ELEMENT abbr %Inline;>   
-<!ATTLIST abbr %attrs;>
-
-<!--doc:The ACRONYM element defines an acronym, like "USA" or "F.B.I".-->
-<!ELEMENT acronym %Inline;>   
-<!ATTLIST acronym %attrs;>
-
-<!--doc:The Q element defines the start of a short quotation. It does not render as anything special, you have to use styles to format the text.-->
-<!ELEMENT q %Inline;>   
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--doc:The SUB element defines subscript text.-->
-<!ELEMENT sub %Inline;> 
-<!ATTLIST sub %attrs;>
-
-<!--doc:The SUP element defines superscript text.-->
-<!ELEMENT sup %Inline;> 
-<!ATTLIST sup %attrs;>
-
-<!--doc:Renders as teletype or mono spaced text.-->
-<!ELEMENT tt %Inline;>   
-<!ATTLIST tt %attrs;>
-
-<!--doc:Renders as italic text style.-->
-<!ELEMENT i %Inline;>   
-<!ATTLIST i %attrs;>
-
-<!--doc:Renders as bold text style.-->
-<!ELEMENT b %Inline;>   
-<!ATTLIST b %attrs;>
-
-<!--doc:Renders text in a "large" font.-->
-<!ELEMENT big %Inline;>   
-<!ATTLIST big %attrs;>
-
-<!--doc:Renders text in a "small" font.-->
-<!ELEMENT small %Inline;>   
-<!ATTLIST small %attrs;>
-
-<!--doc:Renders underlined style text. (DEPRECATED)-->
-<!ELEMENT u %Inline;>   
-<!ATTLIST u %attrs;>
-
-<!--doc:Render strike-through style text.-->
-<!ELEMENT s %Inline;>   
-<!ATTLIST s %attrs;>
-
-<!--doc:Render strike-through style text.-->
-<!ELEMENT strike %Inline;>   
-<!ATTLIST strike %attrs;>
-
-<!--doc:The BASEFONT element sets the base font size (using the size attribute). Font size changes achieved with FONT are relative to the base font size set by BASEFONT. If BASEFONT is not used, the default base font size is 3.-->
-<!ELEMENT basefont EMPTY>  
-<!ATTLIST basefont
-  id          ID             #IMPLIED
-  size        CDATA          #REQUIRED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--doc:The FONT element changes the font size and color for text in its contents.-->
-<!ELEMENT font %Inline;> 
-<!ATTLIST font
-  %coreattrs;
-  %i18n;
-  size        CDATA          #IMPLIED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--==================== Object ======================================-->
-<!--doc:Defines an embedded object. This element allows to specify the data and parameters for objects inserted into documents.-->
-<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--doc:PARAM elements specify a set of values that may be required by an object at run-time. Any number of PARAM elements may appear in the content of an OBJECT or APPLET element, in any order, but must be placed at the start of the content of the enclosing OBJECT or APPLET element.-->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #REQUIRED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--doc:This element, supported by all Java-enabled browsers, allows designers to embed a Java applet in an XHTML document. It has been deprecated in favor of the OBJECT element.-->
-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST applet
-  %coreattrs;
-  codebase    %URI;          #IMPLIED
-  archive     CDATA          #IMPLIED
-  code        CDATA          #IMPLIED
-  object      CDATA          #IMPLIED
-  alt         %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  width       %Length;       #REQUIRED
-  height      %Length;       #REQUIRED
-  align       %ImgAlign;     #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--doc:The IMG element embeds an image in the current document at the location of the element's definition. The IMG element has no content; it is usually replaced inline by the image designated by the src attribute, the exception being for left or right-aligned images that are "floated" out of line. Note that in this DTD there is no name attribute. That is only available in the transitional and frameset DTD.-->
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  name        NMTOKEN        #IMPLIED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-<!--doc:The MAP element specifies a client-side image map (or other navigation mechanism) that may be associated with another elements (IMG, OBJECT, or INPUT). An image map is associated with an element via the element's usemap attribute. The MAP element may be used without an associated image for general navigation mechanisms.-->
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  >
-  
-<!--doc:Defines a region in an image map. This element is always nested inside a MAP element. This element has no content but specify the geometric region of the image map and the link associated with the region. Note that user agents do not generally render AREA elements. Therefore, authors must provide alternate text for each AREA with the alt attribute.-->
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!--doc:The FORM element creates a form. A form can contain textfields, checkboxes, radio-buttons etc. Forms are used to pass user-data to a specified URL, usually a CGI.-->
-<!ELEMENT form %form.content;>   
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  name        NMTOKEN        #IMPLIED
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--doc:The LABEL element may be used to attach information to controls. Each LABEL element is associated with exactly one form control. The "for" attribute binds a label to another element. Set the value of the "for" attribute equal to the value of the "id" attribute of the related element.-->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-
-<!--doc:The INPUT element defines the start of an input field where the user can enter data. The INPUT element is empty, it contains attributes only.-->
-<!ELEMENT input EMPTY>     
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  >
-
-<!--doc:The select element creates a drop-down list. Use this element in the FORM element to accept user input.-->
-<!ELEMENT select (optgroup|option)+>  
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--doc:The OPTGROUP element allows authors to group choices logically. This is particularly helpful when the user must choose from a long list of options; groups of related choices are easier to grasp and remember than a single long list of options.-->
-<!ELEMENT optgroup (option)+>   
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!--doc:The option element defines an option in the drop-down list. Use this element in conjunction with the SELECT element, elsewhere it is meaningless.-->
-<!ELEMENT option (#PCDATA)>     
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!--doc:The TEXTAREA element creates a multi-line text input control. User agents should use the contents of this element as the initial value of the control and should render this text initially.-->
-<!ELEMENT textarea (#PCDATA)>     
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--doc:The FIELDSET element allows authors to group thematically related controls and labels. Grouping controls makes it easier for users to understand their purpose while simultaneously facilitating tabbing navigation for visual user agents and speech navigation for speech-oriented user agents. The proper use of this element makes documents more accessible.-->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!--doc:The LEGEND element allows authors to assign a caption to a FIELDSET. The legend improves accessibility when the FIELDSET is rendered non-visually.-->
-<!ELEMENT legend %Inline;>     
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  align       %LAlign;       #IMPLIED
-  >
-
-<!--
-Content is %Flow; excluding a, form, form controls, iframe
---> 
-<!--doc:The BUTTON element defines a push button. Inside a button element you can put content for example images, text.-->
-<!ELEMENT button %button.content;>  
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!--doc:This element creates a single-line text input control. Authors should use the INPUT element to create text input controls. (DEPRECATED)-->
-<!ELEMENT isindex EMPTY>
-<!ATTLIST isindex
-  %coreattrs;
-  %i18n;
-  prompt      %Text;         #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the table. 
- The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around the table should be rendered. 
- The values are not the same as CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=":"
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!--doc:The TABLE element defines a table. Inside a TABLE element there can be table headers, table rows, table cells.-->
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!--doc:The CAPTION element defines a table caption.-->
-<!ELEMENT caption  %Inline;>
-<!--doc:Defines a table header. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT thead    (tr)+>
-<!--doc:Defines a table footer. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT tfoot    (tr)+>
-<!--doc:Defines a table body. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT tbody    (tr)+>
-<!--doc:Defines different formatting groups of table columns. The colgroup element is an empty element that contains attributes only. To create columns, you must specify td elements within a tr element.-->
-<!ELEMENT colgroup (col)*>
-<!--doc:The COL element allows authors to group together attribute specifications for table columns. The COL does not group columns together structurally that is the role of the COLGROUP element. COL elements are empty and serve only as a support for attributes. They may appear inside or outside an explicit column group (i.e., COLGROUP element).-->
-<!ELEMENT col      EMPTY>
-<!--doc:The TR elements acts as a container for a row of table cells.-->
-<!ELEMENT tr       (th|td)+>
-<!--doc:The TH element defines a cell in a table that contains header information. User agents have two pieces of header information available: the contents of the TH element and the value of the abbr attribute.-->
-<!ELEMENT th       %Flow;>
-<!--doc:The TD element defines a cell in a table that contains data.-->
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  align       %TAlign;       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST caption
-  %attrs;
-  align       %CAlign;       #IMPLIED
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Pixels;       #IMPLIED
-  height      %Pixels;       #IMPLIED
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Pixels;       #IMPLIED
-  height      %Pixels;       #IMPLIED
-  >
-
diff --git a/lib/dtds/xhtml/dtd/xhtml1-strict.dtd b/lib/dtds/xhtml/dtd/xhtml1-strict.dtd
deleted file mode 100644
index c06e419..0000000
--- a/lib/dtds/xhtml/dtd/xhtml1-strict.dtd
+++ /dev/null
@@ -1,966 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Strict DTD
-
-   This is the same as HTML 4 Strict except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
-
-   $Revision: 1.24 $
-   $Date: 2002/07/31 19:34:51 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.pre
-   "br | span | bdo | map">
-
-
-<!ENTITY % special
-   "%special.pre; | object | img ">
-
-<!ENTITY % fontstyle "tt | i | b | big | small ">
-
-<!ENTITY % phrase "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl">
-<!ENTITY % blocktext "pre | hr | blockquote | address">
-
-<!ENTITY % block
-     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
-
-<!ENTITY % Block "(%block; | form | %misc;)*">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding big, small, sup or sup -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
-      | %inline.forms;)*">
-
-<!-- form uses %Block; excluding form -->
-
-<!ENTITY % form.content "(%block; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form and form controls -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-    table | %special; | %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!--doc:This element identifies the document to be XHTML. The remainder of the XHTML document is contained by this element.-->
-<!ELEMENT html (head, body)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object)*">
-
- 
-<!--doc:The HEAD element contains information about the current document,for example the title and the list of keywords that may be used by the search engines.-->
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!--doc:The TITLE element is not considered part of the flow of text. It is displayed as the page header or window title.-->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!--doc:The BASE element allows authors to specify a document's base URI explicitly. The path information specified by the BASE element only affects relative URIs from the same document.-->
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  href        %URI;          #REQUIRED
-  id          ID             #IMPLIED
-  >
-
-<!--doc:The META element can be used to identify properties of a document (e.g., author, expiration date, a list of key words, etc.). The specification does not define a normative set of properties.-->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--doc:This element defines a link. Unlike A, it may only appear in the HEAD section of a document, although it may appear any number of times. Although LINK has no content, it conveys relationship information that may be rendered by user agents in a variety of ways (e.g., a tool-bar with a drop-down menu of links).-->
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  >
-
-<!--doc:The STYLE element allows authors to put style sheet rules in the head of the document. XHTML permits any number of STYLE elements in the HEAD section of a document. Some style sheet implementations may allow a wider variety of rules in the STYLE element than in the style attribute. For example, with CSS, rules may be declared within a STYLE element.-->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!--doc:The SCRIPT element places a script within a document. This element may appear any number of times in the HEAD or BODY of an XHTML document.-->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-
-<!--doc:The NOSCRIPT element allows authors to provide alternate content when a script is not executed. The content of a NOSCRIPT element should only be rendered by a script-aware user agent in the following cases: 1. The user agent is configured not to evaluate scripts; 2The user agent doesn't support a scripting language invoked by a SCRIPT element earlier in the document.-->
-<!ELEMENT noscript %Block;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!--doc:The body of a document contains the document's content. The content may be presented by a user agent in a variety of ways. For example, for visual browsers, you can think of the body as a canvas where the content appears: text, images, colors, graphics, etc.-->
-<!ELEMENT body %Block;>
-<!ATTLIST body
-  %attrs;
-  onload          %Script;   #IMPLIED
-  onunload        %Script;   #IMPLIED
-  >
-
-<!--doc:The DIV element defines a division/section in a document. It offer a generic mechanism for adding structure to documents. This element define content to be block-level but impose no other presentational idioms on the content.-->
-<!ELEMENT div %Flow;>  
-<!ATTLIST div
-  %attrs;
-  >
-
-<!--=================== Paragraphs =======================================-->
-<!--doc:The P element represents a paragraph. It cannot contain block-level elements (including P itself).-->
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  >
-
-<!--=================== Headings =========================================-->
-
-
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-   %attrs;
-   >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-   %attrs;
-   >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-   %attrs;
-   >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-   %attrs;
-   >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-   %attrs;
-   >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-   %attrs;
-   >
-
-<!--=================== Lists ============================================-->
-
-
-<!--doc:The UL element defines an unordered list. Unordered list items are not numbered.-->
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  >
-
-<!--doc:The OL element defines an ordered list. Ordered list items are numbered.-->
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  >
-
-<!--doc:The LI element is used to define a list item. The LI element is used in ordered (OL) and unordered lists (UL).-->
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  >
-
-<!--doc:The DL element is used to define a definition list. They consist consist of two parts for each item: a term (DT) and a description (DD).-->
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  >
-
-<!--doc:The DT element defines a term in a definition list.-->
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!--doc:The DD element defines the description of a term in a definition list.-->
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!--doc:The ADDRESS element may be used by authors to supply contact information for a document or a major part of a document such as a form. This element often appears at the beginning or end of a document.-->
-<!ELEMENT address %Inline;>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-<!--doc:The HR element causes a horizontal rule to be rendered by visual user agents.-->
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!--doc:The PRE element defines blocks of preformatted text. The text enclosed in the pre element preserves spaces and line breaks and is rendered in a fixed-pitch font.-->
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  xml:space (preserve) #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-<!--doc:The BLOCKQUOTE element defines the start of a long quotation (block-level content) . It creates white space on both sides of the text.-->
-<!ELEMENT blockquote %Block;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-<!--doc:INS is used to markup sections of the document that have been inserted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).-->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--doc:DEL is used to markup sections of the document that have been deleted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).-->
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-
-<!--doc:The A element defines an anchor element. An anchor can be used: 1.To create a link to another document by using the href attribute; 2.To create a bookmark inside a document by using the name or id attribute.-->
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!--doc:The SPAN element is used to group inline-elements in a document. Use the SPAN element to group inline-elements to format them with styles.-->
-<!ELEMENT span %Inline;> 
-<!ATTLIST span
-  %attrs;
-  >
-
-<!--doc:The BDO element overrides the default text direction. It should be used in scenarios where absolute control over sequence order is required (e.g., multi-language part numbers).-->
-<!ELEMENT bdo %Inline;>  
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!--doc:The BR element forcibly breaks (ends) the current line of text. Use the BR element to enter blank lines, not to separate paragraphs.-->
-<!ELEMENT br EMPTY>   
-<!ATTLIST br
-  %coreattrs;
-  >
-
-<!--doc:Renders as emphasized text. Generally, visual user agents present EM text in italics.-->
-<!ELEMENT em %Inline;>   
-<!ATTLIST em %attrs;>
-
-<!--doc:Renders as strong emphasized text. Generally, visual user agents present STRONG text in bold font.-->
-<!ELEMENT strong %Inline;>   
-<!ATTLIST strong %attrs;>
-
-<!--doc:Indicates that this is the defining instance of the enclosed term.-->
-<!ELEMENT dfn %Inline;>   
-<!ATTLIST dfn %attrs;>
-
-<!--doc:Designates a fragment of computer code.-->
-<!ELEMENT code %Inline;>   
-<!ATTLIST code %attrs;>
-
-<!--doc:Designates sample output from programs, scripts, etc.-->
-<!ELEMENT samp %Inline;>   
-<!ATTLIST samp %attrs;>
-
-<!--doc:Indicates text to be entered by the user.-->
-<!ELEMENT kbd %Inline;>  
-<!ATTLIST kbd %attrs;>
-
-<!--doc:Indicates an instance of a variable or program argument.-->
-<!ELEMENT var %Inline;>   
-<!ATTLIST var %attrs;>
-
-<!--doc:Contains a citation or a reference to other sources.-->
-<!ELEMENT cite %Inline;>   
-<!ATTLIST cite %attrs;>
-
-<!--doc:The ABBR element is used to indicates an abbreviated form, like "ie.", "Ltd.", "etc.".-->
-<!ELEMENT abbr %Inline;>   
-<!ATTLIST abbr %attrs;>
-
-<!--doc:The ACRONYM element defines an acronym, like "USA" or "F.B.I".-->
-<!ELEMENT acronym %Inline;>   
-<!ATTLIST acronym %attrs;>
-
-<!--doc:The Q element defines the start of a short quotation. It does not render as anything special, you have to use styles to format the text.-->
-<!ELEMENT q %Inline;>   
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--doc:The SUB element defines subscript text.-->
-<!ELEMENT sub %Inline;> 
-<!ATTLIST sub %attrs;>
-
-<!--doc:The SUP element defines superscript text.-->
-<!ELEMENT sup %Inline;> 
-<!ATTLIST sup %attrs;>
-
-<!--doc:Renders as teletype or mono spaced text.-->
-<!ELEMENT tt %Inline;>   
-<!ATTLIST tt %attrs;>
-
-<!--doc:Renders as italic text style.-->
-<!ELEMENT i %Inline;>   
-<!ATTLIST i %attrs;>
-
-<!--doc:Renders as bold text style.-->
-<!ELEMENT b %Inline;>   
-<!ATTLIST b %attrs;>
-
-<!--doc:Renders text in a "large" font.-->
-<!ELEMENT big %Inline;>   
-<!ATTLIST big %attrs;>
-
-<!--doc:Renders text in a "small" font.-->
-<!ELEMENT small %Inline;>   
-<!ATTLIST small %attrs;>
-
-<!--==================== Object ======================================-->
-<!--Defines an embedded object. This element allows you to specify the data and parameters for objects inserted into XHTML documents, and the code that can be used to display/manipulate that data.
--->
-
-<!--doc:Defines an embedded object. This element allows to specify the data and parameters for objects inserted into documents.-->
-<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  >
-
-<!--doc:PARAM elements specify a set of values that may be required by an object at run-time. Any number of PARAM elements may appear in the content of an OBJECT or APPLET element, in any order, but must be placed at the start of the content of the enclosing OBJECT or APPLET element.-->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-
-<!--doc:The IMG element embeds an image in the current document at the location of the element's definition. The IMG element has no content; it is usually replaced inline by the image designated by the src attribute, the exception being for left or right-aligned images that are "floated" out of line. Note that in this DTD there is no name attribute. That is only available in the transitional and frameset DTD.-->
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-
-<!--doc:The MAP element specifies a client-side image map (or other navigation mechanism) that may be associated with another elements (IMG, OBJECT, or INPUT). An image map is associated with an element via the element's usemap attribute. The MAP element may be used without an associated image for general navigation mechanisms.-->
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  >
-
-<!--doc:Defines a region in an image map. This element is always nested inside a MAP element. This element has no content but specify the geometric region of the image map and the link associated with the region. Note that user agents do not generally render AREA elements. Therefore, authors must provide alternate text for each AREA with the alt attribute.-->
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!--doc:The FORM element creates a form. A form can contain textfields, checkboxes, radio-buttons etc. Forms are used to pass user-data to a specified URL, usually a CGI.-->
-<!ELEMENT form %form.content;>   
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  >
-
-<!--doc:The LABEL element may be used to attach information to controls. Each LABEL element is associated with exactly one form control. The "for" attribute binds a label to another element. Set the value of the "for" attribute equal to the value of the "id" attribute of the related element.-->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-   
-<!--doc:The INPUT element defines the start of an input field where the user can enter data. The INPUT element is empty, it contains attributes only.-->
-<!ELEMENT input EMPTY>     
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  >
-
-<!--doc:The select element creates a drop-down list. Use this element in the FORM element to accept user input.-->
-<!ELEMENT select (optgroup|option)+>  
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--doc:The OPTGROUP element allows authors to group choices logically. This is particularly helpful when the user must choose from a long list of options; groups of related choices are easier to grasp and remember than a single long list of options.-->
-<!ELEMENT optgroup (option)+>   
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!--doc:The option element defines an option in the drop-down list. Use this element in conjunction with the SELECT element, elsewhere it is meaningless.-->
-<!ELEMENT option (#PCDATA)>     
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!--doc:The TEXTAREA element creates a multi-line text input control. User agents should use the contents of this element as the initial value of the control and should render this text initially.-->
-<!ELEMENT textarea (#PCDATA)>     
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--doc:The FIELDSET element allows authors to group thematically related controls and labels. Grouping controls makes it easier for users to understand their purpose while simultaneously facilitating tabbing navigation for visual user agents and speech navigation for speech-oriented user agents. The proper use of this element makes documents more accessible.-->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!--doc:The LEGEND element allows authors to assign a caption to a FIELDSET. The legend improves accessibility when the FIELDSET is rendered non-visually.-->
-<!ELEMENT legend %Inline;>     
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form and form controls
---> 
-<!--doc:The BUTTON element defines a push button. Inside a button element you can put content for example images, text.-->
-<!ELEMENT button %button.content;>  
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around the table should be rendered. 
- The values are not the same as CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=':'
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-  
-<!--doc:The TABLE element defines a table. Inside a TABLE element there can be table headers, table rows, table cells.-->
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!--doc:The CAPTION element defines a table caption.-->
-<!ELEMENT caption  %Inline;>
-<!--doc:Defines a table header. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT thead    (tr)+>
-<!--doc:Defines a table footer. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT tfoot    (tr)+>
-<!--doc:Defines a table body. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT tbody    (tr)+>
-<!--doc:Defines different formatting groups of table columns. The colgroup element is an empty element that contains attributes only. To create columns, you must specify td elements within a tr element.-->
-<!ELEMENT colgroup (col)*>
-<!--doc:The COL element allows authors to group together attribute specifications for table columns. The COL does not group columns together structurally that is the role of the COLGROUP element. COL elements are empty and serve only as a support for attributes. They may appear inside or outside an explicit column group (i.e., COLGROUP element).-->
-<!ELEMENT col      EMPTY>
-<!--doc:The TR elements acts as a container for a row of table cells.-->
-<!ELEMENT tr       (th|td)+>
-<!--doc:The TH element defines a cell in a table that contains header information. User agents have two pieces of header information available: the contents of the TH element and the value of the abbr attribute.-->
-<!ELEMENT th       %Flow;>
-<!--doc:The TD element defines a cell in a table that contains data.-->
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  >
-
-<!ATTLIST caption
-  %attrs;
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  >
-
diff --git a/lib/dtds/xhtml/dtd/xhtml1-transitional.dtd b/lib/dtds/xhtml/dtd/xhtml1-transitional.dtd
deleted file mode 100644
index 85dc78f..0000000
--- a/lib/dtds/xhtml/dtd/xhtml1-transitional.dtd
+++ /dev/null
@@ -1,1189 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Transitional DTD
-
-   This is the same as HTML 4 Transitional except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-
-   $Revision: 1.27 $
-   $Date: 2002/08/01 18:16:48 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % FrameTarget "NMTOKEN">
-    <!-- render in this frame -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!-- used for object, applet, img, input and iframe -->
-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
-
-<!-- a color using sRGB: #RRGGBB as Hex values -->
-<!ENTITY % Color "CDATA">
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
--->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!-- text alignment for p, div, h1-h6. The default is
-     align="left" for ltr headings, "right" for rtl -->
-
-<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.extra
-   "object | applet | img | map | iframe">
-	
-<!ENTITY % special.basic
-	"br | span | bdo">
-
-<!ENTITY % special
-   "%special.basic; | %special.extra;">
-
-<!ENTITY % fontstyle.extra "big | small | font | basefont">
-
-<!ENTITY % fontstyle.basic "tt | i | b | u
-                      | s | strike ">
-
-<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
-
-<!ENTITY % phrase.extra "sub | sup">
-<!ENTITY % phrase.basic "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym">
-
-<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl | menu | dir">
-<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
-
-<!ENTITY % block
-    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding img, object, applet, big, small,
-     font, or basefont -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
-	   %inline.forms; | %misc.inline;)*">
-
-<!-- form uses %Flow; excluding form -->
-
-<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-      table | br | span | bdo | object | applet | img | map |
-      %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-
-<!--doc:This element identifies the document to be XHTML. The remainder of the XHTML document is contained by this element.-->
-<!ELEMENT html (head, body)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
-
-
-<!--doc:The HEAD element contains information about the current document,for example the title and the list of keywords that may be used by the search engines.-->
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!--doc:The TITLE element is not considered part of the flow of text. It is displayed as the page header or window title.-->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-
-<!--doc:The BASE element allows authors to specify a document's base URI explicitly. The path information specified by the BASE element only affects relative URIs from the same document.-->
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  id          ID             #IMPLIED
-  href        %URI;          #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--doc:The META element can be used to identify properties of a document (e.g., author, expiration date, a list of key words, etc.). The specification does not define a normative set of properties.-->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--doc:This element defines a link. Unlike A, it may only appear in the HEAD section of a document, although it may appear any number of times. Although LINK has no content, it conveys relationship information that may be rendered by user agents in a variety of ways (e.g., a tool-bar with a drop-down menu of links).-->
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--doc:The STYLE element allows authors to put style sheet rules in the head of the document. XHTML permits any number of STYLE elements in the HEAD section of a document. Some style sheet implementations may allow a wider variety of rules in the STYLE element than in the style attribute. For example, with CSS, rules may be declared within a STYLE element.-->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!--doc:The SCRIPT element places a script within a document. This element may appear any number of times in the HEAD or BODY of an XHTML document.-->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  language    CDATA          #IMPLIED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!--doc:The NOSCRIPT element allows authors to provide alternate content when a script is not executed. The content of a NOSCRIPT element should only be rendered by a script-aware user agent in the following cases: 1. The user agent is configured not to evaluate scripts; 2The user agent doesn't support a scripting language invoked by a SCRIPT element earlier in the document.-->
-<!ELEMENT noscript %Flow;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--======================= Frames =======================================-->
-
-
-<!--doc:The IFRAME element allows authors to insert a frame within a block of text. Inserting an inline frame within a section of text is much like inserting an object via the OBJECT element: they both allow you to insert an XHTML document in the middle of another, they may both be aligned with surrounding text, etc.-->
-<!ELEMENT iframe %Flow;>
-<!ATTLIST iframe
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  align       %ImgAlign;     #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-
-<!--doc:The NOFRAMES element specifies content that should be displayed only by user agents that do not support frames or are configured not to display frames. User agents that support frames must only display the contents of a NOFRAMES declaration when configured not to display frames. User agents that do not support frames must display the contents of NOFRAMES in any case.-->
-<!ELEMENT noframes %Flow;>
-<!ATTLIST noframes
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-<!--doc:The body of a document contains the document's content. The content may be presented by a user agent in a variety of ways. For example, for visual browsers, you can think of the body as a canvas where the content appears: text, images, colors, graphics, etc.-->
-<!ELEMENT body %Flow;>
-<!ATTLIST body
-  %attrs;
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  background  %URI;          #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  text        %Color;        #IMPLIED
-  link        %Color;        #IMPLIED
-  vlink       %Color;        #IMPLIED
-  alink       %Color;        #IMPLIED
-  >
-
-<!--doc:The DIV element defines a division/section in a document. It offer a generic mechanism for adding structure to documents. This element define content to be block-level but impose no other presentational idioms on the content.-->
-<!ELEMENT div %Flow;>  
-<!ATTLIST div
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Paragraphs =======================================-->
-<!--doc:The P element represents a paragraph. It cannot contain block-level elements (including P itself).-->
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-  %attrs;
-  %TextAlign;
-  >
-<!--doc:There are six levels of headings in XHTML with H1 as the most important and H6 as the least. Visual browsers usually render more important headings in larger fonts than less important ones.-->
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list bullet styles -->
-
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!--doc:The UL element defines an unordered list. Unordered list items are not numbered.-->
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  type        %ULStyle;     #IMPLIED
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- Ordered list numbering style
-
-    1   arabic numbers      1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default
-    is reset to 1 for the first list item in an ordered list.
--->
-<!ENTITY % OLStyle "CDATA">
-
-<!--doc:The OL element defines an ordered list. Ordered list items are numbered.-->
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  type        %OLStyle;      #IMPLIED
-  compact     (compact)      #IMPLIED
-  start       %Number;       #IMPLIED
-  >
-
-<!--doc:The MENU element was designed to be used for single column menu lists. (DEPRECATED)-->
-<!ELEMENT menu (li)+>
-<!ATTLIST menu
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!--doc:The DIR element was designed to be used for creating multicolumn directory lists. (DEPRECATED)-->
-<!ELEMENT dir (li)+>
-<!ATTLIST dir
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!ENTITY % LIStyle "CDATA">
-
-<!--doc:The LI element is used to define a list item. The LI element is used in ordered (OL) and unordered lists (UL).-->
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  type        %LIStyle;      #IMPLIED
-  value       %Number;       #IMPLIED
-  >
-
-<!--doc:The DL element is used to define a definition list. They consist consist of two parts for each item: a term (DT) and a description (DD).-->
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  compact     (compact)      #IMPLIED
-  >
-<!--doc:The DT element defines a term in a definition list.-->
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!--doc:The DD element defines the description of a term in a definition list.-->
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!--doc:The ADDRESS element may be used by authors to supply contact information for a document or a major part of a document such as a form. This element often appears at the beginning or end of a document.-->
-<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!--doc:The HR element causes a horizontal rule to be rendered by visual user agents.-->
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!--doc:The PRE element defines blocks of preformatted text. The text enclosed in the pre element preserves spaces and line breaks and is rendered in a fixed-pitch font.-->
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  width       %Number;      #IMPLIED
-  xml:space   (preserve)    #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!--doc:The BLOCKQUOTE element defines the start of a long quotation (block-level content) . It creates white space on both sides of the text.-->
-<!ELEMENT blockquote %Flow;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Text alignment ===================================-->
-
-<!--doc:The CENTER element is exactly equivalent to specifying the DIV element with the align attribute set to "center". The CENTER element is deprecated.-->
-<!ELEMENT center %Flow;>
-<!ATTLIST center
-  %attrs;
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-<!--doc:INS is used to markup sections of the document that have been inserted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).-->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--doc:DEL is used to markup sections of the document that have been deleted with respect to a different version of a document (e.g., in draft legislation where lawmakers need to view the changes).-->
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-
-<!--doc:The A element defines an anchor element. An anchor can be used: 1.To create a link to another document by using the href attribute; 2.To create a bookmark inside a document by using the name or id attribute.-->
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!--doc:The SPAN element is used to group inline-elements in a document. Use the SPAN element to group inline-elements to format them with styles.-->
-<!ELEMENT span %Inline;> 
-<!ATTLIST span
-  %attrs;
-  >
-
-<!--doc:The BDO element overrides the default text direction. It should be used in scenarios where absolute control over sequence order is required (e.g., multi-language part numbers).-->
-<!ELEMENT bdo %Inline;>  
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!--doc:The BR element forcibly breaks (ends) the current line of text. Use the BR element to enter blank lines, not to separate paragraphs.-->
-<!ELEMENT br EMPTY>   
-<!ATTLIST br
-  %coreattrs;
-  clear       (left|all|right|none) "none"
-  >
-
-<!--doc:Renders as emphasized text. Generally, visual user agents present EM text in italics.-->
-<!ELEMENT em %Inline;>   
-<!ATTLIST em %attrs;>
-
-<!--doc:Renders as strong emphasized text. Generally, visual user agents present STRONG text in bold font.-->
-<!ELEMENT strong %Inline;>   
-<!ATTLIST strong %attrs;>
-
-<!--doc:Indicates that this is the defining instance of the enclosed term.-->
-<!ELEMENT dfn %Inline;>   
-<!ATTLIST dfn %attrs;>
-
-<!--doc:Designates a fragment of computer code.-->
-<!ELEMENT code %Inline;>   
-<!ATTLIST code %attrs;>
-
-<!--doc:Designates sample output from programs, scripts, etc.-->
-<!ELEMENT samp %Inline;>   
-<!ATTLIST samp %attrs;>
-
-<!--doc:Indicates text to be entered by the user.-->
-<!ELEMENT kbd %Inline;>  
-<!ATTLIST kbd %attrs;>
-
-<!--doc:Indicates an instance of a variable or program argument.-->
-<!ELEMENT var %Inline;>   
-<!ATTLIST var %attrs;>
-
-<!--doc:Contains a citation or a reference to other sources.-->
-<!ELEMENT cite %Inline;>   
-<!ATTLIST cite %attrs;>
-
-<!--doc:The ABBR element is used to indicates an abbreviated form, like "ie.", "Ltd.", "etc.".-->
-<!ELEMENT abbr %Inline;>   
-<!ATTLIST abbr %attrs;>
-
-<!--doc:The ACRONYM element defines an acronym, like "USA" or "F.B.I".-->
-<!ELEMENT acronym %Inline;>   
-<!ATTLIST acronym %attrs;>
-
-<!--doc:The Q element defines the start of a short quotation. It does not render as anything special, you have to use styles to format the text.-->
-<!ELEMENT q %Inline;>   
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--doc:The SUB element defines subscript text.-->
-<!ELEMENT sub %Inline;> 
-<!ATTLIST sub %attrs;>
-
-<!--doc:The SUP element defines superscript text.-->
-<!ELEMENT sup %Inline;> 
-<!ATTLIST sup %attrs;>
-
-<!--doc:Renders as teletype or mono spaced text.-->
-<!ELEMENT tt %Inline;>   
-<!ATTLIST tt %attrs;>
-
-<!--doc:Renders as italic text style.-->
-<!ELEMENT i %Inline;>   
-<!ATTLIST i %attrs;>
-
-<!--doc:Renders as bold text style.-->
-<!ELEMENT b %Inline;>   
-<!ATTLIST b %attrs;>
-
-<!--doc:Renders text in a "large" font.-->
-<!ELEMENT big %Inline;>   
-<!ATTLIST big %attrs;>
-
-<!--doc:Renders text in a "small" font.-->
-<!ELEMENT small %Inline;>   
-<!ATTLIST small %attrs;>
-
-<!--doc:Renders underlined style text. (DEPRECATED)-->
-<!ELEMENT u %Inline;>   
-<!ATTLIST u %attrs;>
-
-<!--doc:Render strike-through style text.-->
-<!ELEMENT s %Inline;>   
-<!ATTLIST s %attrs;>
-
-<!--doc:Render strike-through style text.-->
-<!ELEMENT strike %Inline;>   
-<!ATTLIST strike %attrs;>
-
-<!--doc:The BASEFONT element sets the base font size (using the size attribute). Font size changes achieved with FONT are relative to the base font size set by BASEFONT. If BASEFONT is not used, the default base font size is 3.-->
-<!ELEMENT basefont EMPTY>  
-<!ATTLIST basefont
-  id          ID             #IMPLIED
-  size        CDATA          #REQUIRED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--doc:The FONT element changes the font size and color for text in its contents.-->
-<!ELEMENT font %Inline;> 
-<!ATTLIST font
-  %coreattrs;
-  %i18n;
-  size        CDATA          #IMPLIED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--==================== Object ======================================-->
-<!--doc:Defines an embedded object. This element allows to specify the data and parameters for objects inserted into documents.-->
-<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--doc:PARAM elements specify a set of values that may be required by an object at run-time. Any number of PARAM elements may appear in the content of an OBJECT or APPLET element, in any order, but must be placed at the start of the content of the enclosing OBJECT or APPLET element.-->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #REQUIRED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Java applet ==================================-->
-<!--doc:This element, supported by all Java-enabled browsers, allows designers to embed a Java applet in an XHTML document. It has been deprecated in favor of the OBJECT element.-->
-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST applet
-  %coreattrs;
-  codebase    %URI;          #IMPLIED
-  archive     CDATA          #IMPLIED
-  code        CDATA          #IMPLIED
-  object      CDATA          #IMPLIED
-  alt         %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  width       %Length;       #REQUIRED
-  height      %Length;       #REQUIRED
-  align       %ImgAlign;     #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-
-<!--doc:The IMG element embeds an image in the current document at the location of the element's definition. The IMG element has no content; it is usually replaced inline by the image designated by the src attribute, the exception being for left or right-aligned images that are "floated" out of line. Note that in this DTD there is no name attribute. That is only available in the transitional and frameset DTD.-->
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  name        NMTOKEN        #IMPLIED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Length;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-
-<!--doc:The MAP element specifies a client-side image map (or other navigation mechanism) that may be associated with another elements (IMG, OBJECT, or INPUT). An image map is associated with an element via the element's usemap attribute. The MAP element may be used without an associated image for general navigation mechanisms.-->
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        CDATA          #IMPLIED
-  >
-  
-<!--doc: Defines a region in an image map. This element is always nested inside a MAP tag. This element has no content but specify the geometric region of the image map and the link associated with the region. Note that user agents do not generally render AREA elements. Therefore, authors must provide alternate text for each AREA with the alt attribute.-->
-<!--doc:Defines a region in an image map. This element is always nested inside a MAP element. This element has no content but specify the geometric region of the image map and the link associated with the region. Note that user agents do not generally render AREA elements. Therefore, authors must provide alternate text for each AREA with the alt attribute.-->
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!--doc:The FORM element creates a form. A form can contain textfields, checkboxes, radio-buttons etc. Forms are used to pass user-data to a specified URL, usually a CGI.-->
-<!ELEMENT form %form.content;>   
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  name        NMTOKEN        #IMPLIED
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--doc:The LABEL element may be used to attach information to controls. Each LABEL element is associated with exactly one form control. The "for" attribute binds a label to another element. Set the value of the "for" attribute equal to the value of the "id" attribute of the related element.-->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!--doc:The INPUT element defines the start of an input field where the user can enter data. The INPUT element is empty, it contains attributes only.-->
-<!ELEMENT input EMPTY>     
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  >
-
-<!--doc:The select element creates a drop-down list. Use this element in the FORM element to accept user input.-->
-<!ELEMENT select (optgroup|option)+>  
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--doc:The OPTGROUP element allows authors to group choices logically. This is particularly helpful when the user must choose from a long list of options; groups of related choices are easier to grasp and remember than a single long list of options.-->
-<!ELEMENT optgroup (option)+>   
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!--doc:The option element defines an option in the drop-down list. Use this element in conjunction with the SELECT element, elsewhere it is meaningless.-->
-<!ELEMENT option (#PCDATA)>     
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!--doc:The TEXTAREA element creates a multi-line text input control. User agents should use the contents of this element as the initial value of the control and should render this text initially.-->
-<!ELEMENT textarea (#PCDATA)>     
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--doc:The FIELDSET element allows authors to group thematically related controls and labels. Grouping controls makes it easier for users to understand their purpose while simultaneously facilitating tabbing navigation for visual user agents and speech navigation for speech-oriented user agents. The proper use of this element makes documents more accessible.-->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!--doc:The LEGEND element allows authors to assign a caption to a FIELDSET. The legend improves accessibility when the FIELDSET is rendered non-visually.-->
-<!ELEMENT legend %Inline;>     
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  align       %LAlign;       #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form, form controls, iframe
---> 
-<!--doc:The BUTTON element defines a push button. Inside a button element you can put content for example images, text.-->
-<!ELEMENT button %button.content;>  
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!--doc:This element creates a single-line text input control. Authors should use the INPUT element to create text input controls. (DEPRECATED)-->
-<!ELEMENT isindex EMPTY>
-<!ATTLIST isindex
-  %coreattrs;
-  %i18n;
-  prompt      %Text;         #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=':'
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-  
-<!--doc:The TABLE element defines a table. Inside a TABLE element there can be table headers, table rows, table cells.-->
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!--doc:The CAPTION element defines a table caption.-->
-<!ELEMENT caption  %Inline;>
-<!--doc:Defines a table header. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT thead    (tr)+>
-<!--doc:Defines a table footer. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT tfoot    (tr)+>
-<!--doc:Defines a table body. Table rows may be grouped into a table head, table foot, and one or more table body sections, using the THEAD, TFOOT and TBODY elements, respectively. This division enables user agents to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data.-->
-<!ELEMENT tbody    (tr)+>
-<!--doc:Defines different formatting groups of table columns. The colgroup element is an empty element that contains attributes only. To create columns, you must specify td elements within a tr element.-->
-<!ELEMENT colgroup (col)*>
-<!--doc:The COL element allows authors to group together attribute specifications for table columns. The COL does not group columns together structurally that is the role of the COLGROUP element. COL elements are empty and serve only as a support for attributes. They may appear inside or outside an explicit column group (i.e., COLGROUP element).-->
-<!ELEMENT col      EMPTY>
-<!--doc:The TR elements acts as a container for a row of table cells.-->
-<!ELEMENT tr       (th|td)+>
-<!--doc:The TH element defines a cell in a table that contains header information. User agents have two pieces of header information available: the contents of the TH element and the value of the abbr attribute.-->
-<!ELEMENT th       %Flow;>
-<!--doc:The TD element defines a cell in a table that contains data.-->
-<!ELEMENT td       %Flow;>
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  align       %TAlign;       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST caption
-  %attrs;
-  align       %CAlign;       #IMPLIED
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Length;       #IMPLIED
-  height      %Length;       #IMPLIED
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Length;       #IMPLIED
-  height      %Length;       #IMPLIED
-  >
-
diff --git a/lib/dtds/xhtml/dtd/xhtml1.dcl b/lib/dtds/xhtml/dtd/xhtml1.dcl
deleted file mode 100644
index 912fd06..0000000
--- a/lib/dtds/xhtml/dtd/xhtml1.dcl
+++ /dev/null
@@ -1,192 +0,0 @@
-<!SGML "ISO 8879:1986 (WWW)"
-
-     -- SGML Declaration for XML 1.0 --
-
-     -- from: 
-        Final text of revised Web SGML Adaptations Annex (TC2) to ISO 8879:1986
-        ISO/IEC JTC1/SC34 N0029: 1998-12-06
-        Annex L.2 (informative): SGML Declaration for XML
-
-        changes made to accommodate validation are noted with 'VALID:'
-     --
-
-     CHARSET
-         BASESET
-             "ISO Registration Number 177//CHARSET
-              ISO/IEC 10646-1:1993 UCS-4 with implementation
-              level 3//ESC 2/5 2/15 4/6"
-         DESCSET
-                 0        9  UNUSED
-                 9        2       9
-                11        2  UNUSED
-                13        1      13
-                14       18  UNUSED
-                32       95      32
-               127        1  UNUSED
-               128       32  UNUSED
-               160    55136     160
-             55296     2048  UNUSED  -- surrogates --
-             57344     8190   57344
-             65534        2  UNUSED  -- FFFE and FFFF --
-             65536  1048576   65536
-
-     CAPACITY NONE  -- Capacities are not restricted in XML --
-
-     SCOPE DOCUMENT
-
-     SYNTAX
-         SHUNCHAR NONE
-         BASESET "ISO Registration Number 177//CHARSET
-                  ISO/IEC 10646-1:1993 UCS-4 with implementation
-                  level 3//ESC 2/5 2/15 4/6"
-         DESCSET
-             0 1114112 0
-         FUNCTION
-             RE    13
-             RS    10
-             SPACE 32
-             TAB   SEPCHAR 9
-         NAMING
-             LCNMSTRT ""
-             UCNMSTRT ""
-             NAMESTRT
-                 58 95 192-214 216-246 248-305 308-318 321-328
-                 330-382 384-451 461-496 500-501 506-535 592-680
-                 699-705 902 904-906 908 910-929 931-974 976-982
-                 986 988 990 992 994-1011 1025-1036 1038-1103
-                 1105-1116 1118-1153 1168-1220 1223-1224
-                 1227-1228 1232-1259 1262-1269 1272-1273
-                 1329-1366 1369 1377-1414 1488-1514 1520-1522
-                 1569-1594 1601-1610 1649-1719 1722-1726
-                 1728-1742 1744-1747 1749 1765-1766 2309-2361
-                 2365 2392-2401 2437-2444 2447-2448 2451-2472
-                 2474-2480 2482 2486-2489 2524-2525 2527-2529
-                 2544-2545 2565-2570 2575-2576 2579-2600
-                 2602-2608 2610-2611 2613-2614 2616-2617
-                 2649-2652 2654 2674-2676 2693-2699 2701
-                 2703-2705 2707-2728 2730-2736 2738-2739
-                 2741-2745 2749 2784 2821-2828 2831-2832
-                 2835-2856 2858-2864 2866-2867 2870-2873 2877
-                 2908-2909 2911-2913 2949-2954 2958-2960
-                 2962-2965 2969-2970 2972 2974-2975 2979-2980
-                 2984-2986 2990-2997 2999-3001 3077-3084
-                 3086-3088 3090-3112 3114-3123 3125-3129
-                 3168-3169 3205-3212 3214-3216 3218-3240
-                 3242-3251 3253-3257 3294 3296-3297 3333-3340
-                 3342-3344 3346-3368 3370-3385 3424-3425
-                 3585-3630 3632 3634-3635 3648-3653 3713-3714
-                 3716 3719-3720 3722 3725 3732-3735 3737-3743
-                 3745-3747 3749 3751 3754-3755 3757-3758 3760
-                 3762-3763 3773 3776-3780 3904-3911 3913-3945
-                 4256-4293 4304-4342 4352 4354-4355 4357-4359
-                 4361 4363-4364 4366-4370 4412 4414 4416 4428
-                 4430 4432 4436-4437 4441 4447-4449 4451 4453
-                 4455 4457 4461-4462 4466-4467 4469 4510 4520
-                 4523 4526-4527 4535-4536 4538 4540-4546 4587
-                 4592 4601 7680-7835 7840-7929 7936-7957
-                 7960-7965 7968-8005 8008-8013 8016-8023 8025
-                 8027 8029 8031-8061 8064-8116 8118-8124 8126
-                 8130-8132 8134-8140 8144-8147 8150-8155
-                 8160-8172 8178-8180 8182-8188 8486 8490-8491
-                 8494 8576-8578 12295 12321-12329 12353-12436
-                 12449-12538 12549-12588 19968-40869 44032-55203
-
-             LCNMCHAR ""
-             UCNMCHAR ""
-             NAMECHAR
-                 45-46 183 720-721 768-837 864-865 903 1155-1158
-                 1425-1441 1443-1465 1467-1469 1471 1473-1474
-                 1476 1600 1611-1618 1632-1641 1648 1750-1764
-                 1767-1768 1770-1773 1776-1785 2305-2307 2364
-                 2366-2381 2385-2388 2402-2403 2406-2415
-                 2433-2435 2492 2494-2500 2503-2504 2507-2509
-                 2519 2530-2531 2534-2543 2562 2620 2622-2626
-                 2631-2632 2635-2637 2662-2673 2689-2691 2748
-                 2750-2757 2759-2761 2763-2765 2790-2799
-                 2817-2819 2876 2878-2883 2887-2888 2891-2893
-                 2902-2903 2918-2927 2946-2947 3006-3010
-                 3014-3016 3018-3021 3031 3047-3055 3073-3075
-                 3134-3140 3142-3144 3146-3149 3157-3158
-                 3174-3183 3202-3203 3262-3268 3270-3272
-                 3274-3277 3285-3286 3302-3311 3330-3331
-                 3390-3395 3398-3400 3402-3405 3415 3430-3439
-                 3633 3636-3642 3654-3662 3664-3673 3761
-                 3764-3769 3771-3772 3782 3784-3789 3792-3801
-                 3864-3865 3872-3881 3893 3895 3897 3902-3903
-                 3953-3972 3974-3979 3984-3989 3991 3993-4013
-                 4017-4023 4025 8400-8412 8417 12293 12330-12335
-                 12337-12341 12441-12442 12445-12446 12540-12542
-
-             NAMECASE
-                 GENERAL NO
-                 ENTITY  NO
-         DELIM
-             GENERAL  SGMLREF
-             HCRO     "&#38;#x"
-                      -- Ampersand followed by "#x" (without quotes) --
-             NESTC    "/"
-             NET      ">"
-             PIC      "?>"
-             SHORTREF NONE
-
-         NAMES
-             SGMLREF
-
-         QUANTITY
-             NONE -- Quantities are not restricted in XML --
-
-         ENTITIES
-             "amp"  38
-             "lt"   60
-             "gt"   62
-             "quot" 34
-             "apos" 39
-
-     FEATURES
-         MINIMIZE
-             DATATAG NO
-             OMITTAG NO
-             RANK    NO
-             SHORTTAG
-                 STARTTAG
-                     EMPTY    NO
-                     UNCLOSED NO
-                     NETENABL IMMEDNET
-                 ENDTAG
-                     EMPTY    NO
-                     UNCLOSED NO
-                 ATTRIB
-                     DEFAULT  YES
-                     OMITNAME NO
-                     VALUE    NO
-             EMPTYNRM  YES
-             IMPLYDEF
-                 ATTLIST  NO  -- VALID: was YES --
-                 DOCTYPE  NO
-                 ELEMENT  NO  -- VALID: was YES --
-                 ENTITY   NO
-                 NOTATION NO  -- VALID: was YES --
-         LINK
-             SIMPLE   NO
-             IMPLICIT NO
-             EXPLICIT NO
-         OTHER
-             CONCUR   NO
-             SUBDOC   NO
-             FORMAL   NO
-             URN      NO
-             KEEPRSRE YES
-             VALIDITY TYPE -- VALID: was NOASSERT --
-             ENTITIES
-                 REF      ANY
-                 INTEGRAL YES
-
-     APPINFO NONE
-
-     SEEALSO "ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN"
->
-<!-- Id: $Id$ SMI
-     Revisions:
-#1999-04-09  changes for XML validation
-#2001-04-08  updated ISO registration number for UCS-4
--->
diff --git a/lib/dtds/xhtml/dtd/xhtmlcatalog.xml b/lib/dtds/xhtml/dtd/xhtmlcatalog.xml
deleted file mode 100644
index 51f001c..0000000
--- a/lib/dtds/xhtml/dtd/xhtmlcatalog.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
-                         "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
-<!--
-  Comment the DTD declaration to avoid looking for it on the web.
-  Alternatively we can place a copy of the DTD locally and refer to it.
--->
-<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-  <public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" uri="xhtml1-transitional.dtd"/>
-  <public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" uri="xhtml1-strict.dtd"/>
-  <public publicId="-//W3C//DTD HTML 4.01 Transitional//EN" uri="xhtml1-transitional.dtd"/>
-  
-  <public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN" uri="xhtml1-frameset.dtd"/>
-  <public publicId="-//W3C//ENTITIES Latin 1 for XHTML//EN" uri="xhtml-lat1.ent"/>
-  <public publicId="-//W3C//ENTITIES Symbols for XHTML//EN" uri="xhtml-symbol.ent"/>
-  <public publicId="-//W3C//ENTITIES Special for XHTML//EN" uri="xhtml-special.ent"/>
-  
-  <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" uri="xhtml1-transitional.dtd"/>
-  <system systemId="http://www.w3.org/TR/html4/loose.dtd" uri="xhtml1-transitional.dtd"/>
-  <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" uri="xhtml1-strict.dtd"/>
-  <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" uri="xhtml1-frameset.dtd"/>
-  <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent" uri="xhtml-lat1.ent"/>
-  <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent" uri="xhtml-symbol.ent"/>
-  <system systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent" uri="xhtml-special.ent"/>
-  
-</catalog>
diff --git a/lib/dtds/xhtml/html2dita/build.xml b/lib/dtds/xhtml/html2dita/build.xml
deleted file mode 100644
index 1a853fe..0000000
--- a/lib/dtds/xhtml/html2dita/build.xml
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- (c) Copyright IBM Corp. 2005, 2006 All Rights Reserved. -->
-
-<project name="html2dita" basedir="." default="html2dita">
-
-    <property name="args.input" value="." />
-    <property name="args.include.subdirs" value="no" />
-    <property name="args.output" value="." />
-    <property name="args.dita.ext" value=".dita" />
-    <property name="args.xsl" value="h2d.xsl" />
-    <property name="temp.dir" value="temp"/>
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: init                      
-         - - - - - - - - - - - - - - - - - -->
-    <target name="init"
-            depends="checkinputs"
-            description="-->Init properties base on input parameters">
-        <available file="${args.input}" type="file" property="isInputFile" />
-        <available file="${args.input}" type="dir" property="isInputDir" />
-        <mkdir dir="${args.output}" />
-        <condition property="includes.pattern" value="**/*.html,**/*.htm,**/*.xhtml,**/*.xml">
-            <equals arg1="${args.include.subdirs}"
-                    arg2="yes"
-                    casesensitive="false" />
-        </condition>
-        <condition property="includes.pattern" value="**/*.html,**/*.htm,**/*.xhtml,**/*.xml">
-            <not>
-                <isset property="includes.pattern" />
-            </not>
-        </condition>
-    </target>
-
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: checkinputs                      
-         - - - - - - - - - - - - - - - - - -->
-    <target name="checkinputs" description="-->Check input parameters">
-        <fail message="Input parameter 'args.input=${args.input}' does not exist.">
-            <condition>
-                <not>
-                    <available file="${args.input}" />
-                </not>
-            </condition>
-        </fail>
-        <fail message="Input parameter 'args.xsl=${args.xsl}' does not exist">
-            <condition>
-                <not>
-                    <available file="${args.xsl}" />
-                </not>
-            </condition>
-        </fail>
-    </target>
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: clean-temp                      
-         - - - - - - - - - - - - - - - - - -->
-    <target name="clean-temp" description="-->Clean temp directory">
-      <delete dir="${temp.dir}"/>
-    </target>
-      
-    <!-- ================================= 
-          public target: html2dita              
-         ================================= -->
-    <target name="html2dita"
-            depends="html2dita-single, html2dita-batch, clean-temp"
-            description="-->Migrate one or more HTML files to DITA files">
-    </target>
-
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: preprocess-batch              
-         - - - - - - - - - - - - - - - - - -->
-    <target name="preprocess-batch" 
-            if="isInputDir" 
-            description="-->Remove xmlns from HTML files">
-      <xslt
-            basedir="${args.input}"
-            destdir="${temp.dir}"
-            includes="${includes.pattern}"
-            style="preprocess.xsl"
-            force="true">
-        <mapper type="identity"/>
-      </xslt>
-    </target>
-      
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: html2dita-batch              
-         - - - - - - - - - - - - - - - - - -->
-    <target name="html2dita-batch"
-            depends="init, preprocess-batch"
-            if="isInputDir"
-            description="-->Migrate HTML files to DITA files in batches">
-
-        <xslt
-              basedir="${temp.dir}"
-              destdir="${args.output}"
-              includes="${includes.pattern}"
-              extension="${args.dita.ext}"
-              style="${args.xsl}"
-              force="true">
-            <param name="infotype"
-                   expression="${args.infotype}"
-                   if="args.infotype" />
-            <param name="dita-extension"
-                   expression="${args.dita.ext}"
-                   if="args.dita.ext" />
-            <param name="default-lang"
-                   expression="${args.lang}"
-                   if="args.lang" />
-        </xslt>
-    </target>
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: preprocess-single              
-         - - - - - - - - - - - - - - - - - -->
-    <target name="preprocess-single" 
-            if="isInputFile"
-            description="-->Remove xmlns from HTML file">
-      <basename file="${args.input}" property="filename" />
-      <dirname file="${args.input}" property="args.input.dir"/>
-      <xslt
-            basedir="${args.input.dir}"
-            destdir="${temp.dir}"
-            includes="${filename}"            
-            style="preprocess.xsl"
-            force="true">
-        <mapper type="identity"/>
-      </xslt>
-    </target>
-    
-    <!-- - - - - - - - - - - - - - - - - - 
-          private target: html2dita-batch              
-         - - - - - - - - - - - - - - - - - -->
-    <target name="html2dita-single"
-            depends="init, preprocess-single"
-            if="isInputFile"
-            description="-->Migrate single HTML file to DITA file">
-        <xslt
-              basedir="${temp.dir}"
-              includes="${filename}"
-              destdir="${args.output}"
-              extension="${args.dita.ext}"
-              style="${args.xsl}"
-              force="true">
-            <param name="infotype"
-                   expression="${args.infotype}"
-                   if="args.infotype" />
-            <param name="dita-extension"
-                   expression="${args.dita.ext}"
-                   if="args.dita.ext" />
-            <param name="default-lang"
-                   expression="${args.lang}"
-                   if="args.lang" />
-            <param name="FILENAME" expression="${filename}" if="filename" />
-        </xslt>
-    </target>
-
-
-</project>
\ No newline at end of file
diff --git a/lib/dtds/xhtml/html2dita/catalog.xml b/lib/dtds/xhtml/html2dita/catalog.xml
deleted file mode 100644
index 6994414..0000000
--- a/lib/dtds/xhtml/html2dita/catalog.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This file is part of the DITA Open Toolkit project hosted on 
-  Sourceforge.net. See the accompanying license.txt file for 
-  applicable licenses.-->
-  <!--
-    | (C) Copyright IBM Corporation 2006. All Rights Reserved.
-    *-->
-<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
-  prefer="public">
-  
-  <public publicId="-//W3C//DTD XHTML 1.0 Strict//EN" uri="dtd/xhtml1-strict.dtd"/>
-    <public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" uri="dtd/xhtml1-transitional.dtd"/>
-    <public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN" uri="dtd/xhtml1-frameset.dtd"/>
-    <public publicId="-//W3C//ENTITIES Latin 1 for XHTML//EN" uri="dtd/xhtml-lat1.ent"/>
-    <public publicId="-//W3C//ENTITIES Symbols for XHTML//EN" uri="dtd/xhtml-symbol.ent"/>
-    <public publicId="-//W3C//ENTITIES Special for XHTML//EN" uri="dtd/xhtml-special.ent"/>
-  
-</catalog>
\ No newline at end of file
diff --git a/lib/dtds/xhtml/html2dita/dtd/xhtml-lat1.ent b/lib/dtds/xhtml/html2dita/dtd/xhtml-lat1.ent
deleted file mode 100644
index 7b7b407..0000000
--- a/lib/dtds/xhtml/html2dita/dtd/xhtml-lat1.ent
+++ /dev/null
@@ -1,196 +0,0 @@
-<!-- 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.
--->
-<!-- Character entity set. Typical invocation:
-    <!ENTITY % HTMLlat1 PUBLIC
-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
-    %HTMLlat1;
--->
-
-<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
-                                  U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
-                                  U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
-                                  U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
-                                  = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
-                                  U+00AC ISOnum -->
-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
-                                  U+00AD ISOnum -->
-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
-                                  U+00AE ISOnum -->
-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
-                                  = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
-                                  U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
-                                  = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
-                                  = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
-                                  U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
-                                  U+00B6 ISOnum -->
-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
-                                  = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
-                                  U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
-                                  U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
-                                  = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
-                                  = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
-                                  = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
-                                  = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;"> <!-- inverted question mark
-                                  = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
-                                  = latin capital letter A grave,
-                                  U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
-                                  U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
-                                  U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
-                                  U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
-                                  U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
-                                  = latin capital letter A ring,
-                                  U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
-                                  = latin capital ligature AE,
-                                  U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
-                                  U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
-                                  U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
-                                  U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
-                                  U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
-                                  U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
-                                  U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
-                                  U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
-                                  U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
-                                  U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
-                                  U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
-                                  U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
-                                  U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
-                                  U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
-                                  U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
-                                  U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
-                                  = latin capital letter O slash,
-                                  U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
-                                  U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
-                                  U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
-                                  U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
-                                  U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
-                                  U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
-                                  U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
-                                  U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
-                                  = latin small letter a grave,
-                                  U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
-                                  U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
-                                  U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
-                                  U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
-                                  U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
-                                  = latin small letter a ring,
-                                  U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
-                                  = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
-                                  U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
-                                  U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
-                                  U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
-                                  U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
-                                  U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
-                                  U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
-                                  U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
-                                  U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
-                                  U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
-                                  U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
-                                  U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
-                                  U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
-                                  U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
-                                  U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
-                                  U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
-                                  = latin small letter o slash,
-                                  U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
-                                  U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
-                                  U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
-                                  U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
-                                  U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
-                                  U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
-                                  U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
-                                  U+00FF ISOlat1 -->
diff --git a/lib/dtds/xhtml/html2dita/dtd/xhtml-special.ent b/lib/dtds/xhtml/html2dita/dtd/xhtml-special.ent
deleted file mode 100644
index 2ea205f..0000000
--- a/lib/dtds/xhtml/html2dita/dtd/xhtml-special.ent
+++ /dev/null
@@ -1,80 +0,0 @@
-<!-- Special characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLspecial PUBLIC
-        "-//W3C//ENTITIES Special for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
-     %HTMLspecial;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->
-<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
-<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
-<!ENTITY apos	 "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
-                                    U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
-                                    U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
-                                    U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
-                                    U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
-                                    U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
-                                    U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
-                                    U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
-                                    U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
-                                    U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
-                                    U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
-                                    U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
-                                    U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-
-<!-- Currency Symbols -->
-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
diff --git a/lib/dtds/xhtml/html2dita/dtd/xhtml-symbol.ent b/lib/dtds/xhtml/html2dita/dtd/xhtml-symbol.ent
deleted file mode 100644
index 3f8f8e6..0000000
--- a/lib/dtds/xhtml/html2dita/dtd/xhtml-symbol.ent
+++ /dev/null
@@ -1,237 +0,0 @@
-<!-- Mathematical, Greek and Symbolic characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLsymbol PUBLIC
-        "-//W3C//ENTITIES Symbols for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
-     %HTMLsymbol;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function
-                                    = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
-                                    U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
-                                    U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
-                                    U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,
-                                    U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
-                                    U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
-                                    U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
-                                    U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
-                                    U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
-                                    U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
-                                    U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
-                                    U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
-                                    U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
-                                    U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
-                                    U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
-                                    U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,
-                                    U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
-                                    U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
-                                    U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
-                                    U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
-                                    U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
-                                    U+03D1 NEW -->
-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
-                                    U+03D2 NEW -->
-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
-                                     U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
-                                     U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
-                                     U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
-                                     U+203E NEW -->
-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
-                                     = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,
-                                     U+2111 ISOamso -->
-<!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,
-                                     U+211C ISOamso -->
-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;"> <!-- 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     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
-                                     = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;"> <!-- 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     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;"> <!-- 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     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
-                                     U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
-                                     U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
-<!ENTITY prod     "&#8719;"> <!-- 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      "&#8721;"> <!-- n-ary summation, 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    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
-                                     U+221A ISOtech -->
-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;"> <!-- 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     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
-                                     U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
-                                     U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
-<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
-                                     U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
-                                     U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
-                                     U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
-                                     U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,
-                                     U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,
-                                     U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
-                                     U+2329 ISOtech -->
-<!-- lang is NOT the same character as U+003C 'less than sign' 
-     or U+2039 'single left-pointing angle quotation mark' -->
-<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
-                                     U+232A ISOtech -->
-<!-- rang is NOT the same character as U+003E 'greater than sign' 
-     or U+203A 'single right-pointing angle quotation mark' -->
-
-<!-- Geometric Shapes -->
-<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
-                                     U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
-                                     U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/lib/dtds/xhtml/html2dita/dtd/xhtml1-frameset.dtd b/lib/dtds/xhtml/html2dita/dtd/xhtml1-frameset.dtd
deleted file mode 100644
index 4e09bc5..0000000
--- a/lib/dtds/xhtml/html2dita/dtd/xhtml1-frameset.dtd
+++ /dev/null
@@ -1,1235 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Frameset DTD
-
-   This is the same as HTML 4 Frameset except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
-
-   $Revision: 1.2 $
-   $Date: 2010/12/09 10:20:36 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % FrameTarget "NMTOKEN">
-    <!-- render in this frame -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % MultiLengths "CDATA">
-    <!-- comma-separated list of MultiLength -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!-- used for object, applet, img, input and iframe -->
-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
-
-<!-- a color using sRGB: #RRGGBB as Hex values -->
-<!ENTITY % Color "CDATA">
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
--->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!-- text alignment for p, div, h1-h6. The default is
-     align="left" for ltr headings, "right" for rtl -->
-
-<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.extra
-   "object | applet | img | map | iframe">
-	
-<!ENTITY % special.basic
-	"br | span | bdo">
-
-<!ENTITY % special
-   "%special.basic; | %special.extra;">
-
-<!ENTITY % fontstyle.extra "big | small | font | basefont">
-
-<!ENTITY % fontstyle.basic "tt | i | b | u
-                      | s | strike ">
-
-<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
-
-<!ENTITY % phrase.extra "sub | sup">
-<!ENTITY % phrase.basic "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym">
-
-<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl | menu | dir">
-<!ENTITY % blocktext "pre | hr | blockquote | address | center">
-
-<!ENTITY % block
-    "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding img, object, applet, big, small,
-     sub, sup, font, or basefont -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
-	   %inline.forms; | %misc.inline;)*">
-
-
-<!-- form uses %Flow; excluding form -->
-
-<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-      table | br | span | bdo | object | applet | img | map |
-      %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!-- the namespace URI designates the document profile -->
-
-<!ELEMENT html (head, frameset)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
-
-<!-- content model is %head.misc; combined with a single
-     title and an optional base element in any order -->
-
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!-- The title element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!-- document base URI -->
-
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  id          ID             #IMPLIED
-  href        %URI;          #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- generic metainformation -->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the link element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel="stylesheet")
-   c) to make a link to a script (rel="script")
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a PostScript or PDF version (rel="alternate" media="print")
--->
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- style info, which may include CDATA sections -->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- script statements, which may include CDATA sections -->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  language    CDATA          #IMPLIED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- alternate content container for non script-based rendering -->
-
-<!ELEMENT noscript %Flow;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--======================= Frames =======================================-->
-
-<!-- only one noframes element permitted per document -->
-
-<!ELEMENT frameset (frameset|frame|noframes)*>
-<!ATTLIST frameset
-  %coreattrs;
-  rows        %MultiLengths; #IMPLIED
-  cols        %MultiLengths; #IMPLIED
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  >
-
-<!-- reserved frame names start with "_" otherwise starts with letter -->
-
-<!-- tiled window within frameset -->
-
-<!ELEMENT frame EMPTY>
-<!ATTLIST frame
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  noresize    (noresize)     #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  >
-
-<!-- inline subwindow -->
-
-<!ELEMENT iframe %Flow;>
-<!ATTLIST iframe
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  align       %ImgAlign;     #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!-- alternate content container for non frame-based rendering -->
-
-<!ELEMENT noframes (body)>
-<!ATTLIST noframes
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT body %Flow;>
-<!ATTLIST body
-  %attrs;
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  background  %URI;          #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  text        %Color;        #IMPLIED
-  link        %Color;        #IMPLIED
-  vlink       %Color;        #IMPLIED
-  alink       %Color;        #IMPLIED
-  >
-
-<!ELEMENT div %Flow;>  <!-- generic language/style container -->
-<!ATTLIST div
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from h1 (the most important)
-  to h6 (the least important).
--->
-
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list bullet styles -->
-
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!-- Unordered list -->
-
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  type        %ULStyle;     #IMPLIED
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- Ordered list numbering style
-
-    1   arabic numbers      1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default
-    is reset to 1 for the first list item in an ordered list.
--->
-<!ENTITY % OLStyle "CDATA">
-
-<!-- Ordered (numbered) list -->
-
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  type        %OLStyle;      #IMPLIED
-  compact     (compact)      #IMPLIED
-  start       %Number;       #IMPLIED
-  >
-
-<!-- single column list (DEPRECATED) --> 
-<!ELEMENT menu (li)+>
-<!ATTLIST menu
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- multiple column list (DEPRECATED) --> 
-<!ELEMENT dir (li)+>
-<!ATTLIST dir
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
-<!ENTITY % LIStyle "CDATA">
-
-<!-- list item -->
-
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  type        %LIStyle;      #IMPLIED
-  value       %Number;       #IMPLIED
-  >
-
-<!-- definition lists - dt for term, dd for its definition -->
-
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  compact     (compact)      #IMPLIED
-  >
-
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!-- information on author -->
-
-<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- content is %Inline; excluding 
-        "img|object|applet|big|small|sub|sup|font|basefont" -->
-
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  width       %Number;      #IMPLIED
-  xml:space   (preserve)    #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT blockquote %Flow;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Text alignment ===================================-->
-
-<!-- center content -->
-<!ELEMENT center %Flow;>
-<!ATTLIST center
-  %attrs;
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-
-<!--
-  ins/del are allowed in block and inline content, but its
-  inappropriate to include block content within an ins element
-  occurring in inline content.
--->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!-- content is %Inline; except that anchors shouldn't be nested -->
-
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!ELEMENT span %Inline;> <!-- generic language/style container -->
-<!ATTLIST span
-  %attrs;
-  >
-
-<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!ELEMENT br EMPTY>   <!-- forced line break -->
-<!ATTLIST br
-  %coreattrs;
-  clear       (left|all|right|none) "none"
-  >
-
-<!ELEMENT em %Inline;>   <!-- emphasis -->
-<!ATTLIST em %attrs;>
-
-<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
-<!ATTLIST strong %attrs;>
-
-<!ELEMENT dfn %Inline;>   <!-- definitional -->
-<!ATTLIST dfn %attrs;>
-
-<!ELEMENT code %Inline;>   <!-- program code -->
-<!ATTLIST code %attrs;>
-
-<!ELEMENT samp %Inline;>   <!-- sample -->
-<!ATTLIST samp %attrs;>
-
-<!ELEMENT kbd %Inline;>  <!-- something user would type -->
-<!ATTLIST kbd %attrs;>
-
-<!ELEMENT var %Inline;>   <!-- variable -->
-<!ATTLIST var %attrs;>
-
-<!ELEMENT cite %Inline;>   <!-- citation -->
-<!ATTLIST cite %attrs;>
-
-<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
-<!ATTLIST abbr %attrs;>
-
-<!ELEMENT acronym %Inline;>   <!-- acronym -->
-<!ATTLIST acronym %attrs;>
-
-<!ELEMENT q %Inline;>   <!-- inlined quote -->
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!ELEMENT sub %Inline;> <!-- subscript -->
-<!ATTLIST sub %attrs;>
-
-<!ELEMENT sup %Inline;> <!-- superscript -->
-<!ATTLIST sup %attrs;>
-
-<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
-<!ATTLIST tt %attrs;>
-
-<!ELEMENT i %Inline;>   <!-- italic font -->
-<!ATTLIST i %attrs;>
-
-<!ELEMENT b %Inline;>   <!-- bold font -->
-<!ATTLIST b %attrs;>
-
-<!ELEMENT big %Inline;>   <!-- bigger font -->
-<!ATTLIST big %attrs;>
-
-<!ELEMENT small %Inline;>   <!-- smaller font -->
-<!ATTLIST small %attrs;>
-
-<!ELEMENT u %Inline;>   <!-- underline -->
-<!ATTLIST u %attrs;>
-
-<!ELEMENT s %Inline;>   <!-- strike-through -->
-<!ATTLIST s %attrs;>
-
-<!ELEMENT strike %Inline;>   <!-- strike-through -->
-<!ATTLIST strike %attrs;>
-
-<!ELEMENT basefont EMPTY>  <!-- base font size -->
-<!ATTLIST basefont
-  id          ID             #IMPLIED
-  size        CDATA          #REQUIRED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!ELEMENT font %Inline;> <!-- local change to font -->
-<!ATTLIST font
-  %coreattrs;
-  %i18n;
-  size        CDATA          #IMPLIED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--==================== Object ======================================-->
-<!--
-  object is used to embed objects as part of HTML pages.
-  param elements should precede other content. Parameters
-  can also be expressed as attribute/value pairs on the
-  object element itself when brevity is desired.
--->
-
-<!ELEMENT object (#PCDATA | param | %block; | form |%inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--
-  param is used to supply a named property value.
-  In XML it would seem natural to follow RDF and support an
-  abbreviated syntax where the param elements are replaced
-  by attribute value pairs on the object start tag.
--->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #REQUIRED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Java applet ==================================-->
-<!--
-  One of code or object attributes must be present.
-  Place param elements before other content.
--->
-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST applet
-  %coreattrs;
-  codebase    %URI;          #IMPLIED
-  archive     CDATA          #IMPLIED
-  code        CDATA          #IMPLIED
-  object      CDATA          #IMPLIED
-  alt         %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  width       %Length;       #REQUIRED
-  height      %Length;       #REQUIRED
-  align       %ImgAlign;     #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--
-   To avoid accessibility problems for people who aren't
-   able to see the image, you should provide a text
-   description using the alt and longdesc attributes.
-   In addition, avoid the use of server-side image maps.
--->
-
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  name        NMTOKEN        #IMPLIED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  >
-
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  name        NMTOKEN        #IMPLIED
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--
-  Each label must not contain more than ONE field
-  Label elements shouldn't be nested.
--->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!ELEMENT input EMPTY>     <!-- form control -->
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  >
-
-<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!ELEMENT optgroup (option)+>   <!-- option group -->
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--
-  The fieldset element is used to group form fields.
-  Only one legend element should occur in the content
-  and if present should only be preceded by whitespace.
--->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!ELEMENT legend %Inline;>     <!-- fieldset label -->
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  align       %LAlign;       #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form, form controls, iframe
---> 
-<!ELEMENT button %button.content;>  <!-- push button -->
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!-- single-line text input control (DEPRECATED) -->
-<!ELEMENT isindex EMPTY>
-<!ATTLIST isindex
-  %coreattrs;
-  %i18n;
-  prompt      %Text;         #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=":"
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!ELEMENT caption  %Inline;>
-<!ELEMENT thead    (tr)+>
-<!ELEMENT tfoot    (tr)+>
-<!ELEMENT tbody    (tr)+>
-<!ELEMENT colgroup (col)*>
-<!ELEMENT col      EMPTY>
-<!ELEMENT tr       (th|td)+>
-<!ELEMENT th       %Flow;>
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  align       %TAlign;       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST caption
-  %attrs;
-  align       %CAlign;       #IMPLIED
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Pixels;       #IMPLIED
-  height      %Pixels;       #IMPLIED
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Pixels;       #IMPLIED
-  height      %Pixels;       #IMPLIED
-  >
-
diff --git a/lib/dtds/xhtml/html2dita/dtd/xhtml1-strict.dtd b/lib/dtds/xhtml/html2dita/dtd/xhtml1-strict.dtd
deleted file mode 100644
index 984532c..0000000
--- a/lib/dtds/xhtml/html2dita/dtd/xhtml1-strict.dtd
+++ /dev/null
@@ -1,978 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Strict DTD
-
-   This is the same as HTML 4 Strict except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
-
-   $Revision: 1.2 $
-   $Date: 2010/12/09 10:20:36 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.pre
-   "br | span | bdo | map">
-
-
-<!ENTITY % special
-   "%special.pre; | object | img ">
-
-<!ENTITY % fontstyle "tt | i | b | big | small ">
-
-<!ENTITY % phrase "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl">
-<!ENTITY % blocktext "pre | hr | blockquote | address">
-
-<!ENTITY % block
-     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
-
-<!ENTITY % Block "(%block; | form | %misc;)*">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding big, small, sup or sup -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
-      | %inline.forms;)*">
-
-<!-- form uses %Block; excluding form -->
-
-<!ENTITY % form.content "(%block; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form and form controls -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-    table | %special; | %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!-- the namespace URI designates the document profile -->
-
-<!ELEMENT html (head, body)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object)*">
-
-<!-- content model is %head.misc; combined with a single
-     title and an optional base element in any order -->
-
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!-- The title element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!-- document base URI -->
-
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  href        %URI;          #REQUIRED
-  id          ID             #IMPLIED
-  >
-
-<!-- generic metainformation -->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the link element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel="stylesheet")
-   c) to make a link to a script (rel="script")
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a PostScript or PDF version (rel="alternate" media="print")
--->
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  >
-
-<!-- style info, which may include CDATA sections -->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- script statements, which may include CDATA sections -->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- alternate content container for non script-based rendering -->
-
-<!ELEMENT noscript %Block;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT body %Block;>
-<!ATTLIST body
-  %attrs;
-  onload          %Script;   #IMPLIED
-  onunload        %Script;   #IMPLIED
-  >
-
-<!ELEMENT div %Flow;>  <!-- generic language/style container -->
-<!ATTLIST div
-  %attrs;
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from h1 (the most important)
-  to h6 (the least important).
--->
-
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-   %attrs;
-   >
-
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-   %attrs;
-   >
-
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-   %attrs;
-   >
-
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-   %attrs;
-   >
-
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-   %attrs;
-   >
-
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-   %attrs;
-   >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list -->
-
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  >
-
-<!-- Ordered (numbered) list -->
-
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  >
-
-<!-- list item -->
-
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  >
-
-<!-- definition lists - dt for term, dd for its definition -->
-
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  >
-
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!-- information on author -->
-
-<!ELEMENT address %Inline;>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
-
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  xml:space (preserve) #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT blockquote %Block;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-<!--
-  ins/del are allowed in block and inline content, but its
-  inappropriate to include block content within an ins element
-  occurring in inline content.
--->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!-- content is %Inline; except that anchors shouldn't be nested -->
-
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!ELEMENT span %Inline;> <!-- generic language/style container -->
-<!ATTLIST span
-  %attrs;
-  >
-
-<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!ELEMENT br EMPTY>   <!-- forced line break -->
-<!ATTLIST br
-  %coreattrs;
-  >
-
-<!ELEMENT em %Inline;>   <!-- emphasis -->
-<!ATTLIST em %attrs;>
-
-<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
-<!ATTLIST strong %attrs;>
-
-<!ELEMENT dfn %Inline;>   <!-- definitional -->
-<!ATTLIST dfn %attrs;>
-
-<!ELEMENT code %Inline;>   <!-- program code -->
-<!ATTLIST code %attrs;>
-
-<!ELEMENT samp %Inline;>   <!-- sample -->
-<!ATTLIST samp %attrs;>
-
-<!ELEMENT kbd %Inline;>  <!-- something user would type -->
-<!ATTLIST kbd %attrs;>
-
-<!ELEMENT var %Inline;>   <!-- variable -->
-<!ATTLIST var %attrs;>
-
-<!ELEMENT cite %Inline;>   <!-- citation -->
-<!ATTLIST cite %attrs;>
-
-<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
-<!ATTLIST abbr %attrs;>
-
-<!ELEMENT acronym %Inline;>   <!-- acronym -->
-<!ATTLIST acronym %attrs;>
-
-<!ELEMENT q %Inline;>   <!-- inlined quote -->
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!ELEMENT sub %Inline;> <!-- subscript -->
-<!ATTLIST sub %attrs;>
-
-<!ELEMENT sup %Inline;> <!-- superscript -->
-<!ATTLIST sup %attrs;>
-
-<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
-<!ATTLIST tt %attrs;>
-
-<!ELEMENT i %Inline;>   <!-- italic font -->
-<!ATTLIST i %attrs;>
-
-<!ELEMENT b %Inline;>   <!-- bold font -->
-<!ATTLIST b %attrs;>
-
-<!ELEMENT big %Inline;>   <!-- bigger font -->
-<!ATTLIST big %attrs;>
-
-<!ELEMENT small %Inline;>   <!-- smaller font -->
-<!ATTLIST small %attrs;>
-
-<!--==================== Object ======================================-->
-<!--
-  object is used to embed objects as part of HTML pages.
-  param elements should precede other content. Parameters
-  can also be expressed as attribute/value pairs on the
-  object element itself when brevity is desired.
--->
-
-<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  >
-
-<!--
-  param is used to supply a named property value.
-  In XML it would seem natural to follow RDF and support an
-  abbreviated syntax where the param elements are replaced
-  by attribute value pairs on the object start tag.
--->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--
-   To avoid accessibility problems for people who aren't
-   able to see the image, you should provide a text
-   description using the alt and longdesc attributes.
-   In addition, avoid the use of server-side image maps.
-   Note that in this DTD there is no name attribute. That
-   is only available in the transitional and frameset DTD.
--->
-
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  >
-
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  >
-
-<!--================ Forms ===============================================-->
-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  >
-
-<!--
-  Each label must not contain more than ONE field
-  Label elements shouldn't be nested.
--->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!ELEMENT input EMPTY>     <!-- form control -->
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  >
-
-<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!ELEMENT optgroup (option)+>   <!-- option group -->
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--
-  The fieldset element is used to group form fields.
-  Only one legend element should occur in the content
-  and if present should only be preceded by whitespace.
--->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ELEMENT legend %Inline;>     <!-- fieldset label -->
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form and form controls
---> 
-<!ELEMENT button %button.content;>  <!-- push button -->
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=':'
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!ELEMENT caption  %Inline;>
-<!ELEMENT thead    (tr)+>
-<!ELEMENT tfoot    (tr)+>
-<!ELEMENT tbody    (tr)+>
-<!ELEMENT colgroup (col)*>
-<!ELEMENT col      EMPTY>
-<!ELEMENT tr       (th|td)+>
-<!ELEMENT th       %Flow;>
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  >
-
-<!ATTLIST caption
-  %attrs;
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  >
-
diff --git a/lib/dtds/xhtml/html2dita/dtd/xhtml1-transitional.dtd b/lib/dtds/xhtml/html2dita/dtd/xhtml1-transitional.dtd
deleted file mode 100644
index b80359a..0000000
--- a/lib/dtds/xhtml/html2dita/dtd/xhtml1-transitional.dtd
+++ /dev/null
@@ -1,1201 +0,0 @@
-<!--
-   Extensible HTML version 1.0 Transitional DTD
-
-   This is the same as HTML 4 Transitional except for
-   changes due to the differences between XML and SGML.
-
-   Namespace = http://www.w3.org/1999/xhtml
-
-   For further information, see: http://www.w3.org/TR/xhtml1
-
-   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
-   All Rights Reserved. 
-
-   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-
-   $Revision: 1.2 $
-   $Date: 2010/12/09 10:20:36 $
-
--->
-
-<!--================ Character mnemonic entities =========================-->
-
-<!ENTITY % HTMLlat1 PUBLIC
-   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-   "xhtml-lat1.ent">
-%HTMLlat1;
-
-<!ENTITY % HTMLsymbol PUBLIC
-   "-//W3C//ENTITIES Symbols for XHTML//EN"
-   "xhtml-symbol.ent">
-%HTMLsymbol;
-
-<!ENTITY % HTMLspecial PUBLIC
-   "-//W3C//ENTITIES Special for XHTML//EN"
-   "xhtml-special.ent">
-%HTMLspecial;
-
-<!--================== Imported Names ====================================-->
-
-<!ENTITY % ContentType "CDATA">
-    <!-- media type, as per [RFC2045] -->
-
-<!ENTITY % ContentTypes "CDATA">
-    <!-- comma-separated list of media types, as per [RFC2045] -->
-
-<!ENTITY % Charset "CDATA">
-    <!-- a character encoding, as per [RFC2045] -->
-
-<!ENTITY % Charsets "CDATA">
-    <!-- a space separated list of character encodings, as per [RFC2045] -->
-
-<!ENTITY % LanguageCode "NMTOKEN">
-    <!-- a language code, as per [RFC3066] -->
-
-<!ENTITY % Character "CDATA">
-    <!-- a single character, as per section 2.2 of [XML] -->
-
-<!ENTITY % Number "CDATA">
-    <!-- one or more digits -->
-
-<!ENTITY % LinkTypes "CDATA">
-    <!-- space-separated list of link types -->
-
-<!ENTITY % MediaDesc "CDATA">
-    <!-- single or comma-separated list of media descriptors -->
-
-<!ENTITY % URI "CDATA">
-    <!-- a Uniform Resource Identifier, see [RFC2396] -->
-
-<!ENTITY % UriList "CDATA">
-    <!-- a space separated list of Uniform Resource Identifiers -->
-
-<!ENTITY % Datetime "CDATA">
-    <!-- date and time information. ISO date format -->
-
-<!ENTITY % Script "CDATA">
-    <!-- script expression -->
-
-<!ENTITY % StyleSheet "CDATA">
-    <!-- style sheet data -->
-
-<!ENTITY % Text "CDATA">
-    <!-- used for titles etc. -->
-
-<!ENTITY % FrameTarget "NMTOKEN">
-    <!-- render in this frame -->
-
-<!ENTITY % Length "CDATA">
-    <!-- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % MultiLength "CDATA">
-    <!-- pixel, percentage, or relative -->
-
-<!ENTITY % Pixels "CDATA">
-    <!-- integer representing length in pixels -->
-
-<!-- these are used for image maps -->
-
-<!ENTITY % Shape "(rect|circle|poly|default)">
-
-<!ENTITY % Coords "CDATA">
-    <!-- comma separated list of lengths -->
-
-<!-- used for object, applet, img, input and iframe -->
-<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
-
-<!-- a color using sRGB: #RRGGBB as Hex values -->
-<!ENTITY % Color "CDATA">
-
-<!-- There are also 16 widely known color names with their sRGB values:
-
-    Black  = #000000    Green  = #008000
-    Silver = #C0C0C0    Lime   = #00FF00
-    Gray   = #808080    Olive  = #808000
-    White  = #FFFFFF    Yellow = #FFFF00
-    Maroon = #800000    Navy   = #000080
-    Red    = #FF0000    Blue   = #0000FF
-    Purple = #800080    Teal   = #008080
-    Fuchsia= #FF00FF    Aqua   = #00FFFF
--->
-
-<!--=================== Generic Attributes ===============================-->
-
-<!-- core attributes common to most elements
-  id       document-wide unique id
-  class    space separated list of classes
-  style    associated style info
-  title    advisory title/amplification
--->
-<!ENTITY % coreattrs
- "id          ID             #IMPLIED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED"
-  >
-
-<!-- internationalization attributes
-  lang        language code (backwards compatible)
-  xml:lang    language code (as per XML 1.0 spec)
-  dir         direction for weak/neutral text
--->
-<!ENTITY % i18n
- "lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #IMPLIED"
-  >
-
-<!-- attributes for common UI events
-  onclick     a pointer button was clicked
-  ondblclick  a pointer button was double clicked
-  onmousedown a pointer button was pressed down
-  onmouseup   a pointer button was released
-  onmousemove a pointer was moved onto the element
-  onmouseout  a pointer was moved away from the element
-  onkeypress  a key was pressed and released
-  onkeydown   a key was pressed down
-  onkeyup     a key was released
--->
-<!ENTITY % events
- "onclick     %Script;       #IMPLIED
-  ondblclick  %Script;       #IMPLIED
-  onmousedown %Script;       #IMPLIED
-  onmouseup   %Script;       #IMPLIED
-  onmouseover %Script;       #IMPLIED
-  onmousemove %Script;       #IMPLIED
-  onmouseout  %Script;       #IMPLIED
-  onkeypress  %Script;       #IMPLIED
-  onkeydown   %Script;       #IMPLIED
-  onkeyup     %Script;       #IMPLIED"
-  >
-
-<!-- attributes for elements that can get the focus
-  accesskey   accessibility key character
-  tabindex    position in tabbing order
-  onfocus     the element got the focus
-  onblur      the element lost the focus
--->
-<!ENTITY % focus
- "accesskey   %Character;    #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED"
-  >
-
-<!ENTITY % attrs "%coreattrs; %i18n; %events;">
-
-<!-- text alignment for p, div, h1-h6. The default is
-     align="left" for ltr headings, "right" for rtl -->
-
-<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">
-
-<!--=================== Text Elements ====================================-->
-
-<!ENTITY % special.extra
-   "object | applet | img | map | iframe">
-	
-<!ENTITY % special.basic
-	"br | span | bdo">
-
-<!ENTITY % special
-   "%special.basic; | %special.extra;">
-
-<!ENTITY % fontstyle.extra "big | small | font | basefont">
-
-<!ENTITY % fontstyle.basic "tt | i | b | u
-                      | s | strike ">
-
-<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">
-
-<!ENTITY % phrase.extra "sub | sup">
-<!ENTITY % phrase.basic "em | strong | dfn | code | q |
-                   samp | kbd | var | cite | abbr | acronym">
-
-<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">
-
-<!ENTITY % inline.forms "input | select | textarea | label | button">
-
-<!-- these can occur at block or inline level -->
-<!ENTITY % misc.inline "ins | del | script">
-
-<!-- these can only occur at block level -->
-<!ENTITY % misc "noscript | %misc.inline;">
-
-<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
-
-<!-- %Inline; covers inline or "text-level" elements -->
-<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
-
-<!--================== Block level elements ==============================-->
-
-<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
-<!ENTITY % lists "ul | ol | dl | menu | dir">
-<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">
-
-<!ENTITY % block
-    "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">
-
-<!-- %Flow; mixes block and inline and is used for list items etc. -->
-<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
-
-<!--================== Content models for exclusions =====================-->
-
-<!-- a elements use %Inline; excluding a -->
-
-<!ENTITY % a.content
-   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
-
-<!-- pre uses %Inline excluding img, object, applet, big, small,
-     font, or basefont -->
-
-<!ENTITY % pre.content
-   "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
-	   %inline.forms; | %misc.inline;)*">
-
-<!-- form uses %Flow; excluding form -->
-
-<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">
-
-<!-- button uses %Flow; but excludes a, form, form controls, iframe -->
-
-<!ENTITY % button.content
-   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
-      table | br | span | bdo | object | applet | img | map |
-      %fontstyle; | %phrase; | %misc;)*">
-
-<!--================ Document Structure ==================================-->
-
-<!-- the namespace URI designates the document profile -->
-
-<!ELEMENT html (head, body)>
-<!ATTLIST html
-  %i18n;
-  id          ID             #IMPLIED
-  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
-  >
-
-<!--================ Document Head =======================================-->
-
-<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*">
-
-<!-- content model is %head.misc; combined with a single
-     title and an optional base element in any order -->
-
-<!ELEMENT head (%head.misc;,
-     ((title, %head.misc;, (base, %head.misc;)?) |
-      (base, %head.misc;, (title, %head.misc;))))>
-
-<!ATTLIST head
-  %i18n;
-  id          ID             #IMPLIED
-  profile     %URI;          #IMPLIED
-  >
-
-<!-- The title element is not considered part of the flow of text.
-       It should be displayed, for example as the page header or
-       window title. Exactly one title is required per document.
-    -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title 
-  %i18n;
-  id          ID             #IMPLIED
-  >
-
-<!-- document base URI -->
-
-<!ELEMENT base EMPTY>
-<!ATTLIST base
-  id          ID             #IMPLIED
-  href        %URI;          #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- generic metainformation -->
-<!ELEMENT meta EMPTY>
-<!ATTLIST meta
-  %i18n;
-  id          ID             #IMPLIED
-  http-equiv  CDATA          #IMPLIED
-  name        CDATA          #IMPLIED
-  content     CDATA          #REQUIRED
-  scheme      CDATA          #IMPLIED
-  >
-
-<!--
-  Relationship values can be used in principle:
-
-   a) for document specific toolbars/menus when used
-      with the link element in document head e.g.
-        start, contents, previous, next, index, end, help
-   b) to link to a separate style sheet (rel="stylesheet")
-   c) to make a link to a script (rel="script")
-   d) by stylesheets to control how collections of
-      html nodes are rendered into printed documents
-   e) to make a link to a printable version of this document
-      e.g. a PostScript or PDF version (rel="alternate" media="print")
--->
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
-  %attrs;
-  charset     %Charset;      #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  type        %ContentType;  #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  media       %MediaDesc;    #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!-- style info, which may include CDATA sections -->
-<!ELEMENT style (#PCDATA)>
-<!ATTLIST style
-  %i18n;
-  id          ID             #IMPLIED
-  type        %ContentType;  #REQUIRED
-  media       %MediaDesc;    #IMPLIED
-  title       %Text;         #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- script statements, which may include CDATA sections -->
-<!ELEMENT script (#PCDATA)>
-<!ATTLIST script
-  id          ID             #IMPLIED
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #REQUIRED
-  language    CDATA          #IMPLIED
-  src         %URI;          #IMPLIED
-  defer       (defer)        #IMPLIED
-  xml:space   (preserve)     #FIXED 'preserve'
-  >
-
-<!-- alternate content container for non script-based rendering -->
-
-<!ELEMENT noscript %Flow;>
-<!ATTLIST noscript
-  %attrs;
-  >
-
-<!--======================= Frames =======================================-->
-
-<!-- inline subwindow -->
-
-<!ELEMENT iframe %Flow;>
-<!ATTLIST iframe
-  %coreattrs;
-  longdesc    %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  src         %URI;          #IMPLIED
-  frameborder (1|0)          "1"
-  marginwidth %Pixels;       #IMPLIED
-  marginheight %Pixels;      #IMPLIED
-  scrolling   (yes|no|auto)  "auto"
-  align       %ImgAlign;     #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!-- alternate content container for non frame-based rendering -->
-
-<!ELEMENT noframes %Flow;>
-<!ATTLIST noframes
-  %attrs;
-  >
-
-<!--=================== Document Body ====================================-->
-
-<!ELEMENT body %Flow;>
-<!ATTLIST body
-  %attrs;
-  onload      %Script;       #IMPLIED
-  onunload    %Script;       #IMPLIED
-  background  %URI;          #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  text        %Color;        #IMPLIED
-  link        %Color;        #IMPLIED
-  vlink       %Color;        #IMPLIED
-  alink       %Color;        #IMPLIED
-  >
-
-<!ELEMENT div %Flow;>  <!-- generic language/style container -->
-<!ATTLIST div
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Paragraphs =======================================-->
-
-<!ELEMENT p %Inline;>
-<!ATTLIST p
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Headings =========================================-->
-
-<!--
-  There are six levels of headings from h1 (the most important)
-  to h6 (the least important).
--->
-
-<!ELEMENT h1  %Inline;>
-<!ATTLIST h1
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h2 %Inline;>
-<!ATTLIST h2
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h3 %Inline;>
-<!ATTLIST h3
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h4 %Inline;>
-<!ATTLIST h4
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h5 %Inline;>
-<!ATTLIST h5
-  %attrs;
-  %TextAlign;
-  >
-
-<!ELEMENT h6 %Inline;>
-<!ATTLIST h6
-  %attrs;
-  %TextAlign;
-  >
-
-<!--=================== Lists ============================================-->
-
-<!-- Unordered list bullet styles -->
-
-<!ENTITY % ULStyle "(disc|square|circle)">
-
-<!-- Unordered list -->
-
-<!ELEMENT ul (li)+>
-<!ATTLIST ul
-  %attrs;
-  type        %ULStyle;     #IMPLIED
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- Ordered list numbering style
-
-    1   arabic numbers      1, 2, 3, ...
-    a   lower alpha         a, b, c, ...
-    A   upper alpha         A, B, C, ...
-    i   lower roman         i, ii, iii, ...
-    I   upper roman         I, II, III, ...
-
-    The style is applied to the sequence number which by default
-    is reset to 1 for the first list item in an ordered list.
--->
-<!ENTITY % OLStyle "CDATA">
-
-<!-- Ordered (numbered) list -->
-
-<!ELEMENT ol (li)+>
-<!ATTLIST ol
-  %attrs;
-  type        %OLStyle;      #IMPLIED
-  compact     (compact)      #IMPLIED
-  start       %Number;       #IMPLIED
-  >
-
-<!-- single column list (DEPRECATED) --> 
-<!ELEMENT menu (li)+>
-<!ATTLIST menu
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- multiple column list (DEPRECATED) --> 
-<!ELEMENT dir (li)+>
-<!ATTLIST dir
-  %attrs;
-  compact     (compact)     #IMPLIED
-  >
-
-<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" -->
-<!ENTITY % LIStyle "CDATA">
-
-<!-- list item -->
-
-<!ELEMENT li %Flow;>
-<!ATTLIST li
-  %attrs;
-  type        %LIStyle;      #IMPLIED
-  value       %Number;       #IMPLIED
-  >
-
-<!-- definition lists - dt for term, dd for its definition -->
-
-<!ELEMENT dl (dt|dd)+>
-<!ATTLIST dl
-  %attrs;
-  compact     (compact)      #IMPLIED
-  >
-
-<!ELEMENT dt %Inline;>
-<!ATTLIST dt
-  %attrs;
-  >
-
-<!ELEMENT dd %Flow;>
-<!ATTLIST dd
-  %attrs;
-  >
-
-<!--=================== Address ==========================================-->
-
-<!-- information on author -->
-
-<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*>
-<!ATTLIST address
-  %attrs;
-  >
-
-<!--=================== Horizontal Rule ==================================-->
-
-<!ELEMENT hr EMPTY>
-<!ATTLIST hr
-  %attrs;
-  align       (left|center|right) #IMPLIED
-  noshade     (noshade)      #IMPLIED
-  size        %Pixels;       #IMPLIED
-  width       %Length;       #IMPLIED
-  >
-
-<!--=================== Preformatted Text ================================-->
-
-<!-- content is %Inline; excluding 
-        "img|object|applet|big|small|sub|sup|font|basefont" -->
-
-<!ELEMENT pre %pre.content;>
-<!ATTLIST pre
-  %attrs;
-  width       %Number;      #IMPLIED
-  xml:space   (preserve)    #FIXED 'preserve'
-  >
-
-<!--=================== Block-like Quotes ================================-->
-
-<!ELEMENT blockquote %Flow;>
-<!ATTLIST blockquote
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!--=================== Text alignment ===================================-->
-
-<!-- center content -->
-<!ELEMENT center %Flow;>
-<!ATTLIST center
-  %attrs;
-  >
-
-<!--=================== Inserted/Deleted Text ============================-->
-
-<!--
-  ins/del are allowed in block and inline content, but its
-  inappropriate to include block content within an ins element
-  occurring in inline content.
--->
-<!ELEMENT ins %Flow;>
-<!ATTLIST ins
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!ELEMENT del %Flow;>
-<!ATTLIST del
-  %attrs;
-  cite        %URI;          #IMPLIED
-  datetime    %Datetime;     #IMPLIED
-  >
-
-<!--================== The Anchor Element ================================-->
-
-<!-- content is %Inline; except that anchors shouldn't be nested -->
-
-<!ELEMENT a %a.content;>
-<!ATTLIST a
-  %attrs;
-  %focus;
-  charset     %Charset;      #IMPLIED
-  type        %ContentType;  #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  href        %URI;          #IMPLIED
-  hreflang    %LanguageCode; #IMPLIED
-  rel         %LinkTypes;    #IMPLIED
-  rev         %LinkTypes;    #IMPLIED
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--===================== Inline Elements ================================-->
-
-<!ELEMENT span %Inline;> <!-- generic language/style container -->
-<!ATTLIST span
-  %attrs;
-  >
-
-<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
-<!ATTLIST bdo
-  %coreattrs;
-  %events;
-  lang        %LanguageCode; #IMPLIED
-  xml:lang    %LanguageCode; #IMPLIED
-  dir         (ltr|rtl)      #REQUIRED
-  >
-
-<!ELEMENT br EMPTY>   <!-- forced line break -->
-<!ATTLIST br
-  %coreattrs;
-  clear       (left|all|right|none) "none"
-  >
-
-<!ELEMENT em %Inline;>   <!-- emphasis -->
-<!ATTLIST em %attrs;>
-
-<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
-<!ATTLIST strong %attrs;>
-
-<!ELEMENT dfn %Inline;>   <!-- definitional -->
-<!ATTLIST dfn %attrs;>
-
-<!ELEMENT code %Inline;>   <!-- program code -->
-<!ATTLIST code %attrs;>
-
-<!ELEMENT samp %Inline;>   <!-- sample -->
-<!ATTLIST samp %attrs;>
-
-<!ELEMENT kbd %Inline;>  <!-- something user would type -->
-<!ATTLIST kbd %attrs;>
-
-<!ELEMENT var %Inline;>   <!-- variable -->
-<!ATTLIST var %attrs;>
-
-<!ELEMENT cite %Inline;>   <!-- citation -->
-<!ATTLIST cite %attrs;>
-
-<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
-<!ATTLIST abbr %attrs;>
-
-<!ELEMENT acronym %Inline;>   <!-- acronym -->
-<!ATTLIST acronym %attrs;>
-
-<!ELEMENT q %Inline;>   <!-- inlined quote -->
-<!ATTLIST q
-  %attrs;
-  cite        %URI;          #IMPLIED
-  >
-
-<!ELEMENT sub %Inline;> <!-- subscript -->
-<!ATTLIST sub %attrs;>
-
-<!ELEMENT sup %Inline;> <!-- superscript -->
-<!ATTLIST sup %attrs;>
-
-<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
-<!ATTLIST tt %attrs;>
-
-<!ELEMENT i %Inline;>   <!-- italic font -->
-<!ATTLIST i %attrs;>
-
-<!ELEMENT b %Inline;>   <!-- bold font -->
-<!ATTLIST b %attrs;>
-
-<!ELEMENT big %Inline;>   <!-- bigger font -->
-<!ATTLIST big %attrs;>
-
-<!ELEMENT small %Inline;>   <!-- smaller font -->
-<!ATTLIST small %attrs;>
-
-<!ELEMENT u %Inline;>   <!-- underline -->
-<!ATTLIST u %attrs;>
-
-<!ELEMENT s %Inline;>   <!-- strike-through -->
-<!ATTLIST s %attrs;>
-
-<!ELEMENT strike %Inline;>   <!-- strike-through -->
-<!ATTLIST strike %attrs;>
-
-<!ELEMENT basefont EMPTY>  <!-- base font size -->
-<!ATTLIST basefont
-  id          ID             #IMPLIED
-  size        CDATA          #REQUIRED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!ELEMENT font %Inline;> <!-- local change to font -->
-<!ATTLIST font
-  %coreattrs;
-  %i18n;
-  size        CDATA          #IMPLIED
-  color       %Color;        #IMPLIED
-  face        CDATA          #IMPLIED
-  >
-
-<!--==================== Object ======================================-->
-<!--
-  object is used to embed objects as part of HTML pages.
-  param elements should precede other content. Parameters
-  can also be expressed as attribute/value pairs on the
-  object element itself when brevity is desired.
--->
-
-<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST object
-  %attrs;
-  declare     (declare)      #IMPLIED
-  classid     %URI;          #IMPLIED
-  codebase    %URI;          #IMPLIED
-  data        %URI;          #IMPLIED
-  type        %ContentType;  #IMPLIED
-  codetype    %ContentType;  #IMPLIED
-  archive     %UriList;      #IMPLIED
-  standby     %Text;         #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Pixels;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--
-  param is used to supply a named property value.
-  In XML it would seem natural to follow RDF and support an
-  abbreviated syntax where the param elements are replaced
-  by attribute value pairs on the object start tag.
--->
-<!ELEMENT param EMPTY>
-<!ATTLIST param
-  id          ID             #IMPLIED
-  name        CDATA          #REQUIRED
-  value       CDATA          #IMPLIED
-  valuetype   (data|ref|object) "data"
-  type        %ContentType;  #IMPLIED
-  >
-
-<!--=================== Java applet ==================================-->
-<!--
-  One of code or object attributes must be present.
-  Place param elements before other content.
--->
-<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*>
-<!ATTLIST applet
-  %coreattrs;
-  codebase    %URI;          #IMPLIED
-  archive     CDATA          #IMPLIED
-  code        CDATA          #IMPLIED
-  object      CDATA          #IMPLIED
-  alt         %Text;         #IMPLIED
-  name        NMTOKEN        #IMPLIED
-  width       %Length;       #REQUIRED
-  height      %Length;       #REQUIRED
-  align       %ImgAlign;     #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!--=================== Images ===========================================-->
-
-<!--
-   To avoid accessibility problems for people who aren't
-   able to see the image, you should provide a text
-   description using the alt and longdesc attributes.
-   In addition, avoid the use of server-side image maps.
--->
-
-<!ELEMENT img EMPTY>
-<!ATTLIST img
-  %attrs;
-  src         %URI;          #REQUIRED
-  alt         %Text;         #REQUIRED
-  name        NMTOKEN        #IMPLIED
-  longdesc    %URI;          #IMPLIED
-  height      %Length;       #IMPLIED
-  width       %Length;       #IMPLIED
-  usemap      %URI;          #IMPLIED
-  ismap       (ismap)        #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  border      %Length;       #IMPLIED
-  hspace      %Pixels;       #IMPLIED
-  vspace      %Pixels;       #IMPLIED
-  >
-
-<!-- usemap points to a map element which may be in this document
-  or an external document, although the latter is not widely supported -->
-
-<!--================== Client-side image maps ============================-->
-
-<!-- These can be placed in the same document or grouped in a
-     separate document although this isn't yet widely supported -->
-
-<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
-<!ATTLIST map
-  %i18n;
-  %events;
-  id          ID             #REQUIRED
-  class       CDATA          #IMPLIED
-  style       %StyleSheet;   #IMPLIED
-  title       %Text;         #IMPLIED
-  name        CDATA          #IMPLIED
-  >
-
-<!ELEMENT area EMPTY>
-<!ATTLIST area
-  %attrs;
-  %focus;
-  shape       %Shape;        "rect"
-  coords      %Coords;       #IMPLIED
-  href        %URI;          #IMPLIED
-  nohref      (nohref)       #IMPLIED
-  alt         %Text;         #REQUIRED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--================ Forms ===============================================-->
-
-<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
-
-<!ATTLIST form
-  %attrs;
-  action      %URI;          #REQUIRED
-  method      (get|post)     "get"
-  name        NMTOKEN        #IMPLIED
-  enctype     %ContentType;  "application/x-www-form-urlencoded"
-  onsubmit    %Script;       #IMPLIED
-  onreset     %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  accept-charset %Charsets;  #IMPLIED
-  target      %FrameTarget;  #IMPLIED
-  >
-
-<!--
-  Each label must not contain more than ONE field
-  Label elements shouldn't be nested.
--->
-<!ELEMENT label %Inline;>
-<!ATTLIST label
-  %attrs;
-  for         IDREF          #IMPLIED
-  accesskey   %Character;    #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  >
-
-<!ENTITY % InputType
-  "(text | password | checkbox |
-    radio | submit | reset |
-    file | hidden | image | button)"
-   >
-
-<!-- the name attribute is required for all but submit & reset -->
-
-<!ELEMENT input EMPTY>     <!-- form control -->
-<!ATTLIST input
-  %attrs;
-  %focus;
-  type        %InputType;    "text"
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  checked     (checked)      #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  size        CDATA          #IMPLIED
-  maxlength   %Number;       #IMPLIED
-  src         %URI;          #IMPLIED
-  alt         CDATA          #IMPLIED
-  usemap      %URI;          #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  accept      %ContentTypes; #IMPLIED
-  align       %ImgAlign;     #IMPLIED
-  >
-
-<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
-<!ATTLIST select
-  %attrs;
-  name        CDATA          #IMPLIED
-  size        %Number;       #IMPLIED
-  multiple    (multiple)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  tabindex    %Number;       #IMPLIED
-  onfocus     %Script;       #IMPLIED
-  onblur      %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!ELEMENT optgroup (option)+>   <!-- option group -->
-<!ATTLIST optgroup
-  %attrs;
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #REQUIRED
-  >
-
-<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
-<!ATTLIST option
-  %attrs;
-  selected    (selected)     #IMPLIED
-  disabled    (disabled)     #IMPLIED
-  label       %Text;         #IMPLIED
-  value       CDATA          #IMPLIED
-  >
-
-<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
-<!ATTLIST textarea
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  rows        %Number;       #REQUIRED
-  cols        %Number;       #REQUIRED
-  disabled    (disabled)     #IMPLIED
-  readonly    (readonly)     #IMPLIED
-  onselect    %Script;       #IMPLIED
-  onchange    %Script;       #IMPLIED
-  >
-
-<!--
-  The fieldset element is used to group form fields.
-  Only one legend element should occur in the content
-  and if present should only be preceded by whitespace.
--->
-<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
-<!ATTLIST fieldset
-  %attrs;
-  >
-
-<!ENTITY % LAlign "(top|bottom|left|right)">
-
-<!ELEMENT legend %Inline;>     <!-- fieldset label -->
-<!ATTLIST legend
-  %attrs;
-  accesskey   %Character;    #IMPLIED
-  align       %LAlign;       #IMPLIED
-  >
-
-<!--
- Content is %Flow; excluding a, form, form controls, iframe
---> 
-<!ELEMENT button %button.content;>  <!-- push button -->
-<!ATTLIST button
-  %attrs;
-  %focus;
-  name        CDATA          #IMPLIED
-  value       CDATA          #IMPLIED
-  type        (button|submit|reset) "submit"
-  disabled    (disabled)     #IMPLIED
-  >
-
-<!-- single-line text input control (DEPRECATED) -->
-<!ELEMENT isindex EMPTY>
-<!ATTLIST isindex
-  %coreattrs;
-  %i18n;
-  prompt      %Text;         #IMPLIED
-  >
-
-<!--======================= Tables =======================================-->
-
-<!-- Derived from IETF HTML table standard, see [RFC1942] -->
-
-<!--
- The border attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The frame attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
-<!--
- The rules attribute defines which rules to draw between cells:
-
- If rules is absent then assume:
-     "none" if border is absent or border="0" otherwise "all"
--->
-
-<!ENTITY % TRules "(none | groups | rows | cols | all)">
-  
-<!-- horizontal placement of table relative to document -->
-<!ENTITY % TAlign "(left|center|right)">
-
-<!-- horizontal alignment attributes for cell contents
-
-  char        alignment char, e.g. char=':'
-  charoff     offset for alignment char
--->
-<!ENTITY % cellhalign
-  "align      (left|center|right|justify|char) #IMPLIED
-   char       %Character;    #IMPLIED
-   charoff    %Length;       #IMPLIED"
-  >
-
-<!-- vertical alignment attributes for cell contents -->
-<!ENTITY % cellvalign
-  "valign     (top|middle|bottom|baseline) #IMPLIED"
-  >
-
-<!ELEMENT table
-     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
-<!ELEMENT caption  %Inline;>
-<!ELEMENT thead    (tr)+>
-<!ELEMENT tfoot    (tr)+>
-<!ELEMENT tbody    (tr)+>
-<!ELEMENT colgroup (col)*>
-<!ELEMENT col      EMPTY>
-<!ELEMENT tr       (th|td)+>
-<!ELEMENT th       %Flow;>
-<!ELEMENT td       %Flow;>
-
-<!ATTLIST table
-  %attrs;
-  summary     %Text;         #IMPLIED
-  width       %Length;       #IMPLIED
-  border      %Pixels;       #IMPLIED
-  frame       %TFrame;       #IMPLIED
-  rules       %TRules;       #IMPLIED
-  cellspacing %Length;       #IMPLIED
-  cellpadding %Length;       #IMPLIED
-  align       %TAlign;       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!ENTITY % CAlign "(top|bottom|left|right)">
-
-<!ATTLIST caption
-  %attrs;
-  align       %CAlign;       #IMPLIED
-  >
-
-<!--
-colgroup groups a set of col elements. It allows you to group
-several semantically related columns together.
--->
-<!ATTLIST colgroup
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
- col elements define the alignment properties for cells in
- one or more columns.
-
- The width attribute specifies the width of the columns, e.g.
-
-     width=64        width in screen pixels
-     width=0.5*      relative width of 0.5
-
- The span attribute causes the attributes of one
- col element to apply to more than one column.
--->
-<!ATTLIST col
-  %attrs;
-  span        %Number;       "1"
-  width       %MultiLength;  #IMPLIED
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!--
-    Use thead to duplicate headers when breaking table
-    across page boundaries, or for static headers when
-    tbody sections are rendered in scrolling panel.
-
-    Use tfoot to duplicate footers when breaking table
-    across page boundaries, or for static footers when
-    tbody sections are rendered in scrolling panel.
-
-    Use multiple tbody sections when rules are needed
-    between groups of table rows.
--->
-<!ATTLIST thead
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tfoot
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tbody
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  >
-
-<!ATTLIST tr
-  %attrs;
-  %cellhalign;
-  %cellvalign;
-  bgcolor     %Color;        #IMPLIED
-  >
-
-<!-- Scope is simpler than headers attribute for common tables -->
-<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
-
-<!-- th is for headers, td for data and for cells acting as both -->
-
-<!ATTLIST th
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Length;       #IMPLIED
-  height      %Length;       #IMPLIED
-  >
-
-<!ATTLIST td
-  %attrs;
-  abbr        %Text;         #IMPLIED
-  axis        CDATA          #IMPLIED
-  headers     IDREFS         #IMPLIED
-  scope       %Scope;        #IMPLIED
-  rowspan     %Number;       "1"
-  colspan     %Number;       "1"
-  %cellhalign;
-  %cellvalign;
-  nowrap      (nowrap)       #IMPLIED
-  bgcolor     %Color;        #IMPLIED
-  width       %Length;       #IMPLIED
-  height      %Length;       #IMPLIED
-  >
-
diff --git a/lib/dtds/xhtml/html2dita/h2d.xsl b/lib/dtds/xhtml/html2dita/h2d.xsl
deleted file mode 100644
index 5a97f6b..0000000
--- a/lib/dtds/xhtml/html2dita/h2d.xsl
+++ /dev/null
@@ -1,1990 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This file is part of the DITA Open Toolkit project hosted on 
-    Sourceforge.net. See the accompanying license.txt file for 
-    applicable licenses.-->
-<!--  h2d.xsl 
- | Migrate XHTML content into DITA topics
- |
- | (C) Copyright IBM Corporation 2001, 2002, 2003, 2004, 2005, 2006. All Rights Reserved.
- +
- | Udates:
- | 2002/06/11 DRD: changed BR trap from PI to comment
- | 2003/02/13 DRD: removed xhtml: namespace prefix baggage (use tidy's -doctype omit)
- |                 added support for text nodes in task content pulls
- |                 added renaming of related-links extensions to ".dita" instead of ".htm(l)"
- |                 if any name/content metas (except generators), open a prolog and populate metadata
- | 2003/03/27 DRD: extended meta trap to include "GENERATOR" (uc)
- |                 added default xml:lang="en-us"
- |                 added genidattribute to provide single place to generate topic id (needs work)
- | 2003/03/28 RDA: Place <title> into <searchtitle> instead of <shortdesc>
- |                 Do not create an XREF for <a> without @href
- |                 Only create "Collected links" when links exist
- |                 Do not add links to "Collected links" if they are within this file
- |                 Add support for @format, @scope, and <desc> inside link
- |                 Add variables to check for first heading level, to make sections later 
- | 2003/04/04 RDA: Add FILENAME parameter to determine more unique file IDs
- | 2003/04/05 RDA: Add support for multi-column tables, and for spanned rows (not yet spanned columns)
- | 2003/05/07 RDA: Add support for thead, tbody, and caption within tables
- | 2003/07/17 RDA: Allow underscores to appear in the topic ID, also period and dash if not
- |                              the first character
- | 2003/08/21 RDA: Allow spanned columns within tables
- |                 Allow single paragraphs in table entries, to ignore the <p> tag
- | 2003/10/07 RDA: Process span classes that were moved by tidy (like class=c1)
- | 2003/10/13 RDA: Pre-process the HTML, if it contains lists that stop and start
- | 2004/10/13 RDA: Pass through @compact, plus table/row attributes
- |                 If a link starts with http:, https:, or ftp:, do not change extension
- | 2004/11/22 RDA: Update to pass through comments
- | 2005/01/08 RDA: Revised for external publication
- | 2006/01/04 RDA: Added various bug fixes, mostly for tables and class attributes
- |                 Updated public IDs to use the OASIS standard
- +-->
-
-
-<!-- If you wish to set the doctype manually, you will need to comment out the
-     following 5 lines, and uncomment the xsl:stylesheet lines below. See the 
-     comments before that section for details. -->
-<!--<xsl:stylesheet version="1.0" 
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
->
-<xsl:output method="xml" indent="no" encoding="utf-8" />
-<xsl:param name="infotype">topic</xsl:param>-->
-
-<!-- If you wish to set the doctype dynamically, you will need to uncomment
-     the following section. The section sets the XSLT version as 1.1, which
-     allows some engines to use variables for system and public IDs.
-     Those variables are set here based on the infotype parameter, or they
-     can be passed in directly from the command line. -->
-<xsl:stylesheet version="1.1" 
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:saxon="http://icl.com/saxon"
-                extension-element-prefixes="saxon">
-<xsl:param name="infotype">topic</xsl:param>
-  <!-- Output XSLT messages warning various conversion problems + add XML comments in places where the conversion
-  is not perfect-->
-  <xsl:param name="verbose" select="false()"/>
-  <!-- Generate required cleanup elements -->
-  <xsl:param name="generateRequiredCleanup" select="false()"/>
-  <!-- Generate related links at the end of the topic -->
-  <xsl:param name="generateRelatedLinks" select="false()"/>
-  <!-- Convert XHTML metadata to DITA metadata -->
-  <xsl:param name="preserveMetadata" select="false()"/>
-
-<xsl:variable name="systemid">
-    <xsl:choose>
-        <xsl:when test="$infotype='concept'">concept.dtd</xsl:when>  
-        <xsl:when test="$infotype='task'">task.dtd</xsl:when>  
-        <xsl:when test="$infotype='reference'">reference.dtd</xsl:when>
-        <xsl:otherwise>topic.dtd</xsl:otherwise>
-    </xsl:choose>
-</xsl:variable>
-<xsl:variable name="publicid">
-    <xsl:choose>
-        <xsl:when test="$infotype='concept'">-//OASIS//DTD DITA Concept//EN</xsl:when>
-        <xsl:when test="$infotype='task'">-//OASIS//DTD DITA Task//EN</xsl:when>
-        <xsl:when test="$infotype='reference'">-//OASIS//DTD DITA Reference//EN</xsl:when>
-        <xsl:otherwise>-//OASIS//DTD DITA Topic//EN</xsl:otherwise>
-    </xsl:choose>
-</xsl:variable>
-  
-<xsl:output method="xml" indent="yes" encoding="UTF-8" />
-
-<!-- ========== PARAMETERS ============== -->
-
-<!-- what kind of topic to generate?  set up default of 'topic' but allow external override -->
-<!-- sample call: 
-     saxon tasktest.html h2d.xsl infotype=task > tasktest.dita
-  -->
-
-<!-- What extension should be used for links that go to other DITA topics?
-     Assumption is that local HTML targets will be converted to DITA. -->
-<xsl:param name="dita-extension">.dita</xsl:param>
-
-<!-- Create a parameter for the defualt language -->
-<xsl:param name="default-lang">en-us</xsl:param>
-
-<!-- Take the filename as an input parameter to determine the main topic's ID -->
-<xsl:param name="FILENAME">
-    <xsl:choose>
-        <xsl:when test="$infotype='concept' or $infotype='reference' or $infotype='task' or $infotype='topic'">
-            <xsl:value-of select="$infotype"/>
-        </xsl:when>
-        <xsl:otherwise>
-            <xsl:value-of select="'topic'"/>
-        </xsl:otherwise>
-    </xsl:choose>
-    <xsl:value-of select="string-length()"/>
-    <xsl:value-of select="'.htm'"/>
-</xsl:param>
-
-<!-- Use the FILENAME to determine the ID for the output topic. Invalid ID characters
-     must be removed (replaced with generic D character). If a filename starts with
-     a number, which cannot start an ID, all numbers will be replaced with letters. -->
-<xsl:variable name="filename-id">
-  <xsl:choose>
-    <xsl:when test="starts-with($FILENAME,'0') or starts-with($FILENAME,'1') or
-                    starts-with($FILENAME,'2') or starts-with($FILENAME,'3') or
-                    starts-with($FILENAME,'4') or starts-with($FILENAME,'5') or
-                    starts-with($FILENAME,'6') or starts-with($FILENAME,'7') or
-                    starts-with($FILENAME,'8') or starts-with($FILENAME,'9') or
-                    starts-with($FILENAME,'.') or starts-with($FILENAME,'-')">
-      <xsl:value-of select="translate(substring-before($FILENAME,'.htm'),
-                                      '0123456789.-,!@#$%^()=+[]{}/\;&amp;',
-                                      'ABCDEFGHIJDDDDDDDDDDDDDDDDDDDDDD')"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:value-of select="translate(substring-before($FILENAME,'.htm'),
-                                      ',!@#$%^()=+[]{}/\;&amp;',
-                                      'DDDDDDDDDDDDDDDDDDDDDD')"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:variable>
-
-<!-- eliminate whitespace in body as a migration concern -->
-<xsl:strip-space elements="body"/>
-
-<!-- RDA: use the 2 variables below, instead of the 6 starter files -->
-<xsl:variable name="main-head-level">
-  <xsl:choose>
-    <xsl:when test="/html/body/descendant::h1[1][not(preceding::h2|preceding::h3|preceding::h4|preceding::h5|preceding::h6)]">h1</xsl:when>
-    <xsl:when test="/html/body/descendant::h2[1][not(preceding::h3|preceding::h4|preceding::h5|preceding::h6)]">h2</xsl:when>
-    <xsl:when test="/html/body/descendant::h3[1][not(preceding::h4|preceding::h5|preceding::h6)]">h3</xsl:when>
-    <xsl:when test="/html/body/descendant::h4[1][not(preceding::h5|preceding::h6)]">h4</xsl:when>
-    <xsl:when test="/html/body/descendant::h5[1][not(preceding::h6)]">h5</xsl:when>
-    <xsl:when test="/html/body/descendant::h6[1]">h6</xsl:when>
-    <xsl:otherwise>h1</xsl:otherwise>
-  </xsl:choose>
-</xsl:variable>
-
-<xsl:template name="output-message">
-    <xsl:param name="msg" select="***"/>
-  <xsl:if test="$verbose">
-    <xsl:message><xsl:value-of select="$msg"/></xsl:message>
-  </xsl:if>
-</xsl:template>
-
-<!-- if needed, add the dita wrapper here -->
-<xsl:template match="/">
- 
-  <!-- oXygen patch --> 
-  <xsl:text disable-output-escaping="yes" xml:space="preserve">
-&lt;!DOCTYPE </xsl:text> <xsl:value-of select="$infotype"/>
-  PUBLIC "<xsl:value-of select="$publicid"/>" "<xsl:value-of select="$systemid"/>" <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
- <!-- end oXygen patch -->
-  
-  <xsl:call-template name="validate-parameters"/>
-<!-- Some HTML editors store ordered lists as sequential lists, with all but the first
-     using @start to resume numbering. If a topic uses this, the lists will be pulled together.
-     They are placed in a variable that contains a cleaned up version of the original HTML. The
-     standard templates are then used to format the modified HTML. Templates for pre-processing
-     the HTML Are all at the bottom of the file.
-     If there are no lists with abnormal numbering, just start processing. -->
-  <xsl:choose>
-    <xsl:when test="not(//ol[@start])"><xsl:apply-templates select="*|comment()|text()|processing-instruction()"/></xsl:when>
-    <xsl:otherwise>
-      <!-- Process the entire file. Most elements are copied straight into the variable; ordered
-           lists and elements between them are modified slightly. --> 
-      <xsl:variable name="shift-lists">
-        <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="shift-lists"/>
-      </xsl:variable>
-      <!-- For some reason, if I do this without a mode, I get a Java overflow error. -->
-      <xsl:apply-templates select="html/preceding-sibling::comment()"/>
-      <xsl:apply-templates select="$shift-lists" mode="redirect"/>
-      <xsl:apply-templates select="html/following-sibling::comment()"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- Process the HTML file that was placed in a variable using normal routines. -->
-<xsl:template match="*" mode="redirect">
-  <xsl:apply-templates select="."/>
-</xsl:template>
-
-<!-- general the overall topic container and pull content for it -->
-
-<xsl:template match="*[local-name()='html']">
-  <xsl:choose>
-    <xsl:when test="$infotype='topic'"><xsl:call-template name="gen-topic"/></xsl:when>
-    <xsl:when test="$infotype='concept'"><xsl:call-template name="gen-concept"/></xsl:when>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="gen-task"/></xsl:when>
-    <xsl:when test="$infotype='reference'"><xsl:call-template name="gen-reference"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="gen-topic"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- named templates for various infotyped topic shells -->
-
-<!-- Generic topic template -->
-
-<xsl:template name="gen-topic">
-  <topic xml:lang="{$default-lang}">
-    <xsl:call-template name="genidattribute"/>
-    <xsl:call-template name="gentitle"/>
-    <xsl:call-template name="gentitlealts"/>
-    <xsl:call-template name="genprolog"/>
-    <body>
-      <xsl:apply-templates select="(body/*|body/text()|body/comment())[1]" mode="creating-content-before-section"/>
-      <xsl:choose>
-        <xsl:when test="$main-head-level='h1'">
-          <xsl:apply-templates select="body/h1[preceding-sibling::h1]|body/h2|body/h3|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:when test="$main-head-level='h2'">
-          <xsl:apply-templates select="body/h1|body/h2[preceding-sibling::h2]|body/h3|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:when test="$main-head-level='h3'">
-          <xsl:apply-templates select="body/h1|body/h2|body/h3[preceding-sibling::h3]|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:when test="$main-head-level='h4'">
-          <xsl:apply-templates select="body/h1|body/h2|body/h3|body/h4[preceding-sibling::h4]|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:when test="$main-head-level='h5'">
-          <xsl:apply-templates select="body/h1|body/h2|body/h3|body/h4|body/h5[preceding-sibling::h5]|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:otherwise> <!-- Otherwise, level is h6 -->
-          <xsl:apply-templates select="body/h1|body/h2|body/h3|body/h4|body/h5|body/h6[preceding-sibling::h6]|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:otherwise>
-      </xsl:choose>
-    </body>
-    <xsl:call-template name="genrellinks"/>
-  </topic>
-</xsl:template>
-
-
-<!-- Implementation note: except for topic, DITA infotypes have content models with strong
-     containment rules.  These implementations try to separate allowed body content from
-     contexts required by the target formats. This may need additional work.  With XHTML 2.0,
-     the tests for contextually introduced containment are eased and these templates can be
-     generalized and possibly made more robust. -->
-
-<!-- Concept topic template -->
-
-<!-- See task for ideas implemented here for separating regular body content from a first heading, which
-     ordinarily denotes one or more sections with NO following text.  We put EVERYTHING after the
-     first h2 into a section as a strong-arm way to enforce the concept model, but users will have
-     to check for intended scoping afterwards. -->
-
-<xsl:template name="gen-concept">
-  <concept xml:lang="{$default-lang}">
-    <xsl:call-template name="genidattribute"/>
-    <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
-    <xsl:call-template name="gentitle"/>
-    <xsl:call-template name="gentitlealts"/>
-    <xsl:call-template name="genprolog"/>
-
-    <conbody>
-      <!-- Anything up to the first heading (except for whatever heading was pulled into <title>) will
-           be processed as it would for a topic. After a heading is encountered, a section will be created
-           for that and all following headings. Content up to the next heading will go into the section. -->
-      <xsl:apply-templates select="(body/*|body/text()|body/comment())[1]" mode="creating-content-before-section"/>
-      <xsl:choose>
-        <xsl:when test="$main-head-level='h1'">
-          <xsl:apply-templates select="body/h1[preceding-sibling::h1]|body/h2|body/h3|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:when test="$main-head-level='h2'">
-          <xsl:apply-templates select="body/h1|body/h2[preceding-sibling::h2]|body/h3|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:when test="$main-head-level='h3'">
-          <xsl:apply-templates select="body/h1|body/h2|body/h3[preceding-sibling::h3]|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:when test="$main-head-level='h4'">
-          <xsl:apply-templates select="body/h1|body/h2|body/h3|body/h4[preceding-sibling::h4]|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:when test="$main-head-level='h5'">
-          <xsl:apply-templates select="body/h1|body/h2|body/h3|body/h4|body/h5[preceding-sibling::h5]|body/h6|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:when>
-        <xsl:otherwise> <!-- Otherwise, level is h6 -->
-          <xsl:apply-templates select="body/h1|body/h2|body/h3|body/h4|body/h5|body/h6[preceding-sibling::h6]|body/h7" mode="create-section-with-following-content"/>                              
-        </xsl:otherwise>
-      </xsl:choose>
-      
-    </conbody>
-    <xsl:call-template name="genrellinks"/>
-  </concept>
-</xsl:template>
-
-<xsl:template match="*|text()|comment()" mode="creating-content-before-section">
-  <xsl:apply-templates select="."/>
-  <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-</xsl:template>
-<xsl:template match="h1|h2|h3|h4|h5|h6" mode="creating-content-before-section">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h1' and self::h1 and not(preceding::h1)">
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h2' and self::h2 and not(preceding::h2)">
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h3' and self::h3 and not(preceding::h3)">
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h4' and self::h4 and not(preceding::h4)">
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h5' and self::h5 and not(preceding::h5)">
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h6' and self::h6 and not(preceding::h6)">
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="creating-content-before-section"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- Reference topic template -->
-
-<xsl:template name="gen-reference">
-  <reference xml:lang="{$default-lang}">
-    <xsl:call-template name="genidattribute"/>
-    <xsl:call-template name="gentitle"/>
-    <xsl:call-template name="gentitlealts"/>
-    <xsl:call-template name="genprolog"/>
-    <refbody>
-      <!-- Processing is similar to concept, except that everything before the second heading must also be
-           placed into a section. Also, any tables can be outside of the section. -->
-      <xsl:choose>
-        <xsl:when test="$main-head-level='h1'">
-          <!-- First process anything that comes before any subheadings, or a second h1 -->
-          <xsl:if test="body/text()[not(preceding::table or preceding::h1[2] or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                        body/comment()[not(preceding::table or preceding::h1[2] or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                        body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                   preceding::table or preceding::h1[2] or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]">
-            <section>
-              <xsl:apply-templates select="body/text()[not(preceding::table or preceding::h1[2] or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                                           body/comment()[not(preceding::table or preceding::h1[2] or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                                           body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                                      preceding::table[parent::body] or preceding::h1[2] or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]"/>
-            </section>
-          </xsl:if>
-          <!-- Now turn any other headings into sections, with following stuff -->
-          <xsl:apply-templates select="body/table|body/h1[preceding-sibling::h1]|body/h2|body/h3|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:when test="$main-head-level='h2'">
-          <!-- First process anything that comes before any subheadings, or a second h2 -->
-          <xsl:if test="body/text()[not(preceding::table or preceding::h1 or preceding::h2[2] or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                        body/comment()[not(preceding::table or preceding::h1 or preceding::h2[2] or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                        body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                   preceding::table or preceding::h1 or preceding::h2[2] or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]">
-            <section>
-              <xsl:apply-templates select="body/text()[not(preceding::table or preceding::h1 or preceding::h2[2] or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                                           body/comment()[not(preceding::table or preceding::h1 or preceding::h2[2] or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]|
-                                           body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                                      preceding::table[parent::body] or preceding::h1 or preceding::h2[2] or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6)]"/>
-            </section>
-          </xsl:if>
-          <!-- Now turn any other headings into sections, with following stuff -->
-          <xsl:apply-templates select="body/table|body/h1|body/h2[preceding-sibling::h2]|body/h3|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:when test="$main-head-level='h3'">
-          <!-- First process anything that comes before any subheadings, or a second h3 -->
-          <xsl:if test="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3[2] or preceding::h4 or preceding::h5 or preceding::h6)]|
-                        body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3[2] or preceding::h4 or preceding::h5 or preceding::h6)]|
-                        body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                   preceding::table or preceding::h1 or preceding::h2 or preceding::h3[2] or preceding::h4 or preceding::h5 or preceding::h6)]">
-            <section>
-              <xsl:apply-templates select="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3[2] or preceding::h4 or preceding::h5 or preceding::h6)]|
-                                           body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3[2] or preceding::h4 or preceding::h5 or preceding::h6)]|
-                                           body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                                      preceding::table[parent::body] or preceding::h1 or preceding::h2 or preceding::h3[2] or preceding::h4 or preceding::h5 or preceding::h6)]"/>
-            </section>
-          </xsl:if>
-          <!-- Now turn any other headings into sections, with following stuff -->
-          <xsl:apply-templates select="body/table|body/h1|body/h2|body/h3[preceding-sibling::h3]|body/h4|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:when test="$main-head-level='h4'">
-          <!-- First process anything that comes before any subheadings, or a second h4 -->
-          <xsl:if test="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4[2] or preceding::h5 or preceding::h6)]|
-                        body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4[2] or preceding::h5 or preceding::h6)]|
-                        body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                   preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4[2] or preceding::h5 or preceding::h6)]">
-            <section>
-              <xsl:apply-templates select="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4[2] or preceding::h5 or preceding::h6)]|
-                                           body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4[2] or preceding::h5 or preceding::h6)]|
-                                           body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                                      preceding::table[parent::body] or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4[2] or preceding::h5 or preceding::h6)]"/>
-            </section>
-          </xsl:if>
-          <!-- Now turn any other headings into sections, with following stuff -->
-          <xsl:apply-templates select="body/table|body/h1|body/h2|body/h3|body/h4[preceding-sibling::h4]|body/h5|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:when test="$main-head-level='h5'">
-          <!-- First process anything that comes before any subheadings, or a second h5 -->
-          <xsl:if test="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5[2] or preceding::h6)]|
-                        body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5[2] or preceding::h6)]|
-                        body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                   preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5[2] or preceding::h6)]">
-            <section>
-              <xsl:apply-templates select="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5[2] or preceding::h6)]|
-                                           body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5[2] or preceding::h6)]|
-                                           body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                                      preceding::table[parent::body] or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5[2] or preceding::h6)]"/>
-            </section>
-          </xsl:if>
-          <!-- Now turn any other headings into sections, with following stuff -->
-          <xsl:apply-templates select="body/table|body/h1|body/h2|body/h3|body/h4|body/h5[preceding-sibling::h5]|body/h6|body/h7" mode="create-section-with-following-content"/>
-        </xsl:when>
-        <xsl:otherwise>
-          <!-- First process anything that comes before any subheadings, or a second heading -->
-          <xsl:if test="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6[2])]|
-                        body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6[2])]|
-                        body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                   preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6[2])]">
-            <section>
-              <xsl:apply-templates select="body/text()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6[2])]|
-                                           body/comment()[not(preceding::table or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6[2])]|
-                                           body/*[not(self::table or self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or
-                                                      preceding::table[parent::body] or preceding::h1 or preceding::h2 or preceding::h3 or preceding::h4 or preceding::h5 or preceding::h6[2])]"/>
-            </section>
-          </xsl:if>
-          <!-- Now turn any other headings into sections, with following stuff -->
-          <xsl:apply-templates select="body/table|body/h1|body/h2|body/h3|body/h4|body/h5|body/h6[preceding-sibling::h6]|body/h7" mode="create-section-with-following-content"/>
-        </xsl:otherwise>
-      </xsl:choose>
-    </refbody>
-    <xsl:call-template name="genrellinks"/>
-  </reference>
-</xsl:template>
-
-
-<!-- Task topic template -->
-
-<xsl:template name="gen-task">
-  <task xml:lang="{$default-lang}">
-    <xsl:call-template name="genidattribute"/>
-    <xsl:call-template name="gentitle"/>
-    <xsl:call-template name="gentitlealts"/>
-    <xsl:call-template name="genprolog"/>
-    <taskbody>
-      <!--Optional prereq section goes here-->
-
-      <!--context [any child elements with no preceding ol]-->
-      <xsl:if test="body/text()[not(preceding-sibling::ol)]|body/comment()[not(preceding-sibling::ol)]|body/*[not(preceding-sibling::ol)][not(self::ol)]">
-        <context>
-          <xsl:apply-templates select="body/text()[not(preceding-sibling::ol)]|body/comment()[not(preceding-sibling::ol)]|body/*[not(preceding-sibling::ol)][not(self::ol)]"/>
-        </context>
-      </xsl:if>
-
-      <!--steps [first ol within a body = steps!] -->
-      <xsl:if test="body/ol">
-        <steps>
-          <xsl:apply-templates select="body/ol[1]/li|body/ol[1]/comment()" mode="steps"/>
-        </steps>
-      </xsl:if>
-
-      <!--result [any children with a preceding ol]-->
-      <xsl:if test="body/text()[preceding-sibling::ol]|body/comment()[preceding-sibling::ol]|body/*[preceding-sibling::ol]">
-        <result>
-          <xsl:apply-templates select="body/text()[preceding-sibling::ol]|body/comment()[preceding-sibling::ol]|body/*[preceding-sibling::ol]"/>
-        </result>
-      </xsl:if>
-
-      <!--Optional example section-->
-      <!--Optional postreq section-->
-
-    </taskbody>
-    <xsl:call-template name="genrellinks"/>
-  </task>
-</xsl:template>
-
-<!-- this template handle ol/li processing within a task -->
-<!-- The default behavior is to put each <li> into a <step>. If this is being
-     used to create substeps, the $steptype parameter is passed in as "substep".
-     If the <li> does not contain blocklike info, put everything in <cmd>. Otherwise,
-     put everything up to the first block into <cmd>. Everything from the first block
-     on will be placed in substeps (if it is an OL) or in <info> (everything else).  -->
-<xsl:template match="li" mode="steps">
-  <xsl:param name="steptype">step</xsl:param>
-  <xsl:element name="{$steptype}">
-    <xsl:apply-templates select="@class"/>
-    <xsl:choose>
-      <xsl:when test="not(p|div|ol|ul|table|dl|pre)">
-        <cmd><xsl:apply-templates select="*|comment()|text()"/></cmd>
-      </xsl:when>
-      <xsl:otherwise>
-        <cmd><xsl:apply-templates select="(./*|./text())[1]" mode="step-cmd"/></cmd>
-        <xsl:apply-templates select="(p|div|ol|ul|table|dl|pre|comment())[1]" mode="step-child"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:element>
-</xsl:template>
-<xsl:template match="comment()" mode="steps">
-  <xsl:apply-templates select="."/>
-</xsl:template>
-
-<!-- Add content to a <cmd>. If this is block like, stop iterating and return to the li.
-     Otherwise, output the current node using normal processing, and move to the next
-     text or element node. -->
-<xsl:template match="p|div|ol|ul|table|dl|pre" mode="step-cmd"/>
-<xsl:template match="text()|*" mode="step-cmd">
-  <xsl:apply-templates select="."/>
-  <xsl:apply-templates select="(following-sibling::*|following-sibling::text())[1]" mode="step-cmd"/>
-</xsl:template>
-
-<!-- If an ol is inside a step, convert it to substeps. If it is inside substeps, put it in info.
-     For any other elements, create an info, and output the current node. Also output the
-     following text or element node, which will work up to any <ol>. -->
-<xsl:template match="ol" mode="step-child">
-  <xsl:choose>
-    <!-- If already in substeps -->
-    <xsl:when test="parent::li/parent::ol/parent::li/parent::ol">
-      <info><xsl:apply-templates select="."/></info>
-    </xsl:when>
-    <xsl:otherwise>
-      <substeps>
-        <xsl:apply-templates select="li" mode="steps">
-          <xsl:with-param name="steptype">substep</xsl:with-param>
-        </xsl:apply-templates>
-      </substeps>
-    </xsl:otherwise>
-  </xsl:choose>
-  <xsl:apply-templates select="(following-sibling::*|following-sibling::text())[1]" mode="step-child"/>
-</xsl:template>
-<xsl:template match="text()|*|comment()" mode="step-child">
-  <xsl:choose>
-    <xsl:when test="self::* or string-length(normalize-space(.))>0">
-      <info>
-        <xsl:apply-templates select="."/>
-        <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="add-to-info"/>
-      </info>
-    </xsl:when>
-    <xsl:otherwise>
-      <!-- Ignore empty text nodes and empty comments, move on to the next node -->
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="step-child"/>
-    </xsl:otherwise>
-  </xsl:choose>
-  <xsl:apply-templates select="following-sibling::ol[1]" mode="step-child"/>
-</xsl:template>
-
-<!-- When adding to <info>, if an ol is found, stop: it will become substeps, or its own info.
-     Anything else: output the element, and then output the following text or element node,
-     remaining inside <info>. -->
-<xsl:template match="ol" mode="add-to-info"/>
-<xsl:template match="*|text()|comment()" mode="add-to-info">
-    <xsl:apply-templates select="."/>
-    <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="add-to-info"/>
-</xsl:template>
-
-<!-- Support for generating contextually dependent ID for topics. -->
-<!-- This will need to be improved; no HTML will have an id, so only the
-     otherwise will trigger. Better test: use the filename or first a/@name
- +-->
-<!-- NOTE: this is only to be used for the topic element -->
-<xsl:template name="genidattribute">
- <xsl:attribute name="id">
-  <xsl:choose>
-    <xsl:when test="string-length($filename-id)>0"><xsl:value-of select="$filename-id"/></xsl:when>
-    <xsl:when test="/html/@id"><xsl:value-of select="/html/@id"/></xsl:when>
-    <xsl:otherwise><xsl:value-of select="generate-id(/html)"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:attribute>
-</xsl:template>
-
-
-
-<!-- named templates for out of line pulls -->
-
-<!-- 02/12/03 drd: mp says to leave this as linklist, not linkpool, for now -->
-<xsl:template name="genrellinks">
-  <xsl:if test="$generateRelatedLinks">
-<xsl:if test=".//a[@href][not(starts-with(@href,'#'))]">
-<related-links>
-<linklist><title>Collected links</title>
-  <xsl:for-each select=".//a[@href][not(starts-with(@href,'#'))]">
-    <link>
-      <xsl:call-template name="genlinkattrs"/>
-      <linktext><xsl:value-of select="."/></linktext>
-      <xsl:if test="@title">
-        <desc><xsl:value-of select="normalize-space(@title)"/></desc>
-      </xsl:if>
-    </link>
-  </xsl:for-each>
-</linklist>
-</related-links>
-</xsl:if>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template name="genlinkattrs">
-  <xsl:variable name="newfn">
-    <xsl:value-of select="substring-before(@href,'.htm')"/>
-  </xsl:variable>
-  <xsl:choose>
-    <!-- If the target is a web site, do not change extension to .dita -->
-    <xsl:when test="starts-with(@href,'http:') or starts-with(@href,'https:') or
-                    starts-with(@href,'ftp:')">
-      <xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
-      <xsl:attribute name="scope">external</xsl:attribute>
-      <xsl:attribute name="format">
-        <xsl:choose>
-          <xsl:when test="contains(@href,'.pdf') or contains(@href,'.PDF')">pdf</xsl:when>
-          <xsl:otherwise>html</xsl:otherwise>
-        </xsl:choose>
-      </xsl:attribute>
-    </xsl:when>
-    <xsl:when test="string-length($newfn)>0">
-      <xsl:attribute name="href"><xsl:value-of select="$newfn"/><xsl:value-of select="$dita-extension"/></xsl:attribute>
-    </xsl:when>
-    <xsl:when test="starts-with(@href,'#')">
-      <xsl:variable name="infile-reference">
-        <xsl:text>#</xsl:text>
-        <!-- Need to udpate this if genidattribute changes -->
-        <xsl:choose>
-          <xsl:when test="string-length($filename-id)>0"><xsl:value-of select="$filename-id"/></xsl:when>
-          <xsl:when test="/html/@id"><xsl:value-of select="/html/@id"/></xsl:when>
-          <xsl:otherwise><xsl:value-of select="generate-id(/html)"/></xsl:otherwise>
-        </xsl:choose>
-        <xsl:text>/</xsl:text>
-        <xsl:value-of select="substring-after(@href,'#')"/>
-      </xsl:variable>
-      <!-- output-message? -->
-      <xsl:attribute name="href"><xsl:value-of select="$infile-reference"/></xsl:attribute>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
-      <xsl:attribute name="format">
-        <xsl:choose>
-          <xsl:when test="contains(@href,'.pdf') or contains(@href,'.PDF')">pdf</xsl:when>
-          <xsl:otherwise>html</xsl:otherwise>  <!-- Default to html -->
-        </xsl:choose>
-      </xsl:attribute>
-    </xsl:otherwise>
-  </xsl:choose>
-  <xsl:if test="@target='_blank'">
-    <xsl:attribute name="scope">external</xsl:attribute>
-  </xsl:if>
-</xsl:template>
-
-<!-- gentitle was here -->
-
-<xsl:template name="genprolog">
-  <xsl:if test="$preserveMetadata">
-    <xsl:if test=".//meta[@name][not(@name='generator' or @name='GENERATOR')]|head/comment()"><!-- produce only if qualifiend meta is extant -->
-      <prolog>
-        <!--xsl:comment>author, copyright, critdates, permissions, publisher, source</xsl:comment-->
-        <metadata>
-          <xsl:apply-templates select="head/comment()"/>
-          <xsl:apply-templates select=".//meta[not(@name='generator' or @name='GENERATOR')]" mode="outofline"/>
-        </metadata>
-      </prolog>
-    </xsl:if>
-  </xsl:if>
-</xsl:template>
-
-
-
-<!-- TBD: do anything rational with scripts or styles in the head? elsewhere? -->
-<!-- 05232002 drd: null out scripts, flat out (script in head was nulled out before, 
-                   but scripts in body were coming through)
--->
-<xsl:template match="script"/>
-<xsl:template match="style"/>
-
-
-<!-- take out some other interactive, non-content gadgets that are not part of the DITA source model -->
-<!-- TBD: consider adding messages within these -->
-<xsl:template match="textarea"/>
-<xsl:template match="input"/>
-<xsl:template match="isindex"/>
-<xsl:template match="select"/>
-<xsl:template match="optgroup"/>
-<xsl:template match="option"/>
-<xsl:template match="label"/>
-<xsl:template match="fieldset"/>
-<xsl:template match="basefont"/>
-<xsl:template match="col"/>
-<xsl:template match="colgroup"/>
-
-
-
-<!-- ========== Start of heading-aware code =============== -->
-
-
-<!-- Generic treatment for all headings (1-9!).  The main title and section level code -->
-<!-- have higher priorities that override getting triggered by this generic rule. -->
-
-<xsl:template name="cleanup-heading">
-  <xsl:call-template name="output-message">
-      <xsl:with-param name="msg">A <xsl:value-of select="name()"/> heading could not be converted into DITA.
-The heading has been placed in a required-cleanup element.</xsl:with-param>
-  </xsl:call-template>
-  <xsl:variable name="content">
-    <p>
-      <xsl:if test="$generateRequiredCleanup">
-        <b>[deprecated heading <xsl:value-of select="name()"/> ]: </b>
-      </xsl:if>
-      <xsl:apply-templates select="*|comment()|text()"/>
-    </p>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$generateRequiredCleanup">      
-      <required-cleanup>
-        <xsl:copy-of select="$content"/>
-      </required-cleanup>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:copy-of select="$content"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="h1" priority="5">
-  <xsl:choose>
-    <xsl:when test="not(preceding::h1)"/>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="cleanup-heading"/></xsl:when>
-    <xsl:when test="$main-head-level='h1'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h2" priority="5">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h2' and not(preceding::h2)"/>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="cleanup-heading"/></xsl:when>
-    <xsl:when test="$main-head-level='h1' or $main-head-level='h2'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h3" priority="5">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h3' and not(preceding::h3)"/>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="cleanup-heading"/></xsl:when>
-    <xsl:when test="$main-head-level='h2' or $main-head-level='h3'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h4" priority="5">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h4' and not(preceding::h4)"/>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="cleanup-heading"/></xsl:when>
-    <xsl:when test="$main-head-level='h3' or $main-head-level='h4'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h5" priority="5">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h5' and not(preceding::h5)"/>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="cleanup-heading"/></xsl:when>
-    <xsl:when test="$main-head-level='h4' or $main-head-level='h5'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h6" priority="5">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h6' and not(preceding::h6)"/>
-    <xsl:when test="$infotype='task'"><xsl:call-template name="cleanup-heading"/></xsl:when>
-    <xsl:when test="$main-head-level='h5' or $main-head-level='h6'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h7" priority="5">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h6'"><xsl:call-template name="gensection"/></xsl:when>
-    <xsl:otherwise><xsl:call-template name="cleanup-heading"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template match="h8|h9">
-  <xsl:call-template name="cleanup-heading"/>
-</xsl:template>
-
-<!-- Templates used to pull content following headings into the generated section -->
-<xsl:template match="h1|h2|h3|h4|h5|h6|h7" mode="add-content-to-section"/>
-<xsl:template match="*|text()|comment()" mode="add-content-to-section">
-  <xsl:choose>
-  <!-- For reference, tables also create a section, so leave them out. Otherwise, they go inside sections. -->
-    <xsl:when test="self::table and $infotype='reference'"/>
-    <xsl:otherwise>
-      <xsl:apply-templates select="."/>
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="add-content-to-section"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template name="convert-heading-to-section">
-  <section>
-    <title><xsl:apply-templates select="@class"/><xsl:apply-templates select="*|comment()|text()"/></title>
-    <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="add-content-to-section"/>
-  </section>
-</xsl:template>
-<xsl:template match="h1|h2|h3|h4|h5|h6|h7" mode="create-section-with-following-content">
-  <xsl:choose>
-    <xsl:when test="$main-head-level='h1' and (self::h1 or self::h2)">
-      <xsl:call-template name="convert-heading-to-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h2' and (self::h2 or self::h3)">
-      <xsl:call-template name="convert-heading-to-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h3' and (self::h3 or self::h4)">
-      <xsl:call-template name="convert-heading-to-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h4' and (self::h4 or self::h5)">
-      <xsl:call-template name="convert-heading-to-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h5' and (self::h5 or self::h6)">
-      <xsl:call-template name="convert-heading-to-section"/>
-    </xsl:when>
-    <xsl:when test="$main-head-level='h6' and (self::h6 or self::h7)">
-      <xsl:call-template name="convert-heading-to-section"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:call-template name="output-message">
-        <xsl:with-param name="msg">A <xsl:value-of select="name()"/> heading could not be converted into DITA.
-The heading has been placed in a required-cleanup element.</xsl:with-param>
-      </xsl:call-template>
-      <section>
-        <xsl:variable name="content">
-          <title><xsl:apply-templates select="@class"/><xsl:apply-templates select="*|text()|comment()"/></title>
-          <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="add-content-to-section"/>
-        </xsl:variable>
-        <xsl:choose>
-          <xsl:when test="$generateRequiredCleanup">      
-            <required-cleanup>
-              <xsl:copy-of select="$content"/>
-            </required-cleanup>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:copy-of select="$content"/>
-          </xsl:otherwise>
-        </xsl:choose>
-      </section>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<!-- The next template can only be called when processing items in the reference body -->
-<xsl:template match="table" mode="create-section-with-following-content">
-  <xsl:apply-templates select="."/>
-  <xsl:if test="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1][not(self::table or self::h2 or self::h3 or self::h4 or self::h5 or self::h6 or self::h7)]">
-    <section>
-      <xsl:apply-templates select="(following-sibling::*|following-sibling::text()|following-sibling::comment())[1]" mode="add-content-to-section"/>
-    </section>
-  </xsl:if>
-</xsl:template>
-
-<!-- Special treatment for headings that occur at a section level -->
-<xsl:template name="gensection">
-  <section>
-    <xsl:variable name="hcnt"><xsl:number/></xsl:variable>
-    <!--<xsl:value-of select="$hcnt"/>-->
-    <title><xsl:apply-templates select="@class"/><xsl:apply-templates select="*|text()|comment()"/></title>
-    <!-- call recursively for subsequent chunks -->
-    <xsl:call-template name="output-message">
-      <xsl:with-param name="msg">A <xsl:value-of select="name()"/> heading was mapped to an empty section.
-Move any content that belongs with that heading into the section.</xsl:with-param>
-    </xsl:call-template>
-  </section>
-</xsl:template>
-
-
-<!-- ========== Start of overrideable heading level code =============== -->
-
-<!-- Default: h1=topic title; h2=section title; all others=bold text -->
-<!-- For plain text pull (no problems with content in headings!), use xsl:value-of -->
-<!-- (ie, if you use xsl:apply-templates select, you might get unwanted elements in title) -->
-<!-- These templates will be overridden by heading-level aware front ends -->
-<!-- Note: The generic heading processor treats all headings as priority=1;
-           priority=2 in this master transform will override the generic heading processor
-           priority=3 in the overrides will override this h1/h2 default setup
- +--> 
-
-
-<!-- === initially define the defaults for h1/h2 topic/section mappings === -->
-
-<xsl:template name="gentitle">
-  <title>
-    <xsl:choose>
-      <xsl:when test="$main-head-level='h1'"><xsl:value-of select=".//h1[1]"/></xsl:when>
-      <xsl:when test="$main-head-level='h2'"><xsl:value-of select=".//h2[1]"/></xsl:when>
-      <xsl:when test="$main-head-level='h3'"><xsl:value-of select=".//h3[1]"/></xsl:when>
-      <xsl:when test="$main-head-level='h4'"><xsl:value-of select=".//h4[1]"/></xsl:when>
-      <xsl:when test="$main-head-level='h5'"><xsl:value-of select=".//h5[1]"/></xsl:when>
-      <xsl:when test="$main-head-level='h6'"><xsl:value-of select=".//h6[1]"/></xsl:when>
-    </xsl:choose>
-  </title>
-</xsl:template>
-
-<xsl:template name="gentitlealts">
-  <xsl:variable name="create-searchtitle">
-    <xsl:choose>
-      <xsl:when test="not(/html/head/title)">NO</xsl:when>
-      <xsl:when test="$main-head-level='h1' and normalize-space(string(//h1[1]))=normalize-space(string(/html/head/title))">NO</xsl:when>
-      <xsl:when test="$main-head-level='h2' and normalize-space(string(//h2[1]))=normalize-space(string(/html/head/title))">NO</xsl:when>
-      <xsl:when test="$main-head-level='h3' and normalize-space(string(//h3[1]))=normalize-space(string(/html/head/title))">NO</xsl:when>
-      <xsl:when test="$main-head-level='h4' and normalize-space(string(//h4[1]))=normalize-space(string(/html/head/title))">NO</xsl:when>
-      <xsl:when test="$main-head-level='h5' and normalize-space(string(//h5[1]))=normalize-space(string(/html/head/title))">NO</xsl:when>
-      <xsl:when test="$main-head-level='h6' and normalize-space(string(//h6[1]))=normalize-space(string(/html/head/title))">NO</xsl:when>
-      <xsl:otherwise>YES</xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-  <xsl:if test="$create-searchtitle='YES'">
-    <titlealts>
-      <searchtitle>
-        <xsl:value-of select="/html/head/title"/>
-      </searchtitle>
-    </titlealts>
-  </xsl:if>
-</xsl:template>
-
-<!-- null out some things pulled later -->
-<!--<xsl:template match="h1" priority="2"/>
-
-<xsl:template match="h2" priority="2">
-  <xsl:call-template name="gensection"/>
-</xsl:template> -->
-
-<!-- ========== End of overrideable heading level code =============== -->
-
-
-
-<!-- null out some things pulled later -->
-<xsl:template match="head"/>
-<xsl:template match="title"/>
-
-<!-- Clear up faux "related-links" that are already pulled into collected links:
-      eg, template match="br-with-nothing but imgs, links, and brs after it"-->
-<!-- These rules attempt to leave behind any images or links that are part of a
-     discourse context, and use the rule "br followed by image or anchor" as what
-     to interpret as a hand-built "related links" construct. -->
-<!-- 03/28/2003: Moved <br> processing into a single "br" template -->     
-<!-- 03/28/2003: Removal of <a> does not work, because body overrides; move into
-                 "a" template for now, though it does not work well -->     
-
-<!--eliminate a br following an img or an a element -->
-<!-- <xsl:template match="*[self::br][following-sibling::*[1][self::img|self::a]]"/> -->
-<!--eliminate an a-link preceded by a br-->
-<!--  <xsl:template match="a[@href][preceding-sibling::br]"/> -->
-<!--eliminate an img preceded by a br-->
-<!--  <xsl:template match="img[preceding-sibling::br]"/> -->
-<!--eliminate a final br in a context (usually just for vertical space)-->
-<!-- <xsl:template match="br[name(following-sibling::*)='']"/> -->
-
-<!-- body: fall through, since its contexts (refbody, conbody, etc.) will be
-     generated by templates above -->
-
-<xsl:template match="body">
-  <xsl:apply-templates/>
-</xsl:template>
-
-
-<!-- divs: if we can base transform on a class, do so. -->
-<!-- generic divs will fall through with no associated transform -->
-
-<xsl:template match="div">
-  <xsl:apply-templates select="*|text()|comment()"/>
-</xsl:template>
-
-
-<!-- some characteristics of HTML coming from DocBook tools -->
-<xsl:template match="div[@class='footnote']">
-<lq>
-  <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
-  <xsl:apply-templates select="*|text()|comment()"/>
-</lq>
-</xsl:template>
-
-<!-- this comes from IDWB XHTML output... content that replicates existing structure, therefore null out -->
-<xsl:template match="div[@class='toc']">
-</xsl:template>
-
-
-<!-- map these common elements straight through -->
-<xsl:template match="cite|p|dl|ol|ul|li|pre|sub|sup|b|u|i">
-<xsl:variable name="giname"><xsl:value-of select="name()"/></xsl:variable>
-<xsl:variable name="outgi"><xsl:value-of select="translate($giname,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/></xsl:variable>
-<xsl:element name="{$outgi}">
-  <xsl:if test="@compact and (self::ol|self::ul|self::dl)">
-      <xsl:attribute name="compact">yes</xsl:attribute>
-  </xsl:if>
-  <xsl:apply-templates select="@class"/>
-  <xsl:apply-templates select="*|text()|comment()"/>
-</xsl:element>
-</xsl:template>
-<!-- @outputclass is not allowed on these in DITA, so do not process @class-->
-<!-- @outputclass is now allowed, so move these back into the rule above -->
-<!--<xsl:template match="b|u|i">
-<xsl:variable name="giname"><xsl:value-of select="name()"/></xsl:variable>
-<xsl:variable name="outgi"><xsl:value-of select="translate($giname,'BITU','bitu')"/></xsl:variable>
-<xsl:element name="{$outgi}">
-  <xsl:apply-templates select="*|text()|comment()"/>
-</xsl:element>
-</xsl:template>-->
-
-<xsl:template match="@class">
-  <xsl:attribute name="outputclass"><xsl:value-of select="."/></xsl:attribute>
-</xsl:template>
-
-<!-- empty elements  -->
-
-<!-- This template will return true() if there is nothing left in this topic except
-     a series of related links. Those links will be gathered in the <related-links> section.
-     If this is in the related links, return true(). Otherwise, return false(). 
-     The tests are:
-     If not a child of body, return false (keep this in output)
-     If there are text nodes following, return false
-     If there are no nodes following, return true (part of the links, so drop it)
-     If there are following elements OTHER than br or a, return false
-     Otherwise, this is a br or a at the end -->
-<xsl:template name="only-related-links-remain">
-  <xsl:choose>
-    <xsl:when test="not(parent::body)">false</xsl:when>
-    <xsl:when test="following-sibling::text()">false</xsl:when>
-    <xsl:when test="not(following-sibling::*)">true</xsl:when>
-    <xsl:when test="following-sibling::*[not(self::br or self::a)]">false</xsl:when>
-    <xsl:otherwise>true</xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="br">
-  <xsl:variable name="skip-related-links">
-    <xsl:call-template name="only-related-links-remain"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$skip-related-links='true'"/>
-    <xsl:when test="following-sibling::*[1][self::img]/following-sibling::*[1][self::br]"/>
-    <xsl:when test="preceding-sibling::*[1][self::img]/preceding-sibling::*[1][self::br]"/>
-    <xsl:when test="following-sibling::text()|following-sibling::*[not(self::a)]">
-      <xsl:call-template name="output-message">
-        <xsl:with-param name="msg">CLEANUP ACTION: Determine the original intent for a BR tag.</xsl:with-param>
-      </xsl:call-template>
-      <xsl:comment>A BR tag was used here in the original source.</xsl:comment>
-    </xsl:when>
-    <xsl:otherwise/> <!-- Skip br if it ends a section, or only has links following -->
-  </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match="meta[@name]" mode="outofline">
-  <othermeta name="{@name}" content="{@content}"/>
-</xsl:template>
-
-<xsl:template match="img[@usemap][@src]">
-  <xsl:variable name="mapid"><xsl:value-of select="substring-after(@usemap,'#')"/></xsl:variable>
-  <imagemap>
-    <xsl:apply-templates select="@class"/>
-    <image href="{@src}">
-      <xsl:apply-templates select="@alt"/>
-      </image>
-    <xsl:apply-templates select="//map[@id=$mapid or @name=$mapid]" mode="usemap"/>
-  </imagemap>
-</xsl:template>
-
-<xsl:template match="map"/>
-<xsl:template match="map" mode="usemap">
-  <xsl:apply-templates/>
-</xsl:template>
-<xsl:template match="area">
-  <area>
-      <shape><xsl:value-of select="@shape"/></shape>
-      <coords><xsl:value-of select="@coords"/></coords>
-      <xref>
-          <xsl:call-template name="genlinkattrs"/>
-          <xsl:value-of select="@alt"/>
-      </xref>
-  </area>
-</xsl:template>
-
-<xsl:template match="img">
-      <image href="{@src}">
-        <!-- 03/28/2003 RDA: inline is default, so only worry about break -->
-        <!-- <xsl:if test="name(parent::*)='p'"><xsl:attribute name="placement">inline</xsl:attribute></xsl:if>
-        <xsl:if test="name(parent::*)='li'"><xsl:attribute name="placement">inline</xsl:attribute></xsl:if> -->
-        <xsl:if test="preceding-sibling::*[1][self::br]|following-sibling::*[1][self::br]">
-          <xsl:attribute name="placement">break</xsl:attribute>
-        </xsl:if>
-        <xsl:apply-templates select="@class"/>
-        <xsl:apply-templates select="@alt"/>
-      </image>
-</xsl:template>
-
-<xsl:template match="img/@alt">
-  <alt><xsl:value-of select="."/></alt>
-</xsl:template>
-
-<xsl:template match="hr">
-<xsl:comment> ===================== horizontal rule ===================== </xsl:comment>
-</xsl:template>
-
-
-<!-- renames -->
-
-<xsl:template match="code">
-  <codeph><xsl:apply-templates select="@class|*|text()|comment()"/></codeph>
-</xsl:template>
-
-<xsl:template match="var">
-  <varname><xsl:apply-templates select="@class"/><xsl:value-of select="."/></varname>
-</xsl:template>
-
-<xsl:template match="samp">
-  <systemoutput><xsl:apply-templates select="@class|*|text()|comment()"/></systemoutput>
-</xsl:template>
-
-<xsl:template match="kbd">
-  <userinput><xsl:apply-templates select="@class|*|text()|comment()"/></userinput>
-</xsl:template>
-
-
-<xsl:template match="em">
-  <i><xsl:apply-templates select="@class|*|text()|comment()"/></i>
-</xsl:template>
-
-<xsl:template match="strong">
-  <b><xsl:apply-templates select="@class|*|text()|comment()"/></b>
-</xsl:template>
-
-<xsl:template match="blockquote">
-  <lq><xsl:apply-templates select="@class|*|text()|comment()"/></lq>
-</xsl:template>
-
-<!-- <lq> in <lq> is invalid in DITA, so make it valid (though it is a bit strange) -->
-<xsl:template match="blockquote/blockquote">
-  <p><lq><xsl:apply-templates select="@class|*|text()|comment()"/></lq></p>
-</xsl:template>
-
-<xsl:template match="pre" priority="3">
-  <codeblock><xsl:apply-templates select="@class|*|text()|comment()"/></codeblock>
-</xsl:template>
-
-<!-- assume that these elements are used in tech docs with a semantic intent... -->
-<xsl:template match="tt">
-  <codeph><xsl:apply-templates select="@class|*|text()|comment()"/></codeph>
-</xsl:template>
-
-<xsl:template match="i" priority="3">
-  <varname><xsl:apply-templates select="@class"/><xsl:value-of select="."/></varname>
-</xsl:template>
-
-
-<!-- Linking -->
-
-<!-- May try to eliminate groups of related links at the end; if there is a <br>
-     followed only by links, ignore them, and let the Collected Links get them.
-     Doesn't work now: if a title is entirely a link, it's the last link, so it's ignored... -->
-<xsl:template match="a">
-  <xsl:variable name="skip-related-links">
-    <xsl:call-template name="only-related-links-remain"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="@name and $skip-related-links!='true'">
-      <xsl:comment>Removed anchor point <xsl:value-of select="@name"/></xsl:comment>
-    </xsl:when>
-    <xsl:when test="@id and $skip-related-links!='true'">
-      <xsl:comment>Removed anchor point <xsl:value-of select="@id"/></xsl:comment>
-    </xsl:when>
-  </xsl:choose>
-  <xsl:choose>
-    <xsl:when test="$skip-related-links='true'"/>
-    <!-- If a heading is a link, do not create an XREF or it will be out of context -->
-    <xsl:when test="parent::h1|parent::h2|parent::h3|parent::h4|parent::h5|parent::h6|parent::h7">
-      <xsl:apply-templates/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:choose>
-        <xsl:when test="@href and parent::body">
-          <p><xref>
-            <xsl:call-template name="genlinkattrs"/>
-            <xsl:apply-templates select="@class"/>
-            <xsl:apply-templates select="*|text()|comment()"/>
-          </xref></p>
-        </xsl:when>
-        <xsl:when test="@href">
-          <xref>
-            <xsl:call-template name="genlinkattrs"/>
-            <xsl:apply-templates select="@class"/>
-            <xsl:apply-templates select="*|text()|comment()"/>
-          </xref>
-        </xsl:when>
-        <xsl:when test="parent::body and text()">
-          <p><xsl:apply-templates select="@class"/><xsl:apply-templates select="*|text()|comment()"/></p>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select="*|text()|comment()"/>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- HTML table to CALS table -->
-
-<xsl:template match="td|th" mode="count-cols">
-  <xsl:param name="current-count">1</xsl:param>
-  <xsl:variable name="current-span">
-    <xsl:choose>
-      <xsl:when test="@colspan"><xsl:value-of select="@colspan"/></xsl:when>
-      <xsl:otherwise>1</xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="following-sibling::th or following-sibling::td">
-      <xsl:apply-templates select="(following-sibling::th|following-sibling::td)[1]" mode="count-cols">
-        <xsl:with-param name="current-count"><xsl:value-of select="number($current-span) + number($current-count)"/></xsl:with-param>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:when test="@colspan">
-      <xsl:value-of select="number($current-span) + number($current-count) - 1"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:value-of select="$current-count"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-      
-
-<xsl:template match="table">
-<xsl:variable name="cols-in-first-row">
-  <xsl:choose>
-    <xsl:when test="tbody/tr">
-      <xsl:apply-templates select="(tbody[1]/tr[1]/td[1]|tbody[1]/tr[1]/th[1])[1]" mode="count-cols"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="(tr[1]/td[1]|tr[1]/th[1])[1]" mode="count-cols"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:variable>
-<xsl:variable name="width">
-    <xsl:if test="@width"><xsl:value-of select="substring-before(@width,'%')"/></xsl:if>
-</xsl:variable>
-<xsl:if test="@summary and not(@summary='')">
-    <xsl:comment><xsl:value-of select="@summary"/></xsl:comment>
-    <xsl:call-template name="output-message">
-        <xsl:with-param name="msg">The summary attribute on tables cannot be converted to DITA.
-The attribute's contents were placed in a comment before the table.</xsl:with-param>
-    </xsl:call-template>
-</xsl:if>
-<table>
-    <xsl:apply-templates select="@class"/>
-    <xsl:if test="@align"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if>
-    <xsl:choose>
-        <xsl:when test="number($width) &lt; 100"><xsl:attribute name="pgwide">0</xsl:attribute></xsl:when>
-        <xsl:when test="string-length($width)"><xsl:attribute name="pgwide">1</xsl:attribute></xsl:when>
-    </xsl:choose>
-    <xsl:choose>
-        <xsl:when test="@rules='none' and @border='0'">
-            <xsl:attribute name="frame">none</xsl:attribute>
-            <xsl:attribute name="rowsep">0</xsl:attribute>
-            <xsl:attribute name="colsep">0</xsl:attribute>
-        </xsl:when>
-        <xsl:when test="@border='0'">
-            <xsl:attribute name="rowsep">0</xsl:attribute>
-            <xsl:attribute name="colsep">0</xsl:attribute>
-        </xsl:when>
-        <xsl:when test="@rules='cols'">
-            <xsl:attribute name="rowsep">0</xsl:attribute>
-        </xsl:when>
-        <xsl:when test="@rules='rows'">
-            <xsl:attribute name="colsep">0</xsl:attribute>
-        </xsl:when>
-    </xsl:choose>
-    <xsl:choose>
-      <xsl:when test="@frame='void'"><xsl:attribute name="frame">none</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='above'"><xsl:attribute name="frame">top</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='below'"><xsl:attribute name="frame">bottom</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='border'"><xsl:attribute name="frame">all</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='box'"><xsl:attribute name="frame">all</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='hsides'"><xsl:attribute name="frame">topbot</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='lhs'"><xsl:attribute name="frame">sides</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='rhs'"><xsl:attribute name="frame">sides</xsl:attribute></xsl:when>
-      <xsl:when test="@frame='vsides'"><xsl:attribute name="frame">sides</xsl:attribute></xsl:when>
-    </xsl:choose>
-
-  <xsl:apply-templates select="caption"/>
-<tgroup>
-<!-- add colspan data here -->
-<xsl:attribute name="cols"><xsl:value-of select="$cols-in-first-row"/></xsl:attribute>
-<xsl:call-template name="create-colspec">
-  <xsl:with-param name="total-cols"><xsl:value-of select="$cols-in-first-row"/></xsl:with-param>
-</xsl:call-template>
-<xsl:choose>
-  <xsl:when test="thead">
-    <thead><xsl:apply-templates select="thead/tr"/></thead>
-  </xsl:when>
-  <xsl:when test="tr[th and not(td)]">
-    <thead><xsl:apply-templates select="tr[th and not(td)]">
-    <!--ideally, do for-each only for rows that contain TH, and place within THEAD;
-        then open up the TBODY for the rest of the rows -->
-    <!-- unforch, all the data will go into one place for now -->
-    </xsl:apply-templates></thead>
-  </xsl:when>
-</xsl:choose>
-<tbody>
-  <xsl:apply-templates select="tbody/tr[*]|tr[td]"/>
-</tbody></tgroup></table>
-</xsl:template>
-
-<xsl:template name="create-colspec">
-  <xsl:param name="total-cols">0</xsl:param>
-  <xsl:param name="on-column">1</xsl:param>
-  <xsl:if test="$on-column &lt;= $total-cols">
-    <colspec>
-      <xsl:attribute name="colname">col<xsl:value-of select="$on-column"/></xsl:attribute>
-      <xsl:if test="@align"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if>
-    </colspec>
-    <xsl:call-template name="create-colspec">
-      <xsl:with-param name="total-cols"><xsl:value-of select="$total-cols"/></xsl:with-param>
-      <xsl:with-param name="on-column"><xsl:value-of select="$on-column + 1"/></xsl:with-param>
-    </xsl:call-template>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match="table/caption">
-  <title><xsl:apply-templates select="@class|*|text()|comment()"/></title>
-</xsl:template>
-
-<xsl:template match="tr">
-<row>
-    <xsl:if test="@valign"><xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute></xsl:if>
-    <xsl:apply-templates select="@class"/>
-    <xsl:apply-templates/>
-</row>
-</xsl:template>
-
-<xsl:template match="td|th">
-<entry>
-  <xsl:if test="@rowspan">
-    <xsl:attribute name="morerows"><xsl:value-of select="number(@rowspan)-1"/></xsl:attribute>
-  </xsl:if>
-  <xsl:if test="@colspan">  <!-- Allow entries to span columns -->
-    <xsl:variable name="current-cell"><xsl:call-template name="current-cell-position"/></xsl:variable>
-    <xsl:attribute name="namest">col<xsl:value-of select="$current-cell"/></xsl:attribute>
-    <xsl:attribute name="nameend">col<xsl:value-of select="$current-cell + number(@colspan) - 1"/></xsl:attribute>
-  </xsl:if>
-  <xsl:choose>
-      <xsl:when test="@align"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:when>
-      <xsl:when test="../@align"><xsl:attribute name="align"><xsl:value-of select="../@align"/></xsl:attribute></xsl:when>
-  </xsl:choose>
-  <xsl:apply-templates select="@class"/>
-  <xsl:choose>
-    <xsl:when test="table"><p><xsl:apply-templates select="*|text()|comment()"/></p></xsl:when>
-    <xsl:otherwise><xsl:apply-templates select="*|text()|comment()"/></xsl:otherwise>
-  </xsl:choose>
-</entry>
-</xsl:template>
-
-<!-- Determine which column the current entry sits in. Count the current entry,
-     plus every entry before it; take spanned rows and columns into account.
-     If any entries in this table span rows, we must examine the entire table to
-     be sure of the current column. Use mode="find-matrix-column".
-     Otherwise, we just need to examine the current row. Use mode="count-cells". -->
-<xsl:template name="current-cell-position">
-  <xsl:choose>
-    <xsl:when test="parent::tr/parent::thead">
-      <xsl:apply-templates select="(ancestor::table[1]/thead/tr/*[1])[1]"
-                           mode="find-matrix-column">
-        <xsl:with-param name="stop-id"><xsl:value-of select="generate-id(.)"/></xsl:with-param>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:when test="ancestor::table[1]//*[@rowspan][1]">
-      <xsl:apply-templates select="(ancestor::table[1]/tbody/tr/*[1]|ancestor::table[1]/tr/*[1])[1]"
-                           mode="find-matrix-column">
-        <xsl:with-param name="stop-id"><xsl:value-of select="generate-id(.)"/></xsl:with-param>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:when test="not(preceding-sibling::td|preceding-sibling::th)">1</xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="(preceding-sibling::th|preceding-sibling::td)[last()]" mode="count-cells"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- Count the number of cells in the current row. Move backwards from the test cell. Add one
-     for each entry, plus the number of spanned columns. -->
-<xsl:template match="*" mode="count-cells">
-  <xsl:param name="current-count">1</xsl:param>
-  <xsl:variable name="new-count">
-    <xsl:choose>
-      <xsl:when test="@colspan"><xsl:value-of select="$current-count + number(@colspan)"/></xsl:when>
-      <xsl:otherwise><xsl:value-of select="$current-count + 1"/></xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="not(preceding-sibling::td|preceding-sibling::th)"><xsl:value-of select="$new-count"/></xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="(preceding-sibling::th|preceding-sibling::td)[last()]" mode="count-cells">
-        <xsl:with-param name="current-count"><xsl:value-of select="$new-count"/></xsl:with-param>
-      </xsl:apply-templates>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- Set up a pseudo-matrix to find the column of the current entry. Start with the first entry
-     in the first row. Progress to the end of the row, then start the next row; go until we find
-     the test cell (with id=$stop-id).
-     If an entry spans rows, add the cells that will be covered to $matrix.
-     If we get to an entry and its position is already filled in $matrix, then the entry is pushed
-     to the side. Add one to the column count and re-try the entry. -->
-<xsl:template match="*" mode="find-matrix-column">
-  <xsl:param name="stop-id"/>
-  <xsl:param name="matrix"/>
-  <xsl:param name="row-count">1</xsl:param>
-  <xsl:param name="col-count">1</xsl:param>
-  <!-- $current-position has the format [1:3] for row 1, col 3. Use to test if this cell is covered. -->
-  <xsl:variable name="current-position">[<xsl:value-of select="$row-count"/>:<xsl:value-of select="$col-count"/>]</xsl:variable>
-  
-  <xsl:choose>
-    <!-- If the current value is already covered, increment the column number and try again. -->
-    <xsl:when test="contains($matrix,$current-position)">
-      <xsl:apply-templates select="." mode="find-matrix-column">
-        <xsl:with-param name="stop-id"><xsl:value-of select="$stop-id"/></xsl:with-param>
-        <xsl:with-param name="matrix"><xsl:value-of select="$matrix"/></xsl:with-param>
-        <xsl:with-param name="row-count"><xsl:value-of select="$row-count"/></xsl:with-param>
-        <xsl:with-param name="col-count"><xsl:value-of select="$col-count + 1"/></xsl:with-param>
-      </xsl:apply-templates>
-    </xsl:when>
-    <!-- If this is the cell we are testing, return the current column number. -->
-    <xsl:when test="generate-id(.)=$stop-id">
-      <xsl:value-of select="$col-count"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <!-- Figure out what the next column value will be. -->
-      <xsl:variable name="next-col-count">
-        <xsl:choose>
-          <xsl:when test="not(following-sibling::*)">1</xsl:when>
-          <xsl:when test="@colspan"><xsl:value-of select="$col-count + number(@colspan) - 1"/></xsl:when>
-          <xsl:otherwise><xsl:value-of select="$col-count + 1"/></xsl:otherwise>
-        </xsl:choose>
-      </xsl:variable>
-      <!-- Determine any values that need to be added to the matrix, if this entry spans rows. -->
-      <xsl:variable name="new-matrix-values">
-        <xsl:if test="@rowspan">
-          <xsl:call-template name="add-to-matrix">
-            <xsl:with-param name="start-row"><xsl:value-of select="number($row-count)"/></xsl:with-param>
-            <xsl:with-param name="end-row"><xsl:value-of select="number($row-count) + number(@rowspan) - 1"/></xsl:with-param>
-            <xsl:with-param name="start-col"><xsl:value-of select="number($col-count)"/></xsl:with-param>
-            <xsl:with-param name="end-col">
-              <xsl:choose>
-                <xsl:when test="@colspan"><xsl:value-of select="number($col-count) + number(@colspan) - 1"/></xsl:when>
-                <xsl:otherwise><xsl:value-of select="number($col-count)"/></xsl:otherwise>
-              </xsl:choose>
-            </xsl:with-param>
-          </xsl:call-template>
-        </xsl:if>
-      </xsl:variable>
-      <xsl:choose>
-        <!-- If there are more entries in this row, move to the next one. -->
-        <xsl:when test="following-sibling::*">
-          <xsl:apply-templates select="following-sibling::*[1]" mode="find-matrix-column">
-            <xsl:with-param name="stop-id"><xsl:value-of select="$stop-id"/></xsl:with-param>
-            <xsl:with-param name="matrix"><xsl:value-of select="$matrix"/><xsl:value-of select="$new-matrix-values"/></xsl:with-param>
-            <xsl:with-param name="row-count"><xsl:value-of select="$row-count"/></xsl:with-param>
-            <xsl:with-param name="col-count"><xsl:value-of select="$next-col-count"/></xsl:with-param>
-          </xsl:apply-templates>
-        </xsl:when>
-        <!-- Otherwise, move to the first entry in the next row. -->
-        <xsl:otherwise>
-          <xsl:apply-templates select="../following-sibling::tr[1]/*[1]" mode="find-matrix-column">
-            <xsl:with-param name="stop-id"><xsl:value-of select="$stop-id"/></xsl:with-param>
-            <xsl:with-param name="matrix"><xsl:value-of select="$matrix"/><xsl:value-of select="$new-matrix-values"/></xsl:with-param>
-            <xsl:with-param name="row-count"><xsl:value-of select="$row-count + 1"/></xsl:with-param>
-            <xsl:with-param name="col-count"><xsl:value-of select="1"/></xsl:with-param>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- This template returns values that must be added to the table matrix. Every cell in the box determined
-     by start-row, end-row, start-col, and end-col will be added. First add every value from the first
-     column. When past $end-row, move to the next column. When past $end-col, every value is added. -->
-<xsl:template name="add-to-matrix">
-  <xsl:param name="start-row"/>       
-  <xsl:param name="end-row"/>
-  <xsl:param name="current-row"><xsl:value-of select="$start-row"/></xsl:param>
-  <xsl:param name="start-col"/>
-  <xsl:param name="end-col"/>
-  <xsl:param name="current-col"><xsl:value-of select="$start-col"/></xsl:param>
-  <xsl:choose>
-    <xsl:when test="$current-col > $end-col"/>   <!-- Out of the box; every value has been added -->
-    <xsl:when test="$current-row > $end-row">    <!-- Finished with this column; move to next -->
-      <xsl:call-template name="add-to-matrix">
-        <xsl:with-param name="start-row"><xsl:value-of select="$start-row"/></xsl:with-param>
-        <xsl:with-param name="end-row"><xsl:value-of select="$end-row"/></xsl:with-param>
-        <xsl:with-param name="current-row"><xsl:value-of select="$start-row"/></xsl:with-param>
-        <xsl:with-param name="start-col"><xsl:value-of select="$start-col"/></xsl:with-param>
-        <xsl:with-param name="end-col"><xsl:value-of select="$end-col"/></xsl:with-param>
-        <xsl:with-param name="current-col"><xsl:value-of select="$current-col + 1"/></xsl:with-param>
-      </xsl:call-template>
-    </xsl:when>
-    <xsl:otherwise>
-      <!-- Output the value for the current entry -->
-      <xsl:text>[</xsl:text>
-      <xsl:value-of select="$current-row"/>:<xsl:value-of select="$current-col"/>
-      <xsl:text>]</xsl:text>
-      <!-- Move to the next row, in the same column. -->
-      <xsl:call-template name="add-to-matrix">
-        <xsl:with-param name="start-row"><xsl:value-of select="$start-row"/></xsl:with-param>
-        <xsl:with-param name="end-row"><xsl:value-of select="$end-row"/></xsl:with-param>
-        <xsl:with-param name="current-row"><xsl:value-of select="$current-row + 1"/></xsl:with-param>
-        <xsl:with-param name="start-col"><xsl:value-of select="$start-col"/></xsl:with-param>
-        <xsl:with-param name="end-col"><xsl:value-of select="$end-col"/></xsl:with-param>
-        <xsl:with-param name="current-col"><xsl:value-of select="$current-col"/></xsl:with-param>
-      </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="tbody|tfoot|thead">
-  <xsl:apply-templates/>
-</xsl:template>
-
-<!-- If a table entry contains a paragraph, and nothing but a paragraph, do not
-     create the <p> tag in the <entry>. Let everything fall through into <entry>. -->
-<xsl:template match="td/p|th/p">
-  <xsl:choose>
-    <xsl:when test="following-sibling::*|preceding-sibling::*">
-      <p><xsl:apply-templates select="@class|*|text()|comment()"/></p>
-    </xsl:when>
-    <xsl:when test="normalize-space(following-sibling::text()|preceding-sibling::text())=''">
-      <xsl:apply-templates select="*|text()|comment()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <p><xsl:apply-templates select="@class|*|text()|comment()"/></p>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="span[@class='bold']">
-  <b>
-    <xsl:apply-templates select="*|text()|comment()"/>
-  </b>
-</xsl:template>
-
-<xsl:template match="span[@class='italic']">
-  <i>
-    <xsl:apply-templates select="*|text()|comment()"/>
-  </i>
-</xsl:template>
-
-<xsl:template match="span[@class='bold-italic']">
-  <b><i>
-    <xsl:apply-templates select="*|text()|comment()"/>
-  </i></b>
-</xsl:template>
-
-
-<!-- case of span with no attributes at all -->
-
-<xsl:template match="span[not(string(@*))]">
-  <ph>
-    <xsl:apply-templates select="*|text()|comment()"/>
-  </ph>
-</xsl:template>
-
-<!-- Search for span styles that Tidy moved into /html/head/style
-     Each known value adds something to the return value, such as [b] for bold.
-     The returned value is parsed to determine which wrappers to create.
-     New values can be added here; processing for the new value will need
-     to be merged into the sequential b/i/u/tt processing below. -->
-<xsl:template name="get-span-style">
-  <xsl:variable name="classval"><xsl:value-of select="@class"/></xsl:variable>
-  <xsl:variable name="searchval">span.<xsl:value-of select="$classval"/></xsl:variable>
-  <xsl:variable name="span-style">
-    <xsl:value-of select="substring-before(substring-after(/html/head/style/text(),$searchval),'}')"/>}<xsl:text/>
-  </xsl:variable>
-  <xsl:if test="contains($span-style,'font-weight:bold') or contains($span-style,'font-weight :bold') or
-                contains($span-style,'font-weight: bold') or 
-                contains($span-style,'font-weight : bold')">[b]</xsl:if>
-  <xsl:if test="contains($span-style,'font-style:italic') or contains($span-style,'font-style :italic') or
-                contains($span-style,'font-style: italic') or 
-                contains($span-style,'font-style : italic')">[i]</xsl:if>
-  <xsl:if test="contains($span-style,'text-decoration: underline') or contains($span-style,'text-decoration :underline') or
-                contains($span-style,'text-decoration: underline') or 
-                contains($span-style,'text-decoration : underline')">[u]</xsl:if>
-  <xsl:if test="contains($span-style,'font-family:Courier') or contains($span-style,'font-family :Courier') or
-                contains($span-style,'font-family: Courier') or 
-                contains($span-style,'font-family : Courier')">[tt]</xsl:if>
-  <xsl:if test="contains($span-style,'font-weight:normal') or contains($span-style,'font-weight :normal') or
-                contains($span-style,'font-weight: normal') or 
-                contains($span-style,'font-weight : normal')">[normal]</xsl:if>
-</xsl:template>
-
-<!-- Process a span with a tidy-created class. It is known to have one or more
-     values from b, i, u, or tt. For each value, create the element if needed,
-     and move on to the next one, passing the style value from /html/head/style -->
-<xsl:template name="bold-span">
-  <xsl:param name="span-style"/>
-  <xsl:choose>
-    <xsl:when test="contains($span-style,'[b]')">
-      <b><xsl:call-template name="italic-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></b>
-    </xsl:when>
-    <xsl:otherwise><xsl:call-template name="italic-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template name="italic-span">
-  <xsl:param name="span-style"/>
-  <xsl:choose>
-    <xsl:when test="contains($span-style,'[i]')">
-      <i><xsl:call-template name="underline-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></i>
-    </xsl:when>
-    <xsl:otherwise><xsl:call-template name="underline-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template name="underline-span">
-  <xsl:param name="span-style"/>
-  <xsl:choose>
-    <xsl:when test="contains($span-style,'[u]')">
-      <u><xsl:call-template name="courier-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></u>
-    </xsl:when>
-    <xsl:otherwise><xsl:call-template name="courier-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template name="courier-span">
-  <xsl:param name="span-style"/>
-  <xsl:choose>
-    <xsl:when test="contains($span-style,'[tt]')">
-      <tt><xsl:call-template name="normal-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></tt>
-    </xsl:when>
-    <xsl:otherwise><xsl:call-template name="normal-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-<xsl:template name="normal-span">
-  <xsl:param name="span-style"/>
-  <xsl:choose>
-    <!-- If a span has "normal" style and nothing else, create <ph> -->
-    <xsl:when test="contains($span-style,'[normal]') and 
-                    substring-before($span-style,'[normal]')='' and
-                    substring-after($span-style,'[normal]')=''">
-      <ph><xsl:apply-templates select="*|text()|comment()"/></ph>
-    </xsl:when>
-    <xsl:otherwise><xsl:apply-templates select="*|text()|comment()"/></xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="span">
-  <xsl:choose>
-    <xsl:when test="@class='bold-italic'">
-      <b><i><xsl:apply-templates select="*|text()|comment()"/></i></b>
-    </xsl:when>
-    <!-- If the span has a value created by tidy, parse /html/head/style -->
-    <xsl:when test="@class='c1' or @class='c2' or @class='c3' or
-                    @class='c4' or @class='c5' or @class='c6' or
-                    @class='c7' or @class='c8' or @class='c9'">
-      <xsl:variable name="span-style"><xsl:call-template name="get-span-style"/></xsl:variable>
-      <xsl:choose>
-        <xsl:when test="string-length($span-style)>0">
-          <xsl:call-template name="bold-span"><xsl:with-param name="span-style" select="$span-style"/></xsl:call-template>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:variable name="searchval">span.<xsl:value-of select="@class"/></xsl:variable>
-          <xsl:variable name="orig-span-style">
-            <xsl:value-of select="substring-before(substring-after(/html/head/style/text(),$searchval),'}')"/>}<xsl:text/>
-          </xsl:variable>
-          <xsl:call-template name="output-message">
-            <xsl:with-param name="msg">CLEANUP ACTION: provide a better phrase markup for a SPAN tag.
-The element's contents have been placed in a phrase element.
-There is a comment next to the phrase with the span's class value.</xsl:with-param>
-          </xsl:call-template>
-          <xsl:if test="$verbose">
-            <xsl:comment>Original: &lt;span @class=<xsl:value-of select="@class"/>&gt;, <xsl:value-of select="@class"/>=<xsl:value-of select="$orig-span-style"/></xsl:comment>
-          </xsl:if>
-          <ph><xsl:apply-templates select="*|text()|comment()"/></ph>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:call-template name="output-message">
-        <xsl:with-param name="msg">CLEANUP ACTION: provide a better phrase markup for a SPAN tag.
-The element's contents have been placed in a phrase element.
-There is a comment next to the phrase with the span's class value.</xsl:with-param>
-      </xsl:call-template>
-      <xsl:if test="$verbose">
-        <xsl:comment>Original: &lt;span @class=<xsl:value-of select="@class"/>&gt;</xsl:comment>
-      </xsl:if>
-      <ph><xsl:apply-templates select="@class"/><xsl:apply-templates select="*|text()|comment()"/></ph>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- generate dlentry wrapper for DL/DD/DT -->
-
-<xsl:template match="dt">
-<dlentry>
- <dt><xsl:apply-templates select="@class|*|text()|comment()"/></dt>
- <xsl:apply-templates select="following-sibling::*[1]" mode="indirect"/>
-</dlentry>
-</xsl:template>
-
-<xsl:template match="dd"/>
-
-<xsl:template match="dt" mode="indirect"/>
-<xsl:template match="dd" mode="indirect">
-  <dd>
-    <xsl:apply-templates select="@class|*|text()|comment()"/>
-  </dd>
-  <xsl:apply-templates select="following-sibling::*[1]" mode="indirect"/>
-</xsl:template>
-
-
-<!-- named templates -->
-
-<!--
-<xsl:template name="sect1topic">
-<topic xml:lang="{$default-lang}">
-  <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
-  <xsl:apply-templates/>
-</topic>
-</xsl:template>
--->
-
-
-<!-- things noted for disambiguation -->
-
-<!-- encapsulate text within body -->
-<xsl:template match="body/text()|body/div/text()">
-  <xsl:variable name="bodytxt"><xsl:value-of select="normalize-space(.)"/></xsl:variable>
-  <xsl:if test="string-length($bodytxt)>0">
-    <!-- issue a message here? Not EVERY time, puleeeze. test for first node if we must... -->
-    <p>
-      <xsl:value-of select="."/>
-    </p>
-  </xsl:if>
-  <!-- text nodes get wrapped; blanks fall through -->
-</xsl:template>
-
-<!-- encapsulate phrases within body -->
-<xsl:template match="body/i|body/div/i" priority="4">
-  <p><i><xsl:apply-templates select="@class|*|text()|comment()"/></i></p>
-</xsl:template>
-<xsl:template match="body/b|body/div/b" priority="4">
-  <p><b><xsl:apply-templates select="@class|*|text()|comment()"/></b></p>
-</xsl:template>
-<xsl:template match="body/u|body/div/u" priority="4">
-  <p><u><xsl:apply-templates select="@class|*|text()|comment()"/></u></p>
-</xsl:template>
-
-<!-- 03/28/2003 RDA: consolidate all <a> processing into single template -->
-<!-- <xsl:template match="body/a" priority="4">
-  <xsl:choose>
-    <xsl:when test="@name">
-      <xsl:comment>Removed anchor point <xsl:value-of select="@name"/></xsl:comment>
-    </xsl:when>
-    <xsl:when test="@id">
-      <xsl:comment>Removed anchor point <xsl:value-of select="@id"/></xsl:comment>
-    </xsl:when>
-  </xsl:choose>
-  <xsl:if test="@href">
-    <p>
-      <xref>
-        <xsl:call-template name="genlinkattrs"/>
-        <xsl:apply-templates/>
-      </xref>
-    </p>
-  </xsl:if>
-</xsl:template> -->
-
-
-<!-- case of deprecated elements with no clear migrational intent -->
-
-<xsl:template match="small|big">
-  <xsl:call-template name="output-message">
-      <xsl:with-param name="msg">CLEANUP ACTION: provide a better phrase markup for a BIG or SMALL tag.
-The element's contents have been placed in a required-cleanup element.</xsl:with-param>
-  </xsl:call-template>
-  <xsl:variable name="content">
-    <xsl:attribute name="remap"><xsl:value-of select="name()"/></xsl:attribute>
-    <ph>
-      <xsl:apply-templates select="@class|*|text()|comment()"/>
-    </ph>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$generateRequiredCleanup">      
-      <required-cleanup>
-        <xsl:copy-of select="$content"/>
-      </required-cleanup>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:copy-of select="$content"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match="s|strike">
-  <xsl:call-template name="output-message">
-      <xsl:with-param name="msg">CLEANUP ACTION: provide a better phrase markup for a strikethrough tag.
-The element's contents have been placed in a required-cleanup element.</xsl:with-param>
-  </xsl:call-template>
-  <xsl:variable name="content">
-    <xsl:attribute name="remap"><xsl:value-of select="name()"/></xsl:attribute>
-    <ph>
-      <xsl:apply-templates select="@class|*|text()|comment()"/>
-    </ph>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$generateRequiredCleanup">      
-      <required-cleanup>
-        <xsl:copy-of select="$content"/>
-      </required-cleanup>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:copy-of select="$content"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- set of rules for faux-pre sections (paragraphs with br, using samp for font effect)-->
-
-<xsl:template match="p[samp][not(text())]">
-  <pre>
-   <xsl:apply-templates mode="re-pre"/>
-  </pre>
-</xsl:template>
-
-<xsl:template match="samp" mode="re-pre">
-  <xsl:apply-templates mode="re-pre"/>
-</xsl:template>
-
-<xsl:template match="samp/br" mode="re-pre"/><!-- won't need introduced space if original source has it -->
-
-<xsl:template match="comment()">
-  <xsl:comment><xsl:value-of select="."/></xsl:comment>
-</xsl:template>
-
-<!-- =========== CATCH UNDEFINED ELEMENTS (for stylesheet maintainers) =========== -->
-
-<!-- (this rule should NOT produce output in production setting) -->
-<xsl:template match="*">
-  <xsl:call-template name="output-message">
-    <xsl:with-param name="msg">CLEANUP ACTION: no DITA equivalent for HTML element '<xsl:value-of select="name()"/>'.
-The element has been placed in a required-cleanup element.</xsl:with-param>
-  </xsl:call-template>
-  <xsl:variable name="content">
-    <ph>
-    <xsl:attribute name="remap"><xsl:value-of select="name()"/></xsl:attribute>
-      <xsl:apply-templates select="*|text()|comment()"/>
-    </ph>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$generateRequiredCleanup">      
-      <required-cleanup>
-        <xsl:copy-of select="$content"/>
-      </required-cleanup>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:copy-of select="$content"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- ====================================================================================== -->
-<!-- Special templates for pre-processing an XHTML file, in order to merge sequential lists -->
-
-<!-- If there are not any split lists surrounding this element, copy it as is. If this is between
-     two parts of a split list, it will be pulled in to the preceding list item, so ignore it now. -->
-<xsl:template match="*|@*|comment()|processing-instruction()|text()" mode="shift-lists">
-  <xsl:choose>
-    <xsl:when test="not(following-sibling::ol[1][@start]) or not(preceding-sibling::ol)">
-      <xsl:copy>
-        <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="shift-lists"/>
-      </xsl:copy>
-    </xsl:when>
-    <xsl:otherwise>
-      <!-- There is a re-started list after this. Check to make sure the numbers are correct. -->
-      <xsl:variable name="supposed-next-start">
-        <xsl:choose>
-          <xsl:when test="preceding-sibling::ol[1]/@start">
-            <xsl:value-of select="number(preceding-sibling::ol[1]/@start) + count(preceding-sibling::ol[1]/li)"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:value-of select="count(preceding-sibling::ol[1]/li) + 1"/>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:variable>
-      <xsl:choose>
-        <!-- If the next list continues the previous, this element was pulled in to the previous list. -->
-        <xsl:when test="$supposed-next-start=following-sibling::ol[1]/@start"/>
-        <xsl:otherwise>
-          <xsl:copy>
-            <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="shift-lists"/>
-          </xsl:copy>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- Process ordered lists individually. -->
-<xsl:template match="ol" mode="shift-lists">
-  <xsl:choose>
-    <!-- If this could be a continuation, check the @start value against the previous list -->
-    <xsl:when test="@start and preceding-sibling::ol">
-      <xsl:variable name="supposed-start">
-        <xsl:choose>
-          <xsl:when test="preceding-sibling::ol[1]/@start">
-            <xsl:value-of select="number(preceding-sibling::ol[1]/@start) + count(preceding-sibling::ol[1]/li)"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:value-of select="count(preceding-sibling::ol[1]/li) + 1"/>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:variable>
-      <xsl:choose>
-        <!-- If this continues the previous list, it was pulled in when processing that list. -->
-        <xsl:when test="$supposed-start=@start"/>
-        <!-- Otherwise, there's a goof-up somewhere, just copy it to the output -->
-        <xsl:otherwise>
-          <xsl:copy>
-            <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="shift-lists"/>
-          </xsl:copy>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:when>
-    <!-- The list does not continue a previous list (though it may start a new one) -->
-    <xsl:otherwise>
-      <xsl:copy>
-        <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="shift-lists"/>
-      </xsl:copy>
-    </xsl:otherwise>
-  </xsl:choose> 
-</xsl:template>
-
-<!-- All list items but the last one are copied as-is. The last one is also copied, but we need to check
-     for continued lists. If this list is continued, everything between this item and the next list should
-     be copied in to the end of this list item. After the item is processed, add all of the list items from
-     the continue-ing list. -->
-<xsl:template match="ol/li[not(following-sibling::li)]" mode="shift-lists">
-  <xsl:variable name="supposed-next-start">
-    <xsl:choose>
-      <xsl:when test="../@start"><xsl:value-of select="number(../@start) + count(../li)"/></xsl:when>
-      <xsl:otherwise><xsl:value-of select="count(../li) + 1"/></xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-  <xsl:copy>
-    <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="shift-lists"/>
-    <xsl:if test="../following-sibling::ol[1]/@start and $supposed-next-start=../following-sibling::ol[1]/@start">
-      <xsl:variable name="next-id"><xsl:value-of select="generate-id(../following-sibling::ol[1])"/></xsl:variable>
-      <xsl:apply-templates 
-           select="../following-sibling::text()[generate-id(following-sibling::ol[1])=$next-id]|
-                   ../following-sibling::*[generate-id(following-sibling::ol[1])=$next-id]"
-           mode="add-to-list"/>
-    </xsl:if>
-  </xsl:copy>
-  <xsl:if test="../following-sibling::ol[1]/@start and $supposed-next-start=../following-sibling::ol[1]/@start">
-    <xsl:apply-templates select="../following-sibling::ol[1]/*" mode="shift-lists"/>
-  </xsl:if>
-</xsl:template>
-
-<!-- Matches anything between 2 lists that are being merged. -->
-<xsl:template match="*|@*|comment()|processing-instruction()|text()" mode="add-to-list">
-  <xsl:copy>
-    <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()" mode="add-to-list"/>
-  </xsl:copy>
-</xsl:template>
-
-<!-- Validate the input parameters -->
-<xsl:template name="validate-parameters">
-    <xsl:if test="not($infotype='topic' or $infotype='concept' or $infotype='reference' or $infotype='task')">
-        <xsl:call-template name="output-message">
-            <xsl:with-param name="msg">'<xsl:value-of select="$infotype"/>' is an invalid infotype, use 'topic' as the default infotype.</xsl:with-param>
-        </xsl:call-template>
-    </xsl:if>
-    <xsl:if test="not($dita-extension='.dita' or $dita-extension='.xml')">
-        <xsl:call-template name="output-message">
-            <xsl:with-param name="msg">'<xsl:value-of select="$dita-extension"/>' is an invalid dita extension, please use '.dita' or '.xml' as the dita extension.</xsl:with-param>
-        </xsl:call-template>
-    </xsl:if>
-    <xsl:if test="not(contains($FILENAME, '.htm'))">
-        <xsl:call-template name="output-message">
-            <xsl:with-param name="msg">The parameter FILENAME should ends with '.htm' or '.html'.</xsl:with-param>
-        </xsl:call-template>
-    </xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/lib/dtds/xhtml/html2dita/plugin.xml b/lib/dtds/xhtml/html2dita/plugin.xml
deleted file mode 100644
index 39b56b1..0000000
--- a/lib/dtds/xhtml/html2dita/plugin.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This file is part of the DITA Open Toolkit project hosted on 
-  Sourceforge.net. See the accompanying license.txt file for 
-  applicable licenses.-->
-<!--
-  | (C) Copyright IBM Corporation 2006. All Rights Reserved.
-  *-->
-  <plugin id="org.dita.specialization.h2d">
-    <feature extension="dita.specialization.catalog.relative"
-      file="catalog.xml"/> 
-  </plugin>
diff --git a/lib/dtds/xhtml/html2dita/preprocess.xsl b/lib/dtds/xhtml/html2dita/preprocess.xsl
deleted file mode 100644
index c935542..0000000
--- a/lib/dtds/xhtml/html2dita/preprocess.xsl
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!-- This file is part of the DITA Open Toolkit project hosted on 
-    Sourceforge.net. See the accompanying license.txt file for 
-    applicable licenses.-->
-<!-- (c) Copyright IBM Corp. 2006 All Rights Reserved. -->
-
-<xsl:stylesheet version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:output method="xml" />
-
-<xsl:template match="*" priority="10">
-    <xsl:element name="{local-name()}">
-        <xsl:for-each select="@*">
-            <xsl:attribute name="{local-name()}">
-                <xsl:value-of select="." />
-            </xsl:attribute>
-        </xsl:for-each>
-        <xsl:apply-templates />
-    </xsl:element>
-</xsl:template>
-
-<xsl:template match="comment()">
-    <xsl:comment><xsl:value-of select="."/></xsl:comment>
-</xsl:template>
-
-<xsl:template match="*|processing-instruction()|text()">
-    <xsl:copy>
-        <xsl:apply-templates select="*|processing-instruction()|text()"/>
-    </xsl:copy>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/lib/dtds/xhtml/html2dita/samples/concept.html b/lib/dtds/xhtml/html2dita/samples/concept.html
deleted file mode 100644
index a388248..0000000
--- a/lib/dtds/xhtml/html2dita/samples/concept.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--  Migrating HTML to DITA: sample input file
- |
- | (C) Copyright IBM Corporation 2001, 2002, 2003, 2004, 2005. All Rights Reserved.
- | This file is related to the DITA package on IBM's developerWorks site.
- | See license.txt for disclaimers.
- + -->
-<html>
-<head>
-<title>A concept topic</title>
-</head>
-<body>
-<h1>A concept topic</h1>
-<p>Introductory block text.</p>
-<!-- any number of introductory blocks -->
-<h2>The first section</h2>
-<p>Section block text.</p>
-<h2>The second section</h2>
-<p>Section block text.</p>
-<!-- any number of sections -->
-<a href="relatedlink1.html"></a>
-<a href="relatedlink2.html"></a>
-<!-- any number of related links at body level -->
-</body>
-</html>
diff --git a/lib/dtds/xhtml/html2dita/samples/content.html b/lib/dtds/xhtml/html2dita/samples/content.html
deleted file mode 100644
index 446ba28..0000000
--- a/lib/dtds/xhtml/html2dita/samples/content.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--  Migrating HTML to DITA: sample input file
- |
- | (C) Copyright IBM Corporation 2001, 2002, 2003, 2004, 2005. All Rights Reserved.
- | This file is related to the DITA package on IBM's developerWorks site.
- | See license.txt for disclaimers.
- + -->
-<html>
-<head>
-<title>A topic with content examples</title>
-<meta name="name1" contet="content1"/>
-<meta name="name2" contet="content2"/>
-<!-- any number of metadata pairs -->
-</head>
-<body>
-<h1>A topic with content examples</h1>
-<!-- the following content can be used within most topic -->
-<p>Paragraph block.</p>
-<dl>
-<dt>Definition phrase 1</dt>
-<dd>Definition block 1</dd>
-<dt>Definition phrase 2</dt>
-<dd>Definition block 2</dd>
-<!-- any number of definitions -->
-</dl>
-<ol>
-<li>Ordered list item block 1</li>
-<li>Ordered list item block 2</li>
-<!-- any number of list items -->
-</ol>
-<ul>
-<li>Unrdered list item block 1</li>
-<li>Unrdered list item block 2</li>
-<!-- any number of list items -->
-</ul>
-<pre>Preformatted
-block
-</pre>
-<blockquote>Quoted block.</blockquote>
-<table>
-<caption>Caption phrase</caption>
-<thead>
-<tr>
-<th>Header block 1.1</th>
-<th>Header block 1.2</th>
-<!-- any number of columns -->
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>Cell block 1.1</td>
-<td>Cell block 1.2</td>
-<!-- any number of columns -->
-</tr>
-<tr>
-<td>Cell block 2.1</td>
-<td>Cell block 2.2</td>
-</tr>
-<!-- any number of rows -->
-</tbody>
-</table>
-<div class="fignone">
-<span class="figcap">Figure title</span>
-<p>Any blocks.</p>
-</div>
-<img src="imagesrc.jpg" alt="alternative text"/>
-<ul>
-<li><u>underline</u> phrase</li>
-<li><strong>bold</strong> phrase</li>
-<li><em>italic</em> phrase</li>
-<li><cite>citation</cite> phrase</li>
-<li><sub>subscript</sub> phrase</li>
-<li><sup>superscript</sup> phrase</li>
-<li><code>code</code> phrase</li>
-<li><var>variable name</var> phrase</li>
-<li><samp>system output</samp> phrase</li>
-<li><kbd>user input</kbd> phrase</li>
-</ul>
-<p class="outputclass1">Most blocks and phrases can take an output class.</p>
-</body>
-</html>
diff --git a/lib/dtds/xhtml/html2dita/samples/reference.html b/lib/dtds/xhtml/html2dita/samples/reference.html
deleted file mode 100644
index 9127477..0000000
--- a/lib/dtds/xhtml/html2dita/samples/reference.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--  Migrating HTML to DITA: sample input file
- |
- | (C) Copyright IBM Corporation 2001, 2002, 2003, 2004, 2005. All Rights Reserved.
- | This file is related to the DITA package on IBM's developerWorks site.
- | See license.txt for disclaimers.
- + -->
-<html>
-<head>
-<title>A reference topic</title>
-</head>
-<body>
-<h1>A reference topic</h1>
-<h2>The first section</h2>
-<p>Section block text.</p>
-<h2>The second section</h2>
-<p>Section block text.</p>
-<!-- any number of sections -->
-<a href="relatedlink1.html"></a>
-<a href="relatedlink2.html"></a>
-<!-- any number of related links at body level -->
-</body>
-</html>
diff --git a/lib/dtds/xhtml/html2dita/samples/task.html b/lib/dtds/xhtml/html2dita/samples/task.html
deleted file mode 100644
index a677da4..0000000
--- a/lib/dtds/xhtml/html2dita/samples/task.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--  Migrating HTML to DITA: sample input file
- |
- | (C) Copyright IBM Corporation 2001, 2002, 2003, 2004, 2005. All Rights Reserved.
- | This file is related to the DITA package on IBM's developerWorks site.
- | See license.txt for disclaimers.
- + -->
-<html>
-<head>
-<title>A task topic</title>
-</head>
-<body>
-<h1>A task topic</h1>
-<div>
-<p>Context text.</p>
-<!-- any number of context blocks -->
-</div>
-<ol>
-<li>The command for the first step.</li>
-<li>The command for the second step.
-<ol>
-<li>The command for the first substep of the second step.</li>
-<li>The command for the second substep of the second step.</li>
-<!-- any number of substeps -->
-</ol></li>
-<li>The command for the third step.
-<div>
-<p>Informative text for the third step.</p>
-<!-- any number of informative blocks -->
-</div>
-</li>
-<!-- any number of steps -->
-</ol>
-<p>Result text.</p>
-<!-- any number of result blocks -->
-<a href="relatedlink1.html"></a>
-<a href="relatedlink2.html"></a>
-</body>
-</html>
diff --git a/lib/dtds/xhtml/html2dita/samples/topic.html b/lib/dtds/xhtml/html2dita/samples/topic.html
deleted file mode 100644
index bd5b456..0000000
--- a/lib/dtds/xhtml/html2dita/samples/topic.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--  Migrating HTML to DITA: sample input file
- |
- | (C) Copyright IBM Corporation 2001, 2002, 2003, 2004, 2005. All Rights Reserved.
- | This file is related to the DITA package on IBM's developerWorks site.
- | See license.txt for disclaimers.
- + -->
-<html>
-<head>
-<title>A generic topic</title>
-</head>
-<body>
-<h1>A generic topic</h1>
-<p>Block text.</p>
-<!-- any number of blocks -->
-<h2>A section</h2>
-<p>Section block text.</p>
-<!-- any combination of blocks and sections -->
-<a href="relatedlink1.html"></a>
-<a href="relatedlink2.html"></a>
-<!-- any number of related links at body level -->
-</body>
-</html>
diff --git a/lib/dtds/xhtml11/VERSION b/lib/dtds/xhtml11/VERSION
deleted file mode 100644
index 9459d4b..0000000
--- a/lib/dtds/xhtml11/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-1.1
diff --git a/lib/dtds/xhtml11/xhtml-lat1.ent b/lib/dtds/xhtml11/xhtml-lat1.ent
deleted file mode 100644
index 929aa3d..0000000
--- a/lib/dtds/xhtml11/xhtml-lat1.ent
+++ /dev/null
@@ -1,121 +0,0 @@
-<!-- ...................................................................... -->
-<!-- XML-compatible ISO Latin 1 Character Entity Set for XHTML ............ -->
-<!-- file: xhtml-lat1.ent
-
-     Typical invocation:
-
-       <!ENTITY % xhtml-lat1
-           PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-                  "xhtml-lat1.ent" >
-       %xhtml-lat1;
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-lat1.ent"
-
-     Revision:  $Id: xhtml-lat1.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.
--->
-
-<!ENTITY nbsp   "&#160;" ><!-- no-break space = non-breaking space, U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;" ><!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;" ><!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;" ><!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;" ><!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;" ><!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;" ><!-- broken bar = broken vertical bar, U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;" ><!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;" ><!-- diaeresis = spacing diaeresis, U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;" ><!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;" ><!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;" ><!-- left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;" ><!-- not sign, U+00AC ISOnum -->
-<!ENTITY shy    "&#173;" ><!-- soft hyphen = discretionary hyphen, U+00AD ISOnum -->
-<!ENTITY reg    "&#174;" ><!-- registered sign = registered trade mark sign, U+00AE ISOnum -->
-<!ENTITY macr   "&#175;" ><!-- macron = spacing macron = overline = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;" ><!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;" ><!-- plus-minus sign = plus-or-minus sign, U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;" ><!-- superscript two = superscript digit two = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;" ><!-- superscript three = superscript digit three = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;" ><!-- acute accent = spacing acute, U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;" ><!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;" ><!-- pilcrow sign = paragraph sign, U+00B6 ISOnum -->
-<!ENTITY middot "&#183;" ><!-- middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;" ><!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;" ><!-- superscript one = superscript digit one, U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;" ><!-- masculine ordinal indicator, U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;" ><!-- right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;" ><!-- vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;" ><!-- vulgar fraction one half = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;" ><!-- vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;" ><!-- inverted question mark = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;" ><!-- latin capital A with grave = latin capital A grave, U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;" ><!-- latin capital A with acute, U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;" ><!-- latin capital A with circumflex, U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;" ><!-- latin capital A with tilde, U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;" ><!-- latin capital A with diaeresis, U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;" ><!-- latin capital A with ring above = latin capital A ring, U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;" ><!-- latin capital AE = latin capital ligature AE, U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;" ><!-- latin capital C with cedilla, U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;" ><!-- latin capital E with grave, U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;" ><!-- latin capital E with acute, U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;" ><!-- latin capital E with circumflex, U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;" ><!-- latin capital E with diaeresis, U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;" ><!-- latin capital I with grave, U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;" ><!-- latin capital I with acute, U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;" ><!-- latin capital I with circumflex, U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;" ><!-- latin capital I with diaeresis, U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;" ><!-- latin capital ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;" ><!-- latin capital N with tilde, U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;" ><!-- latin capital O with grave, U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;" ><!-- latin capital O with acute, U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;" ><!-- latin capital O with circumflex, U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;" ><!-- latin capital O with tilde, U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;" ><!-- latin capital O with diaeresis, U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;" ><!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;" ><!-- latin capital O with stroke = latin capital O slash, U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;" ><!-- latin capital U with grave, U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;" ><!-- latin capital U with acute, U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;" ><!-- latin capital U with circumflex, U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;" ><!-- latin capital U with diaeresis, U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;" ><!-- latin capital Y with acute, U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;" ><!-- latin capital THORN, U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;" ><!-- latin small sharp s = ess-zed, U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;" ><!-- latin small a with grave = latin small a grave, U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;" ><!-- latin small a with acute, U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;" ><!-- latin small a with circumflex, U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;" ><!-- latin small a with tilde, U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;" ><!-- latin small a with diaeresis, U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;" ><!-- latin small a with ring above = latin small a ring, U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;" ><!-- latin small ae = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;" ><!-- latin small c with cedilla, U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;" ><!-- latin small e with grave, U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;" ><!-- latin small e with acute, U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;" ><!-- latin small e with circumflex, U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;" ><!-- latin small e with diaeresis, U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;" ><!-- latin small i with grave, U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;" ><!-- latin small i with acute, U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;" ><!-- latin small i with circumflex, U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;" ><!-- latin small i with diaeresis, U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;" ><!-- latin small eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;" ><!-- latin small n with tilde, U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;" ><!-- latin small o with grave, U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;" ><!-- latin small o with acute, U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;" ><!-- latin small o with circumflex, U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;" ><!-- latin small o with tilde, U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;" ><!-- latin small o with diaeresis, U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;" ><!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;" ><!-- latin small o with stroke, = latin small o slash, U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;" ><!-- latin small u with grave, U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;" ><!-- latin small u with acute, U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;" ><!-- latin small u with circumflex, U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;" ><!-- latin small u with diaeresis, U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;" ><!-- latin small y with acute, U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;" ><!-- latin small thorn with, U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;" ><!-- latin small y with diaeresis, U+00FF ISOlat1 -->
-<!-- end of xhtml-lat1.ent -->
diff --git a/lib/dtds/xhtml11/xhtml-math-svg-flat.dtd b/lib/dtds/xhtml11/xhtml-math-svg-flat.dtd
deleted file mode 100644
index fecc6eb..0000000
--- a/lib/dtds/xhtml11/xhtml-math-svg-flat.dtd
+++ /dev/null
@@ -1,15405 +0,0 @@
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD  ........................... -->
-<!-- URI: http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd
--->
-
-<!-- XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD
-
-     This is a prototype extension of XHTML 1.1 incorporating MathML 2.0
-     and SVG 1.1.
-
-     Copyright 2002 World Wide Web Consortium
-        (Massachusetts Institute of Technology, Institut National de
-         Recherche en Informatique et en Automatique, Keio University).
-         All Rights Reserved.
-
-     Permission to use, copy, modify and distribute this DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and 
-     this paragraph appear in all copies.  The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-
-     It is provided "as is" without expressed or implied warranty.
-
-        Editors:    Murray M. Altheim <altheim@eng.sun.com> (XHTML modules)
-                    David Carlisle <davidc@nag.co.uk> (MathML modules)
-                    Jun Fujisawa <fujisawa.jun@canon.co.jp> (SVG modules)
-                    Masayasu Ishikawa <mimasa@w3.org> (DTD driver)
-        Revision:
-          $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
--->
-<!-- This is the driver for an XHTML 1.1 plus MathML 2.0 plus SVG 1.1 DTD.
--->
-
-<!-- Switches to include/ignore each vocabulary.
--->
-<!ENTITY % XHTML.module  "INCLUDE" >
-<!ENTITY % MATHML.module "INCLUDE" >
-<!ENTITY % SVG.module    "INCLUDE" >
-
-<![%XHTML.module;[
-<!ENTITY % XHTML.version
-         "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" >
-]]>
-
-<!-- Switches to enable subsets.
--->
-<!ENTITY % XHTML.Basic.module "IGNORE" >
-<!ENTITY % SVG.Basic.module   "IGNORE" >
-<!ENTITY % SVG.Tiny.module    "IGNORE" >
-
-<!-- Use the following entities to identify the namespaces:
--->
-<!ENTITY % XHTML.xmlns       "http://www.w3.org/1999/xhtml" >
-<!ENTITY % MATHML.xmlns      "http://www.w3.org/1998/Math/MathML" >
-<!ENTITY % MATHML.pref.xmlns "http://www.w3.org/2002/Math/preference" >
-<!ENTITY % SVG.xmlns         "http://www.w3.org/2000/svg" >
-<!ENTITY % XLINK.xmlns       "http://www.w3.org/1999/xlink" >
-
-<!-- Declare base URIs for the relevant DTD modules.
--->
-<![%XHTML.module;[
-<!ENTITY % XHTML.sysid.base
-         "http://www.w3.org/TR/xhtml-modularization/DTD/" >
-]]>
-<![%MATHML.module;[
-<!ENTITY % MATHML.sysid.base
-         "http://www.w3.org/Math/DTD/mathml2/" >
-]]>
-<![%SVG.module;[
-<!ENTITY % SVG.sysid.base
-         "http://www.w3.org/Graphics/SVG/1.1/DTD/" >
-]]>
-
-<!-- Declare system identifiers for the relevant DTD modules.
--->
-<![%XHTML.module;[
-<![%XHTML.Basic.module;[
-<!ENTITY % XHTML.dtd.fpi
-         "-//W3C//DTD XHTML Basic 1.0//EN" >
-<!ENTITY % XHTML.dtd.sysid
-         "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" >
-]]>
-<!ENTITY % XHTML.dtd.fpi
-         "-//W3C//DTD XHTML 1.1//EN" >
-<!ENTITY % XHTML.dtd.sysid
-         "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
-]]>
-<![%MATHML.module;[
-<!ENTITY % MATHML.dtd.sysid
-         "%MATHML.sysid.base;mathml2.dtd" >
-<!ENTITY % MATHML.qname.sysid
-         "%MATHML.sysid.base;mathml2-qname-1.mod" >
-]]>
-<![%SVG.module;[
-<![%SVG.Tiny.module;[
-<!ENTITY % SVG.dtd.fpi
-         "-//W3C//DTD SVG 1.1 Tiny//EN" >
-<!ENTITY % SVG.dtd.sysid
-         "%SVG.sysid.base;svg11-tiny.dtd" >
-]]>
-<![%SVG.Basic.module;[
-<!ENTITY % SVG.dtd.fpi
-         "-//W3C//DTD SVG 1.1 Basic//EN" >
-<!ENTITY % SVG.dtd.sysid
-         "%SVG.sysid.base;svg11-basic.dtd" >
-]]>
-<!ENTITY % SVG.dtd.fpi
-         "-//W3C//DTD SVG 1.1//EN" >
-<!ENTITY % SVG.dtd.sysid
-         "%SVG.sysid.base;svg11.dtd" >
-]]>
-
-<!-- See the XHTML / MathML / SVG Qualified Names modules for information
-     on the use of namespace prefixes in the DTD.  Default values are
-     as follows:
-
-       <!ENTITY % NS.prefixed "IGNORE" >
-       <!ENTITY % XHTML.prefixed "%NS.prefixed;" >
-       <!ENTITY % XHTML.prefix  "" >
-       <!ENTITY % MATHML.prefixed "%NS.prefixed;" >
-       <!ENTITY % MATHML.prefix   "m" >
-       <!ENTITY % MATHML.pref.prefixed "IGNORE" >
-       <!ENTITY % MATHML.pref.prefix "pref" >
-       <!ENTITY % SVG.prefixed "%NS.prefixed;" >
-       <!ENTITY % SVG.prefix "" >
-       <!ENTITY % XLINK.prefix "xlink" >
-
-     In this DTD driver, XHTML and MathML are not prefixed, and SVG is
-     prefixed by default.  It can be changed by redeclaring the above
-     parameter entities.
--->
-<!ENTITY % XHTML.prefixed       "IGNORE" >
-<!ENTITY % MATHML.prefixed      "IGNORE" >
-<!ENTITY % MATHML.prefix        "m" >
-<!ENTITY % MATHML.pref.prefixed "IGNORE" >
-<!ENTITY % MATHML.pref.prefix   "pref" >
-<!ENTITY % SVG.prefixed         "INCLUDE" >
-<!ENTITY % SVG.prefix           "svg" >
-<!ENTITY % XLINK.prefix         "xlink" >
-
-<!-- a URI reference, see [URI] -->
-<!ENTITY % URI.datatype "CDATA" >
-
-<!-- Declare a parameter entity %XLINK.xmlns.attrib; containing
-     the XML Namespace declarations for XLink.
--->
-<!ENTITY % XLINK.xmlns.attrib
-    "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'"
->
-
-<!-- Allow universal MathML stylesheet-related declarations.
-     When it is used, it must always be prefixed.
--->
-<![%MATHML.module;[
-<![%MATHML.pref.prefixed;[
-<!ENTITY % MATHML.pref.renderer.extra "">
-<!ENTITY % MATHML.pref.renderer
-    "css | mathplayer-dl | mathplayer | techexplorer-plugin | techexplorer">
-<!ENTITY % MATHML.pref.xmlns.attrib
-    "xmlns:%MATHML.pref.prefix; %URI.datatype; #FIXED '%MATHML.pref.xmlns;'
-     %MATHML.pref.prefix;:renderer
-     ( %MATHML.pref.renderer; %MATHML.pref.renderer.extra; ) #IMPLIED"
->
-]]>
-]]>
-<!ENTITY % MATHML.pref.xmlns.attrib "" >
-
-<!-- The parameter entities %SVG.xmlns.extra.attrib; and
-     %XHTML.xmlns.extra.attrib; may be redeclared to contain
-     any foreign namespace declarations for namespaces embedded
-     in XHTML+MathML+SVG. The default value is an empty string.
--->
-<!ENTITY % SVG.xmlns.extra.attrib "" >
-<!ENTITY % XHTML.xmlns.extra.attrib "" >
-
-<!-- Declare parameter entities to define XML Namespace declarations
-     for SVG, XHTML and MathML.
--->
-<![%SVG.module;[
-<![%SVG.prefixed;[
-<!ENTITY % SVG.xmlns.decl.attrib
-    "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'"
->
-]]>
-<!ENTITY % SVG.xmlns.decl.attrib
-    "xmlns %URI.datatype; #FIXED '%SVG.xmlns;'"
->
-]]>
-<!ENTITY % SVG.xmlns.decl.attrib "" >
-
-<![%XHTML.module;[
-<![%XHTML.prefixed;[
-<!ENTITY % XHTML.xmlns.decl.attrib
-    "xmlns:%XHTML.prefix; %URI.datatype; #FIXED '%XHTML.xmlns;'"
->
-]]>
-<!ENTITY % XHTML.xmlns.decl.attrib
-    "xmlns %URI.datatype; #FIXED '%XHTML.xmlns;'"
->
-]]>
-<!ENTITY % XHTML.xmlns.decl.attrib "" >
-
-<![%MATHML.module;[
-<![%MATHML.prefixed;[
-<!ENTITY % MATHML.xmlns.decl.attrib
-    "xmlns:%MATHML.prefix; %URI.datatype; #FIXED '%MATHML.xmlns;'"
->
-]]>
-<!ENTITY % MATHML.xmlns.decl.attrib
-    "xmlns %URI.datatype; #FIXED '%MATHML.xmlns;'"
->
-]]>
-<!ENTITY % MATHML.xmlns.decl.attrib "" >
-
-<!-- Declare common case for %NS.decl.attrib;.
--->
-<!ENTITY % NS.common.decl.attrib
-    "%SVG.xmlns.decl.attrib;
-     %XHTML.xmlns.decl.attrib;
-     %MATHML.xmlns.decl.attrib;
-     %XLINK.xmlns.attrib;
-     %MATHML.pref.xmlns.attrib;
-     %SVG.xmlns.extra.attrib;
-     %XHTML.xmlns.extra.attrib;"
->
-
-<!-- Redeclare the parameter entity %NS.decl.attrib; containing
-     all XML Namespace declarations used in the DTD, its form
-     dependent on whether prefixing is active.
--->
-<![%SVG.prefixed;[
-<![%XHTML.prefixed;[
-<!-- SVG and XHTML are prefixed, MathML is either prefixed or not prefixed.
--->
-<!ENTITY % NS.decl.attrib
-    "%NS.common.decl.attrib;"
->
-]]>
-<![%MATHML.prefixed;[
-<!-- SVG and MathML are prefixed, XHTML is not prefixed.
--->
-<!ENTITY % NS.decl.attrib
-    "%NS.common.decl.attrib;"
->
-]]>
-<!-- SVG is prefixed, XHTML and MathML are not prefixed.
-     MathML namespace must always be specified on the math element.
--->
-<!ENTITY % NS.decl.attrib
-    "%SVG.xmlns.decl.attrib;
-     %XHTML.xmlns.decl.attrib;
-     %XLINK.xmlns.attrib;
-     %MATHML.pref.xmlns.attrib;
-     %SVG.xmlns.extra.attrib;
-     %XHTML.xmlns.extra.attrib;"
->
-]]>
-<![%XHTML.prefixed;[
-<![%MATHML.prefixed;[
-<!-- SVG is not prefixed, XHTML and MathML are prefixed.
--->
-<!ENTITY % NS.decl.attrib
-    "%NS.common.decl.attrib;"
->
-]]>
-<!-- SVG and MathML are not prefixed, which is not allowed.
--->
-<!ENTITY % NS.decl.attrib "" >
-]]>
-<!-- SVG, MathML and XHTML are all not prefixed, which is not allowed.
--->
-<!ENTITY % NS.decl.attrib "" >
-
-<!-- Redeclare parameter entities %SVG.xmlns.attrib; and
-     %XHTML.xmlns.attrib; containing all XML namespace declarations
-     used by XHTML+MathML+SVG, including a default xmlns declaration
-     when prefixing is inactive.
--->
-<![%SVG.module;[
-<!ENTITY % SVG.xmlns.attrib
-    "%NS.decl.attrib;"
->
-]]>
-
-<![%XHTML.module;[
-<!ENTITY % XHTML.xmlns.attrib
-    "%NS.decl.attrib;"
->
-]]>
-
-<!-- Redeclare the parameter entity %MATHML.xmlns.extra.attrib;
-     containing XLink and MathML preferences namespace declarations
-     allowed on MathML elements.
--->
-<![%MATHML.module;[
-<!ENTITY % MATHML.xmlns.extra.attrib
-    "%XLINK.xmlns.attrib;
-     %MATHML.pref.xmlns.attrib;"
->
-]]>
-
-<!-- Framework Redeclaration placeholders  ....................... -->
-
-<![%XHTML.module;[
-<!ENTITY % XHTML.redecl.module "INCLUDE" >
-<![%XHTML.redecl.module;[
-<!-- Pre-Framework Redeclaration placeholder  .................... -->
-<!ENTITY % xhtml-prefw-redecl.mod "" >
-
-<!-- Post-Framework Redeclaration placeholder  ................... -->
-<!ENTITY % xhtml-postfw-redecl.mod "" >
-]]>
-]]>
-
-<![%SVG.module;[
-<!ENTITY % SVG.redecl.module "INCLUDE" >
-<![%SVG.redecl.module;[
-<!-- Pre-Framework Redeclaration placeholder ..................... -->
-<!ENTITY % svg-prefw-redecl.mod "" >
-
-<!-- Post-Framework Redeclaration placeholder .................... -->
-<!ENTITY % svg-postfw-redecl.mod "" >
-]]>
-]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Declare MathML Qualified Names module as an extension of
-     XHTML's Qualified Names module.
--->
-<![%MATHML.module;[
-<!ENTITY % xhtml-qname-extra.decl
-    'PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
-            "%MATHML.qname.sysid;"'
->
-<!ENTITY % xhtml-qname-extra.mod
-    %xhtml-qname-extra.decl;
->
-]]>
-
-<!-- Declare location of math and svg contents in XHTML.
--->
-
-<![%MATHML.module;[
-<![%MATHML.prefixed;[
-<!ENTITY % MATHML.pfx        "%MATHML.prefix;:" >
-]]>
-<!ENTITY % MATHML.pfx        "" >
-<!ENTITY % math.qname        "%MATHML.pfx;math" >
-<!ENTITY % MATHML.math.class "| %math.qname;" >
-]]>
-<!ENTITY % MATHML.math.class "" >
-
-<![%SVG.module;[
-<![%SVG.prefixed;[
-<!ENTITY % SVG.pfx           "%SVG.prefix;:" >
-]]>
-<!ENTITY % SVG.pfx           "" >
-<!ENTITY % SVG.svg.qname     "%SVG.pfx;svg" >
-<!ENTITY % SVG.svg.class     "| %SVG.svg.qname;" >
-]]>
-<!ENTITY % SVG.svg.class     "" >
-
-<![%XHTML.module;[
-<![%XHTML.Basic.module;[
-<!ENTITY % Misc.class
-    "%MATHML.math.class; %SVG.svg.class;" >
-]]>
-<!ENTITY % Misc.extra
-    "%MATHML.math.class; %SVG.svg.class;" >
-]]>
-
-<!-- Redeclare SVG's foreignObject content (allow anything).
--->
-<![%SVG.module;[
-<!ENTITY % SVG.foreignObject.content "ANY" >
-]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Instantiate SVG DTD  ........................................ -->
-<![%SVG.module;[
-<!ENTITY % SVG.dtd.decl
-    'PUBLIC "%SVG.dtd.fpi;"
-            "%SVG.dtd.sysid;"'
->
-<!ENTITY % SVG.dtd %SVG.dtd.decl; >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 DTD ........................................................... -->
-<!-- file: svg11.dtd
--->
-
-<!-- SVG 1.1 DTD
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-
-     The Scalable Vector Graphics (SVG)
-     Copyright 2001, 2002 World Wide Web Consortium
-        (Massachusetts Institute of Technology, Institut National de
-         Recherche en Informatique et en Automatique, Keio University).
-         All Rights Reserved.
-
-     Permission to use, copy, modify and distribute the SVG DTD and its
-     accompanying documentation for any purpose and without fee is hereby
-     granted in perpetuity, provided that the above copyright notice and
-     this paragraph appear in all copies.  The copyright holders make no
-     representation about the suitability of the DTD for any purpose.
-
-     It is provided "as is" without expressed or implied warranty.
-
-        Author:   Jun Fujisawa <fujisawa.jun@canon.co.jp>
-        Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
--->
-<!-- This is the driver file for version 1.1 of the SVG DTD.
-
-     This DTD is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//DTD SVG 1.1//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"
--->
-<!ENTITY % SVG.version "-//W3C//DTD SVG 1.1//EN" >
-
-<!-- Use this URI to identify the default namespace:
-
-        "http://www.w3.org/2000/svg"
-
-     See the Qualified Names module for information
-     on the use of namespace prefixes in the DTD.
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % SVG.prefix "" >
-
-<!-- reserved for future use with document profiles -->
-<!ENTITY % SVG.profile "" >
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Pre-Framework Redeclaration Placeholder ..................... -->
-<!ENTITY % svg-prefw-redecl.module "IGNORE" >
-<![%svg-prefw-redecl.module;[
-%svg-prefw-redecl.mod;]]>
-
-<!-- Document Model Module ....................................... -->
-<!ENTITY % svg-model.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN"
-           "svg11-model.mod" >
-
-<!-- Attribute Collection Module ................................. -->
-<!ENTITY % svg-attribs.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN"
-           "svg11-attribs.mod" >
-
-<!-- Modular Framework Module .................................... -->
-<!ENTITY % svg-framework.module "INCLUDE" >
-<![%svg-framework.module;[
-<!ENTITY % svg-framework.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN"
-           "svg-framework.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Modular Framework Module ...................................... -->
-<!-- file: svg-framework.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-framework.mod"
-
-     ....................................................................... -->
-
-<!-- Modular Framework
-
-     This module instantiates the modules needed o support the SVG
-     modularization model, including:
-
-        + Datatypes
-        + Qualified Name
-        + Document Model
-        + Attribute Collection
--->
-
-<!ENTITY % svg-datatypes.module "INCLUDE" >
-<![%svg-datatypes.module;[
-<!ENTITY % svg-datatypes.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN"
-           "svg-datatypes.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Datatypes Module .............................................. -->
-<!-- file: svg-datatypes.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-datatypes.mod"
-
-     ....................................................................... -->
-
-<!-- Datatypes
-
-     This module declares common data types for properties and attributes.
--->
-
-<!-- feature specification -->
-<!ENTITY % Boolean.datatype "( false | true )" >
-
-<!-- 'clip-rule' or 'fill-rule' property/attribute value -->
-<!ENTITY % ClipFillRule.datatype "( nonzero | evenodd | inherit )" >
-
-<!-- media type, as per [RFC2045] -->
-<!ENTITY % ContentType.datatype "CDATA" >
-
-<!-- a <coordinate> -->
-<!ENTITY % Coordinate.datatype "CDATA" >
-
-<!-- a list of <coordinate>s -->
-<!ENTITY % Coordinates.datatype "CDATA" >
-
-<!-- a <color> value -->
-<!ENTITY % Color.datatype "CDATA" >
-
-<!-- a <integer> -->
-<!ENTITY % Integer.datatype "CDATA" >
-
-<!-- a language code, as per [RFC3066] -->
-<!ENTITY % LanguageCode.datatype "NMTOKEN" >
-
-<!-- comma-separated list of language codes, as per [RFC3066] -->
-<!ENTITY % LanguageCodes.datatype "CDATA" >
-
-<!-- a <length> -->
-<!ENTITY % Length.datatype "CDATA" >
-
-<!-- a list of <length>s -->
-<!ENTITY % Lengths.datatype "CDATA" >
-
-<!-- a <number> -->
-<!ENTITY % Number.datatype "CDATA" >
-
-<!-- a list of <number>s -->
-<!ENTITY % Numbers.datatype "CDATA" >
-
-<!-- opacity value (e.g., <number>) -->
-<!ENTITY % OpacityValue.datatype "CDATA" >
-
-<!-- a path data specification -->
-<!ENTITY % PathData.datatype "CDATA" >
-
-<!-- 'preserveAspectRatio' attribute specification -->
-<!ENTITY % PreserveAspectRatioSpec.datatype "CDATA" >
-
-<!-- script expression -->
-<!ENTITY % Script.datatype "CDATA" >
-
-<!-- An SVG color value (RGB plus optional ICC) -->
-<!ENTITY % SVGColor.datatype "CDATA" >
-
-<!-- arbitrary text string -->
-<!ENTITY % Text.datatype "CDATA" >
-
-<!-- list of transforms -->
-<!ENTITY % TransformList.datatype "CDATA" >
-
-<!-- a Uniform Resource Identifier, see [URI] -->
-<!ENTITY % URI.datatype "CDATA" >
-
-<!-- 'viewBox' attribute specification -->
-<!ENTITY % ViewBoxSpec.datatype "CDATA" >
-
-<!-- end of svg-datatypes.mod -->
-]]>
-
-<!ENTITY % svg-qname.module "INCLUDE" >
-<![%svg-qname.module;[
-<!ENTITY % svg-qname.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN"
-           "svg-qname.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Qualified Name Module ......................................... -->
-<!-- file: svg-qname.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-qname.mod"
-
-     ....................................................................... -->
-
-<!-- Qualified Name
-
-     This module is contained in two parts, labeled Section 'A' and 'B':
-
-        Section A declares parameter entities to support namespace-
-        qualified names, namespace declarations, and name prefixing
-        for SVG and extensions.
-
-        Section B declares parameter entities used to provide
-        namespace-qualified names for all SVG element types:
--->
-
-<!-- Section A: SVG XML Namespace Framework :::::::::::::::::::::: -->
-
-<!-- 1. Declare a %SVG.prefixed; conditional section keyword, used
-        to activate namespace prefixing. The default value should
-        inherit '%NS.prefixed;' from the DTD driver, so that unless
-        overridden, the default behaviour follows the overall DTD
-        prefixing scheme.
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % SVG.prefixed "%NS.prefixed;" >
-
-<!-- 2. Declare a parameter entity (eg., %SVG.xmlns;) containing
-        the URI reference used to identify the SVG namespace:
--->
-<!ENTITY % SVG.xmlns "http://www.w3.org/2000/svg" >
-<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" >
-
-<!-- 3. Declare parameter entities (eg., %SVG.prefix;) containing
-        the default namespace prefix string(s) to use when prefixing
-        is enabled. This may be overridden in the DTD driver or the
-        internal subset of an document instance. If no default prefix
-        is desired, this may be declared as an empty string.
--->
-<!ENTITY % SVG.prefix "" >
-<!ENTITY % XLINK.prefix "xlink" >
-
-<!-- 4. Declare parameter entities (eg., %SVG.pfx;) containing the
-        colonized prefix(es) (eg., '%SVG.prefix;:') used when
-        prefixing is active, an empty string when it is not.
--->
-<![%SVG.prefixed;[
-<!ENTITY % SVG.pfx "%SVG.prefix;:" >
-]]>
-<!ENTITY % SVG.pfx "" >
-<!ENTITY % XLINK.pfx "%XLINK.prefix;:" >
-
-<!-- 5. The parameter entity %SVG.xmlns.extra.attrib; may be
-        redeclared to contain any non-SVG namespace declaration
-        attributes for namespaces embedded in SVG. The default
-        is an empty string.
--->
-<!ENTITY % SVG.xmlns.extra.attrib "" >
-
-<!-- Declare a parameter entity XLINK.xmlns.attrib containing
-     the XML Namespace declarations for XLink.
--->
-<!ENTITY % XLINK.xmlns.attrib
-     "xmlns:%XLINK.prefix; %URI.datatype; #FIXED '%XLINK.xmlns;'"
->
-
-<!-- Declare a parameter entity %NS.decl.attrib; containing
-     all XML Namespace declarations used in the DTD, plus the
-     xmlns declaration for SVG, its form dependent on whether
-     prefixing is active.
--->
-<![%SVG.prefixed;[
-<!ENTITY % NS.decl.attrib
-    "xmlns:%SVG.prefix; %URI.datatype; #FIXED '%SVG.xmlns;'
-     %XLINK.xmlns.attrib;
-     %SVG.xmlns.extra.attrib;"
->
-]]>
-<!ENTITY % NS.decl.attrib
-    "%XLINK.xmlns.attrib;
-     %SVG.xmlns.extra.attrib;"
->
-
-<!-- Declare a parameter entity %SVG.xmlns.attrib; containing
-     all XML namespace declaration attributes used by SVG,
-     including a default xmlns attribute when prefixing is
-     inactive.
--->
-<![%SVG.prefixed;[
-<!ENTITY % SVG.xmlns.attrib
-     "%NS.decl.attrib;"
->
-]]>
-<!ENTITY % SVG.xmlns.attrib
-     "xmlns %URI.datatype; #FIXED '%SVG.xmlns;'
-      %XLINK.xmlns.attrib;"
->
-
-<!-- Section B: SVG Qualified Names :::::::::::::::::::::::::::::: -->
-
-<!-- 6. This section declares parameter entities used to provide
-        namespace-qualified names for all SVG element types.
--->
-
-<!-- module: svg-structure.mod ......................... -->
-
-<!ENTITY % SVG.svg.qname "%SVG.pfx;svg" >
-<!ENTITY % SVG.g.qname "%SVG.pfx;g" >
-<!ENTITY % SVG.defs.qname "%SVG.pfx;defs" >
-<!ENTITY % SVG.desc.qname "%SVG.pfx;desc" >
-<!ENTITY % SVG.title.qname "%SVG.pfx;title" >
-<!ENTITY % SVG.metadata.qname "%SVG.pfx;metadata" >
-<!ENTITY % SVG.symbol.qname "%SVG.pfx;symbol" >
-<!ENTITY % SVG.use.qname "%SVG.pfx;use" >
-
-<!-- module: svg-conditional.mod ....................... -->
-
-<!ENTITY % SVG.switch.qname "%SVG.pfx;switch" >
-
-<!-- module: svg-image.mod ............................. -->
-
-<!ENTITY % SVG.image.qname "%SVG.pfx;image" >
-
-<!-- module: svg-style.mod ............................. -->
-
-<!ENTITY % SVG.style.qname "%SVG.pfx;style" >
-
-<!-- module: svg-shape.mod ............................. -->
-
-<!ENTITY % SVG.path.qname "%SVG.pfx;path" >
-<!ENTITY % SVG.rect.qname "%SVG.pfx;rect" >
-<!ENTITY % SVG.circle.qname "%SVG.pfx;circle" >
-<!ENTITY % SVG.line.qname "%SVG.pfx;line" >
-<!ENTITY % SVG.ellipse.qname "%SVG.pfx;ellipse" >
-<!ENTITY % SVG.polyline.qname "%SVG.pfx;polyline" >
-<!ENTITY % SVG.polygon.qname "%SVG.pfx;polygon" >
-
-<!-- module: svg-text.mod .............................. -->
-
-<!ENTITY % SVG.text.qname "%SVG.pfx;text" >
-<!ENTITY % SVG.tspan.qname "%SVG.pfx;tspan" >
-<!ENTITY % SVG.tref.qname "%SVG.pfx;tref" >
-<!ENTITY % SVG.textPath.qname "%SVG.pfx;textPath" >
-<!ENTITY % SVG.altGlyph.qname "%SVG.pfx;altGlyph" >
-<!ENTITY % SVG.altGlyphDef.qname "%SVG.pfx;altGlyphDef" >
-<!ENTITY % SVG.altGlyphItem.qname "%SVG.pfx;altGlyphItem" >
-<!ENTITY % SVG.glyphRef.qname "%SVG.pfx;glyphRef" >
-
-<!-- module: svg-marker.mod ............................ -->
-
-<!ENTITY % SVG.marker.qname "%SVG.pfx;marker" >
-
-<!-- module: svg-profile.mod ........................... -->
-
-<!ENTITY % SVG.color-profile.qname "%SVG.pfx;color-profile" >
-
-<!-- module: svg-gradient.mod .......................... -->
-
-<!ENTITY % SVG.linearGradient.qname "%SVG.pfx;linearGradient" >
-<!ENTITY % SVG.radialGradient.qname "%SVG.pfx;radialGradient" >
-<!ENTITY % SVG.stop.qname "stop" >
-
-<!-- module: svg-pattern.mod ........................... -->
-
-<!ENTITY % SVG.pattern.qname "%SVG.pfx;pattern" >
-
-<!-- module: svg-clip.mod .............................. -->
-
-<!ENTITY % SVG.clipPath.qname "%SVG.pfx;clipPath" >
-
-<!-- module: svg-mask.mod .............................. -->
-
-<!ENTITY % SVG.mask.qname "%SVG.pfx;mask" >
-
-<!-- module: svg-filter.mod ............................ -->
-
-<!ENTITY % SVG.filter.qname "%SVG.pfx;filter" >
-<!ENTITY % SVG.feBlend.qname "%SVG.pfx;feBlend" >
-<!ENTITY % SVG.feColorMatrix.qname "%SVG.pfx;feColorMatrix" >
-<!ENTITY % SVG.feComponentTransfer.qname "%SVG.pfx;feComponentTransfer" >
-<!ENTITY % SVG.feComposite.qname "%SVG.pfx;feComposite" >
-<!ENTITY % SVG.feConvolveMatrix.qname "%SVG.pfx;feConvolveMatrix" >
-<!ENTITY % SVG.feDiffuseLighting.qname "%SVG.pfx;feDiffuseLighting" >
-<!ENTITY % SVG.feDisplacementMap.qname "%SVG.pfx;feDisplacementMap" >
-<!ENTITY % SVG.feFlood.qname "%SVG.pfx;feFlood" >
-<!ENTITY % SVG.feGaussianBlur.qname "%SVG.pfx;feGaussianBlur" >
-<!ENTITY % SVG.feImage.qname "%SVG.pfx;feImage" >
-<!ENTITY % SVG.feMerge.qname "%SVG.pfx;feMerge" >
-<!ENTITY % SVG.feMergeNode.qname "%SVG.pfx;feMergeNode" >
-<!ENTITY % SVG.feMorphology.qname "%SVG.pfx;feMorphology" >
-<!ENTITY % SVG.feOffset.qname "%SVG.pfx;feOffset" >
-<!ENTITY % SVG.feSpecularLighting.qname "%SVG.pfx;feSpecularLighting" >
-<!ENTITY % SVG.feTile.qname "%SVG.pfx;feTile" >
-<!ENTITY % SVG.feTurbulence.qname "%SVG.pfx;feTurbulence" >
-<!ENTITY % SVG.feDistantLight.qname "%SVG.pfx;feDistantLight" >
-<!ENTITY % SVG.fePointLight.qname "%SVG.pfx;fePointLight" >
-<!ENTITY % SVG.feSpotLight.qname "%SVG.pfx;feSpotLight" >
-<!ENTITY % SVG.feFuncR.qname "%SVG.pfx;feFuncR" >
-<!ENTITY % SVG.feFuncG.qname "%SVG.pfx;feFuncG" >
-<!ENTITY % SVG.feFuncB.qname "%SVG.pfx;feFuncB" >
-<!ENTITY % SVG.feFuncA.qname "%SVG.pfx;feFuncA" >
-
-<!-- module: svg-cursor.mod ............................ -->
-
-<!ENTITY % SVG.cursor.qname "%SVG.pfx;cursor" >
-
-<!-- module: svg-hyperlink.mod ......................... -->
-
-<!ENTITY % SVG.a.qname "%SVG.pfx;a" >
-
-<!-- module: svg-view.mod .............................. -->
-
-<!ENTITY % SVG.view.qname "%SVG.pfx;view" >
-
-<!-- module: svg-script.mod ............................ -->
-
-<!ENTITY % SVG.script.qname "%SVG.pfx;script" >
-
-<!-- module: svg-animation.mod ......................... -->
-
-<!ENTITY % SVG.animate.qname "%SVG.pfx;animate" >
-<!ENTITY % SVG.set.qname "%SVG.pfx;set" >
-<!ENTITY % SVG.animateMotion.qname "%SVG.pfx;animateMotion" >
-<!ENTITY % SVG.animateColor.qname "%SVG.pfx;animateColor" >
-<!ENTITY % SVG.animateTransform.qname "%SVG.pfx;animateTransform" >
-<!ENTITY % SVG.mpath.qname "%SVG.pfx;mpath" >
-
-<!-- module: svg-font.mod .............................. -->
-
-<!ENTITY % SVG.font.qname "%SVG.pfx;font" >
-<!ENTITY % SVG.font-face.qname "%SVG.pfx;font-face" >
-<!ENTITY % SVG.glyph.qname "%SVG.pfx;glyph" >
-<!ENTITY % SVG.missing-glyph.qname "%SVG.pfx;missing-glyph" >
-<!ENTITY % SVG.hkern.qname "%SVG.pfx;hkern" >
-<!ENTITY % SVG.vkern.qname "%SVG.pfx;vkern" >
-<!ENTITY % SVG.font-face-src.qname "%SVG.pfx;font-face-src" >
-<!ENTITY % SVG.font-face-uri.qname "%SVG.pfx;font-face-uri" >
-<!ENTITY % SVG.font-face-format.qname "%SVG.pfx;font-face-format" >
-<!ENTITY % SVG.font-face-name.qname "%SVG.pfx;font-face-name" >
-<!ENTITY % SVG.definition-src.qname "%SVG.pfx;definition-src" >
-
-<!-- module: svg-extensibility.mod ..................... -->
-
-<!ENTITY % SVG.foreignObject.qname "%SVG.pfx;foreignObject" >
-
-<!-- end of svg-qname.mod -->
-]]>
-
-<!ENTITY % svg-model.module "INCLUDE" >
-<![%svg-model.module;[
-<!-- instantiate the Document Model declared in the DTD driver -->
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Document Model Module ......................................... -->
-<!-- file: svg11-model.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-model.mod"
-
-     ....................................................................... -->
-
-<!-- SVG 1.1 Document Model
-
-     This module describes the groupings of elements that make up
-     common content models for SVG elements.
--->
-
-<!-- module: svg-structure.mod ......................... -->
-
-<!ENTITY % SVG.Description.extra.class "" >
-<!ENTITY % SVG.Description.class
-    "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname;
-     %SVG.Description.extra.class;"
->
-
-<!ENTITY % SVG.Use.extra.class "" >
-<!ENTITY % SVG.Use.class
-    "| %SVG.use.qname; %SVG.Use.extra.class;"
->
-
-<!ENTITY % SVG.Structure.extra.class "" >
-<!ENTITY % SVG.Structure.class
-    "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname;
-       %SVG.Use.class; %SVG.Structure.extra.class;"
->
-
-<!-- module: svg-conditional.mod ....................... -->
-
-<!ENTITY % SVG.Conditional.extra.class "" >
-<!ENTITY % SVG.Conditional.class
-    "| %SVG.switch.qname; %SVG.Conditional.extra.class;"
->
-
-<!-- module: svg-image.mod ............................. -->
-
-<!ENTITY % SVG.Image.extra.class "" >
-<!ENTITY % SVG.Image.class
-    "| %SVG.image.qname; %SVG.Image.extra.class;"
->
-
-<!-- module: svg-style.mod ............................. -->
-
-<!ENTITY % SVG.Style.extra.class "" >
-<!ENTITY % SVG.Style.class
-    "| %SVG.style.qname; %SVG.Style.extra.class;"
->
-
-<!-- module: svg-shape.mod ............................. -->
-
-<!ENTITY % SVG.Shape.extra.class "" >
-<!ENTITY % SVG.Shape.class
-    "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname;
-     | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname;
-     | %SVG.polygon.qname; %SVG.Shape.extra.class;"
->
-
-<!-- module: svg-text.mod .............................. -->
-
-<!ENTITY % SVG.Text.extra.class "" >
-<!ENTITY % SVG.Text.class
-    "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;"
->
-
-<!ENTITY % SVG.TextContent.extra.class "" >
-<!ENTITY % SVG.TextContent.class
-    "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname;
-     | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;"
->
-
-<!-- module: svg-marker.mod ............................ -->
-
-<!ENTITY % SVG.Marker.extra.class "" >
-<!ENTITY % SVG.Marker.class
-    "| %SVG.marker.qname; %SVG.Marker.extra.class;"
->
-
-<!-- module: svg-profile.mod ........................... -->
-
-<!ENTITY % SVG.Profile.extra.class "" >
-<!ENTITY % SVG.Profile.class
-    "| %SVG.color-profile.qname; %SVG.Profile.extra.class;"
->
-
-<!-- module: svg-gradient.mod .......................... -->
-
-<!ENTITY % SVG.Gradient.extra.class "" >
-<!ENTITY % SVG.Gradient.class
-    "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname;
-       %SVG.Gradient.extra.class;"
->
-
-<!-- module: svg-pattern.mod ........................... -->
-
-<!ENTITY % SVG.Pattern.extra.class "" >
-<!ENTITY % SVG.Pattern.class
-    "| %SVG.pattern.qname; %SVG.Pattern.extra.class;"
->
-
-<!-- module: svg-clip.mod .............................. -->
-
-<!ENTITY % SVG.Clip.extra.class "" >
-<!ENTITY % SVG.Clip.class
-    "| %SVG.clipPath.qname; %SVG.Clip.extra.class;"
->
-
-<!-- module: svg-mask.mod .............................. -->
-
-<!ENTITY % SVG.Mask.extra.class "" >
-<!ENTITY % SVG.Mask.class
-    "| %SVG.mask.qname; %SVG.Mask.extra.class;"
->
-
-<!-- module: svg-filter.mod ............................ -->
-
-<!ENTITY % SVG.Filter.extra.class "" >
-<!ENTITY % SVG.Filter.class
-    "| %SVG.filter.qname; %SVG.Filter.extra.class;"
->
-
-<!ENTITY % SVG.FilterPrimitive.extra.class "" >
-<!ENTITY % SVG.FilterPrimitive.class
-    "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname;
-     | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname;
-     | %SVG.feConvolveMatrix.qname; | %SVG.feDiffuseLighting.qname;
-     | %SVG.feDisplacementMap.qname; | %SVG.feFlood.qname;
-     | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname; | %SVG.feMerge.qname;
-     | %SVG.feMorphology.qname; | %SVG.feOffset.qname;
-     | %SVG.feSpecularLighting.qname; | %SVG.feTile.qname;
-     | %SVG.feTurbulence.qname; %SVG.FilterPrimitive.extra.class;"
->
-
-<!-- module: svg-cursor.mod ............................ -->
-
-<!ENTITY % SVG.Cursor.extra.class "" >
-<!ENTITY % SVG.Cursor.class
-    "| %SVG.cursor.qname; %SVG.Cursor.extra.class;"
->
-
-<!-- module: svg-hyperlink.mod ......................... -->
-
-<!ENTITY % SVG.Hyperlink.extra.class "" >
-<!ENTITY % SVG.Hyperlink.class
-    "| %SVG.a.qname; %SVG.Hyperlink.extra.class;"
->
-
-<!-- module: svg-view.mod .............................. -->
-
-<!ENTITY % SVG.View.extra.class "" >
-<!ENTITY % SVG.View.class
-    "| %SVG.view.qname; %SVG.View.extra.class;"
->
-
-<!-- module: svg-script.mod ............................ -->
-
-<!ENTITY % SVG.Script.extra.class "" >
-<!ENTITY % SVG.Script.class
-    "| %SVG.script.qname; %SVG.Script.extra.class;"
->
-
-<!-- module: svg-animation.mod ......................... -->
-
-<!ENTITY % SVG.Animation.extra.class "" >
-<!ENTITY % SVG.Animation.class
-    "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; |
-     %SVG.animateColor.qname; | %SVG.animateTransform.qname;
-     %SVG.Animation.extra.class;"
->
-
-<!-- module: svg-font.mod .............................. -->
-
-<!ENTITY % SVG.Font.extra.class "" >
-<!ENTITY % SVG.Font.class
-    "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;"
->
-
-<!-- module: svg-extensibility.mod ..................... -->
-
-<!ENTITY % SVG.Extensibility.extra.class "" >
-<!ENTITY % SVG.Extensibility.class
-    "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;"
->
-
-<!-- end of svg11-model.mod -->
-]]>
-
-<!ENTITY % svg-attribs.module "INCLUDE" >
-<![%svg-attribs.module;[
-<!-- instantiate the Attribute Collection declared in the DTD driver -->
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Attribute Collection Module ................................... -->
-<!-- file: svg11-attribs.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-attribs.mod"
-
-     ....................................................................... -->
-
-<!-- SVG 1.1 Attribute Collection
-
-     This module defines the set of common attributes that can be present
-     on many SVG elements.
--->
-
-<!-- module: svg-conditional.mod ....................... -->
-
-<!ENTITY % ExtensionList.datatype "CDATA" >
-<!ENTITY % FeatureList.datatype "CDATA" >
-
-<!ENTITY % SVG.Conditional.extra.attrib "" >
-<!ENTITY % SVG.Conditional.attrib
-    "requiredFeatures %FeatureList.datatype; #IMPLIED
-     requiredExtensions %ExtensionList.datatype; #IMPLIED
-     systemLanguage %LanguageCodes.datatype; #IMPLIED
-     %SVG.Conditional.extra.attrib;"
->
-
-<!-- module: svg-style.mod ............................. -->
-
-<!ENTITY % ClassList.datatype "CDATA" >
-<!ENTITY % StyleSheet.datatype "CDATA" >
-
-<!ENTITY % SVG.Style.extra.attrib "" >
-<!ENTITY % SVG.Style.attrib
-    "style %StyleSheet.datatype; #IMPLIED
-     class %ClassList.datatype; #IMPLIED
-     %SVG.Style.extra.attrib;"
->
-
-<!-- module: svg-text.mod .............................. -->
-
-<!ENTITY % BaselineShiftValue.datatype "CDATA" >
-<!ENTITY % FontFamilyValue.datatype "CDATA" >
-<!ENTITY % FontSizeValue.datatype "CDATA" >
-<!ENTITY % FontSizeAdjustValue.datatype "CDATA" >
-<!ENTITY % GlyphOrientationHorizontalValue.datatype "CDATA" >
-<!ENTITY % GlyphOrientationVerticalValue.datatype "CDATA" >
-<!ENTITY % KerningValue.datatype "CDATA" >
-<!ENTITY % SpacingValue.datatype "CDATA" >
-<!ENTITY % TextDecorationValue.datatype "CDATA" >
-
-<!ENTITY % SVG.Text.extra.attrib "" >
-<!ENTITY % SVG.Text.attrib
-    "writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED
-     %SVG.Text.extra.attrib;"
->
-
-<!ENTITY % SVG.TextContent.extra.attrib "" >
-<!ENTITY % SVG.TextContent.attrib
-    "alignment-baseline ( auto | baseline | before-edge | text-before-edge |
-                          middle | central | after-edge | text-after-edge |
-                          ideographic | alphabetic | hanging | mathematical |
-                          inherit ) #IMPLIED
-     baseline-shift %BaselineShiftValue.datatype; #IMPLIED
-     direction ( ltr | rtl | inherit ) #IMPLIED
-     dominant-baseline ( auto | use-script | no-change | reset-size |
-                         ideographic | alphabetic | hanging | mathematical |
-                         central | middle | text-after-edge | text-before-edge |
-                         inherit ) #IMPLIED
-     glyph-orientation-horizontal %GlyphOrientationHorizontalValue.datatype;
-                                  #IMPLIED
-     glyph-orientation-vertical %GlyphOrientationVerticalValue.datatype;
-                                #IMPLIED
-     kerning %KerningValue.datatype; #IMPLIED
-     letter-spacing %SpacingValue.datatype; #IMPLIED
-     text-anchor ( start | middle | end | inherit ) #IMPLIED
-     text-decoration %TextDecorationValue.datatype; #IMPLIED
-     unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED
-     word-spacing %SpacingValue.datatype; #IMPLIED
-     %SVG.TextContent.extra.attrib;"
->
-
-<!ENTITY % SVG.Font.extra.attrib "" >
-<!ENTITY % SVG.Font.attrib
-    "font-family %FontFamilyValue.datatype; #IMPLIED
-     font-size %FontSizeValue.datatype; #IMPLIED
-     font-size-adjust %FontSizeAdjustValue.datatype; #IMPLIED
-     font-stretch ( normal | wider | narrower | ultra-condensed |
-                    extra-condensed | condensed | semi-condensed |
-                    semi-expanded | expanded | extra-expanded |
-                    ultra-expanded | inherit ) #IMPLIED
-     font-style ( normal | italic | oblique | inherit ) #IMPLIED
-     font-variant ( normal | small-caps | inherit ) #IMPLIED
-     font-weight ( normal | bold | bolder | lighter | 100 | 200 | 300 | 400 |
-                   500 | 600 | 700 | 800 | 900 | inherit ) #IMPLIED
-     %SVG.Font.extra.attrib;"
->
-
-<!-- module: svg-marker.mod ............................ -->
-
-<!ENTITY % MarkerValue.datatype "CDATA" >
-
-<!ENTITY % SVG.Marker.extra.attrib "" >
-<!ENTITY % SVG.Marker.attrib
-    "marker-start %MarkerValue.datatype; #IMPLIED
-     marker-mid %MarkerValue.datatype; #IMPLIED
-     marker-end %MarkerValue.datatype; #IMPLIED
-     %SVG.Marker.extra.attrib;"
->
-
-<!-- module: svg-profile.mod ........................... -->
-
-<!ENTITY % SVG.Profile.extra.attrib "" >
-<!ENTITY % SVG.Profile.attrib
-    "color-profile CDATA #IMPLIED
-     %SVG.Profile.extra.attrib;"
->
-
-<!-- module: svg-gradient.mod .......................... -->
-
-<!ENTITY % NumberOrPercentage.datatype "CDATA" >
-
-<!ENTITY % SVG.Gradient.extra.attrib "" >
-<!ENTITY % SVG.Gradient.attrib
-    "stop-color %SVGColor.datatype; #IMPLIED
-     stop-opacity %OpacityValue.datatype; #IMPLIED
-     %SVG.Gradient.extra.attrib;"
->
-
-<!-- module: svg-clip.mod .............................. -->
-
-<!ENTITY % ClipPathValue.datatype "CDATA" >
-
-<!ENTITY % SVG.Clip.extra.attrib "" >
-<!ENTITY % SVG.Clip.attrib
-    "clip-path %ClipPathValue.datatype; #IMPLIED
-     clip-rule %ClipFillRule.datatype; #IMPLIED
-     %SVG.Clip.extra.attrib;"
->
-
-<!-- module: svg-mask.mod .............................. -->
-
-<!ENTITY % MaskValue.datatype "CDATA" >
-
-<!ENTITY % SVG.Mask.extra.attrib "" >
-<!ENTITY % SVG.Mask.attrib
-    "mask %MaskValue.datatype; #IMPLIED
-     %SVG.Mask.extra.attrib;"
->
-
-<!-- module: svg-filter.mod ............................ -->
-
-<!ENTITY % FilterValue.datatype "CDATA" >
-<!ENTITY % NumberOptionalNumber.datatype "CDATA" >
-
-<!ENTITY % SVG.Filter.extra.attrib "" >
-<!ENTITY % SVG.Filter.attrib
-    "filter %FilterValue.datatype; #IMPLIED
-     %SVG.Filter.extra.attrib;"
->
-
-<!ENTITY % SVG.FilterColor.extra.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib
-    "color-interpolation-filters ( auto | sRGB | linearRGB | inherit )
-                                   #IMPLIED
-     %SVG.FilterColor.extra.attrib;"
->
-
-<!-- module: svg-cursor.mod ............................ -->
-
-<!ENTITY % CursorValue.datatype "CDATA" >
-
-<!ENTITY % SVG.Cursor.extra.attrib "" >
-<!ENTITY % SVG.Cursor.attrib
-    "cursor %CursorValue.datatype; #IMPLIED
-     %SVG.Cursor.extra.attrib;"
->
-
-<!-- end of svg11-attribs.mod -->
-]]>
-
-<!-- end of svg-framework.mod -->
-]]>
-
-<!-- Post-Framework Redeclaration Placeholder .................... -->
-<!ENTITY % svg-postfw-redecl.module "IGNORE" >
-<![%svg-postfw-redecl.module;[
-%svg-postfw-redecl.mod;]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Core Attribute Module ....................................... -->
-<!ENTITY % svg-core-attrib.module "INCLUDE" >
-<![%svg-core-attrib.module;[
-<!ENTITY % svg-core-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN"
-           "svg-core-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Core Attribute Module ......................................... -->
-<!-- file: svg-core-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-core-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Core Attribute
-
-        id, xml:base, xml:lang, xml:space
-
-     This module defines the core set of attributes that can be present on
-     any element.
--->
-
-<!ENTITY % SVG.id.attrib
-    "id ID #IMPLIED"
->
-
-<!ENTITY % SVG.base.attrib
-    "xml:base %URI.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.lang.attrib
-    "xml:lang %LanguageCode.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.space.attrib
-    "xml:space ( default | preserve ) #IMPLIED"
->
-
-<!ENTITY % SVG.Core.extra.attrib "" >
-
-<!ENTITY % SVG.Core.attrib
-    "%SVG.id.attrib;
-     %SVG.base.attrib;
-     %SVG.lang.attrib;
-     %SVG.space.attrib;
-     %SVG.Core.extra.attrib;"
->
-
-<!-- end of svg-core-attrib.mod -->
-]]>
-
-<!-- Container Attribute Module .................................. -->
-<!ENTITY % svg-container-attrib.module "INCLUDE" >
-<![%svg-container-attrib.module;[
-<!ENTITY % svg-container-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN"
-           "svg-container-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Container Attribute Module .................................... -->
-<!-- file: svg-container-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-container-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Container Attribute
-
-        enable-background
-
-     This module defines the Container attribute set.
--->
-
-<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
-<!ENTITY % EnableBackgroundValue.datatype "CDATA" >
-
-<!ENTITY % SVG.enable-background.attrib
-    "enable-background %EnableBackgroundValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.Container.extra.attrib "" >
-
-<!ENTITY % SVG.Container.attrib
-    "%SVG.enable-background.attrib;
-     %SVG.Container.extra.attrib;"
->
-
-<!-- end of svg-container-attrib.mod -->
-]]>
-
-<!-- Viewport Attribute Module ................................... -->
-<!ENTITY % svg-viewport-attrib.module "INCLUDE" >
-<![%svg-viewport-attrib.module;[
-<!ENTITY % svg-viewport-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN"
-           "svg-viewport-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Viewport Attribute Module ..................................... -->
-<!-- file: svg-viewport-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-viewport-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Viewport Attribute
-
-        clip, overflow
-
-     This module defines the Viewport attribute set.
--->
-
-<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
-<!ENTITY % ClipValue.datatype "CDATA" >
-
-<!ENTITY % SVG.clip.attrib
-    "clip %ClipValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.overflow.attrib
-    "overflow ( visible | hidden | scroll | auto | inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.Viewport.extra.attrib "" >
-
-<!ENTITY % SVG.Viewport.attrib
-    "%SVG.clip.attrib;
-     %SVG.overflow.attrib;
-     %SVG.Viewport.extra.attrib;"
->
-
-<!-- end of svg-viewport-attrib.mod -->
-]]>
-
-<!-- Paint Attribute Module ...................................... -->
-<!ENTITY % svg-paint-attrib.module "INCLUDE" >
-<![%svg-paint-attrib.module;[
-<!ENTITY % svg-paint-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN"
-           "svg-paint-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Paint Attribute Module ........................................ -->
-<!-- file: svg-paint-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-paint-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Paint Attribute
-
-        fill, fill-rule, stroke, stroke-dasharray, stroke-dashoffset,
-        stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-width, color,
-        color-interpolation, color-rendering
-
-     This module defines the Paint and Color attribute sets.
--->
-
-<!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
-<!ENTITY % Paint.datatype "CDATA" >
-
-<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
-<!ENTITY % StrokeDashArrayValue.datatype "CDATA" >
-
-<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
-<!ENTITY % StrokeDashOffsetValue.datatype "CDATA" >
-
-<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
-<!ENTITY % StrokeMiterLimitValue.datatype "CDATA" >
-
-<!-- 'stroke-width' property/attribute value (e.g., <length>) -->
-<!ENTITY % StrokeWidthValue.datatype "CDATA" >
-
-<!ENTITY % SVG.fill.attrib
-    "fill %Paint.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.fill-rule.attrib
-    "fill-rule %ClipFillRule.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.stroke.attrib
-    "stroke %Paint.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-dasharray.attrib
-    "stroke-dasharray %StrokeDashArrayValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-dashoffset.attrib
-    "stroke-dashoffset %StrokeDashOffsetValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-linecap.attrib
-    "stroke-linecap ( butt | round | square | inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-linejoin.attrib
-    "stroke-linejoin ( miter | round | bevel | inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-miterlimit.attrib
-    "stroke-miterlimit %StrokeMiterLimitValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-width.attrib
-    "stroke-width %StrokeWidthValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.Paint.extra.attrib "" >
-
-<!ENTITY % SVG.Paint.attrib
-    "%SVG.fill.attrib;
-     %SVG.fill-rule.attrib;
-     %SVG.stroke.attrib;
-     %SVG.stroke-dasharray.attrib;
-     %SVG.stroke-dashoffset.attrib;
-     %SVG.stroke-linecap.attrib;
-     %SVG.stroke-linejoin.attrib;
-     %SVG.stroke-miterlimit.attrib;
-     %SVG.stroke-width.attrib;
-     %SVG.Paint.extra.attrib;"
->
-
-<!ENTITY % SVG.color.attrib
-    "color %Color.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.color-interpolation.attrib
-    "color-interpolation ( auto | sRGB | linearRGB | inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.color-rendering.attrib
-    "color-rendering ( auto | optimizeSpeed | optimizeQuality | inherit )
-                       #IMPLIED"
->
-
-<!ENTITY % SVG.Color.extra.attrib "" >
-
-<!ENTITY % SVG.Color.attrib
-    "%SVG.color.attrib;
-     %SVG.color-interpolation.attrib;
-     %SVG.color-rendering.attrib;
-     %SVG.Color.extra.attrib;"
->
-
-<!-- end of svg-paint-attrib.mod -->
-]]>
-
-<!-- Paint Opacity Attribute Module .............................. -->
-<!ENTITY % svg-opacity-attrib.module "INCLUDE" >
-<![%svg-opacity-attrib.module;[
-<!ENTITY % svg-opacity-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN"
-           "svg-opacity-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Paint Opacity Attribute Module ................................ -->
-<!-- file: svg-opacity-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-opacity-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Paint Opacity Attribute
-
-        opacity, fill-opacity, stroke-opacity
-
-     This module defines the Opacity attribute set.
--->
-
-<!ENTITY % SVG.opacity.attrib
-    "opacity %OpacityValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.fill-opacity.attrib
-    "fill-opacity %OpacityValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.stroke-opacity.attrib
-    "stroke-opacity %OpacityValue.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.Opacity.extra.attrib "" >
-
-<!ENTITY % SVG.Opacity.attrib
-    "%SVG.opacity.attrib;
-     %SVG.fill-opacity.attrib;
-     %SVG.stroke-opacity.attrib;
-     %SVG.Opacity.extra.attrib;"
->
-
-<!-- end of svg-opacity-attrib.mod -->
-]]>
-
-<!-- Graphics Attribute Module ................................... -->
-<!ENTITY % svg-graphics-attrib.module "INCLUDE" >
-<![%svg-graphics-attrib.module;[
-<!ENTITY % svg-graphics-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN"
-           "svg-graphics-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Graphics Attribute Module ..................................... -->
-<!-- file: svg-graphics-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphics-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Graphics Attribute
-
-        display, image-rendering, pointer-events, shape-rendering,
-        text-rendering, visibility
-
-     This module defines the Graphics attribute set.
--->
-
-<!ENTITY % SVG.display.attrib
-    "display ( inline | block | list-item | run-in | compact | marker |
-               table | inline-table | table-row-group | table-header-group |
-               table-footer-group | table-row | table-column-group |
-               table-column | table-cell | table-caption | none | inherit )
-               #IMPLIED"
->
-
-<!ENTITY % SVG.image-rendering.attrib
-    "image-rendering ( auto | optimizeSpeed | optimizeQuality | inherit )
-                       #IMPLIED"
->
-
-<!ENTITY % SVG.pointer-events.attrib
-    "pointer-events ( visiblePainted | visibleFill | visibleStroke | visible |
-                      painted | fill | stroke | all | none | inherit )
-                      #IMPLIED"
->
-
-<!ENTITY % SVG.shape-rendering.attrib
-    "shape-rendering ( auto | optimizeSpeed | crispEdges | geometricPrecision |
-                       inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.text-rendering.attrib
-    "text-rendering ( auto | optimizeSpeed | optimizeLegibility |
-                      geometricPrecision | inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.visibility.attrib
-    "visibility ( visible | hidden | inherit ) #IMPLIED"
->
-
-<!ENTITY % SVG.Graphics.extra.attrib "" >
-
-<!ENTITY % SVG.Graphics.attrib
-    "%SVG.display.attrib;
-     %SVG.image-rendering.attrib;
-     %SVG.pointer-events.attrib;
-     %SVG.shape-rendering.attrib;
-     %SVG.text-rendering.attrib;
-     %SVG.visibility.attrib;
-     %SVG.Graphics.extra.attrib;"
->
-
-<!-- end of svg-graphics-attrib.mod -->
-]]>
-
-<!-- Document Events Attribute Module ............................ -->
-<!ENTITY % svg-docevents-attrib.module "INCLUDE" >
-<![%svg-docevents-attrib.module;[
-<!ENTITY % svg-docevents-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN"
-           "svg-docevents-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Document Events Attribute Module .............................. -->
-<!-- file: svg-docevents-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-docevents-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Document Events Attribute
-
-        onunload, onabort, onerror, onresize, onscroll, onzoom
-
-     This module defines the DocumentEvents attribute set.
--->
-
-<!ENTITY % SVG.onunload.attrib
-    "onunload %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onabort.attrib
-    "onabort %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onerror.attrib
-    "onerror %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onresize.attrib
-    "onresize %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onscroll.attrib
-    "onscroll %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onzoom.attrib
-    "onzoom %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.DocumentEvents.extra.attrib "" >
-
-<!ENTITY % SVG.DocumentEvents.attrib
-    "%SVG.onunload.attrib;
-     %SVG.onabort.attrib;
-     %SVG.onerror.attrib;
-     %SVG.onresize.attrib;
-     %SVG.onscroll.attrib;
-     %SVG.onzoom.attrib;
-     %SVG.DocumentEvents.extra.attrib;"
->
-
-<!-- end of svg-docevents-attrib.mod -->
-]]>
-
-<!-- Graphical Element Events Attribute Module ................... -->
-<!ENTITY % svg-graphevents-attrib.module "INCLUDE" >
-<![%svg-graphevents-attrib.module;[
-<!ENTITY % svg-graphevents-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN"
-           "svg-graphevents-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Graphical Element Events Attribute Module ..................... -->
-<!-- file: svg-graphevents-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphevents-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Graphical Element Events Attribute
-
-        onfocusin, onfocusout, onactivate, onclick, onmousedown, onmouseup,
-        onmouseover, onmousemove, onmouseout, onload
-
-     This module defines the GraphicalEvents attribute set.
--->
-
-<!ENTITY % SVG.onfocusin.attrib
-    "onfocusin %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onfocusout.attrib
-    "onfocusout %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onactivate.attrib
-    "onactivate %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onclick.attrib
-    "onclick %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onmousedown.attrib
-    "onmousedown %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onmouseup.attrib
-    "onmouseup %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onmouseover.attrib
-    "onmouseover %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onmousemove.attrib
-    "onmousemove %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onmouseout.attrib
-    "onmouseout %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onload.attrib
-    "onload %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.GraphicalEvents.extra.attrib "" >
-
-<!ENTITY % SVG.GraphicalEvents.attrib
-    "%SVG.onfocusin.attrib;
-     %SVG.onfocusout.attrib;
-     %SVG.onactivate.attrib;
-     %SVG.onclick.attrib;
-     %SVG.onmousedown.attrib;
-     %SVG.onmouseup.attrib;
-     %SVG.onmouseover.attrib;
-     %SVG.onmousemove.attrib;
-     %SVG.onmouseout.attrib;
-     %SVG.onload.attrib;
-     %SVG.GraphicalEvents.extra.attrib;"
->
-
-<!-- end of svg-graphevents-attrib.mod -->
-]]>
-
-<!-- Animation Events Attribute Module ........................... -->
-<!ENTITY % svg-animevents-attrib.module "INCLUDE" >
-<![%svg-animevents-attrib.module;[
-<!ENTITY % svg-animevents-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN"
-           "svg-animevents-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Animation Events Attribute Module ............................. -->
-<!-- file: svg-animevents-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animevents-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- Animation Events Attribute
-
-        onbegin, onend, onrepeat, onload
-
-     This module defines the AnimationEvents attribute set.
--->
-
-<!ENTITY % SVG.onbegin.attrib
-    "onbegin %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onend.attrib
-    "onend %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onrepeat.attrib
-    "onrepeat %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.onload.attrib
-    "onload %Script.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.AnimationEvents.extra.attrib "" >
-
-<!ENTITY % SVG.AnimationEvents.attrib
-    "%SVG.onbegin.attrib;
-     %SVG.onend.attrib;
-     %SVG.onrepeat.attrib;
-     %SVG.onload.attrib;
-     %SVG.AnimationEvents.extra.attrib;"
->
-
-<!-- end of svg-animevents-attrib.mod -->
-]]>
-
-<!-- XLink Attribute Module ...................................... -->
-<!ENTITY % svg-xlink-attrib.module "INCLUDE" >
-<![%svg-xlink-attrib.module;[
-<!ENTITY % svg-xlink-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN"
-           "svg-xlink-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 XLink Attribute Module ........................................ -->
-<!-- file: svg-xlink-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-xlink-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- XLink Attribute
-
-       type, href, role, arcrole, title, show, actuate
-
-     This module defines the XLink, XLinkRequired, XLinkEmbed, and
-     XLinkReplace attribute set.
--->
-
-<!ENTITY % SVG.XLink.extra.attrib "" >
-
-<!ENTITY % SVG.XLink.attrib
-    "%XLINK.xmlns.attrib;
-     %XLINK.pfx;type ( simple ) #FIXED 'simple'
-     %XLINK.pfx;href %URI.datatype; #IMPLIED
-     %XLINK.pfx;role %URI.datatype; #IMPLIED
-     %XLINK.pfx;arcrole %URI.datatype; #IMPLIED
-     %XLINK.pfx;title CDATA #IMPLIED
-     %XLINK.pfx;show ( other ) 'other'
-     %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad'
-     %SVG.XLink.extra.attrib;"
->
-
-<!ENTITY % SVG.XLinkRequired.extra.attrib "" >
-
-<!ENTITY % SVG.XLinkRequired.attrib
-    "%XLINK.xmlns.attrib;
-     %XLINK.pfx;type ( simple ) #FIXED 'simple'
-     %XLINK.pfx;href %URI.datatype; #REQUIRED
-     %XLINK.pfx;role %URI.datatype; #IMPLIED
-     %XLINK.pfx;arcrole %URI.datatype; #IMPLIED
-     %XLINK.pfx;title CDATA #IMPLIED
-     %XLINK.pfx;show ( other ) 'other'
-     %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad'
-     %SVG.XLinkRequired.extra.attrib;"
->
-
-<!ENTITY % SVG.XLinkEmbed.extra.attrib "" >
-
-<!ENTITY % SVG.XLinkEmbed.attrib
-    "%XLINK.xmlns.attrib;
-     %XLINK.pfx;type ( simple ) #FIXED 'simple'
-     %XLINK.pfx;href %URI.datatype; #REQUIRED
-     %XLINK.pfx;role %URI.datatype; #IMPLIED
-     %XLINK.pfx;arcrole %URI.datatype; #IMPLIED
-     %XLINK.pfx;title CDATA #IMPLIED
-     %XLINK.pfx;show ( embed ) 'embed'
-     %XLINK.pfx;actuate ( onLoad ) #FIXED 'onLoad'
-     %SVG.XLinkEmbed.extra.attrib;"
->
-
-<!ENTITY % SVG.XLinkReplace.extra.attrib "" >
-
-<!ENTITY % SVG.XLinkReplace.attrib
-    "%XLINK.xmlns.attrib;
-     %XLINK.pfx;type ( simple ) #FIXED 'simple'
-     %XLINK.pfx;href %URI.datatype; #REQUIRED
-     %XLINK.pfx;role %URI.datatype; #IMPLIED
-     %XLINK.pfx;arcrole %URI.datatype; #IMPLIED
-     %XLINK.pfx;title CDATA #IMPLIED
-     %XLINK.pfx;show ( new | replace ) 'replace'
-     %XLINK.pfx;actuate ( onRequest ) #FIXED 'onRequest'
-     %SVG.XLinkReplace.extra.attrib;"
->
-
-<!-- end of svg-xlink-attrib.mod -->
-]]>
-
-<!-- External Resources Attribute Module ......................... -->
-<!ENTITY % svg-extresources-attrib.module "INCLUDE" >
-<![%svg-extresources-attrib.module;[
-<!ENTITY % svg-extresources-attrib.mod
-    PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN"
-           "svg-extresources-attrib.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 External Resources Attribute Module ........................... -->
-<!-- file: svg-extresources-attrib.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extresources-attrib.mod"
-
-     ....................................................................... -->
-
-<!-- External Resources Attribute
-
-        externalResourcesRequired
-
-     This module defines the External attribute set.
--->
-
-<!ENTITY % SVG.externalResourcesRequired.attrib
-    "externalResourcesRequired %Boolean.datatype; #IMPLIED"
->
-
-<!ENTITY % SVG.External.extra.attrib "" >
-
-<!ENTITY % SVG.External.attrib
-    "%SVG.externalResourcesRequired.attrib;
-     %SVG.External.extra.attrib;"
->
-
-<!-- end of svg-extresources-attrib.mod -->
-]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Structure Module ............................................ -->
-<!ENTITY % svg-structure.module "INCLUDE" >
-<![%svg-structure.module;[
-<!ENTITY % svg-structure.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN"
-           "svg-structure.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Structure Module .............................................. -->
-<!-- file: svg-structure.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-structure.mod"
-
-     ....................................................................... -->
-
-<!-- Structure
-
-        svg, g, defs, desc, title, metadata, symbol, use
-
-     This module declares the major structural elements and their attributes.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.svg.qname "svg" >
-<!ENTITY % SVG.g.qname "g" >
-<!ENTITY % SVG.defs.qname "defs" >
-<!ENTITY % SVG.desc.qname "desc" >
-<!ENTITY % SVG.title.qname "title" >
-<!ENTITY % SVG.metadata.qname "metadata" >
-<!ENTITY % SVG.symbol.qname "symbol" >
-<!ENTITY % SVG.use.qname "use" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.DocumentEvents.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLinkEmbed.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Description.class ............................. -->
-
-<!ENTITY % SVG.Description.extra.class "" >
-
-<!ENTITY % SVG.Description.class
-    "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname;
-     %SVG.Description.extra.class;"
->
-
-<!-- SVG.Use.class ..................................... -->
-
-<!ENTITY % SVG.Use.extra.class "" >
-
-<!ENTITY % SVG.Use.class
-    "| %SVG.use.qname; %SVG.Use.extra.class;"
->
-
-<!-- SVG.Structure.class ............................... -->
-
-<!ENTITY % SVG.Structure.extra.class "" >
-
-<!ENTITY % SVG.Structure.class
-    "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname;
-       %SVG.Use.class; %SVG.Structure.extra.class;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- svg: SVG Document Element ......................... -->
-
-<!ENTITY % SVG.svg.element "INCLUDE" >
-<![%SVG.svg.element;[
-<!ENTITY % SVG.svg.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.svg.qname; %SVG.svg.content; >
-<!-- end of SVG.svg.element -->]]>
-
-<!ENTITY % SVG.svg.attlist "INCLUDE" >
-<![%SVG.svg.attlist;[
-<!ATTLIST %SVG.svg.qname;
-    %SVG.xmlns.attrib;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.DocumentEvents.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #IMPLIED
-    height %Length.datatype; #IMPLIED
-    viewBox %ViewBoxSpec.datatype; #IMPLIED
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
-    zoomAndPan ( disable | magnify ) 'magnify'
-    version %Number.datatype; #FIXED '1.1'
-    baseProfile %Text.datatype; #IMPLIED
-    contentScriptType %ContentType.datatype; 'text/ecmascript'
-    contentStyleType %ContentType.datatype; 'text/css'
->
-<!-- end of SVG.svg.attlist -->]]>
-
-<!-- g: Group Element .................................. -->
-
-<!ENTITY % SVG.g.element "INCLUDE" >
-<![%SVG.g.element;[
-<!ENTITY % SVG.g.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.g.qname; %SVG.g.content; >
-<!-- end of SVG.g.element -->]]>
-
-<!ENTITY % SVG.g.attlist "INCLUDE" >
-<![%SVG.g.attlist;[
-<!ATTLIST %SVG.g.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.External.attrib;
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.g.attlist -->]]>
-
-<!-- defs: Definisions Element ......................... -->
-
-<!ENTITY % SVG.defs.element "INCLUDE" >
-<![%SVG.defs.element;[
-<!ENTITY % SVG.defs.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.defs.qname; %SVG.defs.content; >
-<!-- end of SVG.defs.element -->]]>
-
-<!ENTITY % SVG.defs.attlist "INCLUDE" >
-<![%SVG.defs.attlist;[
-<!ATTLIST %SVG.defs.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.External.attrib;
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.defs.attlist -->]]>
-
-<!-- desc: Description Element ......................... -->
-
-<!ENTITY % SVG.desc.element "INCLUDE" >
-<![%SVG.desc.element;[
-<!ENTITY % SVG.desc.content "( #PCDATA )" >
-<!ELEMENT %SVG.desc.qname; %SVG.desc.content; >
-<!-- end of SVG.desc.element -->]]>
-
-<!ENTITY % SVG.desc.attlist "INCLUDE" >
-<![%SVG.desc.attlist;[
-<!ATTLIST %SVG.desc.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
->
-<!-- end of SVG.desc.attlist -->]]>
-
-<!-- title: Title Element .............................. -->
-
-<!ENTITY % SVG.title.element "INCLUDE" >
-<![%SVG.title.element;[
-<!ENTITY % SVG.title.content "( #PCDATA )" >
-<!ELEMENT %SVG.title.qname; %SVG.title.content; >
-<!-- end of SVG.title.element -->]]>
-
-<!ENTITY % SVG.title.attlist "INCLUDE" >
-<![%SVG.title.attlist;[
-<!ATTLIST %SVG.title.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
->
-<!-- end of SVG.title.attlist -->]]>
-
-<!-- metadata: Metadata Element ........................ -->
-
-<!ENTITY % SVG.metadata.element "INCLUDE" >
-<![%SVG.metadata.element;[
-<!ENTITY % SVG.metadata.content "EMPTY" >
-<!ELEMENT %SVG.metadata.qname; %SVG.metadata.content; >
-<!-- end of SVG.metadata.element -->]]>
-
-<!ENTITY % SVG.metadata.attlist "INCLUDE" >
-<![%SVG.metadata.attlist;[
-<!ATTLIST %SVG.metadata.qname;
-    %SVG.Core.attrib;
->
-<!-- end of SVG.metadata.attlist -->]]>
-
-<!-- symbol: Symbol Element ............................ -->
-
-<!ENTITY % SVG.symbol.element "INCLUDE" >
-<![%SVG.symbol.element;[
-<!ENTITY % SVG.symbol.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.symbol.qname; %SVG.symbol.content; >
-<!-- end of SVG.symbol.element -->]]>
-
-<!ENTITY % SVG.symbol.attlist "INCLUDE" >
-<![%SVG.symbol.attlist;[
-<!ATTLIST %SVG.symbol.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.External.attrib;
-    viewBox %ViewBoxSpec.datatype; #IMPLIED
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
->
-<!-- end of SVG.symbol.attlist -->]]>
-
-<!-- use: Use Element .................................. -->
-
-<!ENTITY % SVG.use.element "INCLUDE" >
-<![%SVG.use.element;[
-<!ENTITY % SVG.use.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.use.qname; %SVG.use.content; >
-<!-- end of SVG.use.element -->]]>
-
-<!ENTITY % SVG.use.attlist "INCLUDE" >
-<![%SVG.use.attlist;[
-<!ATTLIST %SVG.use.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.XLinkEmbed.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #IMPLIED
-    height %Length.datatype; #IMPLIED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.use.attlist -->]]>
-
-<!-- end of svg-structure.mod -->
-]]>
-
-<!-- Conditional Processing Module ............................... -->
-<!ENTITY % svg-conditional.module "INCLUDE" >
-<![%svg-conditional.module;[
-<!ENTITY % svg-conditional.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN"
-           "svg-conditional.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Conditional Processing Module ................................. -->
-<!-- file: svg-conditional.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-conditional.mod"
-
-     ....................................................................... -->
-
-<!-- Conditional Processing
-
-        switch
-
-     This module declares markup to provide support for conditional processing.
--->
-
-<!-- extension list specification -->
-<!ENTITY % ExtensionList.datatype "CDATA" >
-
-<!-- feature list specification -->
-<!ENTITY % FeatureList.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.switch.qname "switch" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Conditional.class ............................. -->
-
-<!ENTITY % SVG.Conditional.extra.class "" >
-
-<!ENTITY % SVG.Conditional.class
-    "| %SVG.switch.qname; %SVG.Conditional.extra.class;"
->
-
-<!-- SVG.Conditional.attrib ............................ -->
-
-<!ENTITY % SVG.Conditional.extra.attrib "" >
-
-<!ENTITY % SVG.Conditional.attrib
-    "requiredFeatures %FeatureList.datatype; #IMPLIED
-     requiredExtensions %ExtensionList.datatype; #IMPLIED
-     systemLanguage %LanguageCodes.datatype; #IMPLIED
-     %SVG.Conditional.extra.attrib;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- switch: Switch Element ............................ -->
-
-<!ENTITY % SVG.switch.element "INCLUDE" >
-<![%SVG.switch.element;[
-<!ENTITY % SVG.switch.content
-    "(( %SVG.Description.class; )*, ( %SVG.svg.qname; | %SVG.g.qname;
-      | %SVG.use.qname; | %SVG.text.qname; | %SVG.Animation.class;
-        %SVG.Conditional.class; %SVG.Image.class; %SVG.Shape.class;
-        %SVG.Hyperlink.class; %SVG.Extensibility.class; )*)"
->
-<!ELEMENT %SVG.switch.qname; %SVG.switch.content; >
-<!-- end of SVG.switch.element -->]]>
-
-<!ENTITY % SVG.switch.attlist "INCLUDE" >
-<![%SVG.switch.attlist;[
-<!ATTLIST %SVG.switch.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.External.attrib;
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.switch.attlist -->]]>
-
-<!-- end of svg-conditional.mod -->
-]]>
-
-<!-- Image Module ................................................ -->
-<!ENTITY % svg-image.module "INCLUDE" >
-<![%svg-image.module;[
-<!ENTITY % svg-image.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN"
-           "svg-image.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Image Module .................................................. -->
-<!-- file: svg-image.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-image.mod"
-
-     ....................................................................... -->
-
-<!-- Image
-
-        image
-
-     This module declares markup to provide support for image.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.image.qname "image" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLinkEmbed.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Image.class ................................... -->
-
-<!ENTITY % SVG.Image.extra.class "" >
-
-<!ENTITY % SVG.Image.class
-    "| %SVG.image.qname; %SVG.Image.extra.class;"
->
-
-<!-- image: Image Element .............................. -->
-
-<!ENTITY % SVG.image.element "INCLUDE" >
-<![%SVG.image.element;[
-<!ENTITY % SVG.image.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.image.qname; %SVG.image.content; >
-<!-- end of SVG.image.element -->]]>
-
-<!ENTITY % SVG.image.attlist "INCLUDE" >
-<![%SVG.image.attlist;[
-<!ATTLIST %SVG.image.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Viewport.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Profile.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.XLinkEmbed.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #REQUIRED
-    height %Length.datatype; #REQUIRED
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.image.attlist -->]]>
-
-<!-- end of svg-image.mod -->
-]]>
-
-<!-- Style Module ................................................ -->
-<!ENTITY % svg-style.module "INCLUDE" >
-<![%svg-style.module;[
-<!ENTITY % svg-style.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN"
-           "svg-style.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Style Module .................................................. -->
-<!-- file: svg-style.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-style.mod"
-
-     ....................................................................... -->
-
-<!-- Style
-
-        style
-
-     This module declares markup to provide support for stylesheet.
--->
-
-<!-- list of classes -->
-<!ENTITY % ClassList.datatype "CDATA" >
-
-<!-- comma-separated list of media descriptors. -->
-<!ENTITY % MediaDesc.datatype "CDATA" >
-
-<!-- style sheet data -->
-<!ENTITY % StyleSheet.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.style.qname "style" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-
-<!-- SVG.Style.class ................................... -->
-
-<!ENTITY % SVG.Style.extra.class "" >
-
-<!ENTITY % SVG.Style.class
-    "| %SVG.style.qname; %SVG.Style.extra.class;"
->
-
-<!-- SVG.Style.attrib .................................. -->
-
-<!ENTITY % SVG.Style.extra.attrib "" >
-
-<!ENTITY % SVG.Style.attrib
-    "style %StyleSheet.datatype; #IMPLIED
-     class %ClassList.datatype; #IMPLIED
-     %SVG.Style.extra.attrib;"
->
-
-<!-- style: Style Element .............................. -->
-
-<!ENTITY % SVG.style.element "INCLUDE" >
-<![%SVG.style.element;[
-<!ENTITY % SVG.style.content "( #PCDATA )" >
-<!ELEMENT %SVG.style.qname; %SVG.style.content; >
-<!-- end of SVG.style.element -->]]>
-
-<!ENTITY % SVG.style.attlist "INCLUDE" >
-<![%SVG.style.attlist;[
-<!ATTLIST %SVG.style.qname;
-    xml:space ( preserve ) #FIXED 'preserve'
-    %SVG.Core.attrib;
-    type %ContentType.datatype; #REQUIRED
-    media %MediaDesc.datatype; #IMPLIED
-    title %Text.datatype; #IMPLIED
->
-<!-- end of SVG.style.attlist -->]]>
-
-<!-- end of svg-style.mod -->
-]]>
-
-<!-- Shape Module ................................................ -->
-<!ENTITY % svg-shape.module "INCLUDE" >
-<![%svg-shape.module;[
-<!ENTITY % svg-shape.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN"
-           "svg-shape.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Shape Module .................................................. -->
-<!-- file: svg-shape.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-shape.mod"
-
-     ....................................................................... -->
-
-<!-- Shape
-
-        path, rect, circle, line, ellipse, polyline, polygon
-
-     This module declares markup to provide support for graphical shapes.
--->
-
-<!-- a list of points -->
-<!ENTITY % Points.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.path.qname "path" >
-<!ENTITY % SVG.rect.qname "rect" >
-<!ENTITY % SVG.circle.qname "circle" >
-<!ENTITY % SVG.line.qname "line" >
-<!ENTITY % SVG.ellipse.qname "ellipse" >
-<!ENTITY % SVG.polyline.qname "polyline" >
-<!ENTITY % SVG.polygon.qname "polygon" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Shape.class ................................... -->
-
-<!ENTITY % SVG.Shape.extra.class "" >
-
-<!ENTITY % SVG.Shape.class
-    "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname;
-     | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname;
-     | %SVG.polygon.qname; %SVG.Shape.extra.class;"
->
-
-<!-- path: Path Element ................................ -->
-
-<!ENTITY % SVG.path.element "INCLUDE" >
-<![%SVG.path.element;[
-<!ENTITY % SVG.path.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.path.qname; %SVG.path.content; >
-<!-- end of SVG.path.element -->]]>
-
-<!ENTITY % SVG.path.attlist "INCLUDE" >
-<![%SVG.path.attlist;[
-<!ATTLIST %SVG.path.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Marker.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    d %PathData.datatype; #REQUIRED
-    pathLength %Number.datatype; #IMPLIED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.path.attlist -->]]>
-
-<!-- rect: Rectangle Element ........................... -->
-
-<!ENTITY % SVG.rect.element "INCLUDE" >
-<![%SVG.rect.element;[
-<!ENTITY % SVG.rect.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.rect.qname; %SVG.rect.content; >
-<!-- end of SVG.rect.element -->]]>
-
-<!ENTITY % SVG.rect.attlist "INCLUDE" >
-<![%SVG.rect.attlist;[
-<!ATTLIST %SVG.rect.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #REQUIRED
-    height %Length.datatype; #REQUIRED
-    rx %Length.datatype; #IMPLIED
-    ry %Length.datatype; #IMPLIED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.rect.attlist -->]]>
-
-<!-- circle: Circle Element ............................ -->
-
-<!ENTITY % SVG.circle.element "INCLUDE" >
-<![%SVG.circle.element;[
-<!ENTITY % SVG.circle.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.circle.qname; %SVG.circle.content; >
-<!-- end of SVG.circle.element -->]]>
-
-<!ENTITY % SVG.circle.attlist "INCLUDE" >
-<![%SVG.circle.attlist;[
-<!ATTLIST %SVG.circle.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    cx %Coordinate.datatype; #IMPLIED
-    cy %Coordinate.datatype; #IMPLIED
-    r %Length.datatype; #REQUIRED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.circle.attlist -->]]>
-
-<!-- line: Line Element ................................ -->
-
-<!ENTITY % SVG.line.element "INCLUDE" >
-<![%SVG.line.element;[
-<!ENTITY % SVG.line.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.line.qname; %SVG.line.content; >
-<!-- end of SVG.line.element -->]]>
-
-<!ENTITY % SVG.line.attlist "INCLUDE" >
-<![%SVG.line.attlist;[
-<!ATTLIST %SVG.line.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Marker.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    x1 %Coordinate.datatype; #IMPLIED
-    y1 %Coordinate.datatype; #IMPLIED
-    x2 %Coordinate.datatype; #IMPLIED
-    y2 %Coordinate.datatype; #IMPLIED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.line.attlist -->]]>
-
-<!-- ellipse: Ellipse Element .......................... -->
-
-<!ENTITY % SVG.ellipse.element "INCLUDE" >
-<![%SVG.ellipse.element;[
-<!ENTITY % SVG.ellipse.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.ellipse.qname; %SVG.ellipse.content; >
-<!-- end of SVG.ellipse.element -->]]>
-
-<!ENTITY % SVG.ellipse.attlist "INCLUDE" >
-<![%SVG.ellipse.attlist;[
-<!ATTLIST %SVG.ellipse.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    cx %Coordinate.datatype; #IMPLIED
-    cy %Coordinate.datatype; #IMPLIED
-    rx %Length.datatype; #REQUIRED
-    ry %Length.datatype; #REQUIRED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.ellipse.attlist -->]]>
-
-<!-- polyline: Polyline Element ........................ -->
-
-<!ENTITY % SVG.polyline.element "INCLUDE" >
-<![%SVG.polyline.element;[
-<!ENTITY % SVG.polyline.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.polyline.qname; %SVG.polyline.content; >
-<!-- end of SVG.polyline.element -->]]>
-
-<!ENTITY % SVG.polyline.attlist "INCLUDE" >
-<![%SVG.polyline.attlist;[
-<!ATTLIST %SVG.polyline.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Marker.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    points %Points.datatype; #REQUIRED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.polyline.attlist -->]]>
-
-<!-- polygon: Polygon Element .......................... -->
-
-<!ENTITY % SVG.polygon.element "INCLUDE" >
-<![%SVG.polygon.element;[
-<!ENTITY % SVG.polygon.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; )*)"
->
-<!ELEMENT %SVG.polygon.qname; %SVG.polygon.content; >
-<!-- end of SVG.polygon.element -->]]>
-
-<!ENTITY % SVG.polygon.attlist "INCLUDE" >
-<![%SVG.polygon.attlist;[
-<!ATTLIST %SVG.polygon.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Marker.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    points %Points.datatype; #REQUIRED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.polygon.attlist -->]]>
-
-<!-- end of svg-shape.mod -->
-]]>
-
-<!-- Text Module ................................................. -->
-<!ENTITY % svg-text.module "INCLUDE" >
-<![%svg-text.module;[
-<!ENTITY % svg-text.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN"
-           "svg-text.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Text Module ................................................... -->
-<!-- file: svg-text.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-text.mod"
-
-     ....................................................................... -->
-
-<!-- Text
-
-        text, tspan, tref, textPath, altGlyph, altGlyphDef, altGlyphItem,
-        glyphRef
-
-     This module declares markup to provide support for alternate glyph.
--->
-
-<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
-<!ENTITY % BaselineShiftValue.datatype "CDATA" >
-
-<!-- 'font-family' property/attribute value (i.e., list of fonts) -->
-<!ENTITY % FontFamilyValue.datatype "CDATA" >
-
-<!-- 'font-size' property/attribute value -->
-<!ENTITY % FontSizeValue.datatype "CDATA" >
-
-<!-- 'font-size-adjust' property/attribute value -->
-<!ENTITY % FontSizeAdjustValue.datatype "CDATA" >
-
-<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
-<!ENTITY % GlyphOrientationHorizontalValue.datatype "CDATA" >
-
-<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
-<!ENTITY % GlyphOrientationVerticalValue.datatype "CDATA" >
-
-<!-- 'kerning' property/attribute value (e.g., 'auto', <length>) -->
-<!ENTITY % KerningValue.datatype "CDATA" >
-
-<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., 'normal', <length>) -->
-<!ENTITY % SpacingValue.datatype "CDATA" >
-
-<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
-<!ENTITY % TextDecorationValue.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.text.qname "text" >
-<!ENTITY % SVG.tspan.qname "tspan" >
-<!ENTITY % SVG.tref.qname "tref" >
-<!ENTITY % SVG.textPath.qname "textPath" >
-<!ENTITY % SVG.altGlyph.qname "altGlyph" >
-<!ENTITY % SVG.altGlyphDef.qname "altGlyphDef" >
-<!ENTITY % SVG.altGlyphItem.qname "altGlyphItem" >
-<!ENTITY % SVG.glyphRef.qname "glyphRef" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-<!ENTITY % SVG.XLinkRequired.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Text.class .................................... -->
-
-<!ENTITY % SVG.Text.extra.class "" >
-
-<!ENTITY % SVG.Text.class
-    "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;"
->
-
-<!-- SVG.TextContent.class ............................. -->
-
-<!ENTITY % SVG.TextContent.extra.class "" >
-
-<!ENTITY % SVG.TextContent.class
-    "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname;
-     | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;"
->
-
-<!-- SVG.Text.attrib ................................... -->
-
-<!ENTITY % SVG.Text.extra.attrib "" >
-
-<!ENTITY % SVG.Text.attrib
-    "writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED
-     %SVG.Text.extra.attrib;"
->
-
-<!-- SVG.TextContent.attrib ............................ -->
-
-<!ENTITY % SVG.TextContent.extra.attrib "" >
-
-<!ENTITY % SVG.TextContent.attrib
-    "alignment-baseline ( auto | baseline | before-edge | text-before-edge |
-                          middle | central | after-edge | text-after-edge |
-                          ideographic | alphabetic | hanging | mathematical |
-                          inherit ) #IMPLIED
-     baseline-shift %BaselineShiftValue.datatype; #IMPLIED
-     direction ( ltr | rtl | inherit ) #IMPLIED
-     dominant-baseline ( auto | use-script | no-change | reset-size |
-                         ideographic | alphabetic | hanging | mathematical |
-                         central | middle | text-after-edge | text-before-edge |
-                         inherit ) #IMPLIED
-     glyph-orientation-horizontal %GlyphOrientationHorizontalValue.datatype;
-                                  #IMPLIED
-     glyph-orientation-vertical %GlyphOrientationVerticalValue.datatype;
-                                #IMPLIED
-     kerning %KerningValue.datatype; #IMPLIED
-     letter-spacing %SpacingValue.datatype; #IMPLIED
-     text-anchor ( start | middle | end | inherit ) #IMPLIED
-     text-decoration %TextDecorationValue.datatype; #IMPLIED
-     unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED
-     word-spacing %SpacingValue.datatype; #IMPLIED
-     %SVG.TextContent.extra.attrib;"
->
-
-<!-- SVG.Font.attrib ................................... -->
-
-<!ENTITY % SVG.Font.extra.attrib "" >
-
-<!ENTITY % SVG.Font.attrib
-    "font-family %FontFamilyValue.datatype; #IMPLIED
-     font-size %FontSizeValue.datatype; #IMPLIED
-     font-size-adjust %FontSizeAdjustValue.datatype; #IMPLIED
-     font-stretch ( normal | wider | narrower | ultra-condensed |
-                    extra-condensed | condensed | semi-condensed |
-                    semi-expanded | expanded | extra-expanded |
-                    ultra-expanded | inherit ) #IMPLIED
-     font-style ( normal | italic | oblique | inherit ) #IMPLIED
-     font-variant ( normal | small-caps | inherit ) #IMPLIED
-     font-weight ( normal | bold | bolder | lighter | 100 | 200 | 300 | 400 |
-                   500 | 600 | 700 | 800 | 900 | inherit ) #IMPLIED
-     %SVG.Font.extra.attrib;"
->
-
-<!-- text: Text Element ................................ -->
-
-<!ENTITY % SVG.text.element "INCLUDE" >
-<![%SVG.text.element;[
-<!ENTITY % SVG.text.content
-    "( #PCDATA | %SVG.Description.class; | %SVG.Animation.class;
-       %SVG.TextContent.class; %SVG.Hyperlink.class; )*"
->
-<!ELEMENT %SVG.text.qname; %SVG.text.content; >
-<!-- end of SVG.text.element -->]]>
-
-<!ENTITY % SVG.text.attlist "INCLUDE" >
-<![%SVG.text.attlist;[
-<!ATTLIST %SVG.text.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Text.attrib;
-    %SVG.TextContent.attrib;
-    %SVG.Font.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    x %Coordinates.datatype; #IMPLIED
-    y %Coordinates.datatype; #IMPLIED
-    dx %Lengths.datatype; #IMPLIED
-    dy %Lengths.datatype; #IMPLIED
-    rotate %Numbers.datatype; #IMPLIED
-    textLength %Length.datatype; #IMPLIED
-    lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.text.attlist -->]]>
-
-<!-- tspan: Text Span Element .......................... -->
-
-<!ENTITY % SVG.tspan.element "INCLUDE" >
-<![%SVG.tspan.element;[
-<!ENTITY % SVG.tspan.content
-    "( #PCDATA | %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.altGlyph.qname;
-     | %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname;
-     | %SVG.Description.class; %SVG.Hyperlink.class; )*"
->
-<!ELEMENT %SVG.tspan.qname; %SVG.tspan.content; >
-<!-- end of SVG.tspan.element -->]]>
-
-<!ENTITY % SVG.tspan.attlist "INCLUDE" >
-<![%SVG.tspan.attlist;[
-<!ATTLIST %SVG.tspan.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.TextContent.attrib;
-    %SVG.Font.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    x %Coordinates.datatype; #IMPLIED
-    y %Coordinates.datatype; #IMPLIED
-    dx %Lengths.datatype; #IMPLIED
-    dy %Lengths.datatype; #IMPLIED
-    rotate %Numbers.datatype; #IMPLIED
-    textLength %Length.datatype; #IMPLIED
-    lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED
->
-<!-- end of SVG.tspan.attlist -->]]>
-
-<!-- tref: Text Reference Element ...................... -->
-
-<!ENTITY % SVG.tref.element "INCLUDE" >
-<![%SVG.tref.element;[
-<!ENTITY % SVG.tref.content
-    "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname;
-     | %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.tref.qname; %SVG.tref.content; >
-<!-- end of SVG.tref.element -->]]>
-
-<!ENTITY % SVG.tref.attlist "INCLUDE" >
-<![%SVG.tref.attlist;[
-<!ATTLIST %SVG.tref.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.TextContent.attrib;
-    %SVG.Font.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.XLinkRequired.attrib;
-    %SVG.External.attrib;
-    x %Coordinates.datatype; #IMPLIED
-    y %Coordinates.datatype; #IMPLIED
-    dx %Lengths.datatype; #IMPLIED
-    dy %Lengths.datatype; #IMPLIED
-    rotate %Numbers.datatype; #IMPLIED
-    textLength %Length.datatype; #IMPLIED
-    lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED
->
-<!-- end of SVG.tref.attlist -->]]>
-
-<!-- textPath: Text Path Element ....................... -->
-
-<!ENTITY % SVG.textPath.element "INCLUDE" >
-<![%SVG.textPath.element;[
-<!ENTITY % SVG.textPath.content
-    "( #PCDATA | %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.altGlyph.qname;
-     | %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname;
-     | %SVG.Description.class; %SVG.Hyperlink.class; )*"
->
-<!ELEMENT %SVG.textPath.qname; %SVG.textPath.content; >
-<!-- end of SVG.textPath.element -->]]>
-
-<!ENTITY % SVG.textPath.attlist "INCLUDE" >
-<![%SVG.textPath.attlist;[
-<!ATTLIST %SVG.textPath.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.TextContent.attrib;
-    %SVG.Font.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.XLinkRequired.attrib;
-    %SVG.External.attrib;
-    startOffset %Length.datatype; #IMPLIED
-    textLength %Length.datatype; #IMPLIED
-    lengthAdjust ( spacing | spacingAndGlyphs ) #IMPLIED
-    method ( align | stretch ) #IMPLIED
-    spacing ( auto | exact ) #IMPLIED
->
-<!-- end of SVG.textPath.attlist -->]]>
-
-<!-- altGlyph: Alternate Glyph Element ................. -->
-
-<!ENTITY % SVG.altGlyph.element "INCLUDE" >
-<![%SVG.altGlyph.element;[
-<!ENTITY % SVG.altGlyph.content
-    "( #PCDATA )"
->
-<!ELEMENT %SVG.altGlyph.qname; %SVG.altGlyph.content; >
-<!-- end of SVG.altGlyph.element -->]]>
-
-<!ENTITY % SVG.altGlyph.attlist "INCLUDE" >
-<![%SVG.altGlyph.attlist;[
-<!ATTLIST %SVG.altGlyph.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.TextContent.attrib;
-    %SVG.Font.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.XLink.attrib;
-    %SVG.External.attrib;
-    x %Coordinates.datatype; #IMPLIED
-    y %Coordinates.datatype; #IMPLIED
-    dx %Lengths.datatype; #IMPLIED
-    dy %Lengths.datatype; #IMPLIED
-    glyphRef CDATA #IMPLIED
-    format CDATA #IMPLIED
-    rotate %Numbers.datatype; #IMPLIED
->
-<!-- end of SVG.altGlyph.attlist -->]]>
-
-<!-- altGlyphDef: Alternate Glyph Definition Element ... -->
-
-<!ENTITY % SVG.altGlyphDef.element "INCLUDE" >
-<![%SVG.altGlyphDef.element;[
-<!ENTITY % SVG.altGlyphDef.content
-    "( %SVG.glyphRef.qname;+ | %SVG.altGlyphItem.qname;+ )"
->
-<!ELEMENT %SVG.altGlyphDef.qname; %SVG.altGlyphDef.content; >
-<!-- end of SVG.altGlyphDef.element -->]]>
-
-<!ENTITY % SVG.altGlyphDef.attlist "INCLUDE" >
-<![%SVG.altGlyphDef.attlist;[
-<!ATTLIST %SVG.altGlyphDef.qname;
-    %SVG.Core.attrib;
->
-<!-- end of SVG.altGlyphDef.attlist -->]]>
-
-<!-- altGlyphItem: Alternate Glyph Item Element ........ -->
-
-<!ENTITY % SVG.altGlyphItem.element "INCLUDE" >
-<![%SVG.altGlyphItem.element;[
-<!ENTITY % SVG.altGlyphItem.content
-    "( %SVG.glyphRef.qname;+ )"
->
-<!ELEMENT %SVG.altGlyphItem.qname; %SVG.altGlyphItem.content; >
-<!-- end of SVG.altGlyphItem.element -->]]>
-
-<!ENTITY % SVG.altGlyphItem.attlist "INCLUDE" >
-<![%SVG.altGlyphItem.attlist;[
-<!ATTLIST %SVG.altGlyphItem.qname;
-    %SVG.Core.attrib;
->
-<!-- end of SVG.altGlyphItem.attlist -->]]>
-
-<!-- glyphRef: Glyph Reference Element ................. -->
-
-<!ENTITY % SVG.glyphRef.element "INCLUDE" >
-<![%SVG.glyphRef.element;[
-<!ENTITY % SVG.glyphRef.content "EMPTY" >
-<!ELEMENT %SVG.glyphRef.qname; %SVG.glyphRef.content; >
-<!-- end of SVG.glyphRef.element -->]]>
-
-<!ENTITY % SVG.glyphRef.attlist "INCLUDE" >
-<![%SVG.glyphRef.attlist;[
-<!ATTLIST %SVG.glyphRef.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Font.attrib;
-    %SVG.XLink.attrib;
-    x %Number.datatype; #IMPLIED
-    y %Number.datatype; #IMPLIED
-    dx %Number.datatype; #IMPLIED
-    dy %Number.datatype; #IMPLIED
-    glyphRef CDATA #IMPLIED
-    format CDATA #IMPLIED
->
-<!-- end of SVG.glyphRef.attlist -->]]>
-
-<!-- end of svg-text.mod -->
-]]>
-
-<!-- Marker Module ............................................... -->
-<!ENTITY % svg-marker.module "INCLUDE" >
-<![%svg-marker.module;[
-<!ENTITY % svg-marker.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN"
-           "svg-marker.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Marker Module ................................................. -->
-<!-- file: svg-marker.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-marker.mod"
-
-     ....................................................................... -->
-
-<!-- Marker
-
-        marker
-
-     This module declares markup to provide support for marker.
--->
-
-<!-- 'marker' property/attribute value (e.g., 'none', <uri>) -->
-<!ENTITY % MarkerValue.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.marker.qname "marker" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Marker.class .................................. -->
-
-<!ENTITY % SVG.Marker.extra.class "" >
-
-<!ENTITY % SVG.Marker.class
-    "| %SVG.marker.qname; %SVG.Marker.extra.class;"
->
-
-<!-- SVG.Marker.attrib ................................. -->
-
-<!ENTITY % SVG.Marker.extra.attrib "" >
-
-<!ENTITY % SVG.Marker.attrib
-    "marker-start %MarkerValue.datatype; #IMPLIED
-     marker-mid %MarkerValue.datatype; #IMPLIED
-     marker-end %MarkerValue.datatype; #IMPLIED
-     %SVG.Marker.extra.attrib;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- marker: Marker Element ............................ -->
-
-<!ENTITY % SVG.marker.element "INCLUDE" >
-<![%SVG.marker.element;[
-<!ENTITY % SVG.marker.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.marker.qname; %SVG.marker.content; >
-<!-- end of SVG.marker.element -->]]>
-
-<!ENTITY % SVG.marker.attlist "INCLUDE" >
-<![%SVG.marker.attlist;[
-<!ATTLIST %SVG.marker.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.External.attrib;
-    refX %Coordinate.datatype; #IMPLIED
-    refY %Coordinate.datatype; #IMPLIED
-    markerUnits ( strokeWidth | userSpaceOnUse ) #IMPLIED
-    markerWidth  %Length.datatype; #IMPLIED
-    markerHeight %Length.datatype; #IMPLIED
-    orient CDATA #IMPLIED
-    viewBox %ViewBoxSpec.datatype; #IMPLIED
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
->
-<!-- end of SVG.marker.attlist -->]]>
-
-<!-- end of svg-marker.mod -->
-]]>
-
-<!-- Color Profile Module ........................................ -->
-<!ENTITY % svg-profile.module "INCLUDE" >
-<![%svg-profile.module;[
-<!ENTITY % svg-profile.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN"
-           "svg-profile.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Color Profile Module .......................................... -->
-<!-- file: svg-profile.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-profile.mod"
-
-     ....................................................................... -->
-
-<!-- Color Profile
-
-        color-profile
-
-     This module declares markup to provide support for color profile.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.color-profile.qname "color-profile" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-
-<!-- SVG.Profile.class ................................. -->
-
-<!ENTITY % SVG.Profile.extra.class "" >
-
-<!ENTITY % SVG.Profile.class
-    "| %SVG.color-profile.qname; %SVG.Profile.extra.class;"
->
-
-<!-- SVG.Profile.attrib ................................ -->
-
-<!ENTITY % SVG.Profile.extra.attrib "" >
-
-<!ENTITY % SVG.Profile.attrib
-    "color-profile CDATA #IMPLIED
-     %SVG.Profile.extra.attrib;"
->
-
-<!-- color-profile: Color Profile Element .............. -->
-
-<!ENTITY % SVG.color-profile.element "INCLUDE" >
-<![%SVG.color-profile.element;[
-<!ENTITY % SVG.color-profile.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.color-profile.qname; %SVG.color-profile.content; >
-<!-- end of SVG.color-profile.element -->]]>
-
-<!ENTITY % SVG.color-profile.attlist "INCLUDE" >
-<![%SVG.color-profile.attlist;[
-<!ATTLIST %SVG.color-profile.qname;
-    %SVG.Core.attrib;
-    %SVG.XLink.attrib;
-    local CDATA #IMPLIED
-    name CDATA #REQUIRED
-    rendering-intent ( auto | perceptual | relative-colorimetric | saturation |
-                       absolute-colorimetric ) 'auto'
->
-<!-- end of SVG.color-profile.attlist -->]]>
-
-<!-- end of svg-profile.mod -->
-]]>
-
-<!-- Gradient Module ............................................. -->
-<!ENTITY % svg-gradient.module "INCLUDE" >
-<![%svg-gradient.module;[
-<!ENTITY % svg-gradient.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN"
-           "svg-gradient.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Gradient Module ............................................... -->
-<!-- file: svg-gradient.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-gradient.mod"
-
-     ....................................................................... -->
-
-<!-- Gradient
-
-        linearGradient, radialGradient, stop
-
-     This module declares markup to provide support for gradient fill.
--->
-
-<!-- a <number> or a <percentage> -->
-<!ENTITY % NumberOrPercentage.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.linearGradient.qname "linearGradient" >
-<!ENTITY % SVG.radialGradient.qname "radialGradient" >
-<!ENTITY % SVG.stop.qname "stop" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Gradient.class ................................ -->
-
-<!ENTITY % SVG.Gradient.extra.class "" >
-
-<!ENTITY % SVG.Gradient.class
-    "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname;
-       %SVG.Gradient.extra.class;"
->
-
-<!-- SVG.Gradient.attrib ............................... -->
-
-<!ENTITY % SVG.Gradient.extra.attrib "" >
-
-<!ENTITY % SVG.Gradient.attrib
-    "stop-color %SVGColor.datatype; #IMPLIED
-     stop-opacity %OpacityValue.datatype; #IMPLIED
-     %SVG.Gradient.extra.attrib;"
->
-
-<!-- linearGradient: Linear Gradient Element ........... -->
-
-<!ENTITY % SVG.linearGradient.element "INCLUDE" >
-<![%SVG.linearGradient.element;[
-<!ENTITY % SVG.linearGradient.content
-    "(( %SVG.Description.class; )*, ( %SVG.stop.qname; | %SVG.animate.qname;
-      | %SVG.set.qname; | %SVG.animateTransform.qname; )*)"
->
-<!ELEMENT %SVG.linearGradient.qname; %SVG.linearGradient.content; >
-<!-- end of SVG.linearGradient.element -->]]>
-
-<!ENTITY % SVG.linearGradient.attlist "INCLUDE" >
-<![%SVG.linearGradient.attlist;[
-<!ATTLIST %SVG.linearGradient.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Color.attrib;
-    %SVG.Gradient.attrib;
-    %SVG.XLink.attrib;
-    %SVG.External.attrib;
-    x1 %Coordinate.datatype; #IMPLIED
-    y1 %Coordinate.datatype; #IMPLIED
-    x2 %Coordinate.datatype; #IMPLIED
-    y2 %Coordinate.datatype; #IMPLIED
-    gradientUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
-    gradientTransform %TransformList.datatype; #IMPLIED
-    spreadMethod ( pad | reflect | repeat ) #IMPLIED
->
-<!-- end of SVG.linearGradient.attlist -->]]>
-
-<!-- radialGradient: Radial Gradient Element ........... -->
-
-<!ENTITY % SVG.radialGradient.element "INCLUDE" >
-<![%SVG.radialGradient.element;[
-<!ENTITY % SVG.radialGradient.content
-    "(( %SVG.Description.class; )*, ( %SVG.stop.qname; | %SVG.animate.qname;
-      | %SVG.set.qname; | %SVG.animateTransform.qname; )*)"
->
-<!ELEMENT %SVG.radialGradient.qname; %SVG.radialGradient.content; >
-<!-- end of SVG.radialGradient.element -->]]>
-
-<!ENTITY % SVG.radialGradient.attlist "INCLUDE" >
-<![%SVG.radialGradient.attlist;[
-<!ATTLIST %SVG.radialGradient.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Color.attrib;
-    %SVG.Gradient.attrib;
-    %SVG.XLink.attrib;
-    %SVG.External.attrib;
-    cx %Coordinate.datatype; #IMPLIED
-    cy %Coordinate.datatype; #IMPLIED
-    r %Length.datatype; #IMPLIED
-    fx %Coordinate.datatype; #IMPLIED
-    fy %Coordinate.datatype; #IMPLIED
-    gradientUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
-    gradientTransform %TransformList.datatype; #IMPLIED
-    spreadMethod ( pad | reflect | repeat ) #IMPLIED
->
-<!-- end of SVG.radialGradient.attlist -->]]>
-
-<!-- stop: Stop Element ................................ -->
-
-<!ENTITY % SVG.stop.element "INCLUDE" >
-<![%SVG.stop.element;[
-<!ENTITY % SVG.stop.content
-    "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; )*"
->
-<!ELEMENT %SVG.stop.qname; %SVG.stop.content; >
-<!-- end of SVG.stop.element -->]]>
-
-<!ENTITY % SVG.stop.attlist "INCLUDE" >
-<![%SVG.stop.attlist;[
-<!ATTLIST %SVG.stop.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Color.attrib;
-    %SVG.Gradient.attrib;
-    offset %NumberOrPercentage.datatype; #REQUIRED
->
-<!-- end of SVG.stop.attlist -->]]>
-
-<!-- end of svg-gradient.mod -->
-]]>
-
-<!-- Pattern Module .............................................. -->
-<!ENTITY % svg-pattern.module "INCLUDE" >
-<![%svg-pattern.module;[
-<!ENTITY % svg-pattern.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN"
-           "svg-pattern.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Pattern Module ................................................ -->
-<!-- file: svg-pattern.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-pattern.mod"
-
-     ....................................................................... -->
-
-<!-- Pattern
-
-        pattern
-
-     This module declares markup to provide support for pattern fill.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.pattern.qname "pattern" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Pattern.class ................................. -->
-
-<!ENTITY % SVG.Pattern.extra.class "" >
-
-<!ENTITY % SVG.Pattern.class
-    "| %SVG.pattern.qname; %SVG.Pattern.extra.class;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- pattern: Pattern Element .......................... -->
-
-<!ENTITY % SVG.pattern.element "INCLUDE" >
-<![%SVG.pattern.element;[
-<!ENTITY % SVG.pattern.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.pattern.qname; %SVG.pattern.content; >
-<!-- end of SVG.pattern.element -->]]>
-
-<!ENTITY % SVG.pattern.attlist "INCLUDE" >
-<![%SVG.pattern.attlist;[
-<!ATTLIST %SVG.pattern.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.XLink.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #IMPLIED
-    height %Length.datatype; #IMPLIED
-    patternUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
-    patternContentUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
-    patternTransform %TransformList.datatype; #IMPLIED
-    viewBox %ViewBoxSpec.datatype; #IMPLIED
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
->
-<!-- end of SVG.pattern.attlist -->]]>
-
-<!-- end of svg-pattern.mod -->
-]]>
-
-<!-- Clip Module ................................................. -->
-<!ENTITY % svg-clip.module "INCLUDE" >
-<![%svg-clip.module;[
-<!ENTITY % svg-clip.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN"
-           "svg-clip.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Clip Module ................................................... -->
-<!-- file: svg-clip.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-clip.mod"
-
-     ....................................................................... -->
-
-<!-- Clip
-
-        clipPath
-
-     This module declares markup to provide support for clipping.
--->
-
-<!-- 'clip-path' property/attribute value (e.g., 'none', <uri>) -->
-<!ENTITY % ClipPathValue.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.clipPath.qname "clipPath" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Clip.class .................................... -->
-
-<!ENTITY % SVG.Clip.extra.class "" >
-
-<!ENTITY % SVG.Clip.class
-    "| %SVG.clipPath.qname; %SVG.Clip.extra.class;"
->
-
-<!-- SVG.Clip.attrib ................................... -->
-
-<!ENTITY % SVG.Clip.extra.attrib "" >
-
-<!ENTITY % SVG.Clip.attrib
-    "clip-path %ClipPathValue.datatype; #IMPLIED
-     clip-rule %ClipFillRule.datatype; #IMPLIED
-     %SVG.Clip.extra.attrib;"
->
-
-<!-- clipPath: Clip Path Element ....................... -->
-
-<!ENTITY % SVG.clipPath.element "INCLUDE" >
-<![%SVG.clipPath.element;[
-<!ENTITY % SVG.clipPath.content
-    "(( %SVG.Description.class; )*, ( %SVG.Animation.class; %SVG.Use.class;
-        %SVG.Shape.class; %SVG.Text.class; )*)"
->
-<!ELEMENT %SVG.clipPath.qname; %SVG.clipPath.content; >
-<!-- end of SVG.clipPath.element -->]]>
-
-<!ENTITY % SVG.clipPath.attlist "INCLUDE" >
-<![%SVG.clipPath.attlist;[
-<!ATTLIST %SVG.clipPath.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Text.attrib;
-    %SVG.TextContent.attrib;
-    %SVG.Font.attrib;
-    %SVG.Paint.attrib;
-    %SVG.Color.attrib;
-    %SVG.Opacity.attrib;
-    %SVG.Graphics.attrib;
-    %SVG.Clip.attrib;
-    %SVG.Mask.attrib;
-    %SVG.Filter.attrib;
-    %SVG.Cursor.attrib;
-    %SVG.External.attrib;
-    transform %TransformList.datatype; #IMPLIED
-    clipPathUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
->
-<!-- end of SVG.clipPath.attlist -->]]>
-
-<!-- end of svg-clip.mod -->
-]]>
-
-<!-- Mask Module ................................................. -->
-<!ENTITY % svg-mask.module "INCLUDE" >
-<![%svg-mask.module;[
-<!ENTITY % svg-mask.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN"
-           "svg-mask.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Mask Module ................................................... -->
-<!-- file: svg-mask.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-mask.mod"
-
-     ....................................................................... -->
-
-<!-- Mask
-
-        mask
-
-     This module declares markup to provide support for masking.
--->
-
-<!-- 'mask' property/attribute value (e.g., 'none', <uri>) -->
-<!ENTITY % MaskValue.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.mask.qname "mask" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Mask.class .................................... -->
-
-<!ENTITY % SVG.Mask.extra.class "" >
-
-<!ENTITY % SVG.Mask.class
-    "| %SVG.mask.qname; %SVG.Mask.extra.class;"
->
-
-<!-- SVG.Mask.attrib ................................... -->
-
-<!ENTITY % SVG.Mask.extra.attrib "" >
-
-<!ENTITY % SVG.Mask.attrib
-    "mask %MaskValue.datatype; #IMPLIED
-     %SVG.Mask.extra.attrib;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- mask: Mask Element ................................ -->
-
-<!ENTITY % SVG.mask.element "INCLUDE" >
-<![%SVG.mask.element;[
-<!ENTITY % SVG.mask.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.mask.qname; %SVG.mask.content; >
-<!-- end of SVG.mask.element -->]]>
-
-<!ENTITY % SVG.mask.attlist "INCLUDE" >
-<![%SVG.mask.attlist;[
-<!ATTLIST %SVG.mask.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #IMPLIED
-    height %Length.datatype; #IMPLIED
-    maskUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
-    maskContentUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
->
-<!-- end of SVG.mask.attlist -->]]>
-
-<!-- end of svg-mask.mod -->
-]]>
-
-<!-- Filter Module ............................................... -->
-<!ENTITY % svg-filter.module "INCLUDE" >
-<![%svg-filter.module;[
-<!ENTITY % svg-filter.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN"
-           "svg-filter.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Filter Module ................................................. -->
-<!-- file: svg-filter.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-filter.mod"
-
-     ....................................................................... -->
-
-<!-- Filter
-
-        filter, feBlend, feColorMatrix, feComponentTransfer, feComposite,
-        feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feFlood,
-        feGaussianBlur, feImage, feMerge, feMergeNode, feMorphology, feOffset,
-        feSpecularLighting, feTile, feTurbulence, feDistantLight, fePointLight,
-        feSpotLight, feFuncR, feFuncG, feFuncB, feFuncA
-
-     This module declares markup to provide support for filter effect.
--->
-
-<!-- 'filter' property/attribute value (e.g., 'none', <uri>) -->
-<!ENTITY % FilterValue.datatype "CDATA" >
-
-<!-- list of <number>s, but at least one and at most two -->
-<!ENTITY % NumberOptionalNumber.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.filter.qname "filter" >
-<!ENTITY % SVG.feBlend.qname "feBlend" >
-<!ENTITY % SVG.feColorMatrix.qname "feColorMatrix" >
-<!ENTITY % SVG.feComponentTransfer.qname "feComponentTransfer" >
-<!ENTITY % SVG.feComposite.qname "feComposite" >
-<!ENTITY % SVG.feConvolveMatrix.qname "feConvolveMatrix" >
-<!ENTITY % SVG.feDiffuseLighting.qname "feDiffuseLighting" >
-<!ENTITY % SVG.feDisplacementMap.qname "feDisplacementMap" >
-<!ENTITY % SVG.feFlood.qname "feFlood" >
-<!ENTITY % SVG.feGaussianBlur.qname "feGaussianBlur" >
-<!ENTITY % SVG.feImage.qname "feImage" >
-<!ENTITY % SVG.feMerge.qname "feMerge" >
-<!ENTITY % SVG.feMergeNode.qname "feMergeNode" >
-<!ENTITY % SVG.feMorphology.qname "feMorphology" >
-<!ENTITY % SVG.feOffset.qname "feOffset" >
-<!ENTITY % SVG.feSpecularLighting.qname "feSpecularLighting" >
-<!ENTITY % SVG.feTile.qname "feTile" >
-<!ENTITY % SVG.feTurbulence.qname "feTurbulence" >
-<!ENTITY % SVG.feDistantLight.qname "feDistantLight" >
-<!ENTITY % SVG.fePointLight.qname "fePointLight" >
-<!ENTITY % SVG.feSpotLight.qname "feSpotLight" >
-<!ENTITY % SVG.feFuncR.qname "feFuncR" >
-<!ENTITY % SVG.feFuncG.qname "feFuncG" >
-<!ENTITY % SVG.feFuncB.qname "feFuncB" >
-<!ENTITY % SVG.feFuncA.qname "feFuncA" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-<!ENTITY % SVG.XLinkEmbed.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Filter.class .................................. -->
-
-<!ENTITY % SVG.Filter.extra.class "" >
-
-<!ENTITY % SVG.Filter.class
-    "| %SVG.filter.qname; %SVG.Filter.extra.class;"
->
-
-<!-- SVG.FilterPrimitive.class ......................... -->
-
-<!ENTITY % SVG.FilterPrimitive.extra.class "" >
-
-<!ENTITY % SVG.FilterPrimitive.class
-    "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname;
-     | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname;
-     | %SVG.feConvolveMatrix.qname; | %SVG.feDiffuseLighting.qname;
-     | %SVG.feDisplacementMap.qname; | %SVG.feFlood.qname;
-     | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname; | %SVG.feMerge.qname;
-     | %SVG.feMorphology.qname; | %SVG.feOffset.qname;
-     | %SVG.feSpecularLighting.qname; | %SVG.feTile.qname;
-     | %SVG.feTurbulence.qname; %SVG.FilterPrimitive.extra.class;"
->
-
-<!-- SVG.Filter.attrib ................................. -->
-
-<!ENTITY % SVG.Filter.extra.attrib "" >
-
-<!ENTITY % SVG.Filter.attrib
-    "filter %FilterValue.datatype; #IMPLIED
-     %SVG.Filter.extra.attrib;"
->
-
-<!-- SVG.FilterColor.attrib ............................ -->
-
-<!ENTITY % SVG.FilterColor.extra.attrib "" >
-
-<!ENTITY % SVG.FilterColor.attrib
-    "color-interpolation-filters ( auto | sRGB | linearRGB | inherit )
-                                   #IMPLIED
-     %SVG.FilterColor.extra.attrib;"
->
-
-<!-- SVG.FilterPrimitive.attrib ........................ -->
-
-<!ENTITY % SVG.FilterPrimitive.extra.attrib "" >
-
-<!ENTITY % SVG.FilterPrimitive.attrib
-    "x %Coordinate.datatype; #IMPLIED
-     y %Coordinate.datatype; #IMPLIED
-     width %Length.datatype; #IMPLIED
-     height %Length.datatype; #IMPLIED
-     result CDATA #IMPLIED
-     %SVG.FilterPrimitive.extra.attrib;"
->
-
-<!-- SVG.FilterPrimitiveWithIn.attrib .................. -->
-
-<!ENTITY % SVG.FilterPrimitiveWithIn.extra.attrib "" >
-
-<!ENTITY % SVG.FilterPrimitiveWithIn.attrib
-    "%SVG.FilterPrimitive.attrib;
-     in CDATA #IMPLIED
-     %SVG.FilterPrimitiveWithIn.extra.attrib;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- filter: Filter Element ............................ -->
-
-<!ENTITY % SVG.filter.element "INCLUDE" >
-<![%SVG.filter.element;[
-<!ENTITY % SVG.filter.content
-    "(( %SVG.Description.class; )*, ( %SVG.animate.qname; | %SVG.set.qname;
-        %SVG.FilterPrimitive.class; )*)"
->
-<!ELEMENT %SVG.filter.qname; %SVG.filter.content; >
-<!-- end of SVG.filter.element -->]]>
-
-<!ENTITY % SVG.filter.attlist "INCLUDE" >
-<![%SVG.filter.attlist;[
-<!ATTLIST %SVG.filter.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.XLink.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #IMPLIED
-    height %Length.datatype; #IMPLIED
-    filterRes %NumberOptionalNumber.datatype; #IMPLIED
-    filterUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
-    primitiveUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
->
-<!-- end of SVG.filter.attlist -->]]>
-
-<!-- feBlend: Filter Effect Blend Element .............. -->
-
-<!ENTITY % SVG.feBlend.element "INCLUDE" >
-<![%SVG.feBlend.element;[
-<!ENTITY % SVG.feBlend.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feBlend.qname; %SVG.feBlend.content; >
-<!-- end of SVG.feBlend.element -->]]>
-
-<!ENTITY % SVG.feBlend.attlist "INCLUDE" >
-<![%SVG.feBlend.attlist;[
-<!ATTLIST %SVG.feBlend.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    in2 CDATA #REQUIRED
-    mode ( normal | multiply | screen | darken | lighten ) 'normal'
->
-<!-- end of SVG.feBlend.attlist -->]]>
-
-<!-- feColorMatrix: Filter Effect Color Matrix Element . -->
-
-<!ENTITY % SVG.feColorMatrix.element "INCLUDE" >
-<![%SVG.feColorMatrix.element;[
-<!ENTITY % SVG.feColorMatrix.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feColorMatrix.qname; %SVG.feColorMatrix.content; >
-<!-- end of SVG.feColorMatrix.element -->]]>
-
-<!ENTITY % SVG.feColorMatrix.attlist "INCLUDE" >
-<![%SVG.feColorMatrix.attlist;[
-<!ATTLIST %SVG.feColorMatrix.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    type ( matrix | saturate | hueRotate | luminanceToAlpha ) 'matrix'
-    values CDATA #IMPLIED
->
-<!-- end of SVG.feColorMatrix.attlist -->]]>
-
-<!-- feComponentTransfer: Filter Effect Component Transfer Element -->
-
-<!ENTITY % SVG.feComponentTransfer.element "INCLUDE" >
-<![%SVG.feComponentTransfer.element;[
-<!ENTITY % SVG.feComponentTransfer.content
-    "( %SVG.feFuncR.qname;?, %SVG.feFuncG.qname;?, %SVG.feFuncB.qname;?,
-       %SVG.feFuncA.qname;? )"
->
-<!ELEMENT %SVG.feComponentTransfer.qname; %SVG.feComponentTransfer.content; >
-<!-- end of SVG.feComponentTransfer.element -->]]>
-
-<!ENTITY % SVG.feComponentTransfer.attlist "INCLUDE" >
-<![%SVG.feComponentTransfer.attlist;[
-<!ATTLIST %SVG.feComponentTransfer.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
->
-<!-- end of SVG.feComponentTransfer.attlist -->]]>
-
-<!-- feComposite: Filter Effect Composite Element ...... -->
-
-<!ENTITY % SVG.feComposite.element "INCLUDE" >
-<![%SVG.feComposite.element;[
-<!ENTITY % SVG.feComposite.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feComposite.qname; %SVG.feComposite.content; >
-<!-- end of SVG.feComposite.element -->]]>
-
-<!ENTITY % SVG.feComposite.attlist "INCLUDE" >
-<![%SVG.feComposite.attlist;[
-<!ATTLIST %SVG.feComposite.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    in2 CDATA #REQUIRED
-    operator ( over | in | out | atop | xor | arithmetic ) 'over'
-    k1 %Number.datatype; #IMPLIED
-    k2 %Number.datatype; #IMPLIED
-    k3 %Number.datatype; #IMPLIED
-    k4 %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feComposite.attlist -->]]>
-
-<!-- feConvolveMatrix: Filter Effect Convolve Matrix Element -->
-
-<!ENTITY % SVG.feConvolveMatrix.element "INCLUDE" >
-<![%SVG.feConvolveMatrix.element;[
-<!ENTITY % SVG.feConvolveMatrix.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feConvolveMatrix.qname; %SVG.feConvolveMatrix.content; >
-<!-- end of SVG.feConvolveMatrix.element -->]]>
-
-<!ENTITY % SVG.feConvolveMatrix.attlist "INCLUDE" >
-<![%SVG.feConvolveMatrix.attlist;[
-<!ATTLIST %SVG.feConvolveMatrix.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    order %NumberOptionalNumber.datatype; #REQUIRED
-    kernelMatrix CDATA #REQUIRED
-    divisor %Number.datatype; #IMPLIED
-    bias %Number.datatype; #IMPLIED
-    targetX %Integer.datatype; #IMPLIED
-    targetY %Integer.datatype; #IMPLIED
-    edgeMode ( duplicate | wrap | none ) 'duplicate'
-    kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED
-    preserveAlpha %Boolean.datatype; #IMPLIED
->
-<!-- end of SVG.feConvolveMatrix.attlist -->]]>
-
-<!-- feDiffuseLighting: Filter Effect Diffuse Lighting Element -->
-
-<!ENTITY % SVG.feDiffuseLighting.element "INCLUDE" >
-<![%SVG.feDiffuseLighting.element;[
-<!ENTITY % SVG.feDiffuseLighting.content
-    "(( %SVG.feDistantLight.qname; | %SVG.fePointLight.qname;
-      | %SVG.feSpotLight.qname; ), ( %SVG.animate.qname; | %SVG.set.qname;
-      | %SVG.animateColor.qname; )*)"
->
-<!ELEMENT %SVG.feDiffuseLighting.qname; %SVG.feDiffuseLighting.content; >
-<!-- end of SVG.feDiffuseLighting.element -->]]>
-
-<!ENTITY % SVG.feDiffuseLighting.attlist "INCLUDE" >
-<![%SVG.feDiffuseLighting.attlist;[
-<!ATTLIST %SVG.feDiffuseLighting.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Color.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    lighting-color %SVGColor.datatype; #IMPLIED
-    surfaceScale %Number.datatype; #IMPLIED
-    diffuseConstant %Number.datatype; #IMPLIED
-    kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED
->
-<!-- end of SVG.feDiffuseLighting.attlist -->]]>
-
-<!-- feDisplacementMap: Filter Effect Displacement Map Element -->
-
-<!ENTITY % SVG.feDisplacementMap.element "INCLUDE" >
-<![%SVG.feDisplacementMap.element;[
-<!ENTITY % SVG.feDisplacementMap.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feDisplacementMap.qname; %SVG.feDisplacementMap.content; >
-<!-- end of SVG.feDisplacementMap.element -->]]>
-
-<!ENTITY % SVG.feDisplacementMap.attlist "INCLUDE" >
-<![%SVG.feDisplacementMap.attlist;[
-<!ATTLIST %SVG.feDisplacementMap.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    in2 CDATA #REQUIRED
-    scale %Number.datatype; #IMPLIED
-    xChannelSelector ( R | G | B | A ) 'A'
-    yChannelSelector ( R | G | B | A ) 'A'
->
-<!-- end of SVG.feDisplacementMap.attlist -->]]>
-
-<!-- feFlood: Filter Effect Flood Element .............. -->
-
-<!ENTITY % SVG.feFlood.element "INCLUDE" >
-<![%SVG.feFlood.element;[
-<!ENTITY % SVG.feFlood.content
-    "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname; )*"
->
-<!ELEMENT %SVG.feFlood.qname; %SVG.feFlood.content; >
-<!-- end of SVG.feFlood.element -->]]>
-
-<!ENTITY % SVG.feFlood.attlist "INCLUDE" >
-<![%SVG.feFlood.attlist;[
-<!ATTLIST %SVG.feFlood.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Color.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    flood-color %SVGColor.datatype; #IMPLIED
-    flood-opacity %OpacityValue.datatype; #IMPLIED
->
-<!-- end of SVG.feFlood.attlist -->]]>
-
-<!-- feGaussianBlur: Filter Effect Gaussian Blur Element -->
-
-<!ENTITY % SVG.feGaussianBlur.element "INCLUDE" >
-<![%SVG.feGaussianBlur.element;[
-<!ENTITY % SVG.feGaussianBlur.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feGaussianBlur.qname; %SVG.feGaussianBlur.content; >
-<!-- end of SVG.feGaussianBlur.element -->]]>
-
-<!ENTITY % SVG.feGaussianBlur.attlist "INCLUDE" >
-<![%SVG.feGaussianBlur.attlist;[
-<!ATTLIST %SVG.feGaussianBlur.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    stdDeviation %NumberOptionalNumber.datatype; #IMPLIED
->
-<!-- end of SVG.feGaussianBlur.attlist -->]]>
-
-<!-- feImage: Filter Effect Image Element .............. -->
-
-<!ENTITY % SVG.feImage.element "INCLUDE" >
-<![%SVG.feImage.element;[
-<!ENTITY % SVG.feImage.content
-    "( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateTransform.qname; )*"
->
-<!ELEMENT %SVG.feImage.qname; %SVG.feImage.content; >
-<!-- end of SVG.feImage.element -->]]>
-
-<!ENTITY % SVG.feImage.attlist "INCLUDE" >
-<![%SVG.feImage.attlist;[
-<!ATTLIST %SVG.feImage.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.FilterPrimitive.attrib;
-    %SVG.XLinkEmbed.attrib;
-    %SVG.External.attrib;
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
->
-<!-- end of SVG.feImage.attlist -->]]>
-
-<!-- feMerge: Filter Effect Merge Element .............. -->
-
-<!ENTITY % SVG.feMerge.element "INCLUDE" >
-<![%SVG.feMerge.element;[
-<!ENTITY % SVG.feMerge.content
-    "( %SVG.feMergeNode.qname; )*"
->
-<!ELEMENT %SVG.feMerge.qname; %SVG.feMerge.content; >
-<!-- end of SVG.feMerge.element -->]]>
-
-<!ENTITY % SVG.feMerge.attlist "INCLUDE" >
-<![%SVG.feMerge.attlist;[
-<!ATTLIST %SVG.feMerge.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitive.attrib;
->
-<!-- end of SVG.feMerge.attlist -->]]>
-
-<!-- feMergeNode: Filter Effect Merge Node Element ..... -->
-
-<!ENTITY % SVG.feMergeNode.element "INCLUDE" >
-<![%SVG.feMergeNode.element;[
-<!ENTITY % SVG.feMergeNode.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feMergeNode.qname; %SVG.feMergeNode.content; >
-<!-- end of SVG.feMergeNode.element -->]]>
-
-<!ENTITY % SVG.feMergeNode.attlist "INCLUDE" >
-<![%SVG.feMergeNode.attlist;[
-<!ATTLIST %SVG.feMergeNode.qname;
-    %SVG.Core.attrib;
-    in CDATA #IMPLIED
->
-<!-- end of SVG.feMergeNode.attlist -->]]>
-
-<!-- feMorphology: Filter Effect Morphology Element .... -->
-
-<!ENTITY % SVG.feMorphology.element "INCLUDE" >
-<![%SVG.feMorphology.element;[
-<!ENTITY % SVG.feMorphology.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feMorphology.qname; %SVG.feMorphology.content; >
-<!-- end of SVG.feMorphology.element -->]]>
-
-<!ENTITY % SVG.feMorphology.attlist "INCLUDE" >
-<![%SVG.feMorphology.attlist;[
-<!ATTLIST %SVG.feMorphology.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    operator ( erode | dilate ) 'erode'
-    radius %NumberOptionalNumber.datatype; #IMPLIED
->
-<!-- end of SVG.feMorphology.attlist -->]]>
-
-<!-- feOffset: Filter Effect Offset Element ............ -->
-
-<!ENTITY % SVG.feOffset.element "INCLUDE" >
-<![%SVG.feOffset.element;[
-<!ENTITY % SVG.feOffset.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feOffset.qname; %SVG.feOffset.content; >
-<!-- end of SVG.feOffset.element -->]]>
-
-<!ENTITY % SVG.feOffset.attlist "INCLUDE" >
-<![%SVG.feOffset.attlist;[
-<!ATTLIST %SVG.feOffset.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    dx %Number.datatype; #IMPLIED
-    dy %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feOffset.attlist -->]]>
-
-<!-- feSpecularLighting: Filter Effect Specular Lighting Element -->
-
-<!ENTITY % SVG.feSpecularLighting.element "INCLUDE" >
-<![%SVG.feSpecularLighting.element;[
-<!ENTITY % SVG.feSpecularLighting.content
-    "(( %SVG.feDistantLight.qname; | %SVG.fePointLight.qname;
-      | %SVG.feSpotLight.qname; ), ( %SVG.animate.qname; | %SVG.set.qname;
-      | %SVG.animateColor.qname; )*)"
->
-<!ELEMENT %SVG.feSpecularLighting.qname; %SVG.feSpecularLighting.content; >
-<!-- end of SVG.feSpecularLighting.element -->]]>
-
-<!ENTITY % SVG.feSpecularLighting.attlist "INCLUDE" >
-<![%SVG.feSpecularLighting.attlist;[
-<!ATTLIST %SVG.feSpecularLighting.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Color.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
-    lighting-color %SVGColor.datatype; #IMPLIED
-    surfaceScale %Number.datatype; #IMPLIED
-    specularConstant %Number.datatype; #IMPLIED
-    specularExponent %Number.datatype; #IMPLIED
-    kernelUnitLength %NumberOptionalNumber.datatype; #IMPLIED
->
-<!-- end of SVG.feSpecularLighting.attlist -->]]>
-
-<!-- feTile: Filter Effect Tile Element ................ -->
-
-<!ENTITY % SVG.feTile.element "INCLUDE" >
-<![%SVG.feTile.element;[
-<!ENTITY % SVG.feTile.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feTile.qname; %SVG.feTile.content; >
-<!-- end of SVG.feTile.element -->]]>
-
-<!ENTITY % SVG.feTile.attlist "INCLUDE" >
-<![%SVG.feTile.attlist;[
-<!ATTLIST %SVG.feTile.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitiveWithIn.attrib;
->
-<!-- end of SVG.feTile.attlist -->]]>
-
-<!-- feTurbulence: Filter Effect Turbulence Element .... -->
-
-<!ENTITY % SVG.feTurbulence.element "INCLUDE" >
-<![%SVG.feTurbulence.element;[
-<!ENTITY % SVG.feTurbulence.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feTurbulence.qname; %SVG.feTurbulence.content; >
-<!-- end of SVG.feTurbulence.element -->]]>
-
-<!ENTITY % SVG.feTurbulence.attlist "INCLUDE" >
-<![%SVG.feTurbulence.attlist;[
-<!ATTLIST %SVG.feTurbulence.qname;
-    %SVG.Core.attrib;
-    %SVG.FilterColor.attrib;
-    %SVG.FilterPrimitive.attrib;
-    baseFrequency %NumberOptionalNumber.datatype; #IMPLIED
-    numOctaves %Integer.datatype; #IMPLIED
-    seed %Number.datatype; #IMPLIED
-    stitchTiles ( stitch | noStitch ) 'noStitch'
-    type ( fractalNoise | turbulence ) 'turbulence'
->
-<!-- end of SVG.feTurbulence.attlist -->]]>
-
-<!-- feDistantLight: Filter Effect Distant Light Element -->
-
-<!ENTITY % SVG.feDistantLight.element "INCLUDE" >
-<![%SVG.feDistantLight.element;[
-<!ENTITY % SVG.feDistantLight.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feDistantLight.qname; %SVG.feDistantLight.content; >
-<!-- end of SVG.feDistantLight.element -->]]>
-
-<!ENTITY % SVG.feDistantLight.attlist "INCLUDE" >
-<![%SVG.feDistantLight.attlist;[
-<!ATTLIST %SVG.feDistantLight.qname;
-    %SVG.Core.attrib;
-    azimuth %Number.datatype; #IMPLIED
-    elevation %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feDistantLight.attlist -->]]>
-
-<!-- fePointLight: Filter Effect Point Light Element ... -->
-
-<!ENTITY % SVG.fePointLight.element "INCLUDE" >
-<![%SVG.fePointLight.element;[
-<!ENTITY % SVG.fePointLight.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.fePointLight.qname; %SVG.fePointLight.content; >
-<!-- end of SVG.fePointLight.element -->]]>
-
-<!ENTITY % SVG.fePointLight.attlist "INCLUDE" >
-<![%SVG.fePointLight.attlist;[
-<!ATTLIST %SVG.fePointLight.qname;
-    %SVG.Core.attrib;
-    x %Number.datatype; #IMPLIED
-    y %Number.datatype; #IMPLIED
-    z %Number.datatype; #IMPLIED
->
-<!-- end of SVG.fePointLight.attlist -->]]>
-
-<!-- feSpotLight: Filter Effect Spot Light Element ..... -->
-
-<!ENTITY % SVG.feSpotLight.element "INCLUDE" >
-<![%SVG.feSpotLight.element;[
-<!ENTITY % SVG.feSpotLight.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feSpotLight.qname; %SVG.feSpotLight.content; >
-<!-- end of SVG.feSpotLight.element -->]]>
-
-<!ENTITY % SVG.feSpotLight.attlist "INCLUDE" >
-<![%SVG.feSpotLight.attlist;[
-<!ATTLIST %SVG.feSpotLight.qname;
-    %SVG.Core.attrib;
-    x %Number.datatype; #IMPLIED
-    y %Number.datatype; #IMPLIED
-    z %Number.datatype; #IMPLIED
-    pointsAtX %Number.datatype; #IMPLIED
-    pointsAtY %Number.datatype; #IMPLIED
-    pointsAtZ %Number.datatype; #IMPLIED
-    specularExponent %Number.datatype; #IMPLIED
-    limitingConeAngle %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feSpotLight.attlist -->]]>
-
-<!-- feFuncR: Filter Effect Function Red Element ....... -->
-
-<!ENTITY % SVG.feFuncR.element "INCLUDE" >
-<![%SVG.feFuncR.element;[
-<!ENTITY % SVG.feFuncR.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feFuncR.qname; %SVG.feFuncR.content; >
-<!-- end of SVG.feFuncR.element -->]]>
-
-<!ENTITY % SVG.feFuncR.attlist "INCLUDE" >
-<![%SVG.feFuncR.attlist;[
-<!ATTLIST %SVG.feFuncR.qname;
-    %SVG.Core.attrib;
-    type ( identity | table | discrete | linear | gamma ) #REQUIRED
-    tableValues CDATA #IMPLIED
-    slope %Number.datatype; #IMPLIED
-    intercept %Number.datatype; #IMPLIED
-    amplitude %Number.datatype; #IMPLIED
-    exponent %Number.datatype; #IMPLIED
-    offset %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feFuncR.attlist -->]]>
-
-<!-- feFuncG: Filter Effect Function Green Element ..... -->
-
-<!ENTITY % SVG.feFuncG.element "INCLUDE" >
-<![%SVG.feFuncG.element;[
-<!ENTITY % SVG.feFuncG.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feFuncG.qname; %SVG.feFuncG.content; >
-<!-- end of SVG.feFuncG.element -->]]>
-
-<!ENTITY % SVG.feFuncG.attlist "INCLUDE" >
-<![%SVG.feFuncG.attlist;[
-<!ATTLIST %SVG.feFuncG.qname;
-    %SVG.Core.attrib;
-    type ( identity | table | discrete | linear | gamma ) #REQUIRED
-    tableValues CDATA #IMPLIED
-    slope %Number.datatype; #IMPLIED
-    intercept %Number.datatype; #IMPLIED
-    amplitude %Number.datatype; #IMPLIED
-    exponent %Number.datatype; #IMPLIED
-    offset %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feFuncG.attlist -->]]>
-
-<!-- feFuncB: Filter Effect Function Blue Element ...... -->
-
-<!ENTITY % SVG.feFuncB.element "INCLUDE" >
-<![%SVG.feFuncB.element;[
-<!ENTITY % SVG.feFuncB.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feFuncB.qname; %SVG.feFuncB.content; >
-<!-- end of SVG.feFuncB.element -->]]>
-
-<!ENTITY % SVG.feFuncB.attlist "INCLUDE" >
-<![%SVG.feFuncB.attlist;[
-<!ATTLIST %SVG.feFuncB.qname;
-    %SVG.Core.attrib;
-    type ( identity | table | discrete | linear | gamma ) #REQUIRED
-    tableValues CDATA #IMPLIED
-    slope %Number.datatype; #IMPLIED
-    intercept %Number.datatype; #IMPLIED
-    amplitude %Number.datatype; #IMPLIED
-    exponent %Number.datatype; #IMPLIED
-    offset %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feFuncB.attlist -->]]>
-
-<!-- feFuncA: Filter Effect Function Alpha Element ..... -->
-
-<!ENTITY % SVG.feFuncA.element "INCLUDE" >
-<![%SVG.feFuncA.element;[
-<!ENTITY % SVG.feFuncA.content
-    "( %SVG.animate.qname; | %SVG.set.qname; )*"
->
-<!ELEMENT %SVG.feFuncA.qname; %SVG.feFuncA.content; >
-<!-- end of SVG.feFuncA.element -->]]>
-
-<!ENTITY % SVG.feFuncA.attlist "INCLUDE" >
-<![%SVG.feFuncA.attlist;[
-<!ATTLIST %SVG.feFuncA.qname;
-    %SVG.Core.attrib;
-    type ( identity | table | discrete | linear | gamma ) #REQUIRED
-    tableValues CDATA #IMPLIED
-    slope %Number.datatype; #IMPLIED
-    intercept %Number.datatype; #IMPLIED
-    amplitude %Number.datatype; #IMPLIED
-    exponent %Number.datatype; #IMPLIED
-    offset %Number.datatype; #IMPLIED
->
-<!-- end of SVG.feFuncA.attlist -->]]>
-
-<!-- end of svg-filter.mod -->
-]]>
-
-<!-- Cursor Module ............................................... -->
-<!ENTITY % svg-cursor.module "INCLUDE" >
-<![%svg-cursor.module;[
-<!ENTITY % svg-cursor.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN"
-           "svg-cursor.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Cursor Module ................................................. -->
-<!-- file: svg-cursor.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-cursor.mod"
-
-     ....................................................................... -->
-
-<!-- Cursor
-
-        cursor
-
-     This module declares markup to provide support for cursor.
--->
-
-<!-- 'cursor' property/attribute value (e.g., 'crosshair', <uri>) -->
-<!ENTITY % CursorValue.datatype "CDATA" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.cursor.qname "cursor" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.XLinkRequired.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Cursor.class .................................. -->
-
-<!ENTITY % SVG.Cursor.extra.class "" >
-
-<!ENTITY % SVG.Cursor.class
-    "| %SVG.cursor.qname; %SVG.Cursor.extra.class;"
->
-
-<!-- SVG.Cursor.attrib ................................. -->
-
-<!ENTITY % SVG.Cursor.extra.attrib "" >
-
-<!ENTITY % SVG.Cursor.attrib
-    "cursor %CursorValue.datatype; #IMPLIED
-     %SVG.Cursor.extra.attrib;"
->
-
-<!-- cursor: Cursor Element ............................ -->
-
-<!ENTITY % SVG.cursor.element "INCLUDE" >
-<![%SVG.cursor.element;[
-<!ENTITY % SVG.cursor.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.cursor.qname; %SVG.cursor.content; >
-<!-- end of SVG.cursor.element -->]]>
-
-<!ENTITY % SVG.cursor.attlist "INCLUDE" >
-<![%SVG.cursor.attlist;[
-<!ATTLIST %SVG.cursor.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.XLinkRequired.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
->
-<!-- end of SVG.cursor.attlist -->]]>
-
-<!-- end of svg-cursor.mod -->
-]]>
-
-<!-- Hyperlinking Module ......................................... -->
-<!ENTITY % svg-hyperlink.module "INCLUDE" >
-<![%svg-hyperlink.module;[
-<!ENTITY % svg-hyperlink.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN"
-           "svg-hyperlink.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Hyperlinking Module ........................................... -->
-<!-- file: svg-hyperlink.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-hyperlink.mod"
-
-     ....................................................................... -->
-
-<!-- Hyperlinking
-
-        a
-
-     This module declares markup to provide support for hyper linking.
--->
-
-<!-- link to this target -->
-<!ENTITY % LinkTarget.datatype "NMTOKEN" >
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.a.qname "a" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLinkReplace.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Hyperlink.class ............................... -->
-
-<!ENTITY % SVG.Hyperlink.extra.class "" >
-
-<!ENTITY % SVG.Hyperlink.class
-    "| %SVG.a.qname; %SVG.Hyperlink.extra.class;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- a: Anchor Element ................................. -->
-
-<!ENTITY % SVG.a.element "INCLUDE" >
-<![%SVG.a.element;[
-<!ENTITY % SVG.a.content
-    "( #PCDATA | %SVG.Description.class; | %SVG.Animation.class;
-       %SVG.Structure.class; %SVG.Conditional.class; %SVG.Image.class;
-       %SVG.Style.class; %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class;
-       %SVG.Profile.class; %SVG.Gradient.class; %SVG.Pattern.class;
-       %SVG.Clip.class; %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.a.qname; %SVG.a.content; >
-<!-- end of SVG.a.element -->]]>
-
-<!ENTITY % SVG.a.attlist "INCLUDE" >
-<![%SVG.a.attlist;[
-<!ATTLIST %SVG.a.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.XLinkReplace.attrib;
-    %SVG.External.attrib;
-    transform %TransformList.datatype; #IMPLIED
-    target %LinkTarget.datatype; #IMPLIED
->
-<!-- end of SVG.a.attlist -->]]>
-
-<!-- end of svg-hyperlink.mod -->
-]]>
-
-<!-- View Module ................................................. -->
-<!ENTITY % svg-view.module "INCLUDE" >
-<![%svg-view.module;[
-<!ENTITY % svg-view.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN"
-           "svg-view.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 View Module ................................................... -->
-<!-- file: svg-view.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-view.mod"
-
-     ....................................................................... -->
-
-<!-- View
-
-        view
-
-     This module declares markup to provide support for view.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.view.qname "view" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.View.class .................................... -->
-
-<!ENTITY % SVG.View.extra.class "" >
-
-<!ENTITY % SVG.View.class
-    "| %SVG.view.qname; %SVG.View.extra.class;"
->
-
-<!-- view: View Element ................................ -->
-
-<!ENTITY % SVG.view.element "INCLUDE" >
-<![%SVG.view.element;[
-<!ENTITY % SVG.view.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.view.qname; %SVG.view.content; >
-<!-- end of SVG.view.element -->]]>
-
-<!ENTITY % SVG.view.attlist "INCLUDE" >
-<![%SVG.view.attlist;[
-<!ATTLIST %SVG.view.qname;
-    %SVG.Core.attrib;
-    %SVG.External.attrib;
-    viewBox %ViewBoxSpec.datatype; #IMPLIED
-    preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
-    zoomAndPan ( disable | magnify ) 'magnify'
-    viewTarget CDATA #IMPLIED
->
-<!-- end of SVG.view.attlist -->]]>
-
-<!-- end of svg-view.mod -->
-]]>
-
-<!-- Scripting Module ............................................ -->
-<!ENTITY % svg-script.module "INCLUDE" >
-<![%svg-script.module;[
-<!ENTITY % svg-script.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN"
-           "svg-script.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Scripting Module .............................................. -->
-<!-- file: svg-script.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-script.mod"
-
-     ....................................................................... -->
-
-<!-- Scripting
-
-        script
-
-     This module declares markup to provide support for scripting.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.script.qname "script" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Script.class .................................. -->
-
-<!ENTITY % SVG.Script.extra.class "" >
-
-<!ENTITY % SVG.Script.class
-    "| %SVG.script.qname; %SVG.Script.extra.class;"
->
-
-<!-- script: Script Element ............................ -->
-
-<!ENTITY % SVG.script.element "INCLUDE" >
-<![%SVG.script.element;[
-<!ENTITY % SVG.script.content "( #PCDATA )" >
-<!ELEMENT %SVG.script.qname; %SVG.script.content; >
-<!-- end of SVG.script.element -->]]>
-
-<!ENTITY % SVG.script.attlist "INCLUDE" >
-<![%SVG.script.attlist;[
-<!ATTLIST %SVG.script.qname;
-    %SVG.Core.attrib;
-    %SVG.XLink.attrib;
-    %SVG.External.attrib;
-    type %ContentType.datatype; #REQUIRED
->
-<!-- end of SVG.script.attlist -->]]>
-
-<!-- end of svg-script.mod -->
-]]>
-
-<!-- Animation Module ............................................ -->
-<!ENTITY % svg-animation.module "INCLUDE" >
-<![%svg-animation.module;[
-<!ENTITY % svg-animation.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN"
-           "svg-animation.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Animation Module .............................................. -->
-<!-- file: svg-animation.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animation.mod"
-
-     ....................................................................... -->
-
-<!-- Animation
-
-        animate, set, animateMotion, animateColor, animateTransform, mpath
-
-     This module declares markup to provide support for animation.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.animate.qname "animate" >
-<!ENTITY % SVG.set.qname "set" >
-<!ENTITY % SVG.animateMotion.qname "animateMotion" >
-<!ENTITY % SVG.animateColor.qname "animateColor" >
-<!ENTITY % SVG.animateTransform.qname "animateTransform" >
-<!ENTITY % SVG.mpath.qname "mpath" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.AnimationEvents.attrib "" >
-<!ENTITY % SVG.XLink.attrib "" >
-<!ENTITY % SVG.XLinkRequired.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Animation.class ............................... -->
-
-<!ENTITY % SVG.Animation.extra.class "" >
-
-<!ENTITY % SVG.Animation.class
-    "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; |
-     %SVG.animateColor.qname; | %SVG.animateTransform.qname;
-     %SVG.Animation.extra.class;"
->
-
-<!-- SVG.Animation.attrib .............................. -->
-
-<!ENTITY % SVG.Animation.extra.attrib "" >
-
-<!ENTITY % SVG.Animation.attrib
-    "%SVG.XLink.attrib;
-     %SVG.Animation.extra.attrib;"
->
-
-<!-- SVG.AnimationAttribute.attrib ..................... -->
-
-<!ENTITY % SVG.AnimationAttribute.extra.attrib "" >
-
-<!ENTITY % SVG.AnimationAttribute.attrib
-    "attributeName  CDATA  #REQUIRED
-     attributeType  CDATA  #IMPLIED
-     %SVG.AnimationAttribute.extra.attrib;"
->
-
-<!-- SVG.AnimationTiming.attrib ........................ -->
-
-<!ENTITY % SVG.AnimationTiming.extra.attrib "" >
-
-<!ENTITY % SVG.AnimationTiming.attrib
-    "begin CDATA #IMPLIED
-     dur CDATA #IMPLIED
-     end CDATA #IMPLIED
-     min CDATA #IMPLIED
-     max CDATA #IMPLIED
-     restart ( always | never | whenNotActive ) 'always'
-     repeatCount CDATA #IMPLIED
-     repeatDur CDATA #IMPLIED
-     fill ( remove | freeze ) 'remove'
-     %SVG.AnimationTiming.extra.attrib;"
->
-
-<!-- SVG.AnimationValue.attrib ......................... -->
-
-<!ENTITY % SVG.AnimationValue.extra.attrib "" >
-
-<!ENTITY % SVG.AnimationValue.attrib
-    "calcMode ( discrete | linear | paced | spline ) 'linear'
-     values CDATA #IMPLIED
-     keyTimes CDATA #IMPLIED
-     keySplines CDATA #IMPLIED
-     from CDATA #IMPLIED
-     to CDATA #IMPLIED
-     by CDATA #IMPLIED
-     %SVG.AnimationValue.extra.attrib;"
->
-
-<!-- SVG.AnimationAddtion.attrib ....................... -->
-
-<!ENTITY % SVG.AnimationAddtion.extra.attrib "" >
-
-<!ENTITY % SVG.AnimationAddtion.attrib
-    "additive ( replace | sum ) 'replace'
-     accumulate ( none | sum ) 'none'
-     %SVG.AnimationAddtion.extra.attrib;"
->
-
-<!-- animate: Animate Element .......................... -->
-
-<!ENTITY % SVG.animate.element "INCLUDE" >
-<![%SVG.animate.element;[
-<!ENTITY % SVG.animate.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.animate.qname; %SVG.animate.content; >
-<!-- end of SVG.animate.element -->]]>
-
-<!ENTITY % SVG.animate.attlist "INCLUDE" >
-<![%SVG.animate.attlist;[
-<!ATTLIST %SVG.animate.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.AnimationEvents.attrib;
-    %SVG.External.attrib;
-    %SVG.Animation.attrib;
-    %SVG.AnimationAttribute.attrib;
-    %SVG.AnimationTiming.attrib;
-    %SVG.AnimationValue.attrib;
-    %SVG.AnimationAddtion.attrib;
->
-<!-- end of SVG.animate.attlist -->]]>
-
-<!-- set: Set Element .................................. -->
-
-<!ENTITY % SVG.set.element "INCLUDE" >
-<![%SVG.set.element;[
-<!ENTITY % SVG.set.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.set.qname; %SVG.set.content; >
-<!-- end of SVG.set.element -->]]>
-
-<!ENTITY % SVG.set.attlist "INCLUDE" >
-<![%SVG.set.attlist;[
-<!ATTLIST %SVG.set.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.AnimationEvents.attrib;
-    %SVG.External.attrib;
-    %SVG.Animation.attrib;
-    %SVG.AnimationAttribute.attrib;
-    %SVG.AnimationTiming.attrib;
-    to CDATA #IMPLIED
->
-<!-- end of SVG.set.attlist -->]]>
-
-<!-- animateMotion: Animate Motion Element ............. -->
-
-<!ENTITY % SVG.animateMotion.element "INCLUDE" >
-<![%SVG.animateMotion.element;[
-<!ENTITY % SVG.animateMotion.content
-    "(( %SVG.Description.class; )*, %SVG.mpath.qname;? )"
->
-<!ELEMENT %SVG.animateMotion.qname; %SVG.animateMotion.content; >
-<!-- end of SVG.animateMotion.element -->]]>
-
-<!ENTITY % SVG.animateMotion.attlist "INCLUDE" >
-<![%SVG.animateMotion.attlist;[
-<!ATTLIST %SVG.animateMotion.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.AnimationEvents.attrib;
-    %SVG.External.attrib;
-    %SVG.Animation.attrib;
-    %SVG.AnimationTiming.attrib;
-    %SVG.AnimationAddtion.attrib;
-    calcMode ( discrete | linear | paced | spline ) 'paced'
-    values CDATA #IMPLIED
-    keyTimes CDATA #IMPLIED
-    keySplines CDATA #IMPLIED
-    from CDATA #IMPLIED
-    to CDATA #IMPLIED
-    by CDATA #IMPLIED
-    path CDATA #IMPLIED
-    keyPoints CDATA #IMPLIED
-    rotate CDATA #IMPLIED
-    origin CDATA #IMPLIED
->
-<!-- end of SVG.animateMotion.attlist -->]]>
-
-<!-- animateColor: Animate Color Element ............... -->
-
-<!ENTITY % SVG.animateColor.element "INCLUDE" >
-<![%SVG.animateColor.element;[
-<!ENTITY % SVG.animateColor.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.animateColor.qname; %SVG.animateColor.content; >
-<!-- end of SVG.animateColor.element -->]]>
-
-<!ENTITY % SVG.animateColor.attlist "INCLUDE" >
-<![%SVG.animateColor.attlist;[
-<!ATTLIST %SVG.animateColor.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.AnimationEvents.attrib;
-    %SVG.External.attrib;
-    %SVG.Animation.attrib;
-    %SVG.AnimationAttribute.attrib;
-    %SVG.AnimationTiming.attrib;
-    %SVG.AnimationValue.attrib;
-    %SVG.AnimationAddtion.attrib;
->
-<!-- end of SVG.animateColor.attlist -->]]>
-
-<!-- animateTransform: Animate Transform Element ....... -->
-
-<!ENTITY % SVG.animateTransform.element "INCLUDE" >
-<![%SVG.animateTransform.element;[
-<!ENTITY % SVG.animateTransform.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.animateTransform.qname; %SVG.animateTransform.content; >
-<!-- end of SVG.animateTransform.element -->]]>
-
-<!ENTITY % SVG.animateTransform.attlist "INCLUDE" >
-<![%SVG.animateTransform.attlist;[
-<!ATTLIST %SVG.animateTransform.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.AnimationEvents.attrib;
-    %SVG.External.attrib;
-    %SVG.Animation.attrib;
-    %SVG.AnimationAttribute.attrib;
-    %SVG.AnimationTiming.attrib;
-    %SVG.AnimationValue.attrib;
-    %SVG.AnimationAddtion.attrib;
-    type ( translate | scale | rotate | skewX | skewY ) 'translate'
->
-<!-- end of SVG.animateTransform.attlist -->]]>
-
-<!-- mpath: Motion Path Element ........................ -->
-
-<!ENTITY % SVG.mpath.element "INCLUDE" >
-<![%SVG.mpath.element;[
-<!ENTITY % SVG.mpath.content
-    "( %SVG.Description.class; )*"
->
-<!ELEMENT %SVG.mpath.qname; %SVG.mpath.content; >
-<!-- end of SVG.mpath.element -->]]>
-
-<!ENTITY % SVG.mpath.attlist "INCLUDE" >
-<![%SVG.mpath.attlist;[
-<!ATTLIST %SVG.mpath.qname;
-    %SVG.Core.attrib;
-    %SVG.XLinkRequired.attrib;
-    %SVG.External.attrib;
->
-<!-- end of SVG.mpath.attlist -->]]>
-
-<!-- end of svg-animation.mod -->
-]]>
-
-<!-- Font Module ................................................. -->
-<!ENTITY % svg-font.module "INCLUDE" >
-<![%svg-font.module;[
-<!ENTITY % svg-font.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN"
-           "svg-font.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Font Module ................................................... -->
-<!-- file: svg-font.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-font.mod"
-
-     ....................................................................... -->
-
-<!-- Font
-
-        font, font-face, glyph, missing-glyph, hkern, vkern, font-face-src,
-        font-face-uri, font-face-format, font-face-name, definition-src
-
-     This module declares markup to provide support for template.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.font.qname "font" >
-<!ENTITY % SVG.font-face.qname "font-face" >
-<!ENTITY % SVG.glyph.qname "glyph" >
-<!ENTITY % SVG.missing-glyph.qname "missing-glyph" >
-<!ENTITY % SVG.hkern.qname "hkern" >
-<!ENTITY % SVG.vkern.qname "vkern" >
-<!ENTITY % SVG.font-face-src.qname "font-face-src" >
-<!ENTITY % SVG.font-face-uri.qname "font-face-uri" >
-<!ENTITY % SVG.font-face-format.qname "font-face-format" >
-<!ENTITY % SVG.font-face-name.qname "font-face-name" >
-<!ENTITY % SVG.definition-src.qname "definition-src" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Container.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Profile.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.XLinkRequired.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Font.class .................................... -->
-
-<!ENTITY % SVG.Font.extra.class "" >
-
-<!ENTITY % SVG.Font.class
-    "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- font: Font Element ................................ -->
-
-<!ENTITY % SVG.font.element "INCLUDE" >
-<![%SVG.font.element;[
-<!ENTITY % SVG.font.content
-    "(( %SVG.Description.class; )*, %SVG.font-face.qname;,
-        %SVG.missing-glyph.qname;, ( %SVG.glyph.qname; | %SVG.hkern.qname;
-      | %SVG.vkern.qname; )*)"
->
-<!ELEMENT %SVG.font.qname; %SVG.font.content; >
-<!-- end of SVG.font.element -->]]>
-
-<!ENTITY % SVG.font.attlist "INCLUDE" >
-<![%SVG.font.attlist;[
-<!ATTLIST %SVG.font.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.External.attrib;
-    horiz-origin-x %Number.datatype; #IMPLIED
-    horiz-origin-y %Number.datatype; #IMPLIED
-    horiz-adv-x %Number.datatype; #REQUIRED
-    vert-origin-x %Number.datatype; #IMPLIED
-    vert-origin-y %Number.datatype; #IMPLIED
-    vert-adv-y %Number.datatype; #IMPLIED
->
-<!-- end of SVG.font.attlist -->]]>
-
-<!-- font-face: Font Face Element ...................... -->
-
-<!ENTITY % SVG.font-face.element "INCLUDE" >
-<![%SVG.font-face.element;[
-<!ENTITY % SVG.font-face.content
-    "(( %SVG.Description.class; )*, %SVG.font-face-src.qname;?,
-        %SVG.definition-src.qname;? )"
->
-<!ELEMENT %SVG.font-face.qname; %SVG.font-face.content; >
-<!-- end of SVG.font-face.element -->]]>
-
-<!ENTITY % SVG.font-face.attlist "INCLUDE" >
-<![%SVG.font-face.attlist;[
-<!ATTLIST %SVG.font-face.qname;
-    %SVG.Core.attrib;
-    font-family CDATA #IMPLIED
-    font-style CDATA #IMPLIED
-    font-variant CDATA #IMPLIED
-    font-weight CDATA #IMPLIED
-    font-stretch CDATA #IMPLIED
-    font-size CDATA #IMPLIED
-    unicode-range CDATA #IMPLIED
-    units-per-em %Number.datatype; #IMPLIED
-    panose-1 CDATA #IMPLIED
-    stemv %Number.datatype; #IMPLIED
-    stemh %Number.datatype; #IMPLIED
-    slope %Number.datatype; #IMPLIED
-    cap-height %Number.datatype; #IMPLIED
-    x-height %Number.datatype; #IMPLIED
-    accent-height %Number.datatype; #IMPLIED
-    ascent %Number.datatype; #IMPLIED
-    descent %Number.datatype; #IMPLIED
-    widths CDATA #IMPLIED
-    bbox CDATA #IMPLIED
-    ideographic %Number.datatype; #IMPLIED
-    alphabetic %Number.datatype; #IMPLIED
-    mathematical %Number.datatype; #IMPLIED
-    hanging %Number.datatype; #IMPLIED
-    v-ideographic %Number.datatype; #IMPLIED
-    v-alphabetic %Number.datatype; #IMPLIED
-    v-mathematical %Number.datatype; #IMPLIED
-    v-hanging %Number.datatype; #IMPLIED
-    underline-position %Number.datatype; #IMPLIED
-    underline-thickness %Number.datatype; #IMPLIED
-    strikethrough-position %Number.datatype; #IMPLIED
-    strikethrough-thickness %Number.datatype; #IMPLIED
-    overline-position %Number.datatype; #IMPLIED
-    overline-thickness %Number.datatype; #IMPLIED
->
-<!-- end of SVG.font-face.attlist -->]]>
-
-<!-- glyph: Glyph Element .............................. -->
-
-<!ENTITY % SVG.glyph.element "INCLUDE" >
-<![%SVG.glyph.element;[
-<!ENTITY % SVG.glyph.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.glyph.qname; %SVG.glyph.content; >
-<!-- end of SVG.glyph.element -->]]>
-
-<!ENTITY % SVG.glyph.attlist "INCLUDE" >
-<![%SVG.glyph.attlist;[
-<!ATTLIST %SVG.glyph.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    unicode CDATA #IMPLIED
-    glyph-name CDATA #IMPLIED
-    d %PathData.datatype; #IMPLIED
-    orientation CDATA #IMPLIED
-    arabic-form CDATA #IMPLIED
-    lang %LanguageCodes.datatype; #IMPLIED
-    horiz-adv-x %Number.datatype; #IMPLIED
-    vert-origin-x %Number.datatype; #IMPLIED
-    vert-origin-y %Number.datatype; #IMPLIED
-    vert-adv-y %Number.datatype; #IMPLIED
->
-<!-- end of SVG.glyph.attlist -->]]>
-
-<!-- missing-glyph: Missing Glyph Element .............. -->
-
-<!ENTITY % SVG.missing-glyph.element "INCLUDE" >
-<![%SVG.missing-glyph.element;[
-<!ENTITY % SVG.missing-glyph.content
-    "( %SVG.Description.class; | %SVG.Animation.class; %SVG.Structure.class;
-       %SVG.Conditional.class; %SVG.Image.class; %SVG.Style.class;
-       %SVG.Shape.class; %SVG.Text.class; %SVG.Marker.class; %SVG.Profile.class;
-       %SVG.Gradient.class; %SVG.Pattern.class; %SVG.Clip.class;
-       %SVG.Mask.class; %SVG.Filter.class; %SVG.Cursor.class;
-       %SVG.Hyperlink.class; %SVG.View.class; %SVG.Script.class;
-       %SVG.Font.class; )*"
->
-<!ELEMENT %SVG.missing-glyph.qname; %SVG.missing-glyph.content; >
-<!-- end of SVG.missing-glyph.element -->]]>
-
-<!ENTITY % SVG.missing-glyph.attlist "INCLUDE" >
-<![%SVG.missing-glyph.attlist;[
-<!ATTLIST %SVG.missing-glyph.qname;
-    %SVG.Core.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    d %PathData.datatype; #IMPLIED
-    horiz-adv-x %Number.datatype; #IMPLIED
-    vert-origin-x %Number.datatype; #IMPLIED
-    vert-origin-y %Number.datatype; #IMPLIED
-    vert-adv-y %Number.datatype; #IMPLIED
->
-<!-- end of SVG.missing-glyph.attlist -->]]>
-
-<!-- hkern: Horizontal Kerning Element ................. -->
-
-<!ENTITY % SVG.hkern.element "INCLUDE" >
-<![%SVG.hkern.element;[
-<!ENTITY % SVG.hkern.content "EMPTY" >
-<!ELEMENT %SVG.hkern.qname; %SVG.hkern.content; >
-<!-- end of SVG.hkern.element -->]]>
-
-<!ENTITY % SVG.hkern.attlist "INCLUDE" >
-<![%SVG.hkern.attlist;[
-<!ATTLIST %SVG.hkern.qname;
-    %SVG.Core.attrib;
-    u1 CDATA #IMPLIED
-    g1 CDATA #IMPLIED
-    u2 CDATA #IMPLIED
-    g2 CDATA #IMPLIED
-    k %Number.datatype; #REQUIRED
->
-<!-- end of SVG.hkern.attlist -->]]>
-
-<!-- vkern: Vertical Kerning Element ................... -->
-
-<!ENTITY % SVG.vkern.element "INCLUDE" >
-<![%SVG.vkern.element;[
-<!ENTITY % SVG.vkern.content "EMPTY" >
-<!ELEMENT %SVG.vkern.qname; %SVG.vkern.content; >
-<!-- end of SVG.vkern.element -->]]>
-
-<!ENTITY % SVG.vkern.attlist "INCLUDE" >
-<![%SVG.vkern.attlist;[
-<!ATTLIST %SVG.vkern.qname;
-    %SVG.Core.attrib;
-    u1 CDATA #IMPLIED
-    g1 CDATA #IMPLIED
-    u2 CDATA #IMPLIED
-    g2 CDATA #IMPLIED
-    k %Number.datatype; #REQUIRED
->
-<!-- end of SVG.vkern.attlist -->]]>
-
-<!-- font-face-src: Font Face Source Element ........... -->
-
-<!ENTITY % SVG.font-face-src.element "INCLUDE" >
-<![%SVG.font-face-src.element;[
-<!ENTITY % SVG.font-face-src.content
-    "( %SVG.font-face-uri.qname; | %SVG.font-face-name.qname; )+"
->
-<!ELEMENT %SVG.font-face-src.qname; %SVG.font-face-src.content; >
-<!-- end of SVG.font-face-src.element -->]]>
-
-<!ENTITY % SVG.font-face-src.attlist "INCLUDE" >
-<![%SVG.font-face-src.attlist;[
-<!ATTLIST %SVG.font-face-src.qname;
-    %SVG.Core.attrib;
->
-<!-- end of SVG.font-face-src.attlist -->]]>
-
-<!-- font-face-uri: Font Face URI Element .............. -->
-
-<!ENTITY % SVG.font-face-uri.element "INCLUDE" >
-<![%SVG.font-face-uri.element;[
-<!ENTITY % SVG.font-face-uri.content
-    "( %SVG.font-face-format.qname; )*"
->
-<!ELEMENT %SVG.font-face-uri.qname; %SVG.font-face-uri.content; >
-<!-- end of SVG.font-face-uri.element -->]]>
-
-<!ENTITY % SVG.font-face-uri.attlist "INCLUDE" >
-<![%SVG.font-face-uri.attlist;[
-<!ATTLIST %SVG.font-face-uri.qname;
-    %SVG.Core.attrib;
-    %SVG.XLinkRequired.attrib;
->
-<!-- end of SVG.font-face-uri.attlist -->]]>
-
-<!-- font-face-format: Font Face Format Element ........ -->
-
-<!ENTITY % SVG.font-face-format.element "INCLUDE" >
-<![%SVG.font-face-format.element;[
-<!ENTITY % SVG.font-face-format.content "EMPTY" >
-<!ELEMENT %SVG.font-face-format.qname; %SVG.font-face-format.content; >
-<!-- end of SVG.font-face-format.element -->]]>
-
-<!ENTITY % SVG.font-face-format.attlist "INCLUDE" >
-<![%SVG.font-face-format.attlist;[
-<!ATTLIST %SVG.font-face-format.qname;
-    %SVG.Core.attrib;
-    string CDATA #IMPLIED
->
-<!-- end of SVG.font-face-format.attlist -->]]>
-
-<!-- font-face-name: Font Face Name Element ............ -->
-
-<!ENTITY % SVG.font-face-name.element "INCLUDE" >
-<![%SVG.font-face-name.element;[
-<!ENTITY % SVG.font-face-name.content "EMPTY" >
-<!ELEMENT %SVG.font-face-name.qname; %SVG.font-face-name.content; >
-<!-- end of SVG.font-face-name.element -->]]>
-
-<!ENTITY % SVG.font-face-name.attlist "INCLUDE" >
-<![%SVG.font-face-name.attlist;[
-<!ATTLIST %SVG.font-face-name.qname;
-    %SVG.Core.attrib;
-    name CDATA #IMPLIED
->
-<!-- end of SVG.font-face-name.attlist -->]]>
-
-<!-- definition-src: Definition Source Element ......... -->
-
-<!ENTITY % SVG.definition-src.element "INCLUDE" >
-<![%SVG.definition-src.element;[
-<!ENTITY % SVG.definition-src.content "EMPTY" >
-<!ELEMENT %SVG.definition-src.qname; %SVG.definition-src.content; >
-<!-- end of SVG.definition-src.element -->]]>
-
-<!ENTITY % SVG.definition-src.attlist "INCLUDE" >
-<![%SVG.definition-src.attlist;[
-<!ATTLIST %SVG.definition-src.qname;
-    %SVG.Core.attrib;
-    %SVG.XLinkRequired.attrib;
->
-<!-- end of SVG.definition-src.attlist -->]]>
-
-<!-- end of svg-font.mod -->
-]]>
-
-<!-- Extensibility Module ........................................ -->
-<!ENTITY % svg-extensibility.module "INCLUDE" >
-<![%svg-extensibility.module;[
-<!ENTITY % svg-extensibility.mod
-    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN"
-           "svg-extensibility.mod" >
-<!-- ....................................................................... -->
-<!-- SVG 1.1 Extensibility Module .......................................... -->
-<!-- file: svg-extensibility.mod
-
-     This is SVG, a language for describing two-dimensional graphics in XML.
-     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-        PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN"
-        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extensibility.mod"
-
-     ....................................................................... -->
-
-<!-- Extensibility
-
-        foreignObject
-
-     This module declares markup to provide support for extensibility.
--->
-
-<!-- Qualified Names (Default) ......................... -->
-
-<!ENTITY % SVG.foreignObject.qname "foreignObject" >
-
-<!-- Attribute Collections (Default) ................... -->
-
-<!ENTITY % SVG.Core.attrib "" >
-<!ENTITY % SVG.Conditional.attrib "" >
-<!ENTITY % SVG.Style.attrib "" >
-<!ENTITY % SVG.Viewport.attrib "" >
-<!ENTITY % SVG.Text.attrib "" >
-<!ENTITY % SVG.TextContent.attrib "" >
-<!ENTITY % SVG.Font.attrib "" >
-<!ENTITY % SVG.Paint.attrib "" >
-<!ENTITY % SVG.Color.attrib "" >
-<!ENTITY % SVG.Opacity.attrib "" >
-<!ENTITY % SVG.Graphics.attrib "" >
-<!ENTITY % SVG.Marker.attrib "" >
-<!ENTITY % SVG.Gradient.attrib "" >
-<!ENTITY % SVG.Clip.attrib "" >
-<!ENTITY % SVG.Mask.attrib "" >
-<!ENTITY % SVG.Filter.attrib "" >
-<!ENTITY % SVG.FilterColor.attrib "" >
-<!ENTITY % SVG.GraphicalEvents.attrib "" >
-<!ENTITY % SVG.Cursor.attrib "" >
-<!ENTITY % SVG.External.attrib "" >
-
-<!-- SVG.Extensibility.class ........................... -->
-
-<!ENTITY % SVG.Extensibility.extra.class "" >
-
-<!ENTITY % SVG.Extensibility.class
-    "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;"
->
-
-<!-- SVG.Presentation.attrib ........................... -->
-
-<!ENTITY % SVG.Presentation.extra.attrib "" >
-
-<!ENTITY % SVG.Presentation.attrib
-    "%SVG.Container.attrib;
-     %SVG.Viewport.attrib;
-     %SVG.Text.attrib;
-     %SVG.TextContent.attrib;
-     %SVG.Font.attrib;
-     %SVG.Paint.attrib;
-     %SVG.Color.attrib;
-     %SVG.Opacity.attrib;
-     %SVG.Graphics.attrib;
-     %SVG.Marker.attrib;
-     %SVG.Profile.attrib;
-     %SVG.Gradient.attrib;
-     %SVG.Clip.attrib;
-     %SVG.Mask.attrib;
-     %SVG.Filter.attrib;
-     %SVG.FilterColor.attrib;
-     %SVG.Cursor.attrib;
-     flood-color %SVGColor.datatype; #IMPLIED
-     flood-opacity %OpacityValue.datatype; #IMPLIED
-     lighting-color %SVGColor.datatype; #IMPLIED
-     %SVG.Presentation.extra.attrib;"
->
-
-<!-- foreignObject: Foreign Object Element ............. -->
-
-<!ENTITY % SVG.foreignObject.element "INCLUDE" >
-<![%SVG.foreignObject.element;[
-<!ENTITY % SVG.foreignObject.content "( #PCDATA )" >
-<!ELEMENT %SVG.foreignObject.qname; %SVG.foreignObject.content; >
-<!-- end of SVG.foreignObject.element -->]]>
-
-<!ENTITY % SVG.foreignObject.attlist "INCLUDE" >
-<![%SVG.foreignObject.attlist;[
-<!ATTLIST %SVG.foreignObject.qname;
-    %SVG.Core.attrib;
-    %SVG.Conditional.attrib;
-    %SVG.Style.attrib;
-    %SVG.Presentation.attrib;
-    %SVG.GraphicalEvents.attrib;
-    %SVG.External.attrib;
-    x %Coordinate.datatype; #IMPLIED
-    y %Coordinate.datatype; #IMPLIED
-    width %Length.datatype; #REQUIRED
-    height %Length.datatype; #REQUIRED
-    transform %TransformList.datatype; #IMPLIED
->
-<!-- end of SVG.foreignObject.attlist -->]]>
-
-<!-- end of svg-extensibility.mod -->
-]]>
-
-<!-- end of SVG 1.1 DTD .................................................... -->
-<!-- ....................................................................... -->
-
-]]>
-
-<!-- Instantiate XHTML DTD  ...................................... -->
-<![%XHTML.module;[
-<!ENTITY % XHTML.dtd.decl
-    'PUBLIC "%XHTML.dtd.fpi;"
-            "%XHTML.dtd.sysid;"'
->
-<!ENTITY % XHTML.dtd %XHTML.dtd.decl; >
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 DTD  ........................................................ -->
-<!-- file: xhtml11.dtd
--->
-
-<!-- XHTML 1.1 DTD
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-
-     The Extensible HyperText Markup Language (XHTML)
-     Copyright 1998-2001 World Wide Web Consortium
-        (Massachusetts Institute of Technology, Institut National de
-         Recherche en Informatique et en Automatique, Keio University).
-         All Rights Reserved.
-
-     Permission to use, copy, modify and distribute the XHTML DTD and its 
-     accompanying documentation for any purpose and without fee is hereby 
-     granted in perpetuity, provided that the above copyright notice and 
-     this paragraph appear in all copies.  The copyright holders make no 
-     representation about the suitability of the DTD for any purpose.
-
-     It is provided "as is" without expressed or implied warranty.
-
-        Author:     Murray M. Altheim <altheim@eng.sun.com>
-        Revision:   $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
--->
-<!-- This is the driver file for version 1.1 of the XHTML DTD.
-
-     Please use this formal public identifier to identify it:
-
-         "-//W3C//DTD XHTML 1.1//EN"
--->
-<!ENTITY % XHTML.version  "-//W3C//DTD XHTML 1.1//EN" >
-
-<!-- Use this URI to identify the default namespace:
-
-         "http://www.w3.org/1999/xhtml"
-
-     See the Qualified Names module for information
-     on the use of namespace prefixes in the DTD.
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % XHTML.prefix "" >
-
-<!-- Reserved for use with the XLink namespace:
--->
-<!ENTITY % XLINK.xmlns "" >
-<!ENTITY % XLINK.xmlns.attrib "" >
-
-<!-- For example, if you are using XHTML 1.1 directly, use the FPI
-     in the DOCTYPE declaration, with the xmlns attribute on the
-     document element to identify the default namespace:
-
-       <?xml version="1.0"?>
-       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
-       <html xmlns="http://www.w3.org/1999/xhtml"
-             xml:lang="en">
-       ...
-       </html>
-
-     Revisions:
-     (none)
--->
-
-<!-- reserved for future use with document profiles -->
-<!ENTITY % XHTML.profile  "" >
-
-<!-- Bidirectional Text features
-     This feature-test entity is used to declare elements
-     and attributes used for bidirectional text support.
--->
-<!ENTITY % XHTML.bidi  "INCLUDE" >
-
-<?doc type="doctype" role="title" { XHTML 1.1 } ?>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Pre-Framework Redeclaration placeholder  .................... -->
-<!-- this serves as a location to insert markup declarations
-     into the DTD prior to the framework declarations.
--->
-<!ENTITY % xhtml-prefw-redecl.module "IGNORE" >
-<![%xhtml-prefw-redecl.module;[
-%xhtml-prefw-redecl.mod;
-<!-- end of xhtml-prefw-redecl.module -->]]>
-
-<!ENTITY % xhtml-events.module "INCLUDE" >
-
-<!-- Inline Style Module  ........................................ -->
-<!ENTITY % xhtml-inlstyle.module "INCLUDE" >
-<![%xhtml-inlstyle.module;[
-<!ENTITY % xhtml-inlstyle.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Style Module  ........................................... -->
-<!-- file: xhtml-inlstyle-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Inline Style 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Style
-
-     This module declares the 'style' attribute, used to support inline
-     style markup. This module must be instantiated prior to the XHTML
-     Common Attributes module in order to be included in %Core.attrib;.
--->
-
-<!ENTITY % style.attrib
-     "style        CDATA                    #IMPLIED"
->
-
-
-<!ENTITY % Core.extra.attrib
-     "%style.attrib;"
->
-
-<!-- end of xhtml-inlstyle-1.mod -->
-]]>
-
-<!-- declare Document Model module instantiated in framework
--->
-<!ENTITY % xhtml-model.mod
-     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
-            "xhtml11-model-1.mod" >
-
-<!-- Modular Framework Module (required) ......................... -->
-<!ENTITY % xhtml-framework.module "INCLUDE" >
-<![%xhtml-framework.module;[
-<!ENTITY % xhtml-framework.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Modular Framework Module  ...................................... -->
-<!-- file: xhtml-framework-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Modular Framework
-
-     This required module instantiates the modules needed
-     to support the XHTML modularization model, including:
-
-        +  notations
-        +  datatypes
-        +  namespace-qualified names
-        +  common attributes
-        +  document model
-        +  character entities
-
-     The Intrinsic Events module is ignored by default but
-     occurs in this module because it must be instantiated
-     prior to Attributes but after Datatypes.
--->
-
-<!ENTITY % xhtml-arch.module "IGNORE" >
-<![%xhtml-arch.module;[
-<!ENTITY % xhtml-arch.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN"
-            "xhtml-arch-1.mod" >
-%xhtml-arch.mod;]]>
-
-<!ENTITY % xhtml-notations.module "INCLUDE" >
-<![%xhtml-notations.module;[
-<!ENTITY % xhtml-notations.mod
-     PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN"
-            "xhtml-notations-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Notations Module  .............................................. -->
-<!-- file: xhtml-notations-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-notations-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Notations
-
-     defines the following notations, many of these imported from
-     other specifications and standards. When an existing FPI is
-     known, it is incorporated here.
--->
-
-<!-- XML Notations ..................................... -->
-<!-- SGML and XML Notations ............................ -->
-
-<!-- W3C XML 1.0 Recommendation -->
-<!NOTATION w3c-xml
-     PUBLIC "ISO 8879//NOTATION Extensible Markup Language (XML) 1.0//EN" >
-
-<!-- XML 1.0 CDATA -->
-<!NOTATION cdata
-     PUBLIC "-//W3C//NOTATION XML 1.0: CDATA//EN" >
-
-<!-- SGML Formal Public Identifiers -->
-<!NOTATION fpi
-     PUBLIC "ISO 8879:1986//NOTATION Formal Public Identifier//EN" >
-
-<!-- XHTML Notations ................................... -->
-
-<!-- Length defined for cellpadding/cellspacing -->
-
-<!-- nn for pixels or nn% for percentage length -->
-<!NOTATION length
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Length//EN" >
-
-<!-- space-separated list of link types -->
-<!NOTATION linkTypes
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: LinkTypes//EN" >
-
-<!-- single or comma-separated list of media descriptors -->
-<!NOTATION mediaDesc
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: MediaDesc//EN" >
-
-<!-- pixel, percentage, or relative -->
-<!NOTATION multiLength
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: MultiLength//EN" >
-
-<!-- one or more digits (NUMBER) -->
-<!NOTATION number
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Number//EN" >
-
-<!-- integer representing length in pixels -->
-<!NOTATION pixels
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Pixels//EN" >
-
-<!-- script expression -->
-<!NOTATION script
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Script//EN" >
-
-<!-- textual content -->
-<!NOTATION text
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Text//EN" >
-
-<!-- Imported Notations ................................ -->
-
-<!-- a single character from [ISO10646] -->
-<!NOTATION character
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Character//EN" >
-
-<!-- a character encoding, as per [RFC2045] -->
-<!NOTATION charset
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Charset//EN" >
-
-<!-- a space separated list of character encodings, as per [RFC2045] -->
-<!NOTATION charsets
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Charsets//EN" >
-
-<!-- media type, as per [RFC2045] -->
-<!NOTATION contentType
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: ContentType//EN" >
-
-<!-- comma-separated list of media types, as per [RFC2045] -->
-<!NOTATION contentTypes
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: ContentTypes//EN" >
-
-<!-- date and time information. ISO date format -->
-<!NOTATION datetime
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: Datetime//EN" >
-
-<!-- a language code, as per [RFC3066] -->
-<!NOTATION languageCode
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: LanguageCode//EN" >
-
-<!-- a Uniform Resource Identifier, see [URI] -->
-<!NOTATION uri
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: URI//EN" >
-
-<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
-<!NOTATION uris
-    PUBLIC "-//W3C//NOTATION XHTML Datatype: URIs//EN" >
-
-<!-- end of xhtml-notations-1.mod -->
-]]>
-
-<!ENTITY % xhtml-datatypes.module "INCLUDE" >
-<![%xhtml-datatypes.module;[
-<!ENTITY % xhtml-datatypes.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-            "xhtml-datatypes-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Datatypes Module  .............................................. -->
-<!-- file: xhtml-datatypes-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Datatypes
-
-     defines containers for the following datatypes, many of
-     these imported from other specifications and standards.
--->
-
-<!-- Length defined for cellpadding/cellspacing -->
-
-<!-- nn for pixels or nn% for percentage length -->
-<!ENTITY % Length.datatype "CDATA" >
-
-<!-- space-separated list of link types -->
-<!ENTITY % LinkTypes.datatype "NMTOKENS" >
-
-<!-- single or comma-separated list of media descriptors -->
-<!ENTITY % MediaDesc.datatype "CDATA" >
-
-<!-- pixel, percentage, or relative -->
-<!ENTITY % MultiLength.datatype "CDATA" >
-
-<!-- one or more digits (NUMBER) -->
-<!ENTITY % Number.datatype "CDATA" >
-
-<!-- integer representing length in pixels -->
-<!ENTITY % Pixels.datatype "CDATA" >
-
-<!-- script expression -->
-<!ENTITY % Script.datatype "CDATA" >
-
-<!-- textual content -->
-<!ENTITY % Text.datatype "CDATA" >
-
-<!-- Imported Datatypes ................................ -->
-
-<!-- a single character from [ISO10646] -->
-<!ENTITY % Character.datatype "CDATA" >
-
-<!-- a character encoding, as per [RFC2045] -->
-<!ENTITY % Charset.datatype "CDATA" >
-
-<!-- a space separated list of character encodings, as per [RFC2045] -->
-<!ENTITY % Charsets.datatype "CDATA" >
-
-<!-- Color specification using color name or sRGB (#RRGGBB) values -->
-<!ENTITY % Color.datatype "CDATA" >
-
-<!-- media type, as per [RFC2045] -->
-<!ENTITY % ContentType.datatype "CDATA" >
-
-<!-- comma-separated list of media types, as per [RFC2045] -->
-<!ENTITY % ContentTypes.datatype "CDATA" >
-
-<!-- date and time information. ISO date format -->
-<!ENTITY % Datetime.datatype "CDATA" >
-
-<!-- formal public identifier, as per [ISO8879] -->
-<!ENTITY % FPI.datatype "CDATA" >
-
-<!-- a language code, as per [RFC3066] -->
-<!ENTITY % LanguageCode.datatype "NMTOKEN" >
-
-<!-- a Uniform Resource Identifier, see [URI] -->
-<!ENTITY % URI.datatype "CDATA" >
-
-<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
-<!ENTITY % URIs.datatype "CDATA" >
-
-<!-- end of xhtml-datatypes-1.mod -->
-]]>
-
-<!-- placeholder for XLink support module -->
-<!ENTITY % xhtml-xlink.mod "" >
-
-
-<!ENTITY % xhtml-qname.module "INCLUDE" >
-<![%xhtml-qname.module;[
-<!ENTITY % xhtml-qname.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
-            "xhtml-qname-1.mod" >
-<!-- ....................................................................... -->
-<!-- XHTML Qname Module  ................................................... -->
-<!-- file: xhtml-qname-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-qname-1.mod"
-
-     Revisions:
-#2000-10-22: added qname declarations for ruby elements
-     ....................................................................... -->
-
-<!-- XHTML Qname (Qualified Name) Module
-
-     This module is contained in two parts, labeled Section 'A' and 'B':
-
-       Section A declares parameter entities to support namespace-
-       qualified names, namespace declarations, and name prefixing
-       for XHTML and extensions.
-
-       Section B declares parameter entities used to provide
-       namespace-qualified names for all XHTML element types:
-
-         %applet.qname;   the xmlns-qualified name for <applet>
-         %base.qname;     the xmlns-qualified name for <base>
-         ...
-
-     XHTML extensions would create a module similar to this one.
-     Included in the XHTML distribution is a template module
-     ('template-qname-1.mod') suitable for this purpose.
--->
-
-<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: -->
-
-<!-- 1. Declare a %XHTML.prefixed; conditional section keyword, used
-        to activate namespace prefixing. The default value should
-        inherit '%NS.prefixed;' from the DTD driver, so that unless
-        overridden, the default behaviour follows the overall DTD
-        prefixing scheme.
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % XHTML.prefixed "%NS.prefixed;" >
-
-<!-- 2. Declare a parameter entity (eg., %XHTML.xmlns;) containing
-        the URI reference used to identify the XHTML namespace:
--->
-<!ENTITY % XHTML.xmlns  "http://www.w3.org/1999/xhtml" >
-
-<!-- 3. Declare parameter entities (eg., %XHTML.prefix;) containing
-        the default namespace prefix string(s) to use when prefixing
-        is enabled. This may be overridden in the DTD driver or the
-        internal subset of an document instance. If no default prefix
-        is desired, this may be declared as an empty string.
-
-     NOTE: As specified in [XMLNAMES], the namespace prefix serves
-     as a proxy for the URI reference, and is not in itself significant.
--->
-<!ENTITY % XHTML.prefix  "" >
-
-<!-- 4. Declare parameter entities (eg., %XHTML.pfx;) containing the
-        colonized prefix(es) (eg., '%XHTML.prefix;:') used when
-        prefixing is active, an empty string when it is not.
--->
-<![%XHTML.prefixed;[
-<!ENTITY % XHTML.pfx  "%XHTML.prefix;:" >
-]]>
-<!ENTITY % XHTML.pfx  "" >
-
-<!-- declare qualified name extensions here ............ -->
-<!ENTITY % xhtml-qname-extra.mod "" >
-<!-- ....................................................................... -->
-<!-- MathML Qualified Names Module  ........................................ -->
-<!-- file: mathml2-qname-1.mod
-
-     This is the Mathematical Markup Language (MathML) 2.0, an XML 
-     application for describing mathematical notation and capturing 
-     both its structure and content.
-
-     Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ 
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
-       SYSTEM "mathml2-qname-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- MathML Qualified Names
-
-     This module is contained in two parts, labeled Section 'A' and 'B':
-
-       Section A declares parameter entities to support namespace-
-       qualified names, namespace declarations, and name prefixing 
-       for MathML.
-    
-       Section B declares parameter entities used to provide
-       namespace-qualified names for all MathML element types.
-
-     This module is derived from the XHTML Qualified Names Template module.
--->
-
-<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: -->
-
-<!ENTITY % NS.prefixed     "IGNORE" >
-<!ENTITY % MATHML.prefixed "%NS.prefixed;" >
-
-<!-- XLink ............... -->
-
-<!ENTITY % XLINK.xmlns "http://www.w3.org/1999/xlink" >
-<!ENTITY % XLINK.xmlns.attrib
-     "xmlns:xlink  CDATA           #FIXED '%XLINK.xmlns;'"
->
-
-<!-- MathML .............. -->
-
-<!ENTITY % MATHML.xmlns    "http://www.w3.org/1998/Math/MathML" >
-<!ENTITY % MATHML.prefix   "m" >
-<![%MATHML.prefixed;[
-<!ENTITY % MATHML.xmlns.extra.attrib  "" >
-]]>
-<!ENTITY % MATHML.xmlns.extra.attrib 
-     "%XLINK.xmlns.attrib;" >
-
-<![%MATHML.prefixed;[
-<!ENTITY % MATHML.pfx  "%MATHML.prefix;:" >
-<!ENTITY % MATHML.xmlns.attrib
-     "xmlns:%MATHML.prefix;  CDATA   #FIXED '%MATHML.xmlns;'
-      %MATHML.xmlns.extra.attrib;"
->
-]]>
-<!ENTITY % MATHML.pfx  "" >
-<!ENTITY % MATHML.xmlns.attrib
-     "xmlns        CDATA           #FIXED '%MATHML.xmlns;'
-      %MATHML.xmlns.extra.attrib;"
->
-
-<![%NS.prefixed;[
-<!ENTITY % XHTML.xmlns.extra.attrib 
-     "%MATHML.xmlns.attrib;" >
-]]>
-<!ENTITY % XHTML.xmlns.extra.attrib
-     "%XLINK.xmlns.attrib;"
->
-
-<!-- Section B: MathML Qualified Names ::::::::::::::::::::::::::::: -->
-
-<!-- 9. This section declares parameter entities used to provide
-        namespace-qualified names for all MathML element types.
--->
-
-<!ENTITY % abs.qname            "%MATHML.pfx;abs" >
-<!ENTITY % and.qname            "%MATHML.pfx;and" >
-<!ENTITY % annotation-xml.qname "%MATHML.pfx;annotation-xml" >
-<!ENTITY % annotation.qname     "%MATHML.pfx;annotation" >
-<!ENTITY % apply.qname          "%MATHML.pfx;apply" >
-<!ENTITY % approx.qname         "%MATHML.pfx;approx" >
-<!ENTITY % arccos.qname         "%MATHML.pfx;arccos" >
-<!ENTITY % arccosh.qname        "%MATHML.pfx;arccosh" >
-<!ENTITY % arccosh.qname        "%MATHML.pfx;arccosh" >
-<!ENTITY % arccot.qname         "%MATHML.pfx;arccot" >
-<!ENTITY % arccoth.qname        "%MATHML.pfx;arccoth" >
-<!ENTITY % arccsc.qname         "%MATHML.pfx;arccsc" >
-<!ENTITY % arccsch.qname        "%MATHML.pfx;arccsch" >
-<!ENTITY % arcsec.qname         "%MATHML.pfx;arcsec" >
-<!ENTITY % arcsech.qname        "%MATHML.pfx;arcsech" >
-<!ENTITY % arcsin.qname         "%MATHML.pfx;arcsin" >
-<!ENTITY % arcsinh.qname        "%MATHML.pfx;arcsinh" >
-<!ENTITY % arctan.qname         "%MATHML.pfx;arctan" >
-<!ENTITY % arctanh.qname        "%MATHML.pfx;arctanh" >
-<!ENTITY % arg.qname            "%MATHML.pfx;arg" >
-<!ENTITY % bvar.qname           "%MATHML.pfx;bvar" >
-<!ENTITY % card.qname           "%MATHML.pfx;card" >
-<!ENTITY % cartesianproduct.qname "%MATHML.pfx;cartesianproduct" >
-<!ENTITY % ceiling.qname         "%MATHML.pfx;ceiling" >
-<!ENTITY % ci.qname             "%MATHML.pfx;ci" >
-<!ENTITY % cn.qname             "%MATHML.pfx;cn" >
-<!ENTITY % codomain.qname       "%MATHML.pfx;codomain" >
-<!ENTITY % complexes.qname      "%MATHML.pfx;complexes" >
-<!ENTITY % compose.qname        "%MATHML.pfx;compose" >
-<!ENTITY % condition.qname      "%MATHML.pfx;condition" >
-<!ENTITY % conjugate.qname      "%MATHML.pfx;conjugate" >
-<!ENTITY % cos.qname            "%MATHML.pfx;cos" >
-<!ENTITY % cosh.qname           "%MATHML.pfx;cosh" >
-<!ENTITY % cot.qname            "%MATHML.pfx;cot" >
-<!ENTITY % coth.qname           "%MATHML.pfx;coth" >
-<!ENTITY % csc.qname            "%MATHML.pfx;csc" >
-<!ENTITY % csch.qname           "%MATHML.pfx;csch" >
-<!ENTITY % csymbol.qname        "%MATHML.pfx;csymbol" >
-<!ENTITY % curl.qname           "%MATHML.pfx;curl" >
-<!ENTITY % declare.qname        "%MATHML.pfx;declare" >
-<!ENTITY % degree.qname         "%MATHML.pfx;degree" >
-<!ENTITY % determinant.qname    "%MATHML.pfx;determinant" >
-<!ENTITY % diff.qname           "%MATHML.pfx;diff" >
-<!ENTITY % divergence.qname     "%MATHML.pfx;divergence" >
-<!ENTITY % divide.qname         "%MATHML.pfx;divide" >
-<!ENTITY % domain.qname         "%MATHML.pfx;domain" >
-<!ENTITY % domainofapplication.qname "%MATHML.pfx;domainofapplication" >
-<!ENTITY % emptyset.qname       "%MATHML.pfx;emptyset" >
-<!ENTITY % eq.qname             "%MATHML.pfx;eq" >
-<!ENTITY % equivalent.qname     "%MATHML.pfx;equivalent" >
-<!ENTITY % eulergamma.qname     "%MATHML.pfx;eulergamma" >
-<!ENTITY % exists.qname         "%MATHML.pfx;exists" >
-<!ENTITY % exp.qname            "%MATHML.pfx;exp" >
-<!ENTITY % exponentiale.qname   "%MATHML.pfx;exponentiale" >
-<!ENTITY % factorial.qname      "%MATHML.pfx;factorial" >
-<!ENTITY % factorof.qname       "%MATHML.pfx;factorof" >
-<!ENTITY % false.qname          "%MATHML.pfx;false" >
-<!ENTITY % floor.qname          "%MATHML.pfx;floor" >
-<!ENTITY % fn.qname             "%MATHML.pfx;fn" >
-<!ENTITY % forall.qname         "%MATHML.pfx;forall" >
-<!ENTITY % gcd.qname            "%MATHML.pfx;gcd" >
-<!ENTITY % geq.qname            "%MATHML.pfx;geq" >
-<!ENTITY % grad.qname           "%MATHML.pfx;grad" >
-<!ENTITY % gt.qname             "%MATHML.pfx;gt" >
-<!ENTITY % ident.qname          "%MATHML.pfx;ident" >
-<!ENTITY % image.qname          "%MATHML.pfx;image" >
-<!ENTITY % imaginary.qname      "%MATHML.pfx;imaginary" >
-<!ENTITY % imaginaryi.qname     "%MATHML.pfx;imaginaryi" >
-<!ENTITY % implies.qname        "%MATHML.pfx;implies" >
-<!ENTITY % in.qname             "%MATHML.pfx;in" >
-<!ENTITY % infinity.qname       "%MATHML.pfx;infinity" >
-<!ENTITY % int.qname            "%MATHML.pfx;int" >
-<!ENTITY % integers.qname       "%MATHML.pfx;integers" >
-<!ENTITY % intersect.qname      "%MATHML.pfx;intersect" >
-<!ENTITY % interval.qname       "%MATHML.pfx;interval" >
-<!ENTITY % inverse.qname        "%MATHML.pfx;inverse" >
-<!ENTITY % lambda.qname         "%MATHML.pfx;lambda" >
-<!ENTITY % laplacian.qname      "%MATHML.pfx;laplacian" >
-<!ENTITY % lcm.qname            "%MATHML.pfx;lcm" >
-<!ENTITY % leq.qname            "%MATHML.pfx;leq" >
-<!ENTITY % limit.qname          "%MATHML.pfx;limit" >
-<!ENTITY % list.qname           "%MATHML.pfx;list" >
-<!ENTITY % ln.qname             "%MATHML.pfx;ln" >
-<!ENTITY % log.qname            "%MATHML.pfx;log" >
-<!ENTITY % logbase.qname        "%MATHML.pfx;logbase" >
-<!ENTITY % lowlimit.qname       "%MATHML.pfx;lowlimit" >
-<!ENTITY % lt.qname             "%MATHML.pfx;lt" >
-<!ENTITY % maction.qname        "%MATHML.pfx;maction" >
-<!ENTITY % maligngroup.qname    "%MATHML.pfx;maligngroup" >
-<!ENTITY % malignmark.qname     "%MATHML.pfx;malignmark" >
-<!ENTITY % math.qname           "%MATHML.pfx;math" >
-<!ENTITY % matrix.qname         "%MATHML.pfx;matrix" >
-<!ENTITY % matrixrow.qname      "%MATHML.pfx;matrixrow" >
-<!ENTITY % max.qname            "%MATHML.pfx;max" >
-<!ENTITY % mean.qname           "%MATHML.pfx;mean" >
-<!ENTITY % median.qname         "%MATHML.pfx;median" >
-<!ENTITY % menclose.qname       "%MATHML.pfx;menclose" >
-<!ENTITY % merror.qname         "%MATHML.pfx;merror" >
-<!ENTITY % mfenced.qname        "%MATHML.pfx;mfenced" >
-<!ENTITY % mfrac.qname          "%MATHML.pfx;mfrac" >
-<!ENTITY % mglyph.qname         "%MATHML.pfx;mglyph" >
-<!ENTITY % mi.qname             "%MATHML.pfx;mi" >
-<!ENTITY % min.qname            "%MATHML.pfx;min" >
-<!ENTITY % minus.qname          "%MATHML.pfx;minus" >
-<!ENTITY % mlabeledtr.qname     "%MATHML.pfx;mlabeledtr" >
-<!ENTITY % mmultiscripts.qname  "%MATHML.pfx;mmultiscripts" >
-<!ENTITY % mn.qname             "%MATHML.pfx;mn" >
-<!ENTITY % mo.qname             "%MATHML.pfx;mo" >
-<!ENTITY % mode.qname           "%MATHML.pfx;mode" >
-<!ENTITY % moment.qname         "%MATHML.pfx;moment" >
-<!ENTITY % momentabout.qname    "%MATHML.pfx;momentabout" >
-<!ENTITY % mover.qname          "%MATHML.pfx;mover" >
-<!ENTITY % mpadded.qname        "%MATHML.pfx;mpadded" >
-<!ENTITY % mphantom.qname       "%MATHML.pfx;mphantom" >
-<!ENTITY % mprescripts.qname    "%MATHML.pfx;mprescripts" >
-<!ENTITY % mroot.qname          "%MATHML.pfx;mroot" >
-<!ENTITY % mrow.qname           "%MATHML.pfx;mrow" >
-<!ENTITY % ms.qname             "%MATHML.pfx;ms" >
-<!ENTITY % mspace.qname         "%MATHML.pfx;mspace" >
-<!ENTITY % msqrt.qname          "%MATHML.pfx;msqrt" >
-<!ENTITY % mstyle.qname         "%MATHML.pfx;mstyle" >
-<!ENTITY % msub.qname           "%MATHML.pfx;msub" >
-<!ENTITY % msubsup.qname        "%MATHML.pfx;msubsup" >
-<!ENTITY % msup.qname           "%MATHML.pfx;msup" >
-<!ENTITY % mtable.qname         "%MATHML.pfx;mtable" >
-<!ENTITY % mtd.qname            "%MATHML.pfx;mtd" >
-<!ENTITY % mtext.qname          "%MATHML.pfx;mtext" >
-<!ENTITY % mtr.qname            "%MATHML.pfx;mtr" >
-<!ENTITY % munder.qname         "%MATHML.pfx;munder" >
-<!ENTITY % munderover.qname     "%MATHML.pfx;munderover" >
-<!ENTITY % naturalnumbers.qname "%MATHML.pfx;naturalnumbers" >
-<!ENTITY % neq.qname            "%MATHML.pfx;neq" >
-<!ENTITY % none.qname           "%MATHML.pfx;none" >
-<!ENTITY % not.qname            "%MATHML.pfx;not" >
-<!ENTITY % notanumber.qname     "%MATHML.pfx;notanumber" >
-<!ENTITY % notin.qname          "%MATHML.pfx;notin" >
-<!ENTITY % notprsubset.qname    "%MATHML.pfx;notprsubset" >
-<!ENTITY % notsubset.qname      "%MATHML.pfx;notsubset" >
-<!ENTITY % or.qname             "%MATHML.pfx;or" >
-<!ENTITY % otherwise.qname      "%MATHML.pfx;otherwise" >
-<!ENTITY % outerproduct.qname   "%MATHML.pfx;outerproduct" >
-<!ENTITY % partialdiff.qname    "%MATHML.pfx;partialdiff" >
-<!ENTITY % pi.qname             "%MATHML.pfx;pi" >
-<!ENTITY % piece.qname          "%MATHML.pfx;piece" >
-<!ENTITY % piecewise.qname      "%MATHML.pfx;piecewise" >
-<!ENTITY % plus.qname           "%MATHML.pfx;plus" >
-<!ENTITY % power.qname          "%MATHML.pfx;power" >
-<!ENTITY % primes.qname         "%MATHML.pfx;primes" >
-<!ENTITY % product.qname        "%MATHML.pfx;product" >
-<!ENTITY % prsubset.qname       "%MATHML.pfx;prsubset" >
-<!ENTITY % quotient.qname       "%MATHML.pfx;quotient" >
-<!ENTITY % rationals.qname      "%MATHML.pfx;rationals" >
-<!ENTITY % real.qname           "%MATHML.pfx;real" >
-<!ENTITY % reals.qname          "%MATHML.pfx;reals" >
-<!ENTITY % reln.qname           "%MATHML.pfx;reln" >
-<!ENTITY % rem.qname            "%MATHML.pfx;rem" >
-<!ENTITY % root.qname           "%MATHML.pfx;root" >
-<!ENTITY % scalarproduct.qname  "%MATHML.pfx;scalarproduct" >
-<!ENTITY % sdev.qname           "%MATHML.pfx;sdev" >
-<!ENTITY % sec.qname            "%MATHML.pfx;sec" >
-<!ENTITY % sech.qname           "%MATHML.pfx;sech" >
-<!ENTITY % selector.qname       "%MATHML.pfx;selector" >
-<!ENTITY % semantics.qname      "%MATHML.pfx;semantics" >
-<!ENTITY % sep.qname            "%MATHML.pfx;sep" >
-<!ENTITY % set.qname            "%MATHML.pfx;set" >
-<!ENTITY % setdiff.qname        "%MATHML.pfx;setdiff" >
-<!ENTITY % sin.qname            "%MATHML.pfx;sin" >
-<!ENTITY % sinh.qname           "%MATHML.pfx;sinh" >
-<!ENTITY % subset.qname         "%MATHML.pfx;subset" >
-<!ENTITY % sum.qname            "%MATHML.pfx;sum" >
-<!ENTITY % tan.qname            "%MATHML.pfx;tan" >
-<!ENTITY % tanh.qname           "%MATHML.pfx;tanh" >
-<!ENTITY % tendsto.qname        "%MATHML.pfx;tendsto" >
-<!ENTITY % times.qname          "%MATHML.pfx;times" >
-<!ENTITY % transpose.qname      "%MATHML.pfx;transpose" >
-<!ENTITY % true.qname           "%MATHML.pfx;true" >
-<!ENTITY % union.qname          "%MATHML.pfx;union" >
-<!ENTITY % uplimit.qname        "%MATHML.pfx;uplimit" >
-<!ENTITY % variance.qname       "%MATHML.pfx;variance" >
-<!ENTITY % vector.qname         "%MATHML.pfx;vector" >
-<!ENTITY % vectorproduct.qname  "%MATHML.pfx;vectorproduct" >
-<!ENTITY % xor.qname            "%MATHML.pfx;xor" >
-
-
-<!-- ignores subsequent instantiation of this module when
-     used as external subset rather than module fragment.
-     NOTE: Do not modify this parameter entity, otherwise
-     a recursive parsing situation may result.
--->
-<!ENTITY % mathml-qname.module "IGNORE" >
-
-<!-- end of template-qname-1.mod -->
-
-
-<!-- 5. The parameter entity %XHTML.xmlns.extra.attrib; may be
-        redeclared to contain any non-XHTML namespace declaration
-        attributes for namespaces embedded in XHTML. The default
-        is an empty string.  XLink should be included here if used
-        in the DTD.
--->
-<!ENTITY % XHTML.xmlns.extra.attrib "" >
-
-<!-- The remainder of Section A is only followed in XHTML, not extensions. -->
-
-<!-- Declare a parameter entity %NS.decl.attrib; containing
-     all XML Namespace declarations used in the DTD, plus the
-     xmlns declaration for XHTML, its form dependent on whether
-     prefixing is active.
--->
-<![%XHTML.prefixed;[
-<!ENTITY % NS.decl.attrib
-     "xmlns:%XHTML.prefix;  %URI.datatype;   #FIXED '%XHTML.xmlns;'
-      %XHTML.xmlns.extra.attrib;"
->
-]]>
-<!ENTITY % NS.decl.attrib
-     "%XHTML.xmlns.extra.attrib;"
->
-
-<!-- This is a placeholder for future XLink support.
--->
-<!ENTITY % XLINK.xmlns.attrib "" >
-
-<!-- Declare a parameter entity %NS.decl.attrib; containing all
-     XML namespace declaration attributes used by XHTML, including
-     a default xmlns attribute when prefixing is inactive.
--->
-<![%XHTML.prefixed;[
-<!ENTITY % XHTML.xmlns.attrib
-     "%NS.decl.attrib;
-      %XLINK.xmlns.attrib;"
->
-]]>
-<!ENTITY % XHTML.xmlns.attrib
-     "xmlns        %URI.datatype;           #FIXED '%XHTML.xmlns;'
-      %XLINK.xmlns.attrib;"
->
-
-<!-- placeholder for qualified name redeclarations -->
-<!ENTITY % xhtml-qname.redecl "" >
-
-
-<!-- Section B: XHTML Qualified Names ::::::::::::::::::::::::::::: -->
-
-<!-- 6. This section declares parameter entities used to provide
-        namespace-qualified names for all XHTML element types.
--->
-
-<!-- module:  xhtml-applet-1.mod -->
-<!ENTITY % applet.qname  "%XHTML.pfx;applet" >
-
-<!-- module:  xhtml-base-1.mod -->
-<!ENTITY % base.qname    "%XHTML.pfx;base" >
-
-<!-- module:  xhtml-bdo-1.mod -->
-<!ENTITY % bdo.qname     "%XHTML.pfx;bdo" >
-
-<!-- module:  xhtml-blkphras-1.mod -->
-<!ENTITY % address.qname "%XHTML.pfx;address" >
-<!ENTITY % blockquote.qname  "%XHTML.pfx;blockquote" >
-<!ENTITY % pre.qname     "%XHTML.pfx;pre" >
-<!ENTITY % h1.qname      "%XHTML.pfx;h1" >
-<!ENTITY % h2.qname      "%XHTML.pfx;h2" >
-<!ENTITY % h3.qname      "%XHTML.pfx;h3" >
-<!ENTITY % h4.qname      "%XHTML.pfx;h4" >
-<!ENTITY % h5.qname      "%XHTML.pfx;h5" >
-<!ENTITY % h6.qname      "%XHTML.pfx;h6" >
-
-<!-- module:  xhtml-blkpres-1.mod -->
-<!ENTITY % hr.qname      "%XHTML.pfx;hr" >
-
-<!-- module:  xhtml-blkstruct-1.mod -->
-<!ENTITY % div.qname     "%XHTML.pfx;div" >
-<!ENTITY % p.qname       "%XHTML.pfx;p" >
-
-<!-- module:  xhtml-edit-1.mod -->
-<!ENTITY % ins.qname     "%XHTML.pfx;ins" >
-<!ENTITY % del.qname     "%XHTML.pfx;del" >
-
-<!-- module:  xhtml-form-1.mod -->
-<!ENTITY % form.qname    "%XHTML.pfx;form" >
-<!ENTITY % label.qname   "%XHTML.pfx;label" >
-<!ENTITY % input.qname   "%XHTML.pfx;input" >
-<!ENTITY % select.qname  "%XHTML.pfx;select" >
-<!ENTITY % optgroup.qname  "%XHTML.pfx;optgroup" >
-<!ENTITY % option.qname  "%XHTML.pfx;option" >
-<!ENTITY % textarea.qname  "%XHTML.pfx;textarea" >
-<!ENTITY % fieldset.qname  "%XHTML.pfx;fieldset" >
-<!ENTITY % legend.qname  "%XHTML.pfx;legend" >
-<!ENTITY % button.qname  "%XHTML.pfx;button" >
-
-<!-- module:  xhtml-hypertext-1.mod -->
-<!ENTITY % a.qname       "%XHTML.pfx;a" >
-
-<!-- module:  xhtml-image-1.mod -->
-<!ENTITY % img.qname     "%XHTML.pfx;img" >
-
-<!-- module:  xhtml-inlphras-1.mod -->
-<!ENTITY % abbr.qname    "%XHTML.pfx;abbr" >
-<!ENTITY % acronym.qname "%XHTML.pfx;acronym" >
-<!ENTITY % cite.qname    "%XHTML.pfx;cite" >
-<!ENTITY % code.qname    "%XHTML.pfx;code" >
-<!ENTITY % dfn.qname     "%XHTML.pfx;dfn" >
-<!ENTITY % em.qname      "%XHTML.pfx;em" >
-<!ENTITY % kbd.qname     "%XHTML.pfx;kbd" >
-<!ENTITY % q.qname       "%XHTML.pfx;q" >
-<!ENTITY % samp.qname    "%XHTML.pfx;samp" >
-<!ENTITY % strong.qname  "%XHTML.pfx;strong" >
-<!ENTITY % var.qname     "%XHTML.pfx;var" >
-
-<!-- module:  xhtml-inlpres-1.mod -->
-<!ENTITY % b.qname       "%XHTML.pfx;b" >
-<!ENTITY % big.qname     "%XHTML.pfx;big" >
-<!ENTITY % i.qname       "%XHTML.pfx;i" >
-<!ENTITY % small.qname   "%XHTML.pfx;small" >
-<!ENTITY % sub.qname     "%XHTML.pfx;sub" >
-<!ENTITY % sup.qname     "%XHTML.pfx;sup" >
-<!ENTITY % tt.qname      "%XHTML.pfx;tt" >
-
-<!-- module:  xhtml-inlstruct-1.mod -->
-<!ENTITY % br.qname      "%XHTML.pfx;br" >
-<!ENTITY % span.qname    "%XHTML.pfx;span" >
-
-<!-- module:  xhtml-ismap-1.mod (also csismap, ssismap) -->
-<!ENTITY % map.qname     "%XHTML.pfx;map" >
-<!ENTITY % area.qname    "%XHTML.pfx;area" >
-
-<!-- module:  xhtml-link-1.mod -->
-<!ENTITY % link.qname    "%XHTML.pfx;link" >
-
-<!-- module:  xhtml-list-1.mod -->
-<!ENTITY % dl.qname      "%XHTML.pfx;dl" >
-<!ENTITY % dt.qname      "%XHTML.pfx;dt" >
-<!ENTITY % dd.qname      "%XHTML.pfx;dd" >
-<!ENTITY % ol.qname      "%XHTML.pfx;ol" >
-<!ENTITY % ul.qname      "%XHTML.pfx;ul" >
-<!ENTITY % li.qname      "%XHTML.pfx;li" >
-
-<!-- module:  xhtml-meta-1.mod -->
-<!ENTITY % meta.qname    "%XHTML.pfx;meta" >
-
-<!-- module:  xhtml-param-1.mod -->
-<!ENTITY % param.qname   "%XHTML.pfx;param" >
-
-<!-- module:  xhtml-object-1.mod -->
-<!ENTITY % object.qname  "%XHTML.pfx;object" >
-
-<!-- module:  xhtml-script-1.mod -->
-<!ENTITY % script.qname  "%XHTML.pfx;script" >
-<!ENTITY % noscript.qname  "%XHTML.pfx;noscript" >
-
-<!-- module:  xhtml-struct-1.mod -->
-<!ENTITY % html.qname    "%XHTML.pfx;html" >
-<!ENTITY % head.qname    "%XHTML.pfx;head" >
-<!ENTITY % title.qname   "%XHTML.pfx;title" >
-<!ENTITY % body.qname    "%XHTML.pfx;body" >
-
-<!-- module:  xhtml-style-1.mod -->
-<!ENTITY % style.qname   "%XHTML.pfx;style" >
-
-<!-- module:  xhtml-table-1.mod -->
-<!ENTITY % table.qname   "%XHTML.pfx;table" >
-<!ENTITY % caption.qname "%XHTML.pfx;caption" >
-<!ENTITY % thead.qname   "%XHTML.pfx;thead" >
-<!ENTITY % tfoot.qname   "%XHTML.pfx;tfoot" >
-<!ENTITY % tbody.qname   "%XHTML.pfx;tbody" >
-<!ENTITY % colgroup.qname  "%XHTML.pfx;colgroup" >
-<!ENTITY % col.qname     "%XHTML.pfx;col" >
-<!ENTITY % tr.qname      "%XHTML.pfx;tr" >
-<!ENTITY % th.qname      "%XHTML.pfx;th" >
-<!ENTITY % td.qname      "%XHTML.pfx;td" >
-
-<!-- module:  xhtml-ruby-1.mod -->
-
-<!ENTITY % ruby.qname    "%XHTML.pfx;ruby" >
-<!ENTITY % rbc.qname     "%XHTML.pfx;rbc" >
-<!ENTITY % rtc.qname     "%XHTML.pfx;rtc" >
-<!ENTITY % rb.qname      "%XHTML.pfx;rb" >
-<!ENTITY % rt.qname      "%XHTML.pfx;rt" >
-<!ENTITY % rp.qname      "%XHTML.pfx;rp" >
-
-<!-- Provisional XHTML 2.0 Qualified Names  ...................... -->
-
-<!-- module:  xhtml-image-2.mod -->
-<!ENTITY % alt.qname     "%XHTML.pfx;alt" >
-
-<!-- end of xhtml-qname-1.mod -->
-]]>
-
-<!ENTITY % xhtml-events.module "IGNORE" >
-<![%xhtml-events.module;[
-<!ENTITY % xhtml-events.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"
-            "xhtml-events-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Intrinsic Events Module  ....................................... -->
-<!-- file: xhtml-events-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-events-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Intrinsic Event Attributes
-
-     These are the event attributes defined in HTML 4,
-     Section 18.2.3 "Intrinsic Events". This module must be
-     instantiated prior to the Attributes Module but after
-     the Datatype Module in the Modular Framework module.
-
-    "Note: Authors of HTML documents are advised that changes
-     are likely to occur in the realm of intrinsic events
-     (e.g., how scripts are bound to events). Research in
-     this realm is carried on by members of the W3C Document
-     Object Model Working Group (see the W3C Web site at
-     http://www.w3.org/ for more information)."
--->
-<!-- NOTE: Because the ATTLIST declarations in this module occur
-     before their respective ELEMENT declarations in other
-     modules, there may be a dependency on this module that
-     should be considered if any of the parameter entities used
-     for element type names (eg., %a.qname;) are redeclared.
--->
-
-<!ENTITY % Events.attrib
-     "onclick      %Script.datatype;        #IMPLIED
-      ondblclick   %Script.datatype;        #IMPLIED
-      onmousedown  %Script.datatype;        #IMPLIED
-      onmouseup    %Script.datatype;        #IMPLIED
-      onmouseover  %Script.datatype;        #IMPLIED
-      onmousemove  %Script.datatype;        #IMPLIED
-      onmouseout   %Script.datatype;        #IMPLIED
-      onkeypress   %Script.datatype;        #IMPLIED
-      onkeydown    %Script.datatype;        #IMPLIED
-      onkeyup      %Script.datatype;        #IMPLIED"
->
-
-<!-- additional attributes on anchor element
--->
-<!ATTLIST %a.qname;
-     onfocus      %Script.datatype;         #IMPLIED
-     onblur       %Script.datatype;         #IMPLIED
->
-
-<!-- additional attributes on form element
--->
-<!ATTLIST %form.qname;
-      onsubmit     %Script.datatype;        #IMPLIED
-      onreset      %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on label element
--->
-<!ATTLIST %label.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on input element
--->
-<!ATTLIST %input.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
-      onselect     %Script.datatype;        #IMPLIED
-      onchange     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on select element
--->
-<!ATTLIST %select.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
-      onchange     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on textarea element
--->
-<!ATTLIST %textarea.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
-      onselect     %Script.datatype;        #IMPLIED
-      onchange     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on button element
--->
-<!ATTLIST %button.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on body element
--->
-<!ATTLIST %body.qname;
-      onload       %Script.datatype;        #IMPLIED
-      onunload     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on area element
--->
-<!ATTLIST %area.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
->
-
-<!-- end of xhtml-events-1.mod -->
-]]>
-
-<!ENTITY % xhtml-attribs.module "INCLUDE" >
-<![%xhtml-attribs.module;[
-<!ENTITY % xhtml-attribs.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
-            "xhtml-attribs-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Common Attributes Module  ...................................... -->
-<!-- file: xhtml-attribs-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-attribs-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Common Attributes
-
-     This module declares many of the common attributes for the XHTML DTD.
-     %NS.decl.attrib; is declared in the XHTML Qname module.
--->
-
-<!ENTITY % id.attrib
-     "id           ID                       #IMPLIED"
->
-
-<!ENTITY % class.attrib
-     "class        NMTOKENS                 #IMPLIED"
->
-
-<!ENTITY % title.attrib
-     "title        %Text.datatype;          #IMPLIED"
->
-
-<!ENTITY % Core.extra.attrib "" >
-
-<!ENTITY % Core.attrib
-     "%XHTML.xmlns.attrib;
-      %id.attrib;
-      %class.attrib;
-      %title.attrib;
-      %Core.extra.attrib;"
->
-
-<!ENTITY % lang.attrib
-     "xml:lang     %LanguageCode.datatype;  #IMPLIED"
->
-
-<![%XHTML.bidi;[
-<!ENTITY % dir.attrib
-     "dir          ( ltr | rtl )            #IMPLIED"
->
-
-<!ENTITY % I18n.attrib
-     "%dir.attrib;
-      %lang.attrib;"
->
-
-]]>
-<!ENTITY % I18n.attrib
-     "%lang.attrib;"
->
-
-<!ENTITY % Common.extra.attrib "" >
-
-<!-- intrinsic event attributes declared previously
--->
-<!ENTITY % Events.attrib "" >
-
-<!ENTITY % Common.attrib
-     "%Core.attrib;
-      %I18n.attrib;
-      %Events.attrib;
-      %Common.extra.attrib;"
->
-
-<!-- end of xhtml-attribs-1.mod -->
-]]>
-
-<!-- placeholder for content model redeclarations -->
-<!ENTITY % xhtml-model.redecl "" >
-
-
-<!ENTITY % xhtml-model.module "INCLUDE" >
-<![%xhtml-model.module;[
-<!-- instantiate the Document Model module declared in the DTD driver
--->
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 Document Model Module  ...................................... -->
-<!-- file: xhtml11-model-1.mod
-
-     This is XHTML 1.1, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- XHTML 1.1 Document Model
-
-     This module describes the groupings of elements that make up
-     common content models for XHTML elements.
-
-     XHTML has three basic content models:
-
-         %Inline.mix;  character-level elements
-         %Block.mix;   block-like elements, eg., paragraphs and lists
-         %Flow.mix;    any block or inline elements
-
-     Any parameter entities declared in this module may be used
-     to create element content models, but the above three are
-     considered 'global' (insofar as that term applies here).
-
-     The reserved word '#PCDATA' (indicating a text string) is now
-     included explicitly with each element declaration that is
-     declared as mixed content, as XML requires that this token
-     occur first in a content model specification.
--->
-<!-- Extending the Model
-
-     While in some cases this module may need to be rewritten to
-     accommodate changes to the document model, minor extensions
-     may be accomplished by redeclaring any of the three *.extra;
-     parameter entities to contain extension element types as follows:
-
-         %Misc.extra;    whose parent may be any block or
-                         inline element.
-
-         %Inline.extra;  whose parent may be any inline element.
-
-         %Block.extra;   whose parent may be any block element.
-
-     If used, these parameter entities must be an OR-separated
-     list beginning with an OR separator ("|"), eg., "| a | b | c"
-
-     All block and inline *.class parameter entities not part
-     of the *struct.class classes begin with "| " to allow for
-     exclusion from mixes.
--->
-
-<!-- ..............  Optional Elements in head  .................. -->
-
-<!ENTITY % HeadOpts.mix
-     "( %script.qname; | %style.qname; | %meta.qname;
-      | %link.qname; | %object.qname; )*"
->
-
-<!-- .................  Miscellaneous Elements  .................. -->
-
-<!-- ins and del are used to denote editing changes
--->
-<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" >
-
-<!-- script and noscript are used to contain scripts
-     and alternative content
--->
-<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >
-
-<!ENTITY % Misc.extra "" >
-
-<!-- These elements are neither block nor inline, and can
-     essentially be used anywhere in the document body.
--->
-<!ENTITY % Misc.class
-     "%Edit.class;
-      %Script.class;
-      %Misc.extra;"
->
-
-<!-- ....................  Inline Elements  ...................... -->
-
-<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >
-
-<!ENTITY % InlPhras.class
-     "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
-      | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
-      | %abbr.qname; | %acronym.qname; | %q.qname;" >
-
-<!ENTITY % InlPres.class
-     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
-      | %small.qname; | %sub.qname; | %sup.qname;" >
-
-<!ENTITY % I18n.class "| %bdo.qname;" >
-
-<!ENTITY % Anchor.class "| %a.qname;" >
-
-<!ENTITY % InlSpecial.class
-     "| %img.qname; | %map.qname;
-      | %object.qname;" >
-
-<!ENTITY % InlForm.class
-     "| %input.qname; | %select.qname; | %textarea.qname;
-      | %label.qname; | %button.qname;" >
-
-<!ENTITY % Inline.extra "" >
-
-<!ENTITY % Ruby.class "| %ruby.qname;" >
-
-<!-- %Inline.class; includes all inline elements,
-     used as a component in mixes
--->
-<!ENTITY % Inline.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Ruby.class;
-      %Inline.extra;"
->
-
-<!-- %InlNoRuby.class; includes all inline elements
-     except ruby, used as a component in mixes
--->
-<!ENTITY % InlNoRuby.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Inline.extra;"
->
-
-<!-- %NoRuby.content; includes all inlines except ruby
--->
-<!ENTITY % NoRuby.content
-     "( #PCDATA
-      | %InlNoRuby.class;
-      %Misc.class; )*"
->
-
-<!-- %InlNoAnchor.class; includes all non-anchor inlines,
-     used as a component in mixes
--->
-<!ENTITY % InlNoAnchor.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Ruby.class;
-      %Inline.extra;"
->
-
-<!-- %InlNoAnchor.mix; includes all non-anchor inlines
--->
-<!ENTITY % InlNoAnchor.mix
-     "%InlNoAnchor.class;
-      %Misc.class;"
->
-
-<!-- %Inline.mix; includes all inline elements, including %Misc.class;
--->
-<!ENTITY % Inline.mix
-     "%Inline.class;
-      %Misc.class;"
->
-
-<!-- .....................  Block Elements  ...................... -->
-
-<!-- In the HTML 4.0 DTD, heading and list elements were included
-     in the %block; parameter entity. The %Heading.class; and
-     %List.class; parameter entities must now be included explicitly
-     on element declarations where desired.
--->
-
-<!ENTITY % Heading.class
-     "%h1.qname; | %h2.qname; | %h3.qname;
-      | %h4.qname; | %h5.qname; | %h6.qname;" >
-
-<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >
-
-<!ENTITY % Table.class "| %table.qname;" >
-
-<!ENTITY % Form.class  "| %form.qname;" >
-
-<!ENTITY % Fieldset.class  "| %fieldset.qname;" >
-
-<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >
-
-<!ENTITY % BlkPhras.class
-     "| %pre.qname; | %blockquote.qname; | %address.qname;" >
-
-<!ENTITY % BlkPres.class "| %hr.qname;" >
-
-<!ENTITY % BlkSpecial.class
-     "%Table.class;
-      %Form.class;
-      %Fieldset.class;"
->
-
-<!ENTITY % Block.extra "" >
-
-<!-- %Block.class; includes all block elements,
-     used as an component in mixes
--->
-<!ENTITY % Block.class
-     "%BlkStruct.class;
-      %BlkPhras.class;
-      %BlkPres.class;
-      %BlkSpecial.class;
-      %Block.extra;"
->
-
-<!-- %Block.mix; includes all block elements plus %Misc.class;
--->
-<!ENTITY % Block.mix
-     "%Heading.class;
-      | %List.class;
-      | %Block.class;
-      %Misc.class;"
->
-
-<!-- ................  All Content Elements  .................. -->
-
-<!-- %Flow.mix; includes all text content, block and inline
--->
-<!ENTITY % Flow.mix
-     "%Heading.class;
-      | %List.class;
-      | %Block.class;
-      | %Inline.class;
-      %Misc.class;"
->
-
-<!-- end of xhtml11-model-1.mod -->
-]]>
-
-<!ENTITY % xhtml-charent.module "INCLUDE" >
-<![%xhtml-charent.module;[
-<!ENTITY % xhtml-charent.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
-            "xhtml-charent-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Character Entities Module  ......................................... -->
-<!-- file: xhtml-charent-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-charent-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Character Entities for XHTML
-
-     This module declares the set of character entities for XHTML,
-     including the Latin 1, Symbol and Special character collections.
--->
-
-<!ENTITY % xhtml-lat1
-    PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-           "xhtml-lat1.ent" >
-<!-- 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.
--->
-<!-- Character entity set. Typical invocation:
-    <!ENTITY % HTMLlat1 PUBLIC
-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
-    %HTMLlat1;
--->
-
-<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
-                                  U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
-                                  U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
-                                  U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
-                                  = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;"> <!-- not sign = discretionary hyphen,
-                                  U+00AC ISOnum -->
-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
-                                  U+00AD ISOnum -->
-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
-                                  U+00AE ISOnum -->
-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
-                                  = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
-                                  U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
-                                  = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
-                                  = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
-                                  U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
-                                  U+00B6 ISOnum -->
-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
-                                  = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
-                                  U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
-                                  U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
-                                  = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
-                                  = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
-                                  = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
-                                  = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;"> <!-- inverted question mark
-                                  = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
-                                  = latin capital letter A grave,
-                                  U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
-                                  U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
-                                  U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
-                                  U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
-                                  U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
-                                  = latin capital letter A ring,
-                                  U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
-                                  = latin capital ligature AE,
-                                  U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
-                                  U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
-                                  U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
-                                  U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
-                                  U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
-                                  U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
-                                  U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
-                                  U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
-                                  U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
-                                  U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
-                                  U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
-                                  U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
-                                  U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
-                                  U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
-                                  U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
-                                  U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
-                                  = latin capital letter O slash,
-                                  U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
-                                  U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
-                                  U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
-                                  U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
-                                  U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
-                                  U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
-                                  U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
-                                  U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
-                                  = latin small letter a grave,
-                                  U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
-                                  U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
-                                  U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
-                                  U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
-                                  U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
-                                  = latin small letter a ring,
-                                  U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
-                                  = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
-                                  U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
-                                  U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
-                                  U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
-                                  U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
-                                  U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
-                                  U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
-                                  U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
-                                  U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
-                                  U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
-                                  U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
-                                  U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
-                                  U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
-                                  U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
-                                  U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
-                                  U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
-                                  = latin small letter o slash,
-                                  U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
-                                  U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
-                                  U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
-                                  U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
-                                  U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
-                                  U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn with,
-                                  U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
-                                  U+00FF ISOlat1 -->
-
-
-<!ENTITY % xhtml-symbol
-    PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
-           "xhtml-symbol.ent" >
-<!-- Mathematical, Greek and Symbolic characters for HTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLsymbol PUBLIC
-        "-//W3C//ENTITIES Symbols for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
-     %HTMLsymbol;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof     "&#402;"> <!-- latin small f with hook = function
-                                    = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
-                                    U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
-                                    U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
-                                    U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lambda,
-                                    U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
-                                    U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
-                                    U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
-                                    U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
-                                    U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
-                                    U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
-                                    U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
-                                    U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
-                                    U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
-                                    U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
-                                    U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
-                                    U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;"> <!-- greek small letter lambda,
-                                    U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
-                                    U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
-                                    U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
-                                    U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
-                                    U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;"> <!-- greek small letter theta symbol,
-                                    U+03D1 NEW -->
-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
-                                    U+03D2 NEW -->
-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
-                                     U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
-                                     U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
-                                     U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
-                                     U+203E NEW -->
-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
-                                     = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;"> <!-- blackletter capital I = imaginary part,
-                                     U+2111 ISOamso -->
-<!ENTITY real     "&#8476;"> <!-- blackletter capital R = real part symbol,
-                                     U+211C ISOamso -->
-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;"> <!-- 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     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
-                                     = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;"> <!-- 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     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;"> <!-- 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     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
-                                     U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;"> <!-- empty set = null set = diameter,
-                                     U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
-                                     U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
-<!-- should there be a more memorable name than 'ni'? -->
-<!ENTITY prod     "&#8719;"> <!-- 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      "&#8721;"> <!-- 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    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
-                                     U+221A ISOtech -->
-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;"> <!-- 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     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
-                                     U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
-                                     U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;"> <!-- 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     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
-                                     U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
-                                     U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
-                                     U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
-                                     U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = apl upstile,
-                                     U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;"> <!-- left floor = apl downstile,
-                                     U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;"> <!-- 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     "&#9002;"> <!-- 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      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
-                                     U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
-                                     U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
-
-
-<!ENTITY % xhtml-special
-    PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
-           "xhtml-special.ent" >
-<!-- Special characters for HTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLspecial PUBLIC
-        "-//W3C//ENTITIES Special for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
-     %HTMLspecial;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot    "&#34;"> <!--  quotation mark = APL quote,
-                                    U+0022 ISOnum -->
-<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
-<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
-<!ENTITY apos	 "&#39;"> <!--  apostrophe mark, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
-                                    U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
-                                    U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
-                                    U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
-                                    U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
-                                    U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
-                                    U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
-                                    U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
-                                    U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
-                                    U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
-                                    U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
-                                    U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
-                                    U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
-
-
-<!-- end of xhtml-charent-1.mod -->
-]]>
-
-<!-- end of xhtml-framework-1.mod -->
-]]>
-
-<!-- Post-Framework Redeclaration placeholder  ................... -->
-<!-- this serves as a location to insert markup declarations
-     into the DTD following the framework declarations.
--->
-<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
-<![%xhtml-postfw-redecl.module;[
-%xhtml-postfw-redecl.mod;
-<!-- end of xhtml-postfw-redecl.module -->]]>
-
-<!-- Text Module (Required)  ..................................... -->
-<!ENTITY % xhtml-text.module "INCLUDE" >
-<![%xhtml-text.module;[
-<!ENTITY % xhtml-text.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Text Module  ................................................... -->
-<!-- file: xhtml-text-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Textual Content
-
-     The Text module includes declarations for all core
-     text container elements and their attributes.
--->
-
-<!ENTITY % xhtml-inlstruct.module "INCLUDE" >
-<![%xhtml-inlstruct.module;[
-<!ENTITY % xhtml-inlstruct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"
-            "xhtml-inlstruct-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Structural Module  ...................................... -->
-<!-- file: xhtml-inlstruct-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstruct-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Structural
-
-        br, span
-
-     This module declares the elements and their attributes
-     used to support inline-level structural markup.
--->
-
-<!-- br: forced line break ............................. -->
-
-<!ENTITY % br.element  "INCLUDE" >
-<![%br.element;[
-
-<!ENTITY % br.content  "EMPTY" >
-<!ENTITY % br.qname  "br" >
-<!ELEMENT %br.qname;  %br.content; >
-
-<!-- end of br.element -->]]>
-
-<!ENTITY % br.attlist  "INCLUDE" >
-<![%br.attlist;[
-<!ATTLIST %br.qname;
-      %Core.attrib;
->
-<!-- end of br.attlist -->]]>
-
-<!-- span: generic inline container .................... -->
-
-<!ENTITY % span.element  "INCLUDE" >
-<![%span.element;[
-<!ENTITY % span.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % span.qname  "span" >
-<!ELEMENT %span.qname;  %span.content; >
-<!-- end of span.element -->]]>
-
-<!ENTITY % span.attlist  "INCLUDE" >
-<![%span.attlist;[
-<!ATTLIST %span.qname;
-      %Common.attrib;
->
-<!-- end of span.attlist -->]]>
-
-<!-- end of xhtml-inlstruct-1.mod -->
-]]>
-
-<!ENTITY % xhtml-inlphras.module "INCLUDE" >
-<![%xhtml-inlphras.module;[
-<!ENTITY % xhtml-inlphras.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
-            "xhtml-inlphras-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Phrasal Module  ......................................... -->
-<!-- file: xhtml-inlphras-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlphras-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Phrasal
-
-        abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
-
-     This module declares the elements and their attributes used to
-     support inline-level phrasal markup.
--->
-
-<!ENTITY % abbr.element  "INCLUDE" >
-<![%abbr.element;[
-<!ENTITY % abbr.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % abbr.qname  "abbr" >
-<!ELEMENT %abbr.qname;  %abbr.content; >
-<!-- end of abbr.element -->]]>
-
-<!ENTITY % abbr.attlist  "INCLUDE" >
-<![%abbr.attlist;[
-<!ATTLIST %abbr.qname;
-      %Common.attrib;
->
-<!-- end of abbr.attlist -->]]>
-
-<!ENTITY % acronym.element  "INCLUDE" >
-<![%acronym.element;[
-<!ENTITY % acronym.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % acronym.qname  "acronym" >
-<!ELEMENT %acronym.qname;  %acronym.content; >
-<!-- end of acronym.element -->]]>
-
-<!ENTITY % acronym.attlist  "INCLUDE" >
-<![%acronym.attlist;[
-<!ATTLIST %acronym.qname;
-      %Common.attrib;
->
-<!-- end of acronym.attlist -->]]>
-
-<!ENTITY % cite.element  "INCLUDE" >
-<![%cite.element;[
-<!ENTITY % cite.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % cite.qname  "cite" >
-<!ELEMENT %cite.qname;  %cite.content; >
-<!-- end of cite.element -->]]>
-
-<!ENTITY % cite.attlist  "INCLUDE" >
-<![%cite.attlist;[
-<!ATTLIST %cite.qname;
-      %Common.attrib;
->
-<!-- end of cite.attlist -->]]>
-
-<!ENTITY % code.element  "INCLUDE" >
-<![%code.element;[
-<!ENTITY % code.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % code.qname  "code" >
-<!ELEMENT %code.qname;  %code.content; >
-<!-- end of code.element -->]]>
-
-<!ENTITY % code.attlist  "INCLUDE" >
-<![%code.attlist;[
-<!ATTLIST %code.qname;
-      %Common.attrib;
->
-<!-- end of code.attlist -->]]>
-
-<!ENTITY % dfn.element  "INCLUDE" >
-<![%dfn.element;[
-<!ENTITY % dfn.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % dfn.qname  "dfn" >
-<!ELEMENT %dfn.qname;  %dfn.content; >
-<!-- end of dfn.element -->]]>
-
-<!ENTITY % dfn.attlist  "INCLUDE" >
-<![%dfn.attlist;[
-<!ATTLIST %dfn.qname;
-      %Common.attrib;
->
-<!-- end of dfn.attlist -->]]>
-
-<!ENTITY % em.element  "INCLUDE" >
-<![%em.element;[
-<!ENTITY % em.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % em.qname  "em" >
-<!ELEMENT %em.qname;  %em.content; >
-<!-- end of em.element -->]]>
-
-<!ENTITY % em.attlist  "INCLUDE" >
-<![%em.attlist;[
-<!ATTLIST %em.qname;
-      %Common.attrib;
->
-<!-- end of em.attlist -->]]>
-
-<!ENTITY % kbd.element  "INCLUDE" >
-<![%kbd.element;[
-<!ENTITY % kbd.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % kbd.qname  "kbd" >
-<!ELEMENT %kbd.qname;  %kbd.content; >
-<!-- end of kbd.element -->]]>
-
-<!ENTITY % kbd.attlist  "INCLUDE" >
-<![%kbd.attlist;[
-<!ATTLIST %kbd.qname;
-      %Common.attrib;
->
-<!-- end of kbd.attlist -->]]>
-
-<!ENTITY % q.element  "INCLUDE" >
-<![%q.element;[
-<!ENTITY % q.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % q.qname  "q" >
-<!ELEMENT %q.qname;  %q.content; >
-<!-- end of q.element -->]]>
-
-<!ENTITY % q.attlist  "INCLUDE" >
-<![%q.attlist;[
-<!ATTLIST %q.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
->
-<!-- end of q.attlist -->]]>
-
-<!ENTITY % samp.element  "INCLUDE" >
-<![%samp.element;[
-<!ENTITY % samp.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % samp.qname  "samp" >
-<!ELEMENT %samp.qname;  %samp.content; >
-<!-- end of samp.element -->]]>
-
-<!ENTITY % samp.attlist  "INCLUDE" >
-<![%samp.attlist;[
-<!ATTLIST %samp.qname;
-      %Common.attrib;
->
-<!-- end of samp.attlist -->]]>
-
-<!ENTITY % strong.element  "INCLUDE" >
-<![%strong.element;[
-<!ENTITY % strong.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % strong.qname  "strong" >
-<!ELEMENT %strong.qname;  %strong.content; >
-<!-- end of strong.element -->]]>
-
-<!ENTITY % strong.attlist  "INCLUDE" >
-<![%strong.attlist;[
-<!ATTLIST %strong.qname;
-      %Common.attrib;
->
-<!-- end of strong.attlist -->]]>
-
-<!ENTITY % var.element  "INCLUDE" >
-<![%var.element;[
-<!ENTITY % var.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % var.qname  "var" >
-<!ELEMENT %var.qname;  %var.content; >
-<!-- end of var.element -->]]>
-
-<!ENTITY % var.attlist  "INCLUDE" >
-<![%var.attlist;[
-<!ATTLIST %var.qname;
-      %Common.attrib;
->
-<!-- end of var.attlist -->]]>
-
-<!-- end of xhtml-inlphras-1.mod -->
-]]>
-
-<!ENTITY % xhtml-blkstruct.module "INCLUDE" >
-<![%xhtml-blkstruct.module;[
-<!ENTITY % xhtml-blkstruct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
-            "xhtml-blkstruct-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Block Structural Module  ....................................... -->
-<!-- file: xhtml-blkstruct-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkstruct-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Block Structural
-
-        div, p
-
-     This module declares the elements and their attributes used to
-     support block-level structural markup.
--->
-
-<!ENTITY % div.element  "INCLUDE" >
-<![%div.element;[
-<!ENTITY % div.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ENTITY % div.qname  "div" >
-<!ELEMENT %div.qname;  %div.content; >
-<!-- end of div.element -->]]>
-
-<!ENTITY % div.attlist  "INCLUDE" >
-<![%div.attlist;[
-<!ATTLIST %div.qname;
-      %Common.attrib;
->
-<!-- end of div.attlist -->]]>
-
-<!ENTITY % p.element  "INCLUDE" >
-<![%p.element;[
-<!ENTITY % p.content
-     "( #PCDATA | %Inline.mix; )*" >
-<!ENTITY % p.qname  "p" >
-<!ELEMENT %p.qname;  %p.content; >
-<!-- end of p.element -->]]>
-
-<!ENTITY % p.attlist  "INCLUDE" >
-<![%p.attlist;[
-<!ATTLIST %p.qname;
-      %Common.attrib;
->
-<!-- end of p.attlist -->]]>
-
-<!-- end of xhtml-blkstruct-1.mod -->
-]]>
-
-<!ENTITY % xhtml-blkphras.module "INCLUDE" >
-<![%xhtml-blkphras.module;[
-<!ENTITY % xhtml-blkphras.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
-            "xhtml-blkphras-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Block Phrasal Module  .......................................... -->
-<!-- file: xhtml-blkphras-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkphras-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Block Phrasal
-
-        address, blockquote, pre, h1, h2, h3, h4, h5, h6
-
-     This module declares the elements and their attributes used to
-     support block-level phrasal markup.
--->
-
-<!ENTITY % address.element  "INCLUDE" >
-<![%address.element;[
-<!ENTITY % address.content
-     "( #PCDATA | %Inline.mix; )*" >
-<!ENTITY % address.qname  "address" >
-<!ELEMENT %address.qname;  %address.content; >
-<!-- end of address.element -->]]>
-
-<!ENTITY % address.attlist  "INCLUDE" >
-<![%address.attlist;[
-<!ATTLIST %address.qname;
-      %Common.attrib;
->
-<!-- end of address.attlist -->]]>
-
-<!ENTITY % blockquote.element  "INCLUDE" >
-<![%blockquote.element;[
-<!ENTITY % blockquote.content
-     "( %Block.mix; )+"
->
-<!ENTITY % blockquote.qname  "blockquote" >
-<!ELEMENT %blockquote.qname;  %blockquote.content; >
-<!-- end of blockquote.element -->]]>
-
-<!ENTITY % blockquote.attlist  "INCLUDE" >
-<![%blockquote.attlist;[
-<!ATTLIST %blockquote.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
->
-<!-- end of blockquote.attlist -->]]>
-
-<!ENTITY % pre.element  "INCLUDE" >
-<![%pre.element;[
-<!ENTITY % pre.content
-     "( #PCDATA
-      | %InlStruct.class;
-      %InlPhras.class;
-      | %tt.qname; | %i.qname; | %b.qname;
-      %I18n.class;
-      %Anchor.class;
-      | %script.qname; | %map.qname;
-      %Inline.extra; )*"
->
-<!ENTITY % pre.qname  "pre" >
-<!ELEMENT %pre.qname;  %pre.content; >
-<!-- end of pre.element -->]]>
-
-<!ENTITY % pre.attlist  "INCLUDE" >
-<![%pre.attlist;[
-<!ATTLIST %pre.qname;
-      %Common.attrib;
-      xml:space    ( preserve )             #FIXED 'preserve'
->
-<!-- end of pre.attlist -->]]>
-
-<!-- ...................  Heading Elements  ................... -->
-
-<!ENTITY % Heading.content  "( #PCDATA | %Inline.mix; )*" >
-
-<!ENTITY % h1.element  "INCLUDE" >
-<![%h1.element;[
-<!ENTITY % h1.qname  "h1" >
-<!ELEMENT %h1.qname;  %Heading.content; >
-<!-- end of h1.element -->]]>
-
-<!ENTITY % h1.attlist  "INCLUDE" >
-<![%h1.attlist;[
-<!ATTLIST %h1.qname;
-      %Common.attrib;
->
-<!-- end of h1.attlist -->]]>
-
-<!ENTITY % h2.element  "INCLUDE" >
-<![%h2.element;[
-<!ENTITY % h2.qname  "h2" >
-<!ELEMENT %h2.qname;  %Heading.content; >
-<!-- end of h2.element -->]]>
-
-<!ENTITY % h2.attlist  "INCLUDE" >
-<![%h2.attlist;[
-<!ATTLIST %h2.qname;
-      %Common.attrib;
->
-<!-- end of h2.attlist -->]]>
-
-<!ENTITY % h3.element  "INCLUDE" >
-<![%h3.element;[
-<!ENTITY % h3.qname  "h3" >
-<!ELEMENT %h3.qname;  %Heading.content; >
-<!-- end of h3.element -->]]>
-
-<!ENTITY % h3.attlist  "INCLUDE" >
-<![%h3.attlist;[
-<!ATTLIST %h3.qname;
-      %Common.attrib;
->
-<!-- end of h3.attlist -->]]>
-
-<!ENTITY % h4.element  "INCLUDE" >
-<![%h4.element;[
-<!ENTITY % h4.qname  "h4" >
-<!ELEMENT %h4.qname;  %Heading.content; >
-<!-- end of h4.element -->]]>
-
-<!ENTITY % h4.attlist  "INCLUDE" >
-<![%h4.attlist;[
-<!ATTLIST %h4.qname;
-      %Common.attrib;
->
-<!-- end of h4.attlist -->]]>
-
-<!ENTITY % h5.element  "INCLUDE" >
-<![%h5.element;[
-<!ENTITY % h5.qname  "h5" >
-<!ELEMENT %h5.qname;  %Heading.content; >
-<!-- end of h5.element -->]]>
-
-<!ENTITY % h5.attlist  "INCLUDE" >
-<![%h5.attlist;[
-<!ATTLIST %h5.qname;
-      %Common.attrib;
->
-<!-- end of h5.attlist -->]]>
-
-<!ENTITY % h6.element  "INCLUDE" >
-<![%h6.element;[
-<!ENTITY % h6.qname  "h6" >
-<!ELEMENT %h6.qname;  %Heading.content; >
-<!-- end of h6.element -->]]>
-
-<!ENTITY % h6.attlist  "INCLUDE" >
-<![%h6.attlist;[
-<!ATTLIST %h6.qname;
-      %Common.attrib;
->
-<!-- end of h6.attlist -->]]>
-
-<!-- end of xhtml-blkphras-1.mod -->
-]]>
-
-<!-- end of xhtml-text-1.mod -->
-]]>
-
-<!-- Hypertext Module (required) ................................. -->
-<!ENTITY % xhtml-hypertext.module "INCLUDE" >
-<![%xhtml-hypertext.module;[
-<!ENTITY % xhtml-hypertext.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Hypertext Module  .............................................. -->
-<!-- file: xhtml-hypertext-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Hypertext
-
-        a
-
-     This module declares the anchor ('a') element type, which
-     defines the source of a hypertext link. The destination
-     (or link 'target') is identified via its 'id' attribute
-     rather than the 'name' attribute as was used in HTML.
--->
-
-<!-- ............  Anchor Element  ............ -->
-
-<!ENTITY % a.element  "INCLUDE" >
-<![%a.element;[
-<!ENTITY % a.content
-     "( #PCDATA | %InlNoAnchor.mix; )*"
->
-<!ENTITY % a.qname  "a" >
-<!ELEMENT %a.qname;  %a.content; >
-<!-- end of a.element -->]]>
-
-<!ENTITY % a.attlist  "INCLUDE" >
-<![%a.attlist;[
-<!ATTLIST %a.qname;
-      %Common.attrib;
-      href         %URI.datatype;           #IMPLIED
-      charset      %Charset.datatype;       #IMPLIED
-      type         %ContentType.datatype;   #IMPLIED
-      hreflang     %LanguageCode.datatype;  #IMPLIED
-      rel          %LinkTypes.datatype;     #IMPLIED
-      rev          %LinkTypes.datatype;     #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
->
-<!-- end of a.attlist -->]]>
-
-<!-- end of xhtml-hypertext-1.mod -->
-]]>
-
-<!-- Lists Module (required)  .................................... -->
-<!ENTITY % xhtml-list.module "INCLUDE" >
-<![%xhtml-list.module;[
-<!ENTITY % xhtml-list.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Lists Module  .................................................. -->
-<!-- file: xhtml-list-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Lists
-
-        dl, dt, dd, ol, ul, li
-
-     This module declares the list-oriented element types
-     and their attributes.
--->
-
-<!ENTITY % dl.qname  "dl" >
-<!ENTITY % dt.qname  "dt" >
-<!ENTITY % dd.qname  "dd" >
-<!ENTITY % ol.qname  "ol" >
-<!ENTITY % ul.qname  "ul" >
-<!ENTITY % li.qname  "li" >
-
-<!-- dl: Definition List ............................... -->
-
-<!ENTITY % dl.element  "INCLUDE" >
-<![%dl.element;[
-<!ENTITY % dl.content  "( %dt.qname; | %dd.qname; )+" >
-<!ELEMENT %dl.qname;  %dl.content; >
-<!-- end of dl.element -->]]>
-
-<!ENTITY % dl.attlist  "INCLUDE" >
-<![%dl.attlist;[
-<!ATTLIST %dl.qname;
-      %Common.attrib;
->
-<!-- end of dl.attlist -->]]>
-
-<!-- dt: Definition Term ............................... -->
-
-<!ENTITY % dt.element  "INCLUDE" >
-<![%dt.element;[
-<!ENTITY % dt.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ELEMENT %dt.qname;  %dt.content; >
-<!-- end of dt.element -->]]>
-
-<!ENTITY % dt.attlist  "INCLUDE" >
-<![%dt.attlist;[
-<!ATTLIST %dt.qname;
-      %Common.attrib;
->
-<!-- end of dt.attlist -->]]>
-
-<!-- dd: Definition Description ........................ -->
-
-<!ENTITY % dd.element  "INCLUDE" >
-<![%dd.element;[
-<!ENTITY % dd.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %dd.qname;  %dd.content; >
-<!-- end of dd.element -->]]>
-
-<!ENTITY % dd.attlist  "INCLUDE" >
-<![%dd.attlist;[
-<!ATTLIST %dd.qname;
-      %Common.attrib;
->
-<!-- end of dd.attlist -->]]>
-
-<!-- ol: Ordered List (numbered styles) ................ -->
-
-<!ENTITY % ol.element  "INCLUDE" >
-<![%ol.element;[
-<!ENTITY % ol.content  "( %li.qname; )+" >
-<!ELEMENT %ol.qname;  %ol.content; >
-<!-- end of ol.element -->]]>
-
-<!ENTITY % ol.attlist  "INCLUDE" >
-<![%ol.attlist;[
-<!ATTLIST %ol.qname;
-      %Common.attrib;
->
-<!-- end of ol.attlist -->]]>
-
-<!-- ul: Unordered List (bullet styles) ................ -->
-
-<!ENTITY % ul.element  "INCLUDE" >
-<![%ul.element;[
-<!ENTITY % ul.content  "( %li.qname; )+" >
-<!ELEMENT %ul.qname;  %ul.content; >
-<!-- end of ul.element -->]]>
-
-<!ENTITY % ul.attlist  "INCLUDE" >
-<![%ul.attlist;[
-<!ATTLIST %ul.qname;
-      %Common.attrib;
->
-<!-- end of ul.attlist -->]]>
-
-<!-- li: List Item ..................................... -->
-
-<!ENTITY % li.element  "INCLUDE" >
-<![%li.element;[
-<!ENTITY % li.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %li.qname;  %li.content; >
-<!-- end of li.element -->]]>
-
-<!ENTITY % li.attlist  "INCLUDE" >
-<![%li.attlist;[
-<!ATTLIST %li.qname;
-      %Common.attrib;
->
-<!-- end of li.attlist -->]]>
-
-<!-- end of xhtml-list-1.mod -->
-]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Edit Module  ................................................ -->
-<!ENTITY % xhtml-edit.module "INCLUDE" >
-<![%xhtml-edit.module;[
-<!ENTITY % xhtml-edit.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Editing Elements Module  ....................................... -->
-<!-- file: xhtml-edit-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-edit-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Editing Elements
-
-        ins, del
-
-     This module declares element types and attributes used to indicate
-     inserted and deleted content while editing a document.
--->
-
-<!-- ins: Inserted Text  ............................... -->
-
-<!ENTITY % ins.element  "INCLUDE" >
-<![%ins.element;[
-<!ENTITY % ins.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ENTITY % ins.qname  "ins" >
-<!ELEMENT %ins.qname;  %ins.content; >
-<!-- end of ins.element -->]]>
-
-<!ENTITY % ins.attlist  "INCLUDE" >
-<![%ins.attlist;[
-<!ATTLIST %ins.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
-      datetime     %Datetime.datatype;      #IMPLIED
->
-<!-- end of ins.attlist -->]]>
-
-<!-- del: Deleted Text  ................................ -->
-
-<!ENTITY % del.element  "INCLUDE" >
-<![%del.element;[
-<!ENTITY % del.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ENTITY % del.qname  "del" >
-<!ELEMENT %del.qname;  %del.content; >
-<!-- end of del.element -->]]>
-
-<!ENTITY % del.attlist  "INCLUDE" >
-<![%del.attlist;[
-<!ATTLIST %del.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
-      datetime     %Datetime.datatype;      #IMPLIED
->
-<!-- end of del.attlist -->]]>
-
-<!-- end of xhtml-edit-1.mod -->
-]]>
-
-<!-- BIDI Override Module  ....................................... -->
-<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >
-<![%xhtml-bdo.module;[
-<!ENTITY % xhtml-bdo.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML BDO Element Module ............................................. -->
-<!-- file: xhtml-bdo-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-bdo-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Bidirectional Override (bdo) Element
-
-     This modules declares the element 'bdo', used to override the
-     Unicode bidirectional algorithm for selected fragments of text.
-
-     DEPENDENCIES:
-     Relies on the conditional section keyword %XHTML.bidi; declared
-     as "INCLUDE". Bidirectional text support includes both the bdo
-     element and the 'dir' attribute.
--->
-
-<!ENTITY % bdo.element  "INCLUDE" >
-<![%bdo.element;[
-<!ENTITY % bdo.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % bdo.qname  "bdo" >
-<!ELEMENT %bdo.qname;  %bdo.content; >
-<!-- end of bdo.element -->]]>
-
-<!ENTITY % bdo.attlist  "INCLUDE" >
-<![%bdo.attlist;[
-<!ATTLIST %bdo.qname;
-      %Core.attrib;
-      xml:lang     %LanguageCode.datatype;  #IMPLIED
-      dir          ( ltr | rtl )            #REQUIRED
->
-]]>
-
-<!-- end of xhtml-bdo-1.mod -->
-]]>
-
-<!-- Ruby Module  ................................................ -->
-<!ENTITY % Ruby.common.attlists "INCLUDE" >
-<!ENTITY % Ruby.common.attrib "%Common.attrib;" >
-<!ENTITY % xhtml-ruby.module "INCLUDE" >
-<![%xhtml-ruby.module;[
-<!ENTITY % xhtml-ruby.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
-            "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Ruby Module .................................................... -->
-<!-- file: xhtml-ruby-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This module is based on the W3C Ruby Annotation Specification:
-
-        http://www.w3.org/TR/ruby
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod"
-
-     ...................................................................... -->
-
-<!-- Ruby Elements
-
-        ruby, rbc, rtc, rb, rt, rp
-
-     This module declares the elements and their attributes used to
-     support ruby annotation markup.
--->
-
-<!-- declare qualified element type names:
--->
-<!ENTITY % ruby.qname  "ruby" >
-<!ENTITY % rbc.qname  "rbc" >
-<!ENTITY % rtc.qname  "rtc" >
-<!ENTITY % rb.qname  "rb" >
-<!ENTITY % rt.qname  "rt" >
-<!ENTITY % rp.qname  "rp" >
-
-<!-- rp fallback is included by default.
--->
-<!ENTITY % Ruby.fallback "INCLUDE" >
-<!ENTITY % Ruby.fallback.mandatory "IGNORE" >
-
-<!-- Complex ruby is included by default; it may be 
-     overridden by other modules to ignore it.
--->
-<!ENTITY % Ruby.complex "INCLUDE" >
-
-<!-- Fragments for the content model of the ruby element -->
-<![%Ruby.fallback;[
-<![%Ruby.fallback.mandatory;[
-<!ENTITY % Ruby.content.simple 
-     "( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )"
->
-]]>
-<!ENTITY % Ruby.content.simple 
-     "( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )"
->
-]]>
-<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" >
-
-<![%Ruby.complex;[
-<!ENTITY % Ruby.content.complex 
-     "| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )"
->
-]]>
-<!ENTITY % Ruby.content.complex "" >
-
-<!-- Content models of the rb and the rt elements are intended to
-     allow other inline-level elements of its parent markup language,
-     but it should not include ruby descendent elements. The following
-     parameter entity %NoRuby.content; can be used to redefine
-     those content models with minimum effort.  It's defined as
-     '( #PCDATA )' by default.
--->
-<!ENTITY % NoRuby.content "( #PCDATA )" >
-
-<!-- one or more digits (NUMBER) -->
-<!ENTITY % Number.datatype "CDATA" >
-
-<!-- ruby element ...................................... -->
-
-<!ENTITY % ruby.element  "INCLUDE" >
-<![%ruby.element;[
-<!ENTITY % ruby.content
-     "( %Ruby.content.simple; %Ruby.content.complex; )"
->
-<!ELEMENT %ruby.qname;  %ruby.content; >
-<!-- end of ruby.element -->]]>
-
-<![%Ruby.complex;[
-<!-- rbc (ruby base component) element ................. -->
-
-<!ENTITY % rbc.element  "INCLUDE" >
-<![%rbc.element;[
-<!ENTITY % rbc.content
-     "(%rb.qname;)+"
->
-<!ELEMENT %rbc.qname;  %rbc.content; >
-<!-- end of rbc.element -->]]>
-
-<!-- rtc (ruby text component) element ................. -->
-
-<!ENTITY % rtc.element  "INCLUDE" >
-<![%rtc.element;[
-<!ENTITY % rtc.content
-     "(%rt.qname;)+"
->
-<!ELEMENT %rtc.qname;  %rtc.content; >
-<!-- end of rtc.element -->]]>
-]]>
-
-<!-- rb (ruby base) element ............................ -->
-
-<!ENTITY % rb.element  "INCLUDE" >
-<![%rb.element;[
-<!-- %rb.content; uses %NoRuby.content; as its content model,
-     which is '( #PCDATA )' by default. It may be overridden
-     by other modules to allow other inline-level elements
-     of its parent markup language, but it should not include
-     ruby descendent elements.
--->
-<!ENTITY % rb.content "%NoRuby.content;" >
-<!ELEMENT %rb.qname;  %rb.content; >
-<!-- end of rb.element -->]]>
-
-<!-- rt (ruby text) element ............................ -->
-
-<!ENTITY % rt.element  "INCLUDE" >
-<![%rt.element;[
-<!-- %rt.content; uses %NoRuby.content; as its content model,
-     which is '( #PCDATA )' by default. It may be overridden
-     by other modules to allow other inline-level elements
-     of its parent markup language, but it should not include
-     ruby descendent elements.
--->
-<!ENTITY % rt.content "%NoRuby.content;" >
-
-<!ELEMENT %rt.qname;  %rt.content; >
-<!-- end of rt.element -->]]>
-
-<!-- rbspan attribute is used for complex ruby only ...... -->
-<![%Ruby.complex;[
-<!ENTITY % rt.attlist  "INCLUDE" >
-<![%rt.attlist;[
-<!ATTLIST %rt.qname;
-      rbspan         %Number.datatype;      "1"
->
-<!-- end of rt.attlist -->]]>
-]]>
-
-<!-- rp (ruby parenthesis) element ..................... -->
-
-<![%Ruby.fallback;[
-<!ENTITY % rp.element  "INCLUDE" >
-<![%rp.element;[
-<!ENTITY % rp.content
-     "( #PCDATA )"
->
-<!ELEMENT %rp.qname;  %rp.content; >
-<!-- end of rp.element -->]]>
-]]>
-
-<!-- Ruby Common Attributes
-
-     The following optional ATTLIST declarations provide an easy way
-     to define common attributes for ruby elements.  These declarations
-     are ignored by default.
-
-     Ruby elements are intended to have common attributes of its
-     parent markup language.  For example, if a markup language defines
-     common attributes as a parameter entity %attrs;, you may add
-     those attributes by just declaring the following parameter entities
-
-         <!ENTITY % Ruby.common.attlists  "INCLUDE" >
-         <!ENTITY % Ruby.common.attrib  "%attrs;" >
-
-     before including the Ruby module.
--->
-
-<!ENTITY % Ruby.common.attlists  "IGNORE" >
-<![%Ruby.common.attlists;[
-<!ENTITY % Ruby.common.attrib  "" >
-
-<!-- common attributes for ruby ........................ -->
-
-<!ENTITY % Ruby.common.attlist  "INCLUDE" >
-<![%Ruby.common.attlist;[
-<!ATTLIST %ruby.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Ruby.common.attlist -->]]>
-
-<![%Ruby.complex;[
-<!-- common attributes for rbc ......................... -->
-
-<!ENTITY % Rbc.common.attlist  "INCLUDE" >
-<![%Rbc.common.attlist;[
-<!ATTLIST %rbc.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rbc.common.attlist -->]]>
-
-<!-- common attributes for rtc ......................... -->
-
-<!ENTITY % Rtc.common.attlist  "INCLUDE" >
-<![%Rtc.common.attlist;[
-<!ATTLIST %rtc.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rtc.common.attlist -->]]>
-]]>
-
-<!-- common attributes for rb .......................... -->
-
-<!ENTITY % Rb.common.attlist  "INCLUDE" >
-<![%Rb.common.attlist;[
-<!ATTLIST %rb.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rb.common.attlist -->]]>
-
-<!-- common attributes for rt .......................... -->
-
-<!ENTITY % Rt.common.attlist  "INCLUDE" >
-<![%Rt.common.attlist;[
-<!ATTLIST %rt.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rt.common.attlist -->]]>
-
-<![%Ruby.fallback;[
-<!-- common attributes for rp .......................... -->
-
-<!ENTITY % Rp.common.attlist  "INCLUDE" >
-<![%Rp.common.attlist;[
-<!ATTLIST %rp.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rp.common.attlist -->]]>
-]]>
-]]>
-
-<!-- end of xhtml-ruby-1.mod -->
-]]>
-
-<!-- Presentation Module  ........................................ -->
-<!ENTITY % xhtml-pres.module "INCLUDE" >
-<![%xhtml-pres.module;[
-<!ENTITY % xhtml-pres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Presentation Module ............................................ -->
-<!-- file: xhtml-pres-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-pres-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Presentational Elements
-
-     This module defines elements and their attributes for
-     simple presentation-related markup.
--->
-
-<!ENTITY % xhtml-inlpres.module "INCLUDE" >
-<![%xhtml-inlpres.module;[
-<!ENTITY % xhtml-inlpres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"
-            "xhtml-inlpres-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Presentation Module  .................................... -->
-<!-- file: xhtml-inlpres-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlpres-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Presentational Elements
-
-        b, big, i, small, sub, sup, tt
-
-     This module declares the elements and their attributes used to
-     support inline-level presentational markup.
--->
-
-<!ENTITY % b.element  "INCLUDE" >
-<![%b.element;[
-<!ENTITY % b.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % b.qname  "b" >
-<!ELEMENT %b.qname;  %b.content; >
-<!-- end of b.element -->]]>
-
-<!ENTITY % b.attlist  "INCLUDE" >
-<![%b.attlist;[
-<!ATTLIST %b.qname;
-      %Common.attrib;
->
-<!-- end of b.attlist -->]]>
-
-<!ENTITY % big.element  "INCLUDE" >
-<![%big.element;[
-<!ENTITY % big.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % big.qname  "big" >
-<!ELEMENT %big.qname;  %big.content; >
-<!-- end of big.element -->]]>
-
-<!ENTITY % big.attlist  "INCLUDE" >
-<![%big.attlist;[
-<!ATTLIST %big.qname;
-      %Common.attrib;
->
-<!-- end of big.attlist -->]]>
-
-<!ENTITY % i.element  "INCLUDE" >
-<![%i.element;[
-<!ENTITY % i.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % i.qname  "i" >
-<!ELEMENT %i.qname;  %i.content; >
-<!-- end of i.element -->]]>
-
-<!ENTITY % i.attlist  "INCLUDE" >
-<![%i.attlist;[
-<!ATTLIST %i.qname;
-      %Common.attrib;
->
-<!-- end of i.attlist -->]]>
-
-<!ENTITY % small.element  "INCLUDE" >
-<![%small.element;[
-<!ENTITY % small.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % small.qname  "small" >
-<!ELEMENT %small.qname;  %small.content; >
-<!-- end of small.element -->]]>
-
-<!ENTITY % small.attlist  "INCLUDE" >
-<![%small.attlist;[
-<!ATTLIST %small.qname;
-      %Common.attrib;
->
-<!-- end of small.attlist -->]]>
-
-<!ENTITY % sub.element  "INCLUDE" >
-<![%sub.element;[
-<!ENTITY % sub.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % sub.qname  "sub" >
-<!ELEMENT %sub.qname;  %sub.content; >
-<!-- end of sub.element -->]]>
-
-<!ENTITY % sub.attlist  "INCLUDE" >
-<![%sub.attlist;[
-<!ATTLIST %sub.qname;
-      %Common.attrib;
->
-<!-- end of sub.attlist -->]]>
-
-<!ENTITY % sup.element  "INCLUDE" >
-<![%sup.element;[
-<!ENTITY % sup.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % sup.qname  "sup" >
-<!ELEMENT %sup.qname;  %sup.content; >
-<!-- end of sup.element -->]]>
-
-<!ENTITY % sup.attlist  "INCLUDE" >
-<![%sup.attlist;[
-<!ATTLIST %sup.qname;
-      %Common.attrib;
->
-<!-- end of sup.attlist -->]]>
-
-<!ENTITY % tt.element  "INCLUDE" >
-<![%tt.element;[
-<!ENTITY % tt.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % tt.qname  "tt" >
-<!ELEMENT %tt.qname;  %tt.content; >
-<!-- end of tt.element -->]]>
-
-<!ENTITY % tt.attlist  "INCLUDE" >
-<![%tt.attlist;[
-<!ATTLIST %tt.qname;
-      %Common.attrib;
->
-<!-- end of tt.attlist -->]]>
-
-<!-- end of xhtml-inlpres-1.mod -->
-]]>
-
-<!ENTITY % xhtml-blkpres.module "INCLUDE" >
-<![%xhtml-blkpres.module;[
-<!ENTITY % xhtml-blkpres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"
-            "xhtml-blkpres-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Block Presentation Module  ..................................... -->
-<!-- file: xhtml-blkpres-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-blkpres-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Block Presentational Elements
-
-        hr
-
-     This module declares the elements and their attributes used to
-     support block-level presentational markup.
--->
-
-<!ENTITY % hr.element  "INCLUDE" >
-<![%hr.element;[
-<!ENTITY % hr.content  "EMPTY" >
-<!ENTITY % hr.qname  "hr" >
-<!ELEMENT %hr.qname;  %hr.content; >
-<!-- end of hr.element -->]]>
-
-<!ENTITY % hr.attlist  "INCLUDE" >
-<![%hr.attlist;[
-<!ATTLIST %hr.qname;
-      %Common.attrib;
->
-<!-- end of hr.attlist -->]]>
-
-<!-- end of xhtml-blkpres-1.mod -->
-]]>
-
-<!-- end of xhtml-pres-1.mod -->
-]]>
-
-<!-- Link Element Module  ........................................ -->
-<!ENTITY % xhtml-link.module "INCLUDE" >
-<![%xhtml-link.module;[
-<!ENTITY % xhtml-link.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Link Element Module  ........................................... -->
-<!-- file: xhtml-link-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-link-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Link element
-
-        link
-
-     This module declares the link element type and its attributes,
-     which could (in principle) be used to define document-level links
-     to external resources such as:
-
-     a) for document specific toolbars/menus, e.g. start, contents,
-        previous, next, index, end, help
-     b) to link to a separate style sheet (rel="stylesheet")
-     c) to make a link to a script (rel="script")
-     d) by style sheets to control how collections of html nodes are
-        rendered into printed documents
-     e) to make a link to a printable version of this document
-        e.g. a postscript or pdf version (rel="alternate" media="print")
--->
-
-<!-- link: Media-Independent Link ...................... -->
-
-<!ENTITY % link.element  "INCLUDE" >
-<![%link.element;[
-<!ENTITY % link.content  "EMPTY" >
-<!ENTITY % link.qname  "link" >
-<!ELEMENT %link.qname;  %link.content; >
-<!-- end of link.element -->]]>
-
-<!ENTITY % link.attlist  "INCLUDE" >
-<![%link.attlist;[
-<!ATTLIST %link.qname;
-      %Common.attrib;
-      charset      %Charset.datatype;       #IMPLIED
-      href         %URI.datatype;           #IMPLIED
-      hreflang     %LanguageCode.datatype;  #IMPLIED
-      type         %ContentType.datatype;   #IMPLIED
-      rel          %LinkTypes.datatype;     #IMPLIED
-      rev          %LinkTypes.datatype;     #IMPLIED
-      media        %MediaDesc.datatype;     #IMPLIED
->
-<!-- end of link.attlist -->]]>
-
-<!-- end of xhtml-link-1.mod -->
-]]>
-
-<!-- Document Metainformation Module  ............................ -->
-<!ENTITY % xhtml-meta.module "INCLUDE" >
-<![%xhtml-meta.module;[
-<!ENTITY % xhtml-meta.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Document Metainformation Module  ............................... -->
-<!-- file: xhtml-meta-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Meta Information
-
-        meta
-
-     This module declares the meta element type and its attributes,
-     used to provide declarative document metainformation.
--->
-
-<!-- meta: Generic Metainformation ..................... -->
-
-<!ENTITY % meta.element  "INCLUDE" >
-<![%meta.element;[
-<!ENTITY % meta.content  "EMPTY" >
-<!ENTITY % meta.qname  "meta" >
-<!ELEMENT %meta.qname;  %meta.content; >
-<!-- end of meta.element -->]]>
-
-<!ENTITY % meta.attlist  "INCLUDE" >
-<![%meta.attlist;[
-<!ATTLIST %meta.qname;
-      %XHTML.xmlns.attrib;
-      %I18n.attrib;
-      http-equiv   NMTOKEN                  #IMPLIED
-      name         NMTOKEN                  #IMPLIED
-      content      CDATA                    #REQUIRED
-      scheme       CDATA                    #IMPLIED
->
-<!-- end of meta.attlist -->]]>
-
-<!-- end of xhtml-meta-1.mod -->
-]]>
-
-<!-- Base Element Module  ........................................ -->
-<!ENTITY % xhtml-base.module "INCLUDE" >
-<![%xhtml-base.module;[
-<!ENTITY % xhtml-base.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Base Element Module  ........................................... -->
-<!-- file: xhtml-base-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Base element
-
-        base
-
-     This module declares the base element type and its attributes,
-     used to define a base URI against which relative URIs in the
-     document will be resolved.
-
-     Note that this module also redeclares the content model for
-     the head element to include the base element.
--->
-
-<!-- base: Document Base URI ........................... -->
-
-<!ENTITY % base.element  "INCLUDE" >
-<![%base.element;[
-<!ENTITY % base.content  "EMPTY" >
-<!ENTITY % base.qname  "base" >
-<!ELEMENT %base.qname;  %base.content; >
-<!-- end of base.element -->]]>
-
-<!ENTITY % base.attlist  "INCLUDE" >
-<![%base.attlist;[
-<!ATTLIST %base.qname;
-      %XHTML.xmlns.attrib;
-      href         %URI.datatype;           #REQUIRED
->
-<!-- end of base.attlist -->]]>
-
-<!ENTITY % head.content
-    "( %HeadOpts.mix;,
-     ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? )
-     | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))"
->
-
-<!-- end of xhtml-base-1.mod -->
-]]>
-
-<!-- Scripting Module  ........................................... -->
-<!ENTITY % xhtml-script.module "INCLUDE" >
-<![%xhtml-script.module;[
-<!ENTITY % xhtml-script.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Document Scripting Module  ..................................... -->
-<!-- file: xhtml-script-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Scripting
-
-        script, noscript
-
-     This module declares element types and attributes used to provide
-     support for executable scripts as well as an alternate content
-     container where scripts are not supported.
--->
-
-<!-- script: Scripting Statement ....................... -->
-
-<!ENTITY % script.element  "INCLUDE" >
-<![%script.element;[
-<!ENTITY % script.content  "( #PCDATA )" >
-<!ENTITY % script.qname  "script" >
-<!ELEMENT %script.qname;  %script.content; >
-<!-- end of script.element -->]]>
-
-<!ENTITY % script.attlist  "INCLUDE" >
-<![%script.attlist;[
-<!ATTLIST %script.qname;
-      %XHTML.xmlns.attrib;
-      charset      %Charset.datatype;       #IMPLIED
-      type         %ContentType.datatype;   #REQUIRED
-      src          %URI.datatype;           #IMPLIED
-      defer        ( defer )                #IMPLIED
-      xml:space    ( preserve )             #FIXED 'preserve'
->
-<!-- end of script.attlist -->]]>
-
-<!-- noscript: No-Script Alternate Content ............. -->
-
-<!ENTITY % noscript.element  "INCLUDE" >
-<![%noscript.element;[
-<!ENTITY % noscript.content
-     "( %Block.mix; )+"
->
-<!ENTITY % noscript.qname  "noscript" >
-<!ELEMENT %noscript.qname;  %noscript.content; >
-<!-- end of noscript.element -->]]>
-
-<!ENTITY % noscript.attlist  "INCLUDE" >
-<![%noscript.attlist;[
-<!ATTLIST %noscript.qname;
-      %Common.attrib;
->
-<!-- end of noscript.attlist -->]]>
-
-<!-- end of xhtml-script-1.mod -->
-]]>
-
-<!-- Style Sheets Module  ......................................... -->
-<!ENTITY % xhtml-style.module "INCLUDE" >
-<![%xhtml-style.module;[
-<!ENTITY % xhtml-style.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Document Style Sheet Module  ................................... -->
-<!-- file: xhtml-style-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//DTD XHTML Style Sheets 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-style-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Style Sheets
-
-        style
-
-     This module declares the style element type and its attributes,
-     used to embed style sheet information in the document head element.
--->
-
-<!-- style: Style Sheet Information .................... -->
-
-<!ENTITY % style.element  "INCLUDE" >
-<![%style.element;[
-<!ENTITY % style.content  "( #PCDATA )" >
-<!ENTITY % style.qname  "style" >
-<!ELEMENT %style.qname;  %style.content; >
-<!-- end of style.element -->]]>
-
-<!ENTITY % style.attlist  "INCLUDE" >
-<![%style.attlist;[
-<!ATTLIST %style.qname;
-      %XHTML.xmlns.attrib;
-      %title.attrib;
-      %I18n.attrib;
-      type         %ContentType.datatype;   #REQUIRED
-      media        %MediaDesc.datatype;     #IMPLIED
-      xml:space    ( preserve )             #FIXED 'preserve'
->
-<!-- end of style.attlist -->]]>
-
-<!-- end of xhtml-style-1.mod -->
-]]>
-
-<!-- Image Module  ............................................... -->
-<!ENTITY % xhtml-image.module "INCLUDE" >
-<![%xhtml-image.module;[
-<!ENTITY % xhtml-image.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Images Module  ................................................. -->
-<!-- file: xhtml-image-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Rovision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Images
-
-        img
-
-     This module provides markup to support basic image embedding.
--->
-
-<!-- To avoid problems with text-only UAs as well as to make
-     image content understandable and navigable to users of
-     non-visual UAs, you need to provide a description with
-     the 'alt' attribute, and avoid server-side image maps.
--->
-
-<!ENTITY % img.element  "INCLUDE" >
-<![%img.element;[
-<!ENTITY % img.content  "EMPTY" >
-<!ENTITY % img.qname  "img" >
-<!ELEMENT %img.qname;  %img.content; >
-<!-- end of img.element -->]]>
-
-<!ENTITY % img.attlist  "INCLUDE" >
-<![%img.attlist;[
-<!ATTLIST %img.qname;
-      %Common.attrib;
-      src          %URI.datatype;           #REQUIRED
-      alt          %Text.datatype;          #REQUIRED
-      longdesc     %URI.datatype;           #IMPLIED
-      height       %Length.datatype;        #IMPLIED
-      width        %Length.datatype;        #IMPLIED
->
-<!-- end of img.attlist -->]]>
-
-<!-- end of xhtml-image-1.mod -->
-]]>
-
-<!-- Client-side Image Map Module  ............................... -->
-<!ENTITY % xhtml-csismap.module "INCLUDE" >
-<![%xhtml-csismap.module;[
-<!ENTITY % xhtml-csismap.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Client-side Image Map Module  .................................. -->
-<!-- file: xhtml-csismap-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-csismap-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Client-side Image Maps
-
-        area, map
-
-     This module declares elements and attributes to support client-side
-     image maps. This requires that the Image Module (or a module
-     declaring the img element type) be included in the DTD.
-
-     These can be placed in the same document or grouped in a
-     separate document, although the latter isn't widely supported
--->
-
-<!ENTITY % area.element  "INCLUDE" >
-<![%area.element;[
-<!ENTITY % area.content  "EMPTY" >
-<!ENTITY % area.qname  "area" >
-<!ELEMENT %area.qname;  %area.content; >
-<!-- end of area.element -->]]>
-
-<!ENTITY % Shape.datatype "( rect | circle | poly | default )">
-<!ENTITY % Coords.datatype "CDATA" >
-
-<!ENTITY % area.attlist  "INCLUDE" >
-<![%area.attlist;[
-<!ATTLIST %area.qname;
-      %Common.attrib;
-      href         %URI.datatype;           #IMPLIED
-      shape        %Shape.datatype;         'rect'
-      coords       %Coords.datatype;        #IMPLIED
-      nohref       ( nohref )               #IMPLIED
-      alt          %Text.datatype;          #REQUIRED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of area.attlist -->]]>
-
-<!-- modify anchor attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %a.qname;
-      shape        %Shape.datatype;         'rect'
-      coords       %Coords.datatype;        #IMPLIED
->
-
-<!-- modify img attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %img.qname;
-      usemap       IDREF                    #IMPLIED
->
-
-<!-- modify form input attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %input.qname;
-      usemap       IDREF                    #IMPLIED
->
-
-<!-- modify object attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %object.qname;
-      usemap       IDREF                    #IMPLIED
->
-
-<!-- 'usemap' points to the 'id' attribute of a <map> element,
-     which must be in the same document; support for external
-     document maps was not widely supported in HTML and is
-     eliminated in XHTML.
-
-     It is considered an error for the element pointed to by
-     a usemap IDREF to occur in anything but a <map> element.
--->
-
-<!ENTITY % map.element  "INCLUDE" >
-<![%map.element;[
-<!ENTITY % map.content
-     "(( %Block.mix; ) | %area.qname; )+"
->
-<!ENTITY % map.qname  "map" >
-<!ELEMENT %map.qname;  %map.content; >
-<!-- end of map.element -->]]>
-
-<!ENTITY % map.attlist  "INCLUDE" >
-<![%map.attlist;[
-<!ATTLIST %map.qname;
-      %XHTML.xmlns.attrib;
-      id           ID                       #REQUIRED
-      %class.attrib;
-      %title.attrib;
-      %Core.extra.attrib;
-      %I18n.attrib;
-      %Events.attrib;
->
-<!-- end of map.attlist -->]]>
-
-<!-- end of xhtml-csismap-1.mod -->
-]]>
-
-<!-- Server-side Image Map Module  ............................... -->
-<!ENTITY % xhtml-ssismap.module "INCLUDE" >
-<![%xhtml-ssismap.module;[
-<!ENTITY % xhtml-ssismap.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Server-side Image Map Module  .................................. -->
-<!-- file: xhtml-ssismap-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-ssismap-1.mod"
-
-     Revisions:
-#2000-10-22: added declaration for 'ismap' on <input>
-     ....................................................................... -->
-
-<!-- Server-side Image Maps
-
-     This adds the 'ismap' attribute to the img and input elements
-     to support server-side processing of a user selection.
--->
-
-<!ATTLIST %img.qname;
-      ismap        ( ismap )                #IMPLIED
->
-
-<!ATTLIST %input.qname;
-      ismap        ( ismap )                #IMPLIED
->
-
-<!-- end of xhtml-ssismap-1.mod -->
-]]>
-
-<!-- Param Element Module  ....................................... -->
-<!ENTITY % xhtml-param.module "INCLUDE" >
-<![%xhtml-param.module;[
-<!ENTITY % xhtml-param.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Param Element Module  ..................................... -->
-<!-- file: xhtml-param-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-param-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Parameters for Java Applets and Embedded Objects
-
-        param
-
-     This module provides declarations for the param element,
-     used to provide named property values for the applet
-     and object elements.
--->
-
-<!-- param: Named Property Value ....................... -->
-
-<!ENTITY % param.element  "INCLUDE" >
-<![%param.element;[
-<!ENTITY % param.content  "EMPTY" >
-<!ENTITY % param.qname  "param" >
-<!ELEMENT %param.qname;  %param.content; >
-<!-- end of param.element -->]]>
-
-<!ENTITY % param.attlist  "INCLUDE" >
-<![%param.attlist;[
-<!ATTLIST %param.qname;
-      %XHTML.xmlns.attrib;
-      %id.attrib;
-      name         CDATA                    #REQUIRED
-      value        CDATA                    #IMPLIED
-      valuetype    ( data | ref | object )  'data'
-      type         %ContentType.datatype;   #IMPLIED
->
-<!-- end of param.attlist -->]]>
-
-<!-- end of xhtml-param-1.mod -->
-]]>
-
-<!-- Embedded Object Module  ..................................... -->
-<!ENTITY % xhtml-object.module "INCLUDE" >
-<![%xhtml-object.module;[
-<!ENTITY % xhtml-object.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Embedded Object Module  ........................................ -->
-<!-- file: xhtml-object-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-object-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Embedded Objects
-
-        object
-
-     This module declares the object element type and its attributes, used
-     to embed external objects as part of XHTML pages. In the document,
-     place param elements prior to other content within the object element.
-
-     Note that use of this module requires instantiation of the Param
-     Element Module.
--->
-
-<!-- object: Generic Embedded Object ................... -->
-
-<!ENTITY % object.element  "INCLUDE" >
-<![%object.element;[
-<!ENTITY % object.content
-     "( #PCDATA | %Flow.mix; | %param.qname; )*"
->
-<!ENTITY % object.qname  "object" >
-<!ELEMENT %object.qname;  %object.content; >
-<!-- end of object.element -->]]>
-
-<!ENTITY % object.attlist  "INCLUDE" >
-<![%object.attlist;[
-<!ATTLIST %object.qname;
-      %Common.attrib;
-      declare      ( declare )              #IMPLIED
-      classid      %URI.datatype;           #IMPLIED
-      codebase     %URI.datatype;           #IMPLIED
-      data         %URI.datatype;           #IMPLIED
-      type         %ContentType.datatype;   #IMPLIED
-      codetype     %ContentType.datatype;   #IMPLIED
-      archive      %URIs.datatype;          #IMPLIED
-      standby      %Text.datatype;          #IMPLIED
-      height       %Length.datatype;        #IMPLIED
-      width        %Length.datatype;        #IMPLIED
-      name         CDATA                    #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
->
-<!-- end of object.attlist -->]]>
-
-<!-- end of xhtml-object-1.mod -->
-]]>
-
-<!-- Tables Module ............................................... -->
-<!ENTITY % xhtml-table.module "INCLUDE" >
-<![%xhtml-table.module;[
-<!ENTITY % xhtml-table.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Table Module  .................................................. -->
-<!-- file: xhtml-table-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-table-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Tables
-
-        table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td
-
-     This module declares element types and attributes used to provide
-     table markup similar to HTML 4, including features that enable
-     better accessibility for non-visual user agents.
--->
-
-<!-- declare qualified element type names:
--->
-<!ENTITY % table.qname  "table" >
-<!ENTITY % caption.qname  "caption" >
-<!ENTITY % thead.qname  "thead" >
-<!ENTITY % tfoot.qname  "tfoot" >
-<!ENTITY % tbody.qname  "tbody" >
-<!ENTITY % colgroup.qname  "colgroup" >
-<!ENTITY % col.qname  "col" >
-<!ENTITY % tr.qname  "tr" >
-<!ENTITY % th.qname  "th" >
-<!ENTITY % td.qname  "td" >
-
-<!-- The frame attribute specifies which parts of the frame around
-     the table should be rendered. The values are not the same as
-     CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % frame.attrib
-     "frame        ( void
-                   | above
-                   | below
-                   | hsides
-                   | lhs
-                   | rhs
-                   | vsides
-                   | box
-                   | border )               #IMPLIED"
->
-
-<!-- The rules attribute defines which rules to draw between cells:
-
-     If rules is absent then assume:
-
-       "none" if border is absent or border="0" otherwise "all"
--->
-<!ENTITY % rules.attrib
-     "rules        ( none
-                   | groups
-                   | rows
-                   | cols
-                   | all )                  #IMPLIED"
->
-
-<!-- horizontal alignment attributes for cell contents
--->
-<!ENTITY % CellHAlign.attrib
-     "align        ( left
-                   | center
-                   | right
-                   | justify
-                   | char )                 #IMPLIED
-      char         %Character.datatype;     #IMPLIED
-      charoff      %Length.datatype;        #IMPLIED"
->
-
-<!-- vertical alignment attribute for cell contents
--->
-<!ENTITY % CellVAlign.attrib
-     "valign       ( top
-                   | middle
-                   | bottom
-                   | baseline )             #IMPLIED"
->
-
-<!-- scope is simpler than axes attribute for common tables
--->
-<!ENTITY % scope.attrib
-     "scope        ( row
-                   | col
-                   | rowgroup
-                   | colgroup )             #IMPLIED"
->
-
-<!-- table: Table Element .............................. -->
-
-<!ENTITY % table.element  "INCLUDE" >
-<![%table.element;[
-<!ENTITY % table.content
-     "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ),
-      (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))"
->
-<!ELEMENT %table.qname;  %table.content; >
-<!-- end of table.element -->]]>
-
-<!ENTITY % table.attlist  "INCLUDE" >
-<![%table.attlist;[
-<!ATTLIST %table.qname;
-      %Common.attrib;
-      summary      %Text.datatype;          #IMPLIED
-      width        %Length.datatype;        #IMPLIED
-      border       %Pixels.datatype;        #IMPLIED
-      %frame.attrib;
-      %rules.attrib;
-      cellspacing  %Length.datatype;        #IMPLIED
-      cellpadding  %Length.datatype;        #IMPLIED
->
-<!-- end of table.attlist -->]]>
-
-<!-- caption: Table Caption ............................ -->
-
-<!ENTITY % caption.element  "INCLUDE" >
-<![%caption.element;[
-<!ENTITY % caption.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ELEMENT %caption.qname;  %caption.content; >
-<!-- end of caption.element -->]]>
-
-<!ENTITY % caption.attlist  "INCLUDE" >
-<![%caption.attlist;[
-<!ATTLIST %caption.qname;
-      %Common.attrib;
->
-<!-- end of caption.attlist -->]]>
-
-<!-- thead: Table Header ............................... -->
-
-<!-- Use thead to duplicate headers when breaking table
-     across page boundaries, or for static headers when
-     tbody sections are rendered in scrolling panel.
--->
-
-<!ENTITY % thead.element  "INCLUDE" >
-<![%thead.element;[
-<!ENTITY % thead.content  "( %tr.qname; )+" >
-<!ELEMENT %thead.qname;  %thead.content; >
-<!-- end of thead.element -->]]>
-
-<!ENTITY % thead.attlist  "INCLUDE" >
-<![%thead.attlist;[
-<!ATTLIST %thead.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of thead.attlist -->]]>
-
-<!-- tfoot: Table Footer ............................... -->
-
-<!-- Use tfoot to duplicate footers when breaking table
-     across page boundaries, or for static footers when
-     tbody sections are rendered in scrolling panel.
--->
-
-<!ENTITY % tfoot.element  "INCLUDE" >
-<![%tfoot.element;[
-<!ENTITY % tfoot.content  "( %tr.qname; )+" >
-<!ELEMENT %tfoot.qname;  %tfoot.content; >
-<!-- end of tfoot.element -->]]>
-
-<!ENTITY % tfoot.attlist  "INCLUDE" >
-<![%tfoot.attlist;[
-<!ATTLIST %tfoot.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of tfoot.attlist -->]]>
-
-<!-- tbody: Table Body ................................. -->
-
-<!-- Use multiple tbody sections when rules are needed
-     between groups of table rows.
--->
-
-<!ENTITY % tbody.element  "INCLUDE" >
-<![%tbody.element;[
-<!ENTITY % tbody.content  "( %tr.qname; )+" >
-<!ELEMENT %tbody.qname;  %tbody.content; >
-<!-- end of tbody.element -->]]>
-
-<!ENTITY % tbody.attlist  "INCLUDE" >
-<![%tbody.attlist;[
-<!ATTLIST %tbody.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of tbody.attlist -->]]>
-
-<!-- colgroup: Table Column Group ...................... -->
-
-<!-- colgroup groups a set of col elements. It allows you
-     to group several semantically-related columns together.
--->
-
-<!ENTITY % colgroup.element  "INCLUDE" >
-<![%colgroup.element;[
-<!ENTITY % colgroup.content  "( %col.qname; )*" >
-<!ELEMENT %colgroup.qname;  %colgroup.content; >
-<!-- end of colgroup.element -->]]>
-
-<!ENTITY % colgroup.attlist  "INCLUDE" >
-<![%colgroup.attlist;[
-<!ATTLIST %colgroup.qname;
-      %Common.attrib;
-      span         %Number.datatype;        '1'
-      width        %MultiLength.datatype;   #IMPLIED
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of colgroup.attlist -->]]>
-
-<!-- col: Table Column ................................. -->
-
-<!-- col elements define the alignment properties for
-     cells in one or more columns.
-
-     The width attribute specifies the width of the
-     columns, e.g.
-
-       width="64"        width in screen pixels
-       width="0.5*"      relative width of 0.5
-
-     The span attribute causes the attributes of one
-     col element to apply to more than one column.
--->
-
-<!ENTITY % col.element  "INCLUDE" >
-<![%col.element;[
-<!ENTITY % col.content  "EMPTY" >
-<!ELEMENT %col.qname;  %col.content; >
-<!-- end of col.element -->]]>
-
-<!ENTITY % col.attlist  "INCLUDE" >
-<![%col.attlist;[
-<!ATTLIST %col.qname;
-      %Common.attrib;
-      span         %Number.datatype;        '1'
-      width        %MultiLength.datatype;   #IMPLIED
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of col.attlist -->]]>
-
-<!-- tr: Table Row ..................................... -->
-
-<!ENTITY % tr.element  "INCLUDE" >
-<![%tr.element;[
-<!ENTITY % tr.content  "( %th.qname; | %td.qname; )+" >
-<!ELEMENT %tr.qname;  %tr.content; >
-<!-- end of tr.element -->]]>
-
-<!ENTITY % tr.attlist  "INCLUDE" >
-<![%tr.attlist;[
-<!ATTLIST %tr.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of tr.attlist -->]]>
-
-<!-- th: Table Header Cell ............................. -->
-
-<!-- th is for header cells, td for data,
-     but for cells acting as both use td
--->
-
-<!ENTITY % th.element  "INCLUDE" >
-<![%th.element;[
-<!ENTITY % th.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %th.qname;  %th.content; >
-<!-- end of th.element -->]]>
-
-<!ENTITY % th.attlist  "INCLUDE" >
-<![%th.attlist;[
-<!ATTLIST %th.qname;
-      %Common.attrib;
-      abbr         %Text.datatype;          #IMPLIED
-      axis         CDATA                    #IMPLIED
-      headers      IDREFS                   #IMPLIED
-      %scope.attrib;
-      rowspan      %Number.datatype;        '1'
-      colspan      %Number.datatype;        '1'
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of th.attlist -->]]>
-
-<!-- td: Table Data Cell ............................... -->
-
-<!ENTITY % td.element  "INCLUDE" >
-<![%td.element;[
-<!ENTITY % td.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %td.qname;  %td.content; >
-<!-- end of td.element -->]]>
-
-<!ENTITY % td.attlist  "INCLUDE" >
-<![%td.attlist;[
-<!ATTLIST %td.qname;
-      %Common.attrib;
-      abbr         %Text.datatype;          #IMPLIED
-      axis         CDATA                    #IMPLIED
-      headers      IDREFS                   #IMPLIED
-      %scope.attrib;
-      rowspan      %Number.datatype;        '1'
-      colspan      %Number.datatype;        '1'
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of td.attlist -->]]>
-
-<!-- end of xhtml-table-1.mod -->
-]]>
-
-<!-- Forms Module  ............................................... -->
-<!ENTITY % xhtml-form.module "INCLUDE" >
-<![%xhtml-form.module;[
-<!ENTITY % xhtml-form.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Forms Module  .................................................. -->
-<!-- file: xhtml-form-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Forms
-
-        form, label, input, select, optgroup, option,
-        textarea, fieldset, legend, button
-
-     This module declares markup to provide support for online
-     forms, based on the features found in HTML 4 forms.
--->
-
-<!-- declare qualified element type names:
--->
-<!ENTITY % form.qname  "form" >
-<!ENTITY % label.qname  "label" >
-<!ENTITY % input.qname  "input" >
-<!ENTITY % select.qname  "select" >
-<!ENTITY % optgroup.qname  "optgroup" >
-<!ENTITY % option.qname  "option" >
-<!ENTITY % textarea.qname  "textarea" >
-<!ENTITY % fieldset.qname  "fieldset" >
-<!ENTITY % legend.qname  "legend" >
-<!ENTITY % button.qname  "button" >
-
-<!-- %BlkNoForm.mix; includes all non-form block elements,
-     plus %Misc.class;
--->
-<!ENTITY % BlkNoForm.mix
-     "%Heading.class;
-      | %List.class;
-      | %BlkStruct.class;
-      %BlkPhras.class;
-      %BlkPres.class;
-      %Table.class;
-      %Block.extra;
-      %Misc.class;"
->
-
-<!-- form: Form Element ................................ -->
-
-<!ENTITY % form.element  "INCLUDE" >
-<![%form.element;[
-<!ENTITY % form.content
-     "( %BlkNoForm.mix;
-      | %fieldset.qname; )+"
->
-<!ELEMENT %form.qname;  %form.content; >
-<!-- end of form.element -->]]>
-
-<!ENTITY % form.attlist  "INCLUDE" >
-<![%form.attlist;[
-<!ATTLIST %form.qname;
-      %Common.attrib;
-      action       %URI.datatype;           #REQUIRED
-      method       ( get | post )           'get'
-      enctype      %ContentType.datatype;   'application/x-www-form-urlencoded'
-      accept-charset %Charsets.datatype;    #IMPLIED
-      accept       %ContentTypes.datatype;  #IMPLIED
->
-<!-- end of form.attlist -->]]>
-
-<!-- label: Form Field Label Text ...................... -->
-
-<!-- Each label must not contain more than ONE field
--->
-
-<!ENTITY % label.element  "INCLUDE" >
-<![%label.element;[
-<!ENTITY % label.content
-     "( #PCDATA
-      | %input.qname; | %select.qname; | %textarea.qname; | %button.qname;
-      | %InlStruct.class;
-      %InlPhras.class;
-      %I18n.class;
-      %InlPres.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %Inline.extra;
-      %Misc.class; )*"
->
-<!ELEMENT %label.qname;  %label.content; >
-<!-- end of label.element -->]]>
-
-<!ENTITY % label.attlist  "INCLUDE" >
-<![%label.attlist;[
-<!ATTLIST %label.qname;
-      %Common.attrib;
-      for          IDREF                    #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of label.attlist -->]]>
-
-<!-- input: Form Control ............................... -->
-
-<!ENTITY % input.element  "INCLUDE" >
-<![%input.element;[
-<!ENTITY % input.content  "EMPTY" >
-<!ELEMENT %input.qname;  %input.content; >
-<!-- end of input.element -->]]>
-
-<!ENTITY % input.attlist  "INCLUDE" >
-<![%input.attlist;[
-<!ENTITY % InputType.class
-     "( text | password | checkbox | radio | submit
-      | reset | file | hidden | image | button )"
->
-<!-- attribute 'name' required for all but submit & reset
--->
-<!ATTLIST %input.qname;
-      %Common.attrib;
-      type         %InputType.class;        'text'
-      name         CDATA                    #IMPLIED
-      value        CDATA                    #IMPLIED
-      checked      ( checked )              #IMPLIED
-      disabled     ( disabled )             #IMPLIED
-      readonly     ( readonly )             #IMPLIED
-      size         %Number.datatype;        #IMPLIED
-      maxlength    %Number.datatype;        #IMPLIED
-      src          %URI.datatype;           #IMPLIED
-      alt          %Text.datatype;          #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
-      accept       %ContentTypes.datatype;  #IMPLIED
->
-<!-- end of input.attlist -->]]>
-
-<!-- select: Option Selector ........................... -->
-
-<!ENTITY % select.element  "INCLUDE" >
-<![%select.element;[
-<!ENTITY % select.content
-     "( %optgroup.qname; | %option.qname; )+"
->
-<!ELEMENT %select.qname;  %select.content; >
-<!-- end of select.element -->]]>
-
-<!ENTITY % select.attlist  "INCLUDE" >
-<![%select.attlist;[
-<!ATTLIST %select.qname;
-      %Common.attrib;
-      name         CDATA                    #IMPLIED
-      size         %Number.datatype;        #IMPLIED
-      multiple     ( multiple )             #IMPLIED
-      disabled     ( disabled )             #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
->
-<!-- end of select.attlist -->]]>
-
-<!-- optgroup: Option Group ............................ -->
-
-<!ENTITY % optgroup.element  "INCLUDE" >
-<![%optgroup.element;[
-<!ENTITY % optgroup.content  "( %option.qname; )+" >
-<!ELEMENT %optgroup.qname;  %optgroup.content; >
-<!-- end of optgroup.element -->]]>
-
-<!ENTITY % optgroup.attlist  "INCLUDE" >
-<![%optgroup.attlist;[
-<!ATTLIST %optgroup.qname;
-      %Common.attrib;
-      disabled     ( disabled )             #IMPLIED
-      label        %Text.datatype;          #REQUIRED
->
-<!-- end of optgroup.attlist -->]]>
-
-<!-- option: Selectable Choice ......................... -->
-
-<!ENTITY % option.element  "INCLUDE" >
-<![%option.element;[
-<!ENTITY % option.content  "( #PCDATA )" >
-<!ELEMENT %option.qname;  %option.content; >
-<!-- end of option.element -->]]>
-
-<!ENTITY % option.attlist  "INCLUDE" >
-<![%option.attlist;[
-<!ATTLIST %option.qname;
-      %Common.attrib;
-      selected     ( selected )             #IMPLIED
-      disabled     ( disabled )             #IMPLIED
-      label        %Text.datatype;          #IMPLIED
-      value        CDATA                    #IMPLIED
->
-<!-- end of option.attlist -->]]>
-
-<!-- textarea: Multi-Line Text Field ................... -->
-
-<!ENTITY % textarea.element  "INCLUDE" >
-<![%textarea.element;[
-<!ENTITY % textarea.content  "( #PCDATA )" >
-<!ELEMENT %textarea.qname;  %textarea.content; >
-<!-- end of textarea.element -->]]>
-
-<!ENTITY % textarea.attlist  "INCLUDE" >
-<![%textarea.attlist;[
-<!ATTLIST %textarea.qname;
-      %Common.attrib;
-      name         CDATA                    #IMPLIED
-      rows         %Number.datatype;        #REQUIRED
-      cols         %Number.datatype;        #REQUIRED
-      disabled     ( disabled )             #IMPLIED
-      readonly     ( readonly )             #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of textarea.attlist -->]]>
-
-<!-- fieldset: Form Control Group ...................... -->
-
-<!-- #PCDATA is to solve the mixed content problem,
-     per specification only whitespace is allowed
--->
-
-<!ENTITY % fieldset.element  "INCLUDE" >
-<![%fieldset.element;[
-<!ENTITY % fieldset.content
-     "( #PCDATA | %legend.qname; | %Flow.mix; )*"
->
-<!ELEMENT %fieldset.qname;  %fieldset.content; >
-<!-- end of fieldset.element -->]]>
-
-<!ENTITY % fieldset.attlist  "INCLUDE" >
-<![%fieldset.attlist;[
-<!ATTLIST %fieldset.qname;
-      %Common.attrib;
->
-<!-- end of fieldset.attlist -->]]>
-
-<!-- legend: Fieldset Legend ........................... -->
-
-<!ENTITY % legend.element  "INCLUDE" >
-<![%legend.element;[
-<!ENTITY % legend.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ELEMENT %legend.qname;  %legend.content; >
-<!-- end of legend.element -->]]>
-
-<!ENTITY % legend.attlist  "INCLUDE" >
-<![%legend.attlist;[
-<!ATTLIST %legend.qname;
-      %Common.attrib;
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of legend.attlist -->]]>
-
-<!-- button: Push Button ............................... -->
-
-<!ENTITY % button.element  "INCLUDE" >
-<![%button.element;[
-<!ENTITY % button.content
-     "( #PCDATA
-      | %BlkNoForm.mix;
-      | %InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %InlSpecial.class;
-      %Inline.extra; )*"
->
-<!ELEMENT %button.qname;  %button.content; >
-<!-- end of button.element -->]]>
-
-<!ENTITY % button.attlist  "INCLUDE" >
-<![%button.attlist;[
-<!ATTLIST %button.qname;
-      %Common.attrib;
-      name         CDATA                    #IMPLIED
-      value        CDATA                    #IMPLIED
-      type         ( button | submit | reset ) 'submit'
-      disabled     ( disabled )             #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of button.attlist -->]]>
-
-<!-- end of xhtml-form-1.mod -->
-]]>
-
-<!-- Legacy Markup ............................................... -->
-<!ENTITY % xhtml-legacy.module "IGNORE" >
-<![%xhtml-legacy.module;[
-<!ENTITY % xhtml-legacy.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-legacy-1.mod" >
-%xhtml-legacy.mod;]]>
-
-<!-- Document Structure Module (required)  ....................... -->
-<!ENTITY % xhtml-struct.module "INCLUDE" >
-<![%xhtml-struct.module;[
-<!ENTITY % xhtml-struct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
-            "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Structure Module  .............................................. -->
-<!-- file: xhtml-struct-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Document Structure
-
-        title, head, body, html
-
-     The Structure Module defines the major structural elements and
-     their attributes.
-
-     Note that the content model of the head element type is redeclared
-     when the Base Module is included in the DTD.
-
-     The parameter entity containing the XML namespace URI value used
-     for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module.
--->
-
-<!-- title: Document Title ............................. -->
-
-<!-- The title element is not considered part of the flow of text.
-     It should be displayed, for example as the page header or
-     window title. Exactly one title is required per document.
--->
-
-<!ENTITY % title.element  "INCLUDE" >
-<![%title.element;[
-<!ENTITY % title.content  "( #PCDATA )" >
-<!ENTITY % title.qname  "title" >
-<!ELEMENT %title.qname;  %title.content; >
-<!-- end of title.element -->]]>
-
-<!ENTITY % title.attlist  "INCLUDE" >
-<![%title.attlist;[
-<!ATTLIST %title.qname;
-      %XHTML.xmlns.attrib;
-      %I18n.attrib;
->
-<!-- end of title.attlist -->]]>
-
-<!-- head: Document Head ............................... -->
-
-<!ENTITY % head.element  "INCLUDE" >
-<![%head.element;[
-<!ENTITY % head.content
-    "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )"
->
-<!ENTITY % head.qname  "head" >
-<!ELEMENT %head.qname;  %head.content; >
-<!-- end of head.element -->]]>
-
-<!ENTITY % head.attlist  "INCLUDE" >
-<![%head.attlist;[
-<!-- reserved for future use with document profiles
--->
-<!ENTITY % profile.attrib
-     "profile      %URI.datatype;           '%XHTML.profile;'"
->
-
-<!ATTLIST %head.qname;
-      %XHTML.xmlns.attrib;
-      %I18n.attrib;
-      %profile.attrib;
->
-<!-- end of head.attlist -->]]>
-
-<!-- body: Document Body ............................... -->
-
-<!ENTITY % body.element  "INCLUDE" >
-<![%body.element;[
-<!ENTITY % body.content
-     "( %Block.mix; )+"
->
-<!ENTITY % body.qname  "body" >
-<!ELEMENT %body.qname;  %body.content; >
-<!-- end of body.element -->]]>
-
-<!ENTITY % body.attlist  "INCLUDE" >
-<![%body.attlist;[
-<!ATTLIST %body.qname;
-      %Common.attrib;
->
-<!-- end of body.attlist -->]]>
-
-<!-- html: XHTML Document Element ...................... -->
-
-<!ENTITY % html.element  "INCLUDE" >
-<![%html.element;[
-<!ENTITY % html.content  "( %head.qname;, %body.qname; )" >
-<!ENTITY % html.qname  "html" >
-<!ELEMENT %html.qname;  %html.content; >
-<!-- end of html.element -->]]>
-
-<!ENTITY % html.attlist  "INCLUDE" >
-<![%html.attlist;[
-<!-- version attribute value defined in driver
--->
-<!ENTITY % XHTML.version.attrib
-     "version      %FPI.datatype;           #FIXED '%XHTML.version;'"
->
-
-<!-- see the Qualified Names module for information
-     on how to extend XHTML using XML namespaces
--->
-<!ATTLIST %html.qname;
-      %XHTML.xmlns.attrib;
-      %XHTML.version.attrib;
-      %I18n.attrib;
->
-<!-- end of html.attlist -->]]>
-
-<!-- end of xhtml-struct-1.mod -->
-]]>
-
-<!-- end of XHTML 1.1 DTD  ................................................. -->
-<!-- ....................................................................... -->
-
-]]>
-
-<!-- instantiate MathML 2.0 DTD  ................................. -->
-<![%MATHML.module;[
-<!ENTITY % MATHML.dtd.decl
-    'PUBLIC "-//W3C//DTD MathML 2.0//EN"
-            "%MATHML.dtd.sysid;"'
->
-<!ENTITY % MATHML.dtd %MATHML.dtd.decl; >
-<!-- MathML 2.0 DTD  ....................................................... -->
-<!-- file: mathml2.dtd
--->
-
-<!-- MathML 2.0 DTD
-
-     This is the Mathematical Markup Language (MathML) 2.0, an XML
-     application for describing mathematical notation and capturing
-     both its structure and content.
-
-     Copyright 1998-2002 World Wide Web Consortium
-        (Massachusetts Institute of Technology, Institut National de
-         Recherche en Informatique et en Automatique, Keio University).
-         All Rights Reserved.
-
-     Permission to use, copy, modify and distribute the MathML 2.0 DTD and
-     its accompanying documentation for any purpose and without fee is
-     hereby granted in perpetuity, provided that the above copyright notice
-     and this paragraph appear in all copies.  The copyright holders make
-     no representation about the suitability of the DTD for any purpose.
-
-     It is provided "as is" without expressed or implied warranty.
-
-        Revision:   $Id: xhtml-math-svg-flat.dtd,v 1.1 2009-09-24 14:44:49 dan Exp $
-
-     This entity may be identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//DTD MathML 2.0//EN"
-       SYSTEM "mathml2.dtd"
-
-     Revisions: editor and revision history at EOF
--->
-
-
-<!-- MathML Qualified Names module ............................... -->
-<!ENTITY % mathml-qname.module "INCLUDE" >
-<![%mathml-qname.module;[
-<!ENTITY % mathml-qname.mod
-     PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
-            "mathml2-qname-1.mod" >
-%mathml-qname.mod;]]>
-
-<!-- if %NS.prefixed; is INCLUDE, include all NS attributes, 
-     otherwise just those associated with MathML
--->
-<![%NS.prefixed;[
-<!ENTITY % MATHML.NamespaceDecl.attrib 
-     "%NamespaceDecl.attrib;"
->
-]]>
-<!ENTITY % MATHML.NamespaceDecl.attrib 
-     "%MATHML.xmlns.attrib;"
->
-
-<!ENTITY % XLINK.prefix         "xlink" >
-
-<!-- Attributes shared by all elements  .......................... -->
-
-<!ENTITY % MATHML.Common.attrib
-     "%MATHML.NamespaceDecl.attrib;
-      %XLINK.prefix;:href   CDATA           #IMPLIED
-      %XLINK.prefix;:type   CDATA           #IMPLIED
-      class        CDATA                    #IMPLIED
-      style        CDATA                    #IMPLIED
-      id           ID                       #IMPLIED
-      xref         IDREF                    #IMPLIED
-      other        CDATA                    #IMPLIED"
->
-
-<!-- Presentation element set  ................................... -->
-
-<!-- Attribute definitions -->
-
-<!ENTITY % att-fontsize
-     "fontsize     CDATA                    #IMPLIED" >
-<!ENTITY % att-fontweight
-     "fontweight   ( normal | bold )        #IMPLIED" >
-<!ENTITY % att-fontstyle
-     "fontstyle    ( normal | italic )      #IMPLIED" >
-<!ENTITY % att-fontfamily
-     "fontfamily   CDATA                    #IMPLIED" >
-<!ENTITY % att-color
-     "color        CDATA                    #IMPLIED" >
-
-<!-- MathML2 typographically-distinguished symbol attributes -->
-
-<!ENTITY % att-mathvariant
-     "mathvariant     CDATA                    #IMPLIED" >
-<!ENTITY % att-mathsize
-     "mathsize     CDATA                    #IMPLIED" >
-<!ENTITY % att-mathcolor
-     "mathcolor     CDATA                    #IMPLIED" >
-<!ENTITY % att-mathbackground
-     "mathbackground     CDATA                    #IMPLIED" >
-
-<!ENTITY % att-fontinfo
-     "%att-fontsize;
-      %att-fontweight;
-      %att-fontstyle;
-      %att-fontfamily;
-      %att-color;
-      %att-mathvariant;
-      %att-mathsize;
-      %att-mathcolor;
-      %att-mathbackground;"
->
-
-<!ENTITY % att-form
-     "form         ( prefix | infix | postfix )  #IMPLIED" >
-<!ENTITY % att-fence
-     "fence        ( true | false )         #IMPLIED" >
-<!ENTITY % att-separator
-     "separator    ( true | false )         #IMPLIED" >
-<!ENTITY % att-lspace
-     "lspace       CDATA                    #IMPLIED" >
-<!ENTITY % att-rspace
-     "rspace       CDATA                    #IMPLIED" >
-<!ENTITY % att-stretchy
-     "stretchy     ( true | false )         #IMPLIED" >
-<!ENTITY % att-symmetric
-     "symmetric    ( true | false )         #IMPLIED" >
-<!ENTITY % att-maxsize
-     "maxsize      CDATA                    #IMPLIED" >
-<!ENTITY % att-minsize
-     "minsize      CDATA                    #IMPLIED" >
-<!ENTITY % att-largeop
-     "largeop      ( true | false)          #IMPLIED" >
-<!ENTITY % att-movablelimits
-     "movablelimits ( true | false )        #IMPLIED" >
-<!ENTITY % att-accent
-     "accent       ( true | false )         #IMPLIED" >
-
-<!ENTITY % att-opinfo
-     "%att-form;
-      %att-fence;
-      %att-separator;
-      %att-lspace;
-      %att-rspace;
-      %att-stretchy;
-      %att-symmetric;
-      %att-maxsize;
-      %att-minsize;
-      %att-largeop;
-      %att-movablelimits;
-      %att-accent;"
->
-<!ENTITY % att-width
-     "width        CDATA                    #IMPLIED" >
-<!ENTITY % att-height
-     "height       CDATA                    #IMPLIED" >
-<!ENTITY % att-depth
-     "depth        CDATA                    #IMPLIED" >
-<!ENTITY % att-linebreak
-     "linebreak    CDATA                    #IMPLIED" >
-<!ENTITY % att-sizeinfo
-     "%att-width;
-      %att-height;
-      %att-depth;"
->
-<!ENTITY % att-lquote               
-     "lquote       CDATA                    #IMPLIED" >
-<!ENTITY % att-rquote               
-     "rquote       CDATA                    #IMPLIED" >
-<!ENTITY % att-linethickness        
-     "linethickness CDATA                   #IMPLIED" >
-<!ENTITY % att-scriptlevel          
-     "scriptlevel  CDATA                    #IMPLIED" >
-<!ENTITY % att-displaystyle         
-     "displaystyle ( true | false )         #IMPLIED" >
-<!ENTITY % att-scriptsizemultiplier 
-     "scriptsizemultiplier CDATA            #IMPLIED" >
-<!ENTITY % att-scriptminsize        
-     "scriptminsize CDATA                   #IMPLIED" >
-<!ENTITY % att-background           
-     "background   CDATA                    #IMPLIED" >
-<!ENTITY % att-veryverythinmathspace           
-     "veryverythinmathspace   CDATA         #IMPLIED" >
-<!ENTITY % att-verythinmathspace           
-     "verythinmathspace   CDATA             #IMPLIED" >
-<!ENTITY % att-thinmathspace           
-     "thinmathspace   CDATA                 #IMPLIED" >
-<!ENTITY % att-mediummathspace           
-     "mediummathspace   CDATA               #IMPLIED" >
-<!ENTITY % att-thickmathspace           
-     "thickmathspace   CDATA                #IMPLIED" >
-<!ENTITY % att-verythickmathspace           
-     "verythickmathspace   CDATA            #IMPLIED" >
-<!ENTITY % att-veryverythickmathspace           
-     "veryverythickmathspace   CDATA        #IMPLIED" >
-<!ENTITY % att-open                 
-     "open         CDATA                    #IMPLIED" >
-<!ENTITY % att-close                
-     "close        CDATA                    #IMPLIED" >
-<!ENTITY % att-separators          
-     "separators   CDATA                    #IMPLIED" >
-<!ENTITY % att-subscriptshift       
-     "subscriptshift CDATA                  #IMPLIED" >
-<!ENTITY % att-superscriptshift     
-     "superscriptshift CDATA                #IMPLIED" >
-<!ENTITY % att-accentunder          
-     "accentunder  ( true | false )         #IMPLIED" >
-<!ENTITY % att-align       
-     "align        CDATA                    #IMPLIED" >
-<!ENTITY % att-numalign       
-     "numalign        CDATA                    #IMPLIED" >
-<!ENTITY % att-denomalign       
-     "denomalign        CDATA                    #IMPLIED" >
-<!ENTITY % att-rowalign      
-     "rowalign     CDATA                    #IMPLIED" >
-<!ENTITY % att-columnalign     
-     "columnalign  CDATA                    #IMPLIED" >
-<!ENTITY % att-columnwidth   
-     "columnwidth  CDATA                    #IMPLIED" >
-<!ENTITY % att-groupalign      
-     "groupalign   CDATA                    #IMPLIED" >
-<!ENTITY % att-alignmentscope 
-     "alignmentscope CDATA                  #IMPLIED" >
-<!ENTITY % att-rowspacing           
-     "rowspacing   CDATA                    #IMPLIED" >
-<!ENTITY % att-columnspacing      
-     "columnspacing CDATA                   #IMPLIED" >
-<!ENTITY % att-rowlines            
-     "rowlines     CDATA                    #IMPLIED" >
-<!ENTITY % att-columnlines        
-     "columnlines  CDATA                    #IMPLIED" >
-<!ENTITY % att-frame            
-     "frame       ( none | solid | dashed ) #IMPLIED" >
-<!ENTITY % att-side           
-     "side       ( left | right | leftoverlap | rightoverlap ) #IMPLIED" >
-<!ENTITY % att-framespacing         
-     "framespacing CDATA                    #IMPLIED" >
-<!ENTITY % att-equalrows        
-     "equalrows    CDATA                    #IMPLIED" >
-<!ENTITY % att-equalcolumns         
-     "equalcolumns CDATA                    #IMPLIED" >
-
-<!ENTITY % att-tableinfo            
-     "%att-align;
-      %att-rowalign;
-      %att-columnalign;
-      %att-columnwidth;
-      %att-groupalign;
-      %att-alignmentscope;
-      %att-side;
-      %att-rowspacing;
-      %att-columnspacing;
-      %att-rowlines;
-      %att-columnlines;
-      %att-width;
-      %att-frame;
-      %att-framespacing;
-      %att-equalrows;
-      %att-equalcolumns;
-      %att-displaystyle;" 
->
-
-<!ENTITY % att-rowspan              
-     "rowspan      CDATA                    #IMPLIED" >
-<!ENTITY % att-columnspan           
-     "columnspan   CDATA                    #IMPLIED" >
-<!ENTITY % att-edge        
-     "edge         ( left | right )         #IMPLIED" >
-<!ENTITY % att-actiontype          
-     "actiontype   CDATA                    #IMPLIED" >
-<!ENTITY % att-selection       
-     "selection    CDATA                    #IMPLIED" >
-
-<!ENTITY % att-name                 
-     "name         CDATA                    #IMPLIED" >
-<!ENTITY % att-alt              
-     "alt          CDATA                    #IMPLIED" >
-<!ENTITY % att-index           
-     "index        CDATA                    #IMPLIED" >
-
-<!ENTITY % att-bevelled       
-     "bevelled      CDATA                    #IMPLIED" >
-
-<!-- Presentation schemata with content -->
-
-<!ENTITY % ptoken                   
-     "%mi.qname; | %mn.qname; | %mo.qname;
-      | %mtext.qname; | %ms.qname;" >
-
-<!ATTLIST %mi.qname;
-      %MATHML.Common.attrib;
-      %att-fontinfo;
->
-
-<!ATTLIST %mn.qname;      
-      %MATHML.Common.attrib; 
-      %att-fontinfo;
->
-
-<!ATTLIST %mo.qname;     
-      %MATHML.Common.attrib; 
-      %att-fontinfo;
-      %att-opinfo;
->
-
-<!ATTLIST %mtext.qname;  
-      %MATHML.Common.attrib;
-      %att-fontinfo;
->
-
-<!ATTLIST %ms.qname;     
-      %MATHML.Common.attrib;
-      %att-fontinfo;
-      %att-lquote;
-      %att-rquote;
->
-
-<!-- Empty presentation schemata -->
-
-<!ENTITY % petoken                  
-     "%mspace.qname;" >
-<!ELEMENT %mspace.qname;  EMPTY >
-
-<!ATTLIST %mspace.qname; 
-      %att-sizeinfo;
-      %att-linebreak;
-      %MATHML.Common.attrib;
->
-
-<!-- Presentation: general layout schemata -->
-
-<!ENTITY % pgenschema               
-     "%mrow.qname; | %mfrac.qname; | %msqrt.qname; | %mroot.qname; 
-      | %menclose.qname; | %mstyle.qname; | %merror.qname; 
-      | %mpadded.qname; | %mphantom.qname; | %mfenced.qname;" >
-
-<!ATTLIST %mrow.qname;        
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %mfrac.qname;     
-      %MATHML.Common.attrib;
-      %att-bevelled;
-      %att-numalign;
-      %att-denomalign;
-      %att-linethickness;
->
-
-<!ATTLIST %msqrt.qname;     
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %menclose.qname;  
-      %MATHML.Common.attrib;
-      notation CDATA 'longdiv' >
-
-<!ATTLIST %mroot.qname;    
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %mstyle.qname;  
-      %MATHML.Common.attrib;
-      %att-fontinfo;
-      %att-opinfo;
-      %att-lquote;
-      %att-rquote;
-      %att-linethickness;
-      %att-scriptlevel;
-      %att-scriptsizemultiplier;
-      %att-scriptminsize;
-      %att-background;
-      %att-veryverythinmathspace;
-      %att-verythinmathspace;
-      %att-thinmathspace;
-      %att-mediummathspace;
-      %att-thickmathspace;
-      %att-verythickmathspace;
-      %att-veryverythickmathspace;
-      %att-open;
-      %att-close;
-      %att-separators;
-      %att-subscriptshift;
-      %att-superscriptshift;
-      %att-accentunder;
-      %att-tableinfo;
-      %att-rowspan;
-      %att-columnspan;
-      %att-edge;
-      %att-actiontype;
-      %att-selection;
->
-
-<!ATTLIST %merror.qname;   
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %mpadded.qname;     
-      %MATHML.Common.attrib;
-      %att-sizeinfo;
-      %att-lspace;
->
-
-<!ATTLIST %mphantom.qname;      
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %mfenced.qname;     
-      %MATHML.Common.attrib;
-      %att-open;
-      %att-close;
-      %att-separators;
->
-
-<!-- Presentation layout schemata: scripts and limits -->
-
-<!ENTITY % pscrschema               
-     "%msub.qname; | %msup.qname; | %msubsup.qname; | %munder.qname; 
-      | %mover.qname; | %munderover.qname; | %mmultiscripts.qname;" >
-
-<!ATTLIST %msub.qname;      
-      %MATHML.Common.attrib;
-      %att-subscriptshift;
->
-
-<!ATTLIST %msup.qname;         
-      %MATHML.Common.attrib;
-      %att-superscriptshift;
->
-
-<!ATTLIST %msubsup.qname;    
-      %MATHML.Common.attrib;
-      %att-subscriptshift;
-      %att-superscriptshift;
->
-
-<!ATTLIST %munder.qname;   
-      %MATHML.Common.attrib;
-      %att-accentunder;
->
-
-<!ATTLIST %mover.qname;   
-      %MATHML.Common.attrib;
-      %att-accent;
->
-
-<!ATTLIST %munderover.qname;   
-      %MATHML.Common.attrib;
-      %att-accent;
-      %att-accentunder;
->
-
-<!ATTLIST %mmultiscripts.qname;   
-      %MATHML.Common.attrib;
-      %att-subscriptshift;
-      %att-superscriptshift;
->
-
-<!-- Presentation layout schemata: empty elements for scripts -->
-
-<!ENTITY % pscreschema              
-     "%mprescripts.qname; | %none.qname;" >
-
-<!ELEMENT %mprescripts.qname;  EMPTY >
-<!ATTLIST %mprescripts.qname;   
-      %MATHML.xmlns.attrib; >
-
-<!ELEMENT %none.qname;  EMPTY >
-<!ATTLIST %none.qname;    
-      %MATHML.xmlns.attrib; >
-
-<!-- Presentation layout schemata: tables -->
-
-<!ENTITY % ptabschema               
-     "%mtable.qname; | %mtr.qname; | %mlabeledtr.qname; | %mtd.qname;" >
-
-<!ATTLIST %mtable.qname;
-      %MATHML.Common.attrib;
-      %att-tableinfo;
->
-
-<!ATTLIST %mtr.qname;    
-      %MATHML.Common.attrib;
-      %att-rowalign;
-      %att-columnalign;
-      %att-groupalign;
->
-
-<!ATTLIST %mlabeledtr.qname;  
-      %MATHML.Common.attrib;
-      %att-rowalign;
-      %att-columnalign;
-      %att-groupalign;
->
-
-<!ATTLIST %mtd.qname;   
-      %MATHML.Common.attrib;
-      %att-rowalign;
-      %att-columnalign;
-      %att-groupalign;
-      %att-rowspan;
-      %att-columnspan;
->
-
-<!ENTITY % plschema                 
-     "%pgenschema; | %pscrschema; | %ptabschema;" >
-
-<!-- Empty presentation layout schemata -->
-
-<!ENTITY % peschema                 
-     "%maligngroup.qname; | %malignmark.qname;" >
-
-<!ELEMENT %malignmark.qname;  EMPTY >
-
-<!ATTLIST %malignmark.qname;  
-      %att-edge; >
-
-<!ELEMENT %maligngroup.qname;  EMPTY >
-<!ATTLIST %maligngroup.qname;  
-      %MATHML.Common.attrib;
-      %att-groupalign;
->
-
-
-<!ELEMENT %mglyph.qname;  EMPTY >
-<!ATTLIST %mglyph.qname;    
-      %att-alt;
-      %att-fontfamily;
-      %att-index; >
-
-<!-- Presentation action schemata -->
-
-<!ENTITY % pactions                 
-     "%maction.qname;" >
-<!ATTLIST %maction.qname;    
-      %MATHML.Common.attrib;
-      %att-actiontype;
-      %att-selection;
->
-
-<!-- The following entity for substitution into
-     content constructs excludes elements that
-     are not valid as expressions.
--->
-
-<!ENTITY % PresInCont               
-     "%ptoken; | %petoken; |
-      %plschema; | %peschema; | %pactions;" >
-
-<!-- Presentation entity: all presentation constructs -->
-
-<!ENTITY % Presentation             
-     "%ptoken; | %petoken; | %pscreschema; |
-      %plschema; | %peschema; | %pactions;">
-
-<!-- Content element set  ........................................ -->
-
-<!-- Attribute definitions -->
-
-<!ENTITY % att-base                 
-     "base         CDATA                    '10'" >
-<!ENTITY % att-closure              
-     "closure      CDATA                    'closed'" >
-<!ENTITY % att-definition           
-     "definitionURL CDATA                   ''" >
-<!ENTITY % att-encoding             
-     "encoding     CDATA                    ''" >
-<!ENTITY % att-nargs             
-     "nargs        CDATA                    '1'" >
-<!ENTITY % att-occurrence           
-     "occurrence   CDATA                    'function-model'" >
-<!ENTITY % att-order   
-     "order        CDATA                    'numeric'" >
-<!ENTITY % att-scope                
-     "scope        CDATA                    'local'" >
-<!ENTITY % att-type                 
-     "type         CDATA                    #IMPLIED" >
-
-<!-- Content elements: leaf nodes -->
-
-<!ENTITY % ctoken               
-     "%csymbol.qname; | %ci.qname; | %cn.qname;" >
-
-<!ATTLIST %ci.qname;     
-      %MATHML.Common.attrib;
-      %att-type;
-      %att-definition;
-      %att-encoding;
->
-
-<!ATTLIST %csymbol.qname;   
-      %MATHML.Common.attrib;
-      %att-encoding;
-      %att-type;
-      %att-definition;
->
-
-<!ATTLIST %cn.qname;    
-      %MATHML.Common.attrib;
-      %att-type;
-      %att-base;
-      %att-definition;
-      %att-encoding;
->
-
-<!-- Content elements: specials -->
-
-<!ENTITY % cspecial                 
-     "%apply.qname; | %reln.qname; |
-      %lambda.qname;" >
-
-<!ATTLIST %apply.qname;   
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %reln.qname;   
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %lambda.qname;      
-      %MATHML.Common.attrib;
->
-
-<!-- Content elements: others -->
-
-<!ENTITY % cother                   
-     "%condition.qname; | %declare.qname; | %sep.qname;" >
-
-<!ATTLIST %condition.qname;     
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %declare.qname;    
-      %MATHML.Common.attrib;
-      %att-type;
-      %att-scope;
-      %att-nargs;
-      %att-occurrence;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %sep.qname;  EMPTY >
-<!ATTLIST %sep.qname;         
-      %MATHML.xmlns.attrib; >
-
-<!-- Content elements: semantic mapping -->
-
-<!ENTITY % csemantics               
-     "%semantics.qname; | %annotation.qname; |
-      %annotation-xml.qname;" >
-
-<!ATTLIST %semantics.qname;  
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ATTLIST %annotation.qname;  
-      %MATHML.Common.attrib;
-      %att-encoding;
->
-
-<!ATTLIST %annotation-xml.qname; 
-      %MATHML.Common.attrib;
-      %att-encoding;
->
-
-<!-- Content elements: constructors -->
-
-<!ENTITY % cconstructor             
-     "%interval.qname; | %list.qname; | %matrix.qname; 
-      | %matrixrow.qname; | %set.qname; | %vector.qname;
-      | %piecewise.qname; " >
-
-<!ATTLIST %interval.qname;   
-      %MATHML.Common.attrib;
-      %att-closure;
->
-
-<!ATTLIST %set.qname;        
-      %MATHML.Common.attrib;
-      %att-type;
->
-
-<!ATTLIST %list.qname;          
-      %MATHML.Common.attrib;
-      %att-order;
->
-
-<!ATTLIST %vector.qname;    
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %matrix.qname;    
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %matrixrow.qname;     
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %piecewise.qname;   
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %piece.qname;   
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %otherwise.qname;   
-      %MATHML.Common.attrib;
->
-
-
-<!-- Content elements: symbols -->
-
-<!ENTITY % c0ary              
-    "%integers.qname; |
-     %reals.qname; |
-     %rationals.qname; |
-     %naturalnumbers.qname; |
-     %complexes.qname; |
-     %primes.qname; |
-     %exponentiale.qname; |
-     %imaginaryi.qname; |
-     %notanumber.qname; |
-     %true.qname; |
-     %false.qname; |
-     %emptyset.qname; |
-     %pi.qname; |
-     %eulergamma.qname; |
-     %infinity.qname;" >
-
-<!ELEMENT %integers.qname;  EMPTY >
-<!ATTLIST %integers.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %reals.qname;  EMPTY >
-<!ATTLIST %reals.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %rationals.qname;  EMPTY >
-<!ATTLIST %rationals.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %naturalnumbers.qname;  EMPTY >
-<!ATTLIST %naturalnumbers.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %complexes.qname;  EMPTY >
-<!ATTLIST %complexes.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %primes.qname;  EMPTY >
-<!ATTLIST %primes.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %exponentiale.qname;  EMPTY >
-<!ATTLIST %exponentiale.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %imaginaryi.qname;  EMPTY >
-<!ATTLIST %imaginaryi.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %notanumber.qname;  EMPTY >
-<!ATTLIST %notanumber.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %true.qname;  EMPTY >
-<!ATTLIST %true.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %false.qname;  EMPTY >
-<!ATTLIST %false.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %emptyset.qname;  EMPTY >
-<!ATTLIST %emptyset.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %pi.qname;  EMPTY >
-<!ATTLIST %pi.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %eulergamma.qname;  EMPTY >
-<!ATTLIST %eulergamma.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %infinity.qname;  EMPTY >
-<!ATTLIST %infinity.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!-- Content elements: operators -->
-
-<!ENTITY % cfuncop1ary              
-     "%inverse.qname; | %ident.qname;|
-      %domain.qname; |  %codomain.qname; | 
-      %image.qname;  " >
-
-<!ELEMENT %inverse.qname;  EMPTY >
-<!ATTLIST %inverse.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %domain.qname;  EMPTY >
-<!ATTLIST %domain.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %codomain.qname;  EMPTY >
-<!ATTLIST %codomain.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %image.qname;  EMPTY >
-<!ATTLIST %image.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-
-
-<!ENTITY % cfuncopnary              
-     "%fn.qname; | %compose.qname;" >
-
-<!ATTLIST %fn.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %ident.qname;  EMPTY >
-<!ATTLIST %ident.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %compose.qname;  EMPTY >
-<!ATTLIST %compose.qname;  
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % carithop1ary             
-     "%abs.qname; | %conjugate.qname; | %exp.qname; | %factorial.qname; |
-      %arg.qname; | %real.qname; | %imaginary.qname; |
-      %floor.qname; | %ceiling.qname;" >
-
-<!ELEMENT %exp.qname;  EMPTY >
-<!ATTLIST %exp.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %abs.qname;  EMPTY >
-<!ATTLIST %abs.qname;        
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arg.qname;  EMPTY >
-<!ATTLIST %arg.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %real.qname;  EMPTY >
-<!ATTLIST %real.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %imaginary.qname;  EMPTY >
-<!ATTLIST %imaginary.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %conjugate.qname;  EMPTY >
-<!ATTLIST %conjugate.qname;  
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %factorial.qname;  EMPTY >
-<!ATTLIST %factorial.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-
-<!ELEMENT %floor.qname;  EMPTY >
-<!ATTLIST %floor.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %ceiling.qname;  EMPTY >
-<!ATTLIST %ceiling.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-<!ENTITY % carithop1or2ary          
-     "%minus.qname;" >
-
-<!ELEMENT %minus.qname;  EMPTY >
-<!ATTLIST %minus.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % carithop2ary             
-     "%quotient.qname; | %divide.qname; | %power.qname; | %rem.qname;" >
-
-<!ELEMENT %quotient.qname;  EMPTY >
-<!ATTLIST %quotient.qname;       
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %divide.qname;  EMPTY >
-<!ATTLIST %divide.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %power.qname;  EMPTY >
-<!ATTLIST %power.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %rem.qname;  EMPTY >
-<!ATTLIST %rem.qname;       
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % carithopnary             
-     "%plus.qname; | %times.qname; | %max.qname; 
-      | %min.qname; | %gcd.qname; | %lcm.qname;" >
-
-<!ELEMENT %plus.qname;  EMPTY >
-<!ATTLIST %plus.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %max.qname;  EMPTY >
-<!ATTLIST %max.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %min.qname;  EMPTY >
-<!ATTLIST %min.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %times.qname;  EMPTY >
-<!ATTLIST %times.qname;      
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %gcd.qname;  EMPTY >
-<!ATTLIST %gcd.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %lcm.qname;  EMPTY >
-<!ATTLIST %lcm.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % carithoproot             
-     "%root.qname;" >
-
-<!ELEMENT %root.qname;  EMPTY >
-<!ATTLIST %root.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clogicopquant            
-     "%exists.qname; | %forall.qname;" >
-
-<!ELEMENT %exists.qname;  EMPTY >
-<!ATTLIST %exists.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %forall.qname;  EMPTY >
-<!ATTLIST %forall.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clogicopnary             
-     "%and.qname; | %or.qname; | %xor.qname;" >
-
-<!ELEMENT %and.qname;  EMPTY >
-<!ATTLIST %and.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %or.qname;  EMPTY >
-<!ATTLIST %or.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %xor.qname;  EMPTY >
-<!ATTLIST %xor.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clogicop1ary             
-     "%not.qname;" >
-
-<!ELEMENT %not.qname;  EMPTY >
-<!ATTLIST %not.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clogicop2ary             
-     "%implies.qname;" >
-
-<!ELEMENT %implies.qname;  EMPTY >
-<!ATTLIST %implies.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % ccalcop                  
-     "%log.qname; | %int.qname; | %diff.qname; | %partialdiff.qname; |
-      %divergence.qname; | %grad.qname; | %curl.qname; | %laplacian.qname;" >
-
-<!ELEMENT %divergence.qname;  EMPTY >
-<!ATTLIST %divergence.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %grad.qname;  EMPTY >
-<!ATTLIST %grad.qname;  
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %curl.qname;  EMPTY >
-<!ATTLIST %curl.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %laplacian.qname;  EMPTY >
-<!ATTLIST %laplacian.qname;     
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %log.qname;  EMPTY >
-<!ATTLIST %log.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %int.qname;  EMPTY >
-<!ATTLIST %int.qname;    
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %diff.qname;  EMPTY >
-<!ATTLIST %diff.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %partialdiff.qname;  EMPTY >
-<!ATTLIST %partialdiff.qname;  
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % ccalcop1ary              
-     "%ln.qname;" >
-
-<!ELEMENT %ln.qname;  EMPTY >
-<!ATTLIST %ln.qname;   
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % csetop1ary               
-     "%card.qname;" >
-
-<!ELEMENT %card.qname;  EMPTY >
-<!ATTLIST %card.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % csetop2ary               
-     "%setdiff.qname;" >
-
-<!ELEMENT %setdiff.qname;  EMPTY >
-<!ATTLIST %setdiff.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % csetopnary               
-     "%union.qname; | %intersect.qname; | %cartesianproduct.qname; " >
-
-<!ELEMENT %union.qname;  EMPTY >
-<!ATTLIST %union.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %intersect.qname;  EMPTY >
-<!ATTLIST %intersect.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %cartesianproduct.qname;  EMPTY >
-<!ATTLIST %cartesianproduct.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % cseqop                   
-     "%sum.qname; | %product.qname; | %limit.qname;" >
-
-<!ELEMENT %sum.qname;  EMPTY >
-<!ATTLIST %sum.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %product.qname;  EMPTY >
-<!ATTLIST %product.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %limit.qname;  EMPTY >
-<!ATTLIST %limit.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % ctrigop                  
-     "%sin.qname; | %cos.qname; | %tan.qname; 
-      | %sec.qname; | %csc.qname; | %cot.qname; 
-      | %sinh.qname; | %cosh.qname; | %tanh.qname; 
-      | %sech.qname; | %csch.qname; | %coth.qname; 
-      | %arcsin.qname; | %arccos.qname; | %arctan.qname;
-      | %arccosh.qname; | %arccot.qname; | %arccoth.qname;
-      | %arccsc.qname; | %arccsch.qname; | %arcsec.qname;
-      | %arcsech.qname; | %arcsinh.qname; | %arctanh.qname;
-      " >
-
-<!ELEMENT %sin.qname;  EMPTY >
-<!ATTLIST %sin.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %cos.qname;  EMPTY >
-<!ATTLIST %cos.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %tan.qname;  EMPTY >
-<!ATTLIST %tan.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %sec.qname;  EMPTY >
-<!ATTLIST %sec.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %csc.qname;  EMPTY >
-<!ATTLIST %csc.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %cot.qname;  EMPTY >
-<!ATTLIST %cot.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %sinh.qname;  EMPTY >
-<!ATTLIST %sinh.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %cosh.qname;  EMPTY >
-<!ATTLIST %cosh.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %tanh.qname;  EMPTY >
-<!ATTLIST %tanh.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %sech.qname;  EMPTY >
-<!ATTLIST %sech.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %csch.qname;  EMPTY >
-<!ATTLIST %csch.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %coth.qname;  EMPTY >
-<!ATTLIST %coth.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arcsin.qname;  EMPTY >
-<!ATTLIST %arcsin.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arccos.qname;  EMPTY >
-<!ATTLIST %arccos.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arctan.qname;  EMPTY >
-<!ATTLIST %arctan.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arccosh.qname;  EMPTY >
-<!ATTLIST %arccosh.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-
-<!ELEMENT %arccot.qname;  EMPTY >
-<!ATTLIST %arccot.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arccoth.qname;  EMPTY >
-<!ATTLIST %arccoth.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-
-<!ELEMENT %arccsc.qname;  EMPTY >
-<!ATTLIST %arccsc.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arccsch.qname;  EMPTY >
-<!ATTLIST %arccsch.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arcsec.qname;  EMPTY >
-<!ATTLIST %arcsec.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arcsech.qname;  EMPTY >
-<!ATTLIST %arcsech.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arcsinh.qname;  EMPTY >
-<!ATTLIST %arcsinh.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %arctanh.qname;  EMPTY >
-<!ATTLIST %arctanh.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-
-
-<!ENTITY % cstatopnary              
-     "%mean.qname; | %sdev.qname; |
-      %variance.qname; | %median.qname; |
-      %mode.qname;" >
-
-<!ELEMENT %mean.qname;  EMPTY >
-<!ATTLIST %mean.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %sdev.qname;  EMPTY >
-<!ATTLIST %sdev.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %variance.qname;  EMPTY >
-<!ATTLIST %variance.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %median.qname;  EMPTY >
-<!ATTLIST %median.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %mode.qname;  EMPTY >
-<!ATTLIST %mode.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % cstatopmoment            
-     "%moment.qname;" >
-
-<!ELEMENT %moment.qname;  EMPTY >
-<!ATTLIST %moment.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clalgop1ary              
-     "%determinant.qname; |
-      %transpose.qname;" >
-
-<!ELEMENT %determinant.qname;  EMPTY >
-<!ATTLIST %determinant.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %transpose.qname;  EMPTY >
-<!ATTLIST %transpose.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clalgop2ary              
-     "%vectorproduct.qname; 
-      | %scalarproduct.qname; 
-      | %outerproduct.qname;" >
-
-<!ELEMENT %vectorproduct.qname;  EMPTY >
-<!ATTLIST %vectorproduct.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %scalarproduct.qname;  EMPTY >
-<!ATTLIST %scalarproduct.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %outerproduct.qname;  EMPTY >
-<!ATTLIST %outerproduct.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % clalgopnary              
-     "%selector.qname;" >
-
-<!ELEMENT %selector.qname;  EMPTY >
-<!ATTLIST %selector.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!-- Content elements: relations -->
-
-<!ENTITY % cgenrel2ary             
-     "%neq.qname; | %factorof.qname;" >
-
-<!ELEMENT %neq.qname;  EMPTY >
-<!ATTLIST %neq.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %factorof.qname;  EMPTY >
-<!ATTLIST %factorof.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % cgenrelnary              
-     "%eq.qname; | %leq.qname; | %lt.qname; | %geq.qname; 
-      | %gt.qname;| %equivalent.qname; | %approx.qname;" >
-
-<!ELEMENT %eq.qname;  EMPTY >
-<!ATTLIST %eq.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %equivalent.qname;  EMPTY >
-<!ATTLIST %equivalent.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %approx.qname;  EMPTY >
-<!ATTLIST %approx.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %gt.qname;  EMPTY >
-<!ATTLIST %gt.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %lt.qname;  EMPTY >
-<!ATTLIST %lt.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %geq.qname;  EMPTY >
-<!ATTLIST %geq.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %leq.qname;  EMPTY >
-<!ATTLIST %leq.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % csetrel2ary              
-     "%in.qname; | %notin.qname; | %notsubset.qname; | %notprsubset.qname;" >
-
-<!ELEMENT %in.qname;  EMPTY >
-<!ATTLIST %in.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %notin.qname;  EMPTY >
-<!ATTLIST %notin.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %notsubset.qname;  EMPTY >
-<!ATTLIST %notsubset.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %notprsubset.qname;  EMPTY >
-<!ATTLIST %notprsubset.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % csetrelnary       
-     "%subset.qname; | %prsubset.qname;" >
-
-<!ELEMENT %subset.qname;  EMPTY >
-<!ATTLIST %subset.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ELEMENT %prsubset.qname;  EMPTY >
-<!ATTLIST %prsubset.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
->
-
-<!ENTITY % cseqrel2ary              
-     "%tendsto.qname;" >
-
-<!ELEMENT %tendsto.qname;  EMPTY >
-<!ATTLIST %tendsto.qname;
-      %MATHML.Common.attrib;
-      %att-definition;
-      %att-encoding;
-      %att-type;
->
-
-<!-- Content elements: quantifiers -->
-
-<!ENTITY % cquantifier            
-     "%lowlimit.qname; | %uplimit.qname; | %bvar.qname; 
-      | %degree.qname; | %logbase.qname;
-      | %momentabout.qname; | %domainofapplication.qname; " >
-
-<!ATTLIST %lowlimit.qname;
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %uplimit.qname;
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %bvar.qname;
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %degree.qname;
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %logbase.qname;
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %momentabout.qname;
-      %MATHML.Common.attrib;
->
-
-<!ATTLIST %domainofapplication.qname;
-      %MATHML.Common.attrib;
->
-
-<!-- Operator groups -->
-
-<!ENTITY % cop1ary                  
-     "%cfuncop1ary; | %carithop1ary; | %clogicop1ary; |
-      %ccalcop1ary; | %ctrigop; | %clalgop1ary; |
-      %csetop1ary;" >
-
-<!ENTITY % cop2ary                  
-     "%carithop2ary; | %clogicop2ary;| %clalgop2ary; | %csetop2ary;" >
-
-<!ENTITY % copnary                  
-     "%cfuncopnary; | %carithopnary; | %clogicopnary; |
-      %csetopnary; | %cstatopnary; | %clalgopnary;" >
-
-<!ENTITY % copmisc                  
-     "%carithoproot; | %carithop1or2ary; | %ccalcop; |
-      %cseqop; | %cstatopmoment; | %clogicopquant;" >
-
-<!-- Relation groups -->
-
-<!ENTITY % crel2ary                 
-     "%cgenrel2ary; | %csetrel2ary; | %cseqrel2ary;" >
-
-<!ENTITY % crelnary                 
-     "%cgenrelnary; | %csetrelnary;" >
-
-<!-- Content constructs: all -->
-
-<!ENTITY % Content                  
-     "%ctoken; | %cspecial; | %cother; | %csemantics; | %c0ary;
-      | %cconstructor; | %cquantifier; | %cop1ary; | %cop2ary; 
-      | %copnary; |%copmisc; | %crel2ary; | %crelnary;" >
-
-<!-- Content constructs for substitution in presentation structures -->
-
-<!ENTITY % ContInPres               
-     "%ci.qname; |%csymbol.qname;| %cn.qname; | %c0ary; |
-      %apply.qname; | %fn.qname; |
-      %lambda.qname; | %reln.qname; |
-      %cconstructor; |
-      %semantics.qname; |%declare.qname;" >
-
-<!-- ............................................................. -->
-<!-- Recursive definition for content of expressions. Include
-     presentation constructs at lowest level so presentation
-     layout schemata hold presentation or content elements.
-     Include content constructs at lowest level so content
-     elements hold PCDATA or presentation elements at leaf
-     level (for permitted substitutable elements in context)
--->
-
-<!ENTITY % ContentExpression        
-     "(%Content; | %PresInCont;)*" >
-<!ENTITY % PresExpression      
-     "(%Presentation; | %ContInPres;)*" >
-<!ENTITY % MathExpression           
-     "(%PresInCont; | %ContInPres;)*" >
-
-<!-- PCDATA or MathML character elements -->
-<!ENTITY % MathMLCharacters         
-     "#PCDATA | %mglyph.qname; " >
-
-<!-- Content elements: tokens                       -->
-<!-- (may contain embedded presentation constructs) -->
-
-<!ELEMENT %ci.qname;                 (%MathMLCharacters; | %PresInCont;)* >
-<!ELEMENT %csymbol.qname;            (%MathMLCharacters; | %PresInCont;)* >
-<!ELEMENT %cn.qname;                 (%MathMLCharacters; | %sep.qname; | %PresInCont;)* >
-
-<!-- Content elements: special -->
-
-<!ELEMENT %apply.qname;              (%ContentExpression;) >
-<!ELEMENT %reln.qname;               (%ContentExpression;) >
-<!ELEMENT %lambda.qname;             (%ContentExpression;) >
-
-<!-- Content elements: other -->
-
-<!ELEMENT %condition.qname;          (%ContentExpression;) >
-<!ELEMENT %declare.qname;            (%ContentExpression;) >
-
-<!-- Content elements: semantics -->
-
-<!ELEMENT %semantics.qname;          (%ContentExpression;) >
-<!ENTITY % Annotation.content  "( #PCDATA )" >
-<!ELEMENT %annotation.qname;         %Annotation.content; >
-
-<!ENTITY % Annotation-xml.content "ANY" >
-<!ELEMENT %annotation-xml.qname;     %Annotation-xml.content; >
-
-<!-- Content elements: constructors -->
-
-<!ELEMENT %interval.qname;           (%ContentExpression;) >
-<!ELEMENT %set.qname;                (%ContentExpression;) >
-<!ELEMENT %list.qname;               (%ContentExpression;) >
-<!ELEMENT %vector.qname;             (%ContentExpression;) >
-<!ELEMENT %matrix.qname;             (%ContentExpression;) >
-<!ELEMENT %matrixrow.qname;          (%ContentExpression;) >
-
-<!ELEMENT %piecewise.qname;          ((%piece.qname;)*, (%otherwise.qname;)? ) >
-<!ELEMENT %piece.qname;              (%ContentExpression;) >
-<!ELEMENT %otherwise.qname;          (%ContentExpression;) >
-
-<!-- Content elements: operator (user-defined) -->
-
-<!ELEMENT %fn.qname;                 (%ContentExpression;) >
-
-<!-- Content elements: quantifiers -->
-
-<!ELEMENT %lowlimit.qname;           (%ContentExpression;) >
-<!ELEMENT %uplimit.qname;            (%ContentExpression;) >
-<!ELEMENT %bvar.qname;               (%ContentExpression;) >
-<!ELEMENT %degree.qname;             (%ContentExpression;) >
-<!ELEMENT %logbase.qname;            (%ContentExpression;) >
-<!ELEMENT %momentabout.qname;        (%ContentExpression;) >
-<!ELEMENT %domainofapplication.qname; (%ContentExpression;) >
-
-<!-- ............................................................. -->
-<!-- Presentation layout schemata contain tokens,
-     layout and content schemata.
--->
-
-<!ELEMENT %mstyle.qname;             (%PresExpression;) >
-<!ELEMENT %merror.qname;             (%PresExpression;) >
-<!ELEMENT %mphantom.qname;           (%PresExpression;) >
-<!ELEMENT %mrow.qname;               (%PresExpression;) >
-<!ELEMENT %mfrac.qname;              (%PresExpression;) >
-<!ELEMENT %msqrt.qname;              (%PresExpression;) >
-<!ELEMENT %menclose.qname;           (%PresExpression;) >
-<!ELEMENT %mroot.qname;              (%PresExpression;) >
-<!ELEMENT %msub.qname;               (%PresExpression;) >
-<!ELEMENT %msup.qname;               (%PresExpression;) >
-<!ELEMENT %msubsup.qname;            (%PresExpression;) >
-<!ELEMENT %mmultiscripts.qname;      (%PresExpression;) >
-<!ELEMENT %munder.qname;             (%PresExpression;) >
-<!ELEMENT %mover.qname;              (%PresExpression;) >
-<!ELEMENT %munderover.qname;         (%PresExpression;) >
-<!ELEMENT %mtable.qname;             (%PresExpression;) >
-<!ELEMENT %mtr.qname;                (%PresExpression;) >
-<!ELEMENT %mlabeledtr.qname;         (%PresExpression;) >
-<!ELEMENT %mtd.qname;                (%PresExpression;) >
-<!ELEMENT %maction.qname;            (%PresExpression;) >
-<!ELEMENT %mfenced.qname;            (%PresExpression;) >
-<!ELEMENT %mpadded.qname;            (%PresExpression;) >
-
-<!-- Presentation elements contain PCDATA or malignmark constructs. -->
-
-<!ELEMENT %mi.qname;                 (%MathMLCharacters; |
-      %malignmark.qname;)* >
-<!ELEMENT %mn.qname;                 (%MathMLCharacters; |
-      %malignmark.qname;)* >
-<!ELEMENT %mo.qname;                 (%MathMLCharacters; |
-      %malignmark.qname;)* >
-<!ELEMENT %mtext.qname;              (%MathMLCharacters; |
-      %malignmark.qname;)* >
-<!ELEMENT %ms.qname;                 (%MathMLCharacters; |
-      %malignmark.qname;)* >
-
-<!-- Browser interface definition  ............................... -->
-
-<!-- Attributes for top-level element "math" -->
-
-<!ENTITY % att-macros               
-     "macros       CDATA                    #IMPLIED" >
-<!ENTITY % att-mode                 
-     "mode         CDATA                    #IMPLIED" >
-<!ENTITY % att-display                
-     "display      CDATA                    #IMPLIED" >
-
-<!ENTITY % att-topinfo          
-     "%MATHML.Common.attrib;
-      %att-macros;
-      %att-mode;
-      %att-display;" >
-
-<!-- Attributes for browser interface element -->
-
-<!ENTITY % att-baseline             
-     "baseline     CDATA                    #IMPLIED" >
-<!ENTITY % att-overflow            
-     "overflow  ( scroll | elide | truncate | scale ) 'scroll'" >
-<!ENTITY % att-altimg               
-     "altimg       CDATA                    #IMPLIED" >
-<!ENTITY % att-alttext           
-     "alttext      CDATA                    #IMPLIED" >
-
-<!ENTITY % att-browif           
-     "%att-type;
-      %att-name;
-      %att-height;
-      %att-width;
-      %att-baseline;
-      %att-overflow;
-      %att-altimg;
-      %att-alttext;" >
-
-<!-- ............................................................. -->
-<!-- The top-level element "math" contains MathML encoded
-     mathematics. The "math" element has the browser info
-     attributes iff it is also the browser interface element.
--->
-
-<!ELEMENT %math.qname;               (%MathExpression;) >
-
-<!ATTLIST %math.qname;
-      %att-topinfo;
-      %att-browif; >
-
-<!-- MathML Character Entities .............................................. -->
-<!ENTITY % mathml-charent.module "INCLUDE" >
-<![%mathml-charent.module;[
-<!-- Entity sets from ISO Technical Report 9573-13 ..... -->
-
-<!ENTITY % ent-isoamsa
-      PUBLIC "-//W3C//ENTITIES Added Math Symbols: Arrow Relations for MathML 2.0//EN"
-             "iso9573-13/isoamsa.ent" >
-
-<!--
-     File isoamsa.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY angzarr          "&#x0237C;" ><!--angle with down zig-zag arrow -->
-<!ENTITY cirmid           "&#x02AEF;" ><!--circle, mid below -->
-<!ENTITY cudarrl          "&#x02938;" ><!--left, curved, down arrow -->
-<!ENTITY cudarrr          "&#x02935;" ><!--right, curved, down arrow -->
-<!ENTITY cularr           "&#x021B6;" ><!--/curvearrowleft A: left curved arrow -->
-<!ENTITY cularrp          "&#x0293D;" ><!--curved left arrow with plus -->
-<!ENTITY curarr           "&#x021B7;" ><!--/curvearrowright A: rt curved arrow -->
-<!ENTITY curarrm          "&#x0293C;" ><!--curved right arrow with minus -->
-<!ENTITY Darr             "&#x021A1;" ><!--down two-headed arrow -->
-<!ENTITY dArr             "&#x021D3;" ><!--/Downarrow A: down dbl arrow -->
-<!ENTITY ddarr            "&#x021CA;" ><!--/downdownarrows A: two down arrows -->
-<!ENTITY DDotrahd         "&#x02911;" ><!--right arrow with dotted stem -->
-<!ENTITY dfisht           "&#x0297F;" ><!--down fish tail -->
-<!ENTITY dHar             "&#x02965;" ><!--down harpoon-left, down harpoon-right -->
-<!ENTITY dharl            "&#x021C3;" ><!--/downharpoonleft A: dn harpoon-left -->
-<!ENTITY dharr            "&#x021C2;" ><!--/downharpoonright A: down harpoon-rt -->
-<!ENTITY duarr            "&#x021F5;" ><!--down arrow, up arrow -->
-<!ENTITY duhar            "&#x0296F;" ><!--down harp, up harp -->
-<!ENTITY dzigrarr         "&#x027FF;" ><!--right long zig-zag arrow -->
-<!ENTITY erarr            "&#x02971;" ><!--equal, right arrow below -->
-<!ENTITY hArr             "&#x021D4;" ><!--/Leftrightarrow A: l&r dbl arrow -->
-<!ENTITY harr             "&#x02194;" ><!--/leftrightarrow A: l&r arrow -->
-<!ENTITY harrcir          "&#x02948;" ><!--left and right arrow with a circle -->
-<!ENTITY harrw            "&#x021AD;" ><!--/leftrightsquigarrow A: l&r arr-wavy -->
-<!ENTITY hoarr            "&#x021FF;" ><!--horizontal open arrow -->
-<!ENTITY imof             "&#x022B7;" ><!--image of -->
-<!ENTITY lAarr            "&#x021DA;" ><!--/Lleftarrow A: left triple arrow -->
-<!ENTITY Larr             "&#x0219E;" ><!--/twoheadleftarrow A: -->
-<!ENTITY larrbfs          "&#x0291F;" ><!--left arrow-bar, filled square -->
-<!ENTITY larrfs           "&#x0291D;" ><!--left arrow, filled square -->
-<!ENTITY larrhk           "&#x021A9;" ><!--/hookleftarrow A: left arrow-hooked -->
-<!ENTITY larrlp           "&#x021AB;" ><!--/looparrowleft A: left arrow-looped -->
-<!ENTITY larrpl           "&#x02939;" ><!--left arrow, plus -->
-<!ENTITY larrsim          "&#x02973;" ><!--left arrow, similar -->
-<!ENTITY larrtl           "&#x021A2;" ><!--/leftarrowtail A: left arrow-tailed -->
-<!ENTITY lAtail           "&#x0291B;" ><!--left double arrow-tail -->
-<!ENTITY latail           "&#x02919;" ><!--left arrow-tail -->
-<!ENTITY lBarr            "&#x0290E;" ><!--left doubly broken arrow -->
-<!ENTITY lbarr            "&#x0290C;" ><!--left broken arrow -->
-<!ENTITY ldca             "&#x02936;" ><!--left down curved arrow -->
-<!ENTITY ldrdhar          "&#x02967;" ><!--left harpoon-down over right harpoon-down -->
-<!ENTITY ldrushar         "&#x0294B;" ><!--left-down-right-up harpoon -->
-<!ENTITY ldsh             "&#x021B2;" ><!--left down angled arrow -->
-<!ENTITY lfisht           "&#x0297C;" ><!--left fish tail -->
-<!ENTITY lHar             "&#x02962;" ><!--left harpoon-up over left harpoon-down -->
-<!ENTITY lhard            "&#x021BD;" ><!--/leftharpoondown A: l harpoon-down -->
-<!ENTITY lharu            "&#x021BC;" ><!--/leftharpoonup A: left harpoon-up -->
-<!ENTITY lharul           "&#x0296A;" ><!--left harpoon-up over long dash -->
-<!ENTITY llarr            "&#x021C7;" ><!--/leftleftarrows A: two left arrows -->
-<!ENTITY llhard           "&#x0296B;" ><!--left harpoon-down below long dash -->
-<!ENTITY loarr            "&#x021FD;" ><!--left open arrow -->
-<!ENTITY lrarr            "&#x021C6;" ><!--/leftrightarrows A: l arr over r arr -->
-<!ENTITY lrhar            "&#x021CB;" ><!--/leftrightharpoons A: l harp over r -->
-<!ENTITY lrhard           "&#x0296D;" ><!--right harpoon-down below long dash -->
-<!ENTITY lsh              "&#x021B0;" ><!--/Lsh A: -->
-<!ENTITY lurdshar         "&#x0294A;" ><!--left-up-right-down harpoon -->
-<!ENTITY luruhar          "&#x02966;" ><!--left harpoon-up over right harpoon-up -->
-<!ENTITY Map              "&#x02905;" ><!--twoheaded mapsto -->
-<!ENTITY map              "&#x021A6;" ><!--/mapsto A: -->
-<!ENTITY midcir           "&#x02AF0;" ><!--mid, circle below  -->
-<!ENTITY mumap            "&#x022B8;" ><!--/multimap A: -->
-<!ENTITY nearhk           "&#x02924;" ><!--NE arrow-hooked -->
-<!ENTITY neArr            "&#x021D7;" ><!--NE pointing dbl arrow -->
-<!ENTITY nearr            "&#x02197;" ><!--/nearrow A: NE pointing arrow -->
-<!ENTITY nesear           "&#x02928;" ><!--/toea A: NE & SE arrows -->
-<!ENTITY nhArr            "&#x021CE;" ><!--/nLeftrightarrow A: not l&r dbl arr -->
-<!ENTITY nharr            "&#x021AE;" ><!--/nleftrightarrow A: not l&r arrow -->
-<!ENTITY nlArr            "&#x021CD;" ><!--/nLeftarrow A: not implied by -->
-<!ENTITY nlarr            "&#x0219A;" ><!--/nleftarrow A: not left arrow -->
-<!ENTITY nrArr            "&#x021CF;" ><!--/nRightarrow A: not implies -->
-<!ENTITY nrarr            "&#x0219B;" ><!--/nrightarrow A: not right arrow -->
-<!ENTITY nrarrc           "&#x02933;&#x00338;" ><!--not right arrow-curved -->
-<!ENTITY nrarrw           "&#x0219D;&#x00338;" ><!--not right arrow-wavy -->
-<!ENTITY nvHarr           "&#x021CE;" ><!--not, vert, left and right double arrow  -->
-<!ENTITY nvlArr           "&#x021CD;" ><!--not, vert, left double arrow -->
-<!ENTITY nvrArr           "&#x021CF;" ><!--not, vert, right double arrow -->
-<!ENTITY nwarhk           "&#x02923;" ><!--NW arrow-hooked -->
-<!ENTITY nwArr            "&#x021D6;" ><!--NW pointing dbl arrow -->
-<!ENTITY nwarr            "&#x02196;" ><!--/nwarrow A: NW pointing arrow -->
-<!ENTITY nwnear           "&#x02927;" ><!--NW & NE arrows -->
-<!ENTITY olarr            "&#x021BA;" ><!--/circlearrowleft A: l arr in circle -->
-<!ENTITY orarr            "&#x021BB;" ><!--/circlearrowright A: r arr in circle -->
-<!ENTITY origof           "&#x022B6;" ><!--original of -->
-<!ENTITY rAarr            "&#x021DB;" ><!--/Rrightarrow A: right triple arrow -->
-<!ENTITY Rarr             "&#x021A0;" ><!--/twoheadrightarrow A: -->
-<!ENTITY rarrap           "&#x02975;" ><!--approximate, right arrow above -->
-<!ENTITY rarrbfs          "&#x02920;" ><!--right arrow-bar, filled square -->
-<!ENTITY rarrc            "&#x02933;" ><!--right arrow-curved -->
-<!ENTITY rarrfs           "&#x0291E;" ><!--right arrow, filled square -->
-<!ENTITY rarrhk           "&#x021AA;" ><!--/hookrightarrow A: rt arrow-hooked -->
-<!ENTITY rarrlp           "&#x021AC;" ><!--/looparrowright A: rt arrow-looped -->
-<!ENTITY rarrpl           "&#x02945;" ><!--right arrow, plus -->
-<!ENTITY rarrsim          "&#x02974;" ><!--right arrow, similar -->
-<!ENTITY Rarrtl           "&#x02916;" ><!--right two-headed arrow with tail -->
-<!ENTITY rarrtl           "&#x021A3;" ><!--/rightarrowtail A: rt arrow-tailed -->
-<!ENTITY rarrw            "&#x0219D;" ><!--/rightsquigarrow A: rt arrow-wavy -->
-<!ENTITY rAtail           "&#x0291C;" ><!--right double arrow-tail -->
-<!ENTITY ratail           "&#x021A3;" ><!--right arrow-tail -->
-<!ENTITY RBarr            "&#x02910;" ><!--/drbkarow A: twoheaded right broken arrow -->
-<!ENTITY rBarr            "&#x0290F;" ><!--/dbkarow A: right doubly broken arrow -->
-<!ENTITY rbarr            "&#x0290D;" ><!--/bkarow A: right broken arrow -->
-<!ENTITY rdca             "&#x02937;" ><!--right down curved arrow -->
-<!ENTITY rdldhar          "&#x02969;" ><!--right harpoon-down over left harpoon-down -->
-<!ENTITY rdsh             "&#x021B3;" ><!--right down angled arrow -->
-<!ENTITY rfisht           "&#x0297D;" ><!--right fish tail -->
-<!ENTITY rHar             "&#x02964;" ><!--right harpoon-up over right harpoon-down -->
-<!ENTITY rhard            "&#x021C1;" ><!--/rightharpoondown A: rt harpoon-down -->
-<!ENTITY rharu            "&#x021C0;" ><!--/rightharpoonup A: rt harpoon-up -->
-<!ENTITY rharul           "&#x0296C;" ><!--right harpoon-up over long dash -->
-<!ENTITY rlarr            "&#x021C4;" ><!--/rightleftarrows A: r arr over l arr -->
-<!ENTITY rlhar            "&#x021CC;" ><!--/rightleftharpoons A: r harp over l -->
-<!ENTITY roarr            "&#x021FE;" ><!--right open arrow -->
-<!ENTITY rrarr            "&#x021C9;" ><!--/rightrightarrows A: two rt arrows -->
-<!ENTITY rsh              "&#x021B1;" ><!--/Rsh A: -->
-<!ENTITY ruluhar          "&#x02968;" ><!--right harpoon-up over left harpoon-up -->
-<!ENTITY searhk           "&#x02925;" ><!--/hksearow A: SE arrow-hooken -->
-<!ENTITY seArr            "&#x021D8;" ><!--SE pointing dbl arrow -->
-<!ENTITY searr            "&#x02198;" ><!--/searrow A: SE pointing arrow -->
-<!ENTITY seswar           "&#x02929;" ><!--/tosa A: SE & SW arrows -->
-<!ENTITY simrarr          "&#x02972;" ><!--similar, right arrow below -->
-<!ENTITY slarr            "&#x02190;" ><!--short left arrow -->
-<!ENTITY srarr            "&#x02192;" ><!--short right arrow -->
-<!ENTITY swarhk           "&#x02926;" ><!--/hkswarow A: SW arrow-hooked -->
-<!ENTITY swArr            "&#x021D9;" ><!--SW pointing dbl arrow -->
-<!ENTITY swarr            "&#x02199;" ><!--/swarrow A: SW pointing arrow -->
-<!ENTITY swnwar           "&#x0292A;" ><!--SW & NW arrows -->
-<!ENTITY Uarr             "&#x0219F;" ><!--up two-headed arrow -->
-<!ENTITY uArr             "&#x021D1;" ><!--/Uparrow A: up dbl arrow -->
-<!ENTITY Uarrocir         "&#x02949;" ><!--up two-headed arrow above circle -->
-<!ENTITY udarr            "&#x021C5;" ><!--up arrow, down arrow -->
-<!ENTITY udhar            "&#x0296E;" ><!--up harp, down harp -->
-<!ENTITY ufisht           "&#x0297E;" ><!--up fish tail -->
-<!ENTITY uHar             "&#x02963;" ><!--up harpoon-left, up harpoon-right -->
-<!ENTITY uharl            "&#x021BF;" ><!--/upharpoonleft A: up harpoon-left -->
-<!ENTITY uharr            "&#x021BE;" ><!--/upharpoonright /restriction A: up harp-r -->
-<!ENTITY uuarr            "&#x021C8;" ><!--/upuparrows A: two up arrows -->
-<!ENTITY vArr             "&#x021D5;" ><!--/Updownarrow A: up&down dbl arrow -->
-<!ENTITY varr             "&#x02195;" ><!--/updownarrow A: up&down arrow -->
-<!ENTITY xhArr            "&#x027FA;" ><!--/Longleftrightarrow A: long l&r dbl arr -->
-<!ENTITY xharr            "&#x027F7;" ><!--/longleftrightarrow A: long l&r arr -->
-<!ENTITY xlArr            "&#x027F8;" ><!--/Longleftarrow A: long l dbl arrow -->
-<!ENTITY xlarr            "&#x027F5;" ><!--/longleftarrow A: long left arrow -->
-<!ENTITY xmap             "&#x027FC;" ><!--/longmapsto A: -->
-<!ENTITY xrArr            "&#x027F9;" ><!--/Longrightarrow A: long rt dbl arr -->
-<!ENTITY xrarr            "&#x027F6;" ><!--/longrightarrow A: long right arrow -->
-<!ENTITY zigrarr          "&#x021DD;" ><!--right zig-zag arrow -->
-
-
-<!ENTITY % ent-isoamsb
-      PUBLIC "-//W3C//ENTITIES Added Math Symbols: Binary Operators for MathML 2.0//EN"
-             "iso9573-13/isoamsb.ent" >
-
-<!--
-     File isoamsb.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     References to the VARIANT SELECTOR 1 character (&#x0FE00;)
-     should match the uses listed in Unicode Technical Report 25.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY ac               "&#x0290F;" ><!--most positive -->
-<!ENTITY acE              "&#x029DB;" ><!--most positive, two lines below -->
-<!ENTITY amalg            "&#x02A3F;" ><!--/amalg B: amalgamation or coproduct -->
-<!ENTITY barvee           "&#x022BD;" ><!--bar, vee -->
-<!ENTITY Barwed           "&#x02306;" ><!--/doublebarwedge B: log and, dbl bar above -->
-<!ENTITY barwed           "&#x022BC;" ><!--/barwedge B: logical and, bar above -->
-<!ENTITY bsolb            "&#x029C5;" ><!--reverse solidus in square -->
-<!ENTITY Cap              "&#x022D2;" ><!--/Cap /doublecap B: dbl intersection -->
-<!ENTITY capand           "&#x02A44;" ><!--intersection, and -->
-<!ENTITY capbrcup         "&#x02A49;" ><!--intersection, bar, union -->
-<!ENTITY capcap           "&#x02A4B;" ><!--intersection, intersection, joined -->
-<!ENTITY capcup           "&#x02A47;" ><!--intersection above union -->
-<!ENTITY capdot           "&#x02A40;" ><!--intersection, with dot -->
-<!ENTITY caps             "&#x02229;&#x0FE00;" ><!--intersection, serifs -->
-<!ENTITY ccaps            "&#x02A4D;" ><!--closed intersection, serifs -->
-<!ENTITY ccups            "&#x02A4C;" ><!--closed union, serifs -->
-<!ENTITY ccupssm          "&#x02A50;" ><!--closed union, serifs, smash product -->
-<!ENTITY coprod           "&#x02210;" ><!--/coprod L: coproduct operator -->
-<!ENTITY Cup              "&#x022D3;" ><!--/Cup /doublecup B: dbl union -->
-<!ENTITY cupbrcap         "&#x02A48;" ><!--union, bar, intersection -->
-<!ENTITY cupcap           "&#x02A46;" ><!--union above intersection -->
-<!ENTITY cupcup           "&#x02A4A;" ><!--union, union, joined -->
-<!ENTITY cupdot           "&#x0228D;" ><!--union, with dot -->
-<!ENTITY cupor            "&#x02A45;" ><!--union, or -->
-<!ENTITY cups             "&#x0222A;&#x0FE00;" ><!--union, serifs -->
-<!ENTITY cuvee            "&#x022CE;" ><!--/curlyvee B: curly logical or -->
-<!ENTITY cuwed            "&#x022CF;" ><!--/curlywedge B: curly logical and -->
-<!ENTITY Dagger           "&#x02021;" ><!--/ddagger B: double dagger relation -->
-<!ENTITY dagger           "&#x02020;" ><!--/dagger B: dagger relation -->
-<!ENTITY diam             "&#x022C4;" ><!--/diamond B: open diamond -->
-<!ENTITY divonx           "&#x022C7;" ><!--/divideontimes B: division on times -->
-<!ENTITY eplus            "&#x02A71;" ><!--equal, plus -->
-<!ENTITY hercon           "&#x022B9;" ><!--hermitian conjugate matrix -->
-<!ENTITY intcal           "&#x022BA;" ><!--/intercal B: intercal -->
-<!ENTITY iprod            "&#x02A3C;" ><!--/intprod -->
-<!ENTITY loplus           "&#x02A2D;" ><!--plus sign in left half circle -->
-<!ENTITY lotimes          "&#x02A34;" ><!--multiply sign in left half circle  -->
-<!ENTITY lthree           "&#x022CB;" ><!--/leftthreetimes B: -->
-<!ENTITY ltimes           "&#x022C9;" ><!--/ltimes B: times sign, left closed -->
-<!ENTITY midast           "&#x0002A;" ><!--/ast B: asterisk -->
-<!ENTITY minusb           "&#x0229F;" ><!--/boxminus B: minus sign in box -->
-<!ENTITY minusd           "&#x02238;" ><!--/dotminus B: minus sign, dot above -->
-<!ENTITY minusdu          "&#x02A2A;" ><!--minus sign, dot below -->
-<!ENTITY ncap             "&#x02A43;" ><!--bar, intersection -->
-<!ENTITY ncup             "&#x02A42;" ><!--bar, union -->
-<!ENTITY oast             "&#x0229B;" ><!--/circledast B: asterisk in circle -->
-<!ENTITY ocir             "&#x0229A;" ><!--/circledcirc B: small circle in circle -->
-<!ENTITY odash            "&#x0229D;" ><!--/circleddash B: hyphen in circle -->
-<!ENTITY odiv             "&#x02A38;" ><!--divide in circle -->
-<!ENTITY odot             "&#x02299;" ><!--/odot B: middle dot in circle -->
-<!ENTITY odsold           "&#x029BC;" ><!--dot, solidus, dot in circle -->
-<!ENTITY ofcir            "&#x029BF;" ><!--filled circle in circle -->
-<!ENTITY ogt              "&#x029C1;" ><!--greater-than in circle -->
-<!ENTITY ohbar            "&#x029B5;" ><!--circle with horizontal bar -->
-<!ENTITY olcir            "&#x029BE;" ><!--large circle in circle -->
-<!ENTITY olt              "&#x029C0;" ><!--less-than in circle -->
-<!ENTITY omid             "&#x029B6;" ><!--vertical bar in circle -->
-<!ENTITY ominus           "&#x02296;" ><!--/ominus B: minus sign in circle -->
-<!ENTITY opar             "&#x029B7;" ><!--parallel in circle -->
-<!ENTITY operp            "&#x029B9;" ><!--perpendicular in circle -->
-<!ENTITY oplus            "&#x02295;" ><!--/oplus B: plus sign in circle -->
-<!ENTITY osol             "&#x02298;" ><!--/oslash B: solidus in circle -->
-<!ENTITY Otimes           "&#x02A37;" ><!--multiply sign in double circle -->
-<!ENTITY otimes           "&#x02297;" ><!--/otimes B: multiply sign in circle -->
-<!ENTITY otimesas         "&#x02A36;" ><!--multiply sign in circle, circumflex accent -->
-<!ENTITY ovbar            "&#x0233D;" ><!--circle with vertical bar -->
-<!ENTITY plusacir         "&#x02A23;" ><!--plus, circumflex accent above -->
-<!ENTITY plusb            "&#x0229E;" ><!--/boxplus B: plus sign in box -->
-<!ENTITY pluscir          "&#x02A22;" ><!--plus, small circle above -->
-<!ENTITY plusdo           "&#x02214;" ><!--/dotplus B: plus sign, dot above -->
-<!ENTITY plusdu           "&#x02A25;" ><!--plus sign, dot below -->
-<!ENTITY pluse            "&#x02A72;" ><!--plus, equals -->
-<!ENTITY plussim          "&#x02A26;" ><!--plus, similar below -->
-<!ENTITY plustwo          "&#x02A27;" ><!--plus, two; Nim-addition -->
-<!ENTITY prod             "&#x0220F;" ><!--/prod L: product operator -->
-<!ENTITY race             "&#x029DA;" ><!--reverse most positive, line below -->
-<!ENTITY roplus           "&#x02A2E;" ><!--plus sign in right half circle -->
-<!ENTITY rotimes          "&#x02A35;" ><!--multiply sign in right half circle -->
-<!ENTITY rthree           "&#x022CC;" ><!--/rightthreetimes B: -->
-<!ENTITY rtimes           "&#x022CA;" ><!--/rtimes B: times sign, right closed -->
-<!ENTITY sdot             "&#x022C5;" ><!--/cdot B: small middle dot -->
-<!ENTITY sdotb            "&#x022A1;" ><!--/dotsquare /boxdot B: small dot in box -->
-<!ENTITY setmn            "&#x02216;" ><!--/setminus B: reverse solidus -->
-<!ENTITY simplus          "&#x02A24;" ><!--plus, similar above -->
-<!ENTITY smashp           "&#x02A33;" ><!--smash product -->
-<!ENTITY solb             "&#x029C4;" ><!--solidus in square -->
-<!ENTITY sqcap            "&#x02293;" ><!--/sqcap B: square intersection -->
-<!ENTITY sqcaps           "&#x02293;&#x0FE00;" ><!--square intersection, serifs -->
-<!ENTITY sqcup            "&#x02294;" ><!--/sqcup B: square union -->
-<!ENTITY sqcups           "&#x02294;&#x0FE00;" ><!--square union, serifs -->
-<!ENTITY ssetmn           "&#x02216;" ><!--/smallsetminus B: sm reverse solidus -->
-<!ENTITY sstarf           "&#x022C6;" ><!--/star B: small star, filled -->
-<!ENTITY subdot           "&#x02ABD;" ><!--subset, with dot -->
-<!ENTITY sum              "&#x02211;" ><!--/sum L: summation operator -->
-<!ENTITY supdot           "&#x02ABE;" ><!--superset, with dot -->
-<!ENTITY timesb           "&#x022A0;" ><!--/boxtimes B: multiply sign in box -->
-<!ENTITY timesbar         "&#x02A31;" ><!--multiply sign, bar below -->
-<!ENTITY timesd           "&#x02A30;" ><!--times, dot -->
-<!ENTITY tridot           "&#x025EC;" ><!--dot in triangle -->
-<!ENTITY triminus         "&#x02A3A;" ><!--minus in triangle -->
-<!ENTITY triplus          "&#x02A39;" ><!--plus in triangle -->
-<!ENTITY trisb            "&#x029CD;" ><!--triangle, serifs at bottom -->
-<!ENTITY tritime          "&#x02A3B;" ><!--multiply in triangle -->
-<!ENTITY uplus            "&#x0228E;" ><!--/uplus B: plus sign in union -->
-<!ENTITY veebar           "&#x022BB;" ><!--/veebar B: logical or, bar below -->
-<!ENTITY wedbar           "&#x02A5F;" ><!--wedge, bar below -->
-<!ENTITY wreath           "&#x02240;" ><!--/wr B: wreath product -->
-<!ENTITY xcap             "&#x022C2;" ><!--/bigcap L: intersection operator -->
-<!ENTITY xcirc            "&#x025EF;" ><!--/bigcirc B: large circle -->
-<!ENTITY xcup             "&#x022C3;" ><!--/bigcup L: union operator -->
-<!ENTITY xdtri            "&#x025BD;" ><!--/bigtriangledown B: big dn tri, open -->
-<!ENTITY xodot            "&#x02299;" ><!--/bigodot L: circle dot operator -->
-<!ENTITY xoplus           "&#x02295;" ><!--/bigoplus L: circle plus operator -->
-<!ENTITY xotime           "&#x02297;" ><!--/bigotimes L: circle times operator -->
-<!ENTITY xsqcup           "&#x02294;" ><!--/bigsqcup L: square union operator -->
-<!ENTITY xuplus           "&#x0228E;" ><!--/biguplus L: -->
-<!ENTITY xutri            "&#x025B3;" ><!--/bigtriangleup B: big up tri, open -->
-<!ENTITY xvee             "&#x022C1;" ><!--/bigvee L: logical and operator -->
-<!ENTITY xwedge           "&#x022C0;" ><!--/bigwedge L: logical or operator -->
-
-
-<!ENTITY % ent-isoamsc
-      PUBLIC "-//W3C//ENTITIES Added Math Symbols: Delimiters for MathML 2.0//EN"
-             "iso9573-13/isoamsc.ent" >
-
-<!--
-     File isoamsc.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY dlcorn           "&#x0231E;" ><!--/llcorner O: lower left corner -->
-<!ENTITY drcorn           "&#x0231F;" ><!--/lrcorner C: lower right corner -->
-<!ENTITY gtlPar           "&#x02995;" ><!--dbl left parenthesis, greater -->
-<!ENTITY langd            "&#x02991;" ><!--left angle, dot -->
-<!ENTITY lbrke            "&#x0298B;" ><!--left bracket, equal -->
-<!ENTITY lbrksld          "&#x0298F;" ><!--left bracket, solidus bottom corner -->
-<!ENTITY lbrkslu          "&#x0298D;" ><!--left bracket, solidus top corner -->
-<!ENTITY lceil            "&#x02308;" ><!--/lceil O: left ceiling -->
-<!ENTITY lfloor           "&#x0230A;" ><!--/lfloor O: left floor -->
-<!ENTITY lmoust           "&#x023B0;" ><!--/lmoustache -->
-<!ENTITY lparlt           "&#x02993;" ><!--O: left parenthesis, lt -->
-<!ENTITY ltrPar           "&#x02996;" ><!--dbl right parenthesis, less -->
-<!ENTITY rangd            "&#x02992;" ><!--right angle, dot -->
-<!ENTITY rbrke            "&#x0298C;" ><!--right bracket, equal -->
-<!ENTITY rbrksld          "&#x0298E;" ><!--right bracket, solidus bottom corner -->
-<!ENTITY rbrkslu          "&#x02990;" ><!--right bracket, solidus top corner -->
-<!ENTITY rceil            "&#x02309;" ><!--/rceil C: right ceiling -->
-<!ENTITY rfloor           "&#x0230B;" ><!--/rfloor C: right floor -->
-<!ENTITY rmoust           "&#x023B1;" ><!--/rmoustache -->
-<!ENTITY rpargt           "&#x02994;" ><!--C: right paren, gt -->
-<!ENTITY ulcorn           "&#x0231C;" ><!--/ulcorner O: upper left corner -->
-<!ENTITY urcorn           "&#x0231D;" ><!--/urcorner C: upper right corner -->
-
-
-<!ENTITY % ent-isoamsn
-      PUBLIC "-//W3C//ENTITIES Added Math Symbols: Negated Relations for MathML 2.0//EN"
-             "iso9573-13/isoamsn.ent" >
-
-<!--
-     File isoamsn.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     References to the VARIANT SELECTOR 1 character (&#x0FE00;)
-     should match the uses listed in Unicode Technical Report 25.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY gnap             "&#x02A8A;" ><!--/gnapprox N: greater, not approximate -->
-<!ENTITY gnE              "&#x02269;" ><!--/gneqq N: greater, not dbl equals -->
-<!ENTITY gne              "&#x02269;" ><!--/gneq N: greater, not equals -->
-<!ENTITY gnsim            "&#x022E7;" ><!--/gnsim N: greater, not similar -->
-<!ENTITY gvnE             "&#x02269;&#x0FE00;" ><!--/gvertneqq N: gt, vert, not dbl eq -->
-<!ENTITY lnap             "&#x02A89;" ><!--/lnapprox N: less, not approximate -->
-<!ENTITY lnE              "&#x02268;" ><!--/lneqq N: less, not double equals -->
-<!ENTITY lne              "&#x02268;" ><!--/lneq N: less, not equals -->
-<!ENTITY lnsim            "&#x022E6;" ><!--/lnsim N: less, not similar -->
-<!ENTITY lvnE             "&#x02268;&#x0FE00;" ><!--/lvertneqq N: less, vert, not dbl eq -->
-<!ENTITY nap              "&#x02249;" ><!--/napprox N: not approximate -->
-<!ENTITY napE             "&#x02A70;&#x00338;" ><!--not approximately equal or equal to -->
-<!ENTITY napid            "&#x0224B;&#x00338;" ><!--not approximately identical to -->
-<!ENTITY ncong            "&#x02247;" ><!--/ncong N: not congruent with -->
-<!ENTITY ncongdot         "&#x02A6D;&#x00338;" ><!--not congruent, dot -->
-<!ENTITY nequiv           "&#x02262;" ><!--/nequiv N: not identical with -->
-<!ENTITY ngE              "&#x02A7E;&#x00338;" ><!--/ngeqq N: not greater, dbl equals -->
-<!ENTITY nge              "&#x02271;" ><!--/ngeq N: not greater-than-or-equal -->
-<!ENTITY nges             "&#x02A7E;&#x00338;" ><!--/ngeqslant N: not gt-or-eq, slanted -->
-<!ENTITY nGg              "&#x022D9;&#x00338;" ><!--not triple greater than -->
-<!ENTITY ngsim            "&#x02275;" ><!--not greater, similar -->
-<!ENTITY nGt              "&#x0226B;&#x020D2;" ><!--not, vert, much greater than -->
-<!ENTITY ngt              "&#x0226F;" ><!--/ngtr N: not greater-than -->
-<!ENTITY nGtv             "&#x0226B;&#x00338;" ><!--not much greater than, variant -->
-<!ENTITY nlE              "&#x02A7D;&#x00338;" ><!--/nleqq N: not less, dbl equals -->
-<!ENTITY nle              "&#x02270;" ><!--/nleq N: not less-than-or-equal -->
-<!ENTITY nles             "&#x02A7D;&#x00338;" ><!--/nleqslant N: not less-or-eq, slant -->
-<!ENTITY nLl              "&#x022D8;&#x00338;" ><!--not triple less than -->
-<!ENTITY nlsim            "&#x02274;" ><!--not less, similar -->
-<!ENTITY nLt              "&#x0226A;&#x020D2;" ><!--not, vert, much less than -->
-<!ENTITY nlt              "&#x0226E;" ><!--/nless N: not less-than -->
-<!ENTITY nltri            "&#x022EA;" ><!--/ntriangleleft N: not left triangle -->
-<!ENTITY nltrie           "&#x022EC;" ><!--/ntrianglelefteq N: not l tri, eq -->
-<!ENTITY nLtv             "&#x0226A;&#x00338;" ><!--not much less than, variant -->
-<!ENTITY nmid             "&#x02224;" ><!--/nmid -->
-<!ENTITY npar             "&#x02226;" ><!--/nparallel N: not parallel -->
-<!ENTITY npr              "&#x02280;" ><!--/nprec N: not precedes -->
-<!ENTITY nprcue           "&#x022E0;" ><!--not curly precedes, eq -->
-<!ENTITY npre             "&#x02AAF;&#x00338;" ><!--/npreceq N: not precedes, equals -->
-<!ENTITY nrtri            "&#x022EB;" ><!--/ntriangleright N: not rt triangle -->
-<!ENTITY nrtrie           "&#x022ED;" ><!--/ntrianglerighteq N: not r tri, eq -->
-<!ENTITY nsc              "&#x02281;" ><!--/nsucc N: not succeeds -->
-<!ENTITY nsccue           "&#x022E1;" ><!--not succeeds, curly eq -->
-<!ENTITY nsce             "&#x02AB0;&#x00338;" ><!--/nsucceq N: not succeeds, equals -->
-<!ENTITY nsim             "&#x02241;" ><!--/nsim N: not similar -->
-<!ENTITY nsime            "&#x02244;" ><!--/nsimeq N: not similar, equals -->
-<!ENTITY nsmid            "&#x02224;" ><!--/nshortmid -->
-<!ENTITY nspar            "&#x02226;" ><!--/nshortparallel N: not short par -->
-<!ENTITY nsqsube          "&#x022E2;" ><!--not, square subset, equals -->
-<!ENTITY nsqsupe          "&#x022E3;" ><!--not, square superset, equals -->
-<!ENTITY nsub             "&#x02284;" ><!--not subset -->
-<!ENTITY nsubE            "&#x02288;" ><!--/nsubseteqq N: not subset, dbl eq -->
-<!ENTITY nsube            "&#x02288;" ><!--/nsubseteq N: not subset, equals -->
-<!ENTITY nsup             "&#x02285;" ><!--not superset -->
-<!ENTITY nsupE            "&#x02289;" ><!--/nsupseteqq N: not superset, dbl eq -->
-<!ENTITY nsupe            "&#x02289;" ><!--/nsupseteq N: not superset, equals -->
-<!ENTITY ntgl             "&#x02279;" ><!--not greater, less -->
-<!ENTITY ntlg             "&#x02278;" ><!--not less, greater -->
-<!ENTITY nvap             "&#x0224D;&#x020D2;" ><!--not, vert, approximate -->
-<!ENTITY nVDash           "&#x022AF;" ><!--/nVDash N: not dbl vert, dbl dash -->
-<!ENTITY nVdash           "&#x022AE;" ><!--/nVdash N: not dbl vertical, dash -->
-<!ENTITY nvDash           "&#x022AD;" ><!--/nvDash N: not vertical, dbl dash -->
-<!ENTITY nvdash           "&#x022AC;" ><!--/nvdash N: not vertical, dash -->
-<!ENTITY nvge             "&#x02A7E;&#x00338;" ><!--not, vert, greater-than-or-equal -->
-<!ENTITY nvgt             "&#x0226F;" ><!--not, vert, greater-than -->
-<!ENTITY nvle             "&#x02A7D;&#x00338;" ><!--not, vert, less-than-or-equal -->
-<!ENTITY nvlt             "&#x0226E;" ><!--not, vert, less-than -->
-<!ENTITY nvltrie          "&#x022B4;&#x020D2;" ><!--not, vert, left triangle, equals -->
-<!ENTITY nvrtrie          "&#x022B5;&#x020D2;" ><!--not, vert, right triangle, equals -->
-<!ENTITY nvsim            "&#x0223C;&#x020D2;" ><!--not, vert, similar -->
-<!ENTITY parsim           "&#x02AF3;" ><!--parallel, similar -->
-<!ENTITY prnap            "&#x022E8;" ><!--/precnapprox N: precedes, not approx -->
-<!ENTITY prnE             "&#x02AB5;" ><!--/precneqq N: precedes, not dbl eq -->
-<!ENTITY prnsim           "&#x022E8;" ><!--/precnsim N: precedes, not similar -->
-<!ENTITY rnmid            "&#x02AEE;" ><!--reverse /nmid -->
-<!ENTITY scnap            "&#x022E9;" ><!--/succnapprox N: succeeds, not approx -->
-<!ENTITY scnE             "&#x02AB6;" ><!--/succneqq N: succeeds, not dbl eq -->
-<!ENTITY scnsim           "&#x022E9;" ><!--/succnsim N: succeeds, not similar -->
-<!ENTITY simne            "&#x02246;" ><!--similar, not equals -->
-<!ENTITY solbar           "&#x0233F;" ><!--solidus, bar through -->
-<!ENTITY subnE            "&#x0228A;" ><!--/subsetneqq N: subset, not dbl eq -->
-<!ENTITY subne            "&#x0228A;" ><!--/subsetneq N: subset, not equals -->
-<!ENTITY supnE            "&#x0228B;" ><!--/supsetneqq N: superset, not dbl eq -->
-<!ENTITY supne            "&#x0228B;" ><!--/supsetneq N: superset, not equals -->
-<!ENTITY vnsub            "&#x02284;" ><!--/nsubset N: not subset, var -->
-<!ENTITY vnsup            "&#x02285;" ><!--/nsupset N: not superset, var -->
-<!ENTITY vsubnE           "&#x0228A;&#x0FE00;" ><!--/varsubsetneqq N: subset not dbl eq, var -->
-<!ENTITY vsubne           "&#x0228A;&#x0FE00;" ><!--/varsubsetneq N: subset, not eq, var -->
-<!ENTITY vsupnE           "&#x0228B;&#x0FE00;" ><!--/varsupsetneqq N: super not dbl eq, var -->
-<!ENTITY vsupne           "&#x0228B;&#x0FE00;" ><!--/varsupsetneq N: superset, not eq, var -->
-
-
-<!ENTITY % ent-isoamso
-      PUBLIC "-//W3C//ENTITIES Added Math Symbols: Ordinary for MathML 2.0//EN"
-             "iso9573-13/isoamso.ent" >
-
-<!--
-     File isoamso.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY ang              "&#x02220;" ><!--/angle - angle -->
-<!ENTITY ange             "&#x029A4;" ><!--angle, equal -->
-<!ENTITY angmsd           "&#x02221;" ><!--/measuredangle - angle-measured -->
-<!ENTITY angmsdaa         "&#x029A8;" ><!--angle-measured, arrow, up, right -->
-<!ENTITY angmsdab         "&#x029A9;" ><!--angle-measured, arrow, up, left -->
-<!ENTITY angmsdac         "&#x029AA;" ><!--angle-measured, arrow, down, right -->
-<!ENTITY angmsdad         "&#x029AB;" ><!--angle-measured, arrow, down, left -->
-<!ENTITY angmsdae         "&#x029AC;" ><!--angle-measured, arrow, right, up -->
-<!ENTITY angmsdaf         "&#x029AD;" ><!--angle-measured, arrow, left, up -->
-<!ENTITY angmsdag         "&#x029AE;" ><!--angle-measured, arrow, right, down -->
-<!ENTITY angmsdah         "&#x029AF;" ><!--angle-measured, arrow, left, down -->
-<!ENTITY angrtvb          "&#x022BE;" ><!--right angle-measured -->
-<!ENTITY angrtvbd         "&#x0299D;" ><!--right angle-measured, dot -->
-<!ENTITY bbrk             "&#x023B5;" ><!--bottom square bracket -->
-<!ENTITY bemptyv          "&#x029B0;" ><!--reversed circle, slash -->
-<!ENTITY beth             "&#x02136;" ><!--/beth - beth, Hebrew -->
-<!ENTITY boxbox           "&#x029C9;" ><!--two joined squares -->
-<!ENTITY bprime           "&#x02035;" ><!--/backprime - reverse prime -->
-<!ENTITY bsemi            "&#x0204F;" ><!--reverse semi-colon -->
-<!ENTITY cemptyv          "&#x029B2;" ><!--circle, slash, small circle above -->
-<!ENTITY cirE             "&#x029C3;" ><!--circle, two horizontal stroked to the right -->
-<!ENTITY cirscir          "&#x029C2;" ><!--circle, small circle to the right -->
-<!ENTITY comp             "&#x02201;" ><!--/complement - complement sign -->
-<!ENTITY daleth           "&#x02138;" ><!--/daleth - daleth, Hebrew -->
-<!ENTITY demptyv          "&#x029B1;" ><!--circle, slash, bar above -->
-<!ENTITY ell              "&#x02113;" ><!--/ell - cursive small l -->
-<!ENTITY empty            "&#x02205;" ><!--/emptyset - zero, slash -->
-<!ENTITY emptyv           "&#x02205;" ><!--/varnothing - circle, slash -->
-<!ENTITY gimel            "&#x02137;" ><!--/gimel - gimel, Hebrew -->
-<!ENTITY iiota            "&#x02129;" ><!--inverted iota -->
-<!ENTITY image            "&#x02111;" ><!--/Im - imaginary   -->
-<!ENTITY imath            "&#x00131;" ><!--/imath - small i, no dot -->
-<!ENTITY jmath            "&#x0006A;" ><!--/jmath - small j, no dot -->
-<!ENTITY laemptyv         "&#x029B4;" ><!--circle, slash, left arrow above -->
-<!ENTITY lltri            "&#x025FA;" ><!--lower left triangle -->
-<!ENTITY lrtri            "&#x022BF;" ><!--lower right triangle -->
-<!ENTITY mho              "&#x02127;" ><!--/mho - conductance -->
-<!ENTITY nang             "&#x02220;&#x020D2;" ><!--not, vert, angle -->
-<!ENTITY nexist           "&#x02204;" ><!--/nexists - negated exists -->
-<!ENTITY oS               "&#x024C8;" ><!--/circledS - capital S in circle -->
-<!ENTITY planck           "&#x0210F;" ><!--/hbar - Planck's over 2pi -->
-<!ENTITY plankv           "&#x0210F;" ><!--/hslash - variant Planck's over 2pi -->
-<!ENTITY raemptyv         "&#x029B3;" ><!--circle, slash, right arrow above -->
-<!ENTITY range            "&#x029A5;" ><!--reverse angle, equal -->
-<!ENTITY real             "&#x0211C;" ><!--/Re - real -->
-<!ENTITY tbrk             "&#x023B4;" ><!--top square bracket -->
-<!ENTITY ultri            "&#x025F8;" ><!--upper left triangle -->
-<!ENTITY urtri            "&#x025F9;" ><!--upper right triangle -->
-<!ENTITY vzigzag          "&#x0299A;" ><!--vertical zig-zag line -->
-<!ENTITY weierp           "&#x02118;" ><!--/wp - Weierstrass p -->
-
-
-<!ENTITY % ent-isoamsr
-      PUBLIC "-//W3C//ENTITIES Added Math Symbols: Relations for MathML 2.0//EN"
-             "iso9573-13/isoamsr.ent" >
-
-<!--
-     File isoamsr.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     References to the VARIANT SELECTOR 1 character (&#x0FE00;)
-     should match the uses listed in Unicode Technical Report 25.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY apE              "&#x0224A;" ><!--approximately equal or equal to -->
-<!ENTITY ape              "&#x0224A;" ><!--/approxeq R: approximate, equals -->
-<!ENTITY apid             "&#x0224B;" ><!--approximately identical to -->
-<!ENTITY asymp            "&#x02248;" ><!--/asymp R: asymptotically equal to -->
-<!ENTITY Barv             "&#x02AE7;" ><!--vert, dbl bar (over) -->
-<!ENTITY bcong            "&#x0224C;" ><!--/backcong R: reverse congruent -->
-<!ENTITY bepsi            "&#x003F6;" ><!--/backepsilon R: such that -->
-<!ENTITY bowtie           "&#x022C8;" ><!--/bowtie R: -->
-<!ENTITY bsim             "&#x0223D;" ><!--/backsim R: reverse similar -->
-<!ENTITY bsime            "&#x022CD;" ><!--/backsimeq R: reverse similar, eq -->
-<!ENTITY bsolhsub         "&#x0005C;&#x02282;" ><!--reverse solidus, subset -->
-<!ENTITY bump             "&#x0224E;" ><!--/Bumpeq R: bumpy equals -->
-<!ENTITY bumpE            "&#x02AAE;" ><!--bump, equals -->
-<!ENTITY bumpe            "&#x0224F;" ><!--/bumpeq R: bumpy equals, equals -->
-<!ENTITY cire             "&#x02257;" ><!--/circeq R: circle, equals -->
-<!ENTITY Colon            "&#x02237;" ><!--/Colon, two colons -->
-<!ENTITY Colone           "&#x02A74;" ><!--double colon, equals -->
-<!ENTITY colone           "&#x02254;" ><!--/coloneq R: colon, equals -->
-<!ENTITY congdot          "&#x02A6D;" ><!--congruent, dot -->
-<!ENTITY csub             "&#x02ACF;" ><!--subset, closed -->
-<!ENTITY csube            "&#x02AD1;" ><!--subset, closed, equals -->
-<!ENTITY csup             "&#x02AD0;" ><!--superset, closed -->
-<!ENTITY csupe            "&#x02AD2;" ><!--superset, closed, equals -->
-<!ENTITY cuepr            "&#x022DE;" ><!--/curlyeqprec R: curly eq, precedes -->
-<!ENTITY cuesc            "&#x022DF;" ><!--/curlyeqsucc R: curly eq, succeeds -->
-<!ENTITY Dashv            "&#x02AE4;" ><!--dbl dash, vertical -->
-<!ENTITY dashv            "&#x022A3;" ><!--/dashv R: dash, vertical -->
-<!ENTITY easter           "&#x0225B;" ><!--equal, asterisk above -->
-<!ENTITY ecir             "&#x02256;" ><!--/eqcirc R: circle on equals sign -->
-<!ENTITY ecolon           "&#x02255;" ><!--/eqcolon R: equals, colon -->
-<!ENTITY eDDot            "&#x02A77;" ><!--/ddotseq R: equal with four dots -->
-<!ENTITY eDot             "&#x02251;" ><!--/doteqdot /Doteq R: eq, even dots -->
-<!ENTITY efDot            "&#x02252;" ><!--/fallingdotseq R: eq, falling dots -->
-<!ENTITY eg               "&#x02A9A;" ><!--equal-or-greater -->
-<!ENTITY egs              "&#x022DD;" ><!--/eqslantgtr R: equal-or-gtr, slanted -->
-<!ENTITY egsdot           "&#x02A98;" ><!--equal-or-greater, slanted, dot inside -->
-<!ENTITY el               "&#x02A99;" ><!--equal-or-less -->
-<!ENTITY els              "&#x022DC;" ><!--/eqslantless R: eq-or-less, slanted -->
-<!ENTITY elsdot           "&#x02A97;" ><!--equal-or-less, slanted, dot inside -->
-<!ENTITY equest           "&#x0225F;" ><!--/questeq R: equal with questionmark -->
-<!ENTITY equivDD          "&#x02A78;" ><!--equivalent, four dots above -->
-<!ENTITY erDot            "&#x02253;" ><!--/risingdotseq R: eq, rising dots -->
-<!ENTITY esdot            "&#x02250;" ><!--/doteq R: equals, single dot above -->
-<!ENTITY Esim             "&#x02A73;" ><!--equal, similar -->
-<!ENTITY esim             "&#x02242;" ><!--/esim R: equals, similar -->
-<!ENTITY fork             "&#x022D4;" ><!--/pitchfork R: pitchfork -->
-<!ENTITY forkv            "&#x02AD9;" ><!--fork, variant -->
-<!ENTITY frown            "&#x02322;" ><!--/frown R: down curve -->
-<!ENTITY gap              "&#x02273;" ><!--/gtrapprox R: greater, approximate -->
-<!ENTITY gE               "&#x02267;" ><!--/geqq R: greater, double equals -->
-<!ENTITY gEl              "&#x022DB;" ><!--/gtreqqless R: gt, dbl equals, less -->
-<!ENTITY gel              "&#x022DB;" ><!--/gtreqless R: greater, equals, less -->
-<!ENTITY ges              "&#x02A7E;" ><!--/geqslant R: gt-or-equal, slanted -->
-<!ENTITY gescc            "&#x02AA9;" ><!--greater than, closed by curve, equal, slanted -->
-<!ENTITY gesdot           "&#x02A80;" ><!--greater-than-or-equal, slanted, dot inside -->
-<!ENTITY gesdoto          "&#x02A82;" ><!--greater-than-or-equal, slanted, dot above -->
-<!ENTITY gesdotol         "&#x02A84;" ><!--greater-than-or-equal, slanted, dot above left -->
-<!ENTITY gesl             "&#x022DB;&#x0FE00;" ><!--greater, equal, slanted, less -->
-<!ENTITY gesles           "&#x02A94;" ><!--greater, equal, slanted, less, equal, slanted -->
-<!ENTITY Gg               "&#x022D9;" ><!--/ggg /Gg /gggtr R: triple gtr-than -->
-<!ENTITY gl               "&#x02277;" ><!--/gtrless R: greater, less -->
-<!ENTITY gla              "&#x02AA5;" ><!--greater, less, apart -->
-<!ENTITY glE              "&#x02A92;" ><!--greater, less, equal -->
-<!ENTITY glj              "&#x02AA4;" ><!--greater, less, overlapping -->
-<!ENTITY gsim             "&#x02273;" ><!--/gtrsim R: greater, similar -->
-<!ENTITY gsime            "&#x02A8E;" ><!--greater, similar, equal -->
-<!ENTITY gsiml            "&#x02A90;" ><!--greater, similar, less -->
-<!ENTITY Gt               "&#x0226B;" ><!--/gg R: dbl greater-than sign -->
-<!ENTITY gtcc             "&#x02AA7;" ><!--greater than, closed by curve -->
-<!ENTITY gtcir            "&#x02A7A;" ><!--greater than, circle inside -->
-<!ENTITY gtdot            "&#x022D7;" ><!--/gtrdot R: greater than, with dot -->
-<!ENTITY gtquest          "&#x02A7C;" ><!--greater than, questionmark above -->
-<!ENTITY gtrarr           "&#x02978;" ><!--greater than, right arrow -->
-<!ENTITY homtht           "&#x0223B;" ><!--homothetic -->
-<!ENTITY lap              "&#x02272;" ><!--/lessapprox R: less, approximate -->
-<!ENTITY lat              "&#x02AAB;" ><!--larger than -->
-<!ENTITY late             "&#x02AAD;" ><!--larger than or equal -->
-<!ENTITY lates            "&#x02AAD;&#x0FE00;" ><!--larger than or equal, slanted -->
-<!ENTITY lE               "&#x02266;" ><!--/leqq R: less, double equals -->
-<!ENTITY lEg              "&#x022DA;" ><!--/lesseqqgtr R: less, dbl eq, greater -->
-<!ENTITY leg              "&#x022DA;" ><!--/lesseqgtr R: less, eq, greater -->
-<!ENTITY les              "&#x02A7D;" ><!--/leqslant R: less-than-or-eq, slant -->
-<!ENTITY lescc            "&#x02AA8;" ><!--less than, closed by curve, equal, slanted -->
-<!ENTITY lesdot           "&#x02A7F;" ><!--less-than-or-equal, slanted, dot inside -->
-<!ENTITY lesdoto          "&#x02A81;" ><!--less-than-or-equal, slanted, dot above -->
-<!ENTITY lesdotor         "&#x02A83;" ><!--less-than-or-equal, slanted, dot above right -->
-<!ENTITY lesg             "&#x022DA;&#x0FE00;" ><!--less, equal, slanted, greater -->
-<!ENTITY lesges           "&#x02A93;" ><!--less, equal, slanted, greater, equal, slanted -->
-<!ENTITY lg               "&#x02276;" ><!--/lessgtr R: less, greater -->
-<!ENTITY lgE              "&#x02A91;" ><!--less, greater, equal -->
-<!ENTITY Ll               "&#x022D8;" ><!--/Ll /lll /llless R: triple less-than -->
-<!ENTITY lsim             "&#x02272;" ><!--/lesssim R: less, similar -->
-<!ENTITY lsime            "&#x02A8D;" ><!--less, similar, equal -->
-<!ENTITY lsimg            "&#x02A8F;" ><!--less, similar, greater -->
-<!ENTITY Lt               "&#x0226A;" ><!--/ll R: double less-than sign -->
-<!ENTITY ltcc             "&#x02AA6;" ><!--less than, closed by curve -->
-<!ENTITY ltcir            "&#x02A79;" ><!--less than, circle inside -->
-<!ENTITY ltdot            "&#x022D6;" ><!--/lessdot R: less than, with dot -->
-<!ENTITY ltlarr           "&#x02976;" ><!--less than, left arrow -->
-<!ENTITY ltquest          "&#x02A7B;" ><!--less than, questionmark above -->
-<!ENTITY ltrie            "&#x022B4;" ><!--/trianglelefteq R: left triangle, eq -->
-<!ENTITY mcomma           "&#x02A29;" ><!--minus, comma above -->
-<!ENTITY mDDot            "&#x0223A;" ><!--minus with four dots, geometric properties -->
-<!ENTITY mid              "&#x02223;" ><!--/mid R: -->
-<!ENTITY mlcp             "&#x02ADB;" ><!--/mlcp -->
-<!ENTITY models           "&#x022A7;" ><!--/models R: -->
-<!ENTITY mstpos           "&#x0223E;" ><!--most positive -->
-<!ENTITY Pr               "&#x02ABB;" ><!--dbl precedes -->
-<!ENTITY pr               "&#x0227A;" ><!--/prec R: precedes -->
-<!ENTITY prap             "&#x0227E;" ><!--/precapprox R: precedes, approximate -->
-<!ENTITY prcue            "&#x0227C;" ><!--/preccurlyeq R: precedes, curly eq -->
-<!ENTITY prE              "&#x02AAF;" ><!--precedes, dbl equals -->
-<!ENTITY pre              "&#x02AAF;" ><!--/preceq R: precedes, equals -->
-<!ENTITY prsim            "&#x0227E;" ><!--/precsim R: precedes, similar -->
-<!ENTITY prurel           "&#x022B0;" ><!--element precedes under relation -->
-<!ENTITY ratio            "&#x02236;" ><!--/ratio -->
-<!ENTITY rtrie            "&#x022B5;" ><!--/trianglerighteq R: right tri, eq -->
-<!ENTITY rtriltri         "&#x029CE;" ><!--right triangle above left triangle -->
-<!ENTITY Sc               "&#x02ABC;" ><!--dbl succeeds -->
-<!ENTITY sc               "&#x0227B;" ><!--/succ R: succeeds -->
-<!ENTITY scap             "&#x0227F;" ><!--/succapprox R: succeeds, approximate -->
-<!ENTITY sccue            "&#x0227D;" ><!--/succcurlyeq R: succeeds, curly eq -->
-<!ENTITY scE              "&#x0227E;" ><!--succeeds, dbl equals -->
-<!ENTITY sce              "&#x0227D;" ><!--/succeq R: succeeds, equals -->
-<!ENTITY scsim            "&#x0227F;" ><!--/succsim R: succeeds, similar -->
-<!ENTITY sdote            "&#x02A66;" ><!--equal, dot below -->
-<!ENTITY simg             "&#x02A9E;" ><!--similar, greater -->
-<!ENTITY simgE            "&#x02AA0;" ><!--similar, greater, equal -->
-<!ENTITY siml             "&#x02A9D;" ><!--similar, less -->
-<!ENTITY simlE            "&#x02A9F;" ><!--similar, less, equal -->
-<!ENTITY smid             "&#x02223;" ><!--/shortmid R: -->
-<!ENTITY smile            "&#x02323;" ><!--/smile R: up curve -->
-<!ENTITY smt              "&#x02AAA;" ><!--smaller than -->
-<!ENTITY smte             "&#x02AAC;" ><!--smaller than or equal -->
-<!ENTITY smtes            "&#x02AAC;&#x0FE00;" ><!--smaller than or equal, slanted -->
-<!ENTITY spar             "&#x02225;" ><!--/shortparallel R: short parallel -->
-<!ENTITY sqsub            "&#x0228F;" ><!--/sqsubset R: square subset -->
-<!ENTITY sqsube           "&#x02291;" ><!--/sqsubseteq R: square subset, equals -->
-<!ENTITY sqsup            "&#x02290;" ><!--/sqsupset R: square superset -->
-<!ENTITY sqsupe           "&#x02292;" ><!--/sqsupseteq R: square superset, eq -->
-<!ENTITY Sub              "&#x022D0;" ><!--/Subset R: double subset -->
-<!ENTITY subE             "&#x02286;" ><!--/subseteqq R: subset, dbl equals -->
-<!ENTITY subedot          "&#x02AC3;" ><!--subset, equals, dot -->
-<!ENTITY submult          "&#x02AC1;" ><!--subset, multiply -->
-<!ENTITY subplus          "&#x02ABF;" ><!--subset, plus -->
-<!ENTITY subrarr          "&#x02979;" ><!--subset, right arrow -->
-<!ENTITY subsim           "&#x02AC7;" ><!--subset, similar -->
-<!ENTITY subsub           "&#x02AD5;" ><!--subset above subset -->
-<!ENTITY subsup           "&#x02AD3;" ><!--subset above superset -->
-<!ENTITY Sup              "&#x022D1;" ><!--/Supset R: dbl superset -->
-<!ENTITY supdsub          "&#x02AD8;" ><!--superset, subset, dash joining them -->
-<!ENTITY supE             "&#x02287;" ><!--/supseteqq R: superset, dbl equals -->
-<!ENTITY supedot          "&#x02AC4;" ><!--superset, equals, dot -->
-<!ENTITY suphsol          "&#x02283;&#x00338;" ><!--superset, solidus -->
-<!ENTITY suphsub          "&#x02AD7;" ><!--superset, subset -->
-<!ENTITY suplarr          "&#x0297B;" ><!--superset, left arrow -->
-<!ENTITY supmult          "&#x02AC2;" ><!--superset, multiply -->
-<!ENTITY supplus          "&#x02AC0;" ><!--superset, plus -->
-<!ENTITY supsim           "&#x02AC8;" ><!--superset, similar -->
-<!ENTITY supsub           "&#x02AD4;" ><!--superset above subset -->
-<!ENTITY supsup           "&#x02AD6;" ><!--superset above superset -->
-<!ENTITY thkap            "&#x02248;" ><!--/thickapprox R: thick approximate -->
-<!ENTITY topfork          "&#x02ADA;" ><!--fork with top -->
-<!ENTITY trie             "&#x0225C;" ><!--/triangleq R: triangle, equals -->
-<!ENTITY twixt            "&#x0226C;" ><!--/between R: between -->
-<!ENTITY Vbar             "&#x02AEB;" ><!--dbl vert, bar (under) -->
-<!ENTITY vBar             "&#x02AE8;" ><!--vert, dbl bar (under) -->
-<!ENTITY vBarv            "&#x02AE9;" ><!--dbl bar, vert over and under -->
-<!ENTITY VDash            "&#x022AB;" ><!--dbl vert, dbl dash -->
-<!ENTITY Vdash            "&#x022A9;" ><!--/Vdash R: dbl vertical, dash -->
-<!ENTITY vDash            "&#x022A8;" ><!--/vDash R: vertical, dbl dash -->
-<!ENTITY vdash            "&#x022A2;" ><!--/vdash R: vertical, dash -->
-<!ENTITY Vdashl           "&#x02AE6;" ><!--vertical, dash (long) -->
-<!ENTITY vltri            "&#x022B2;" ><!--/vartriangleleft R: l tri, open, var -->
-<!ENTITY vprop            "&#x0221D;" ><!--/varpropto R: proportional, variant -->
-<!ENTITY vrtri            "&#x022B3;" ><!--/vartriangleright R: r tri, open, var -->
-<!ENTITY Vvdash           "&#x022AA;" ><!--/Vvdash R: triple vertical, dash -->
-
-
-<!ENTITY % ent-isogrk3
-      PUBLIC "-//W3C//ENTITIES Greek Symbols for MathML 2.0//EN"
-             "iso9573-13/isogrk3.ent" >
-
-<!--
-     File isogrk3.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY alpha            "&#x003B1;" ><!--/alpha small alpha, Greek -->
-<!ENTITY beta             "&#x003B2;" ><!--/beta small beta, Greek -->
-<!ENTITY chi              "&#x003C7;" ><!--/chi small chi, Greek -->
-<!ENTITY Delta            "&#x00394;" ><!--/Delta capital Delta, Greek -->
-<!ENTITY delta            "&#x003B4;" ><!--/delta small delta, Greek -->
-<!ENTITY epsi             "&#x003B5;" ><!--/straightepsilon, small epsilon, Greek -->
-<!ENTITY epsiv            "&#x0025B;" ><!--/varepsilon -->
-<!ENTITY eta              "&#x003B7;" ><!--/eta small eta, Greek -->
-<!ENTITY Gamma            "&#x00393;" ><!--/Gamma capital Gamma, Greek -->
-<!ENTITY gamma            "&#x003B3;" ><!--/gamma small gamma, Greek -->
-<!ENTITY Gammad           "&#x003DC;" ><!--capital digamma -->
-<!ENTITY gammad           "&#x003DC;" ><!--/digamma -->
-<!ENTITY iota             "&#x003B9;" ><!--/iota small iota, Greek -->
-<!ENTITY kappa            "&#x003BA;" ><!--/kappa small kappa, Greek -->
-<!ENTITY kappav           "&#x003F0;" ><!--/varkappa -->
-<!ENTITY Lambda           "&#x0039B;" ><!--/Lambda capital Lambda, Greek -->
-<!ENTITY lambda           "&#x003BB;" ><!--/lambda small lambda, Greek -->
-<!ENTITY mu               "&#x003BC;" ><!--/mu small mu, Greek -->
-<!ENTITY nu               "&#x003BD;" ><!--/nu small nu, Greek -->
-<!ENTITY Omega            "&#x003A9;" ><!--/Omega capital Omega, Greek -->
-<!ENTITY omega            "&#x003C9;" ><!--/omega small omega, Greek -->
-<!ENTITY Phi              "&#x003A6;" ><!--/Phi capital Phi, Greek -->
-<!ENTITY phi              "&#x003D5;" ><!--/straightphi - small phi, Greek -->
-<!ENTITY phiv             "&#x003C6;" ><!--/varphi - curly or open phi -->
-<!ENTITY Pi               "&#x003A0;" ><!--/Pi capital Pi, Greek -->
-<!ENTITY pi               "&#x003C0;" ><!--/pi small pi, Greek -->
-<!ENTITY piv              "&#x003D6;" ><!--/varpi -->
-<!ENTITY Psi              "&#x003A8;" ><!--/Psi capital Psi, Greek -->
-<!ENTITY psi              "&#x003C8;" ><!--/psi small psi, Greek -->
-<!ENTITY rho              "&#x003C1;" ><!--/rho small rho, Greek -->
-<!ENTITY rhov             "&#x003F1;" ><!--/varrho -->
-<!ENTITY Sigma            "&#x003A3;" ><!--/Sigma capital Sigma, Greek -->
-<!ENTITY sigma            "&#x003C3;" ><!--/sigma small sigma, Greek -->
-<!ENTITY sigmav           "&#x003C2;" ><!--/varsigma -->
-<!ENTITY tau              "&#x003C4;" ><!--/tau small tau, Greek -->
-<!ENTITY Theta            "&#x00398;" ><!--/Theta capital Theta, Greek -->
-<!ENTITY theta            "&#x003B8;" ><!--/theta straight theta, small theta, Greek -->
-<!ENTITY thetav           "&#x003D1;" ><!--/vartheta - curly or open theta -->
-<!ENTITY Upsi             "&#x003D2;" ><!--/Upsilon capital Upsilon, Greek -->
-<!ENTITY upsi             "&#x003C5;" ><!--/upsilon small upsilon, Greek -->
-<!ENTITY Xi               "&#x0039E;" ><!--/Xi capital Xi, Greek -->
-<!ENTITY xi               "&#x003BE;" ><!--/xi small xi, Greek -->
-<!ENTITY zeta             "&#x003B6;" ><!--/zeta small zeta, Greek -->
-
-
-<!ENTITY % ent-isomfrk
-      PUBLIC "-//W3C//ENTITIES Math Alphabets: Fraktur for MathML 2.0//EN"
-             "iso9573-13/isomfrk.ent" >
-
-<!--
-     File isomfrk.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY % plane1D  "&#38;#38;#x1D">
-
-<!ENTITY Afr              "%plane1D;504;" ><!--/frak A, upper case a -->
-<!ENTITY afr              "%plane1D;51E;" ><!--/frak a, lower case a -->
-<!ENTITY Bfr              "%plane1D;505;" ><!--/frak B, upper case b -->
-<!ENTITY bfr              "%plane1D;51F;" ><!--/frak b, lower case b -->
-<!ENTITY Cfr              "&#x0212D;" ><!--/frak C, upper case c -->
-<!ENTITY cfr              "%plane1D;520;" ><!--/frak c, lower case c -->
-<!ENTITY Dfr              "%plane1D;507;" ><!--/frak D, upper case d -->
-<!ENTITY dfr              "%plane1D;521;" ><!--/frak d, lower case d -->
-<!ENTITY Efr              "%plane1D;508;" ><!--/frak E, upper case e -->
-<!ENTITY efr              "%plane1D;522;" ><!--/frak e, lower case e -->
-<!ENTITY Ffr              "%plane1D;509;" ><!--/frak F, upper case f -->
-<!ENTITY ffr              "%plane1D;523;" ><!--/frak f, lower case f -->
-<!ENTITY Gfr              "%plane1D;50A;" ><!--/frak G, upper case g -->
-<!ENTITY gfr              "%plane1D;524;" ><!--/frak g, lower case g -->
-<!ENTITY Hfr              "&#x0210C;" ><!--/frak H, upper case h -->
-<!ENTITY hfr              "%plane1D;525;" ><!--/frak h, lower case h -->
-<!ENTITY Ifr              "&#x02111;" ><!--/frak I, upper case i -->
-<!ENTITY ifr              "%plane1D;526;" ><!--/frak i, lower case i -->
-<!ENTITY Jfr              "%plane1D;50D;" ><!--/frak J, upper case j -->
-<!ENTITY jfr              "%plane1D;527;" ><!--/frak j, lower case j -->
-<!ENTITY Kfr              "%plane1D;50E;" ><!--/frak K, upper case k -->
-<!ENTITY kfr              "%plane1D;528;" ><!--/frak k, lower case k -->
-<!ENTITY Lfr              "%plane1D;50F;" ><!--/frak L, upper case l -->
-<!ENTITY lfr              "%plane1D;529;" ><!--/frak l, lower case l -->
-<!ENTITY Mfr              "%plane1D;510;" ><!--/frak M, upper case m -->
-<!ENTITY mfr              "%plane1D;52A;" ><!--/frak m, lower case m -->
-<!ENTITY Nfr              "%plane1D;511;" ><!--/frak N, upper case n -->
-<!ENTITY nfr              "%plane1D;52B;" ><!--/frak n, lower case n -->
-<!ENTITY Ofr              "%plane1D;512;" ><!--/frak O, upper case o -->
-<!ENTITY ofr              "%plane1D;52C;" ><!--/frak o, lower case o -->
-<!ENTITY Pfr              "%plane1D;513;" ><!--/frak P, upper case p -->
-<!ENTITY pfr              "%plane1D;52D;" ><!--/frak p, lower case p -->
-<!ENTITY Qfr              "%plane1D;514;" ><!--/frak Q, upper case q -->
-<!ENTITY qfr              "%plane1D;52E;" ><!--/frak q, lower case q -->
-<!ENTITY Rfr              "&#x0211C;" ><!--/frak R, upper case r -->
-<!ENTITY rfr              "%plane1D;52F;" ><!--/frak r, lower case r -->
-<!ENTITY Sfr              "%plane1D;516;" ><!--/frak S, upper case s -->
-<!ENTITY sfr              "%plane1D;530;" ><!--/frak s, lower case s -->
-<!ENTITY Tfr              "%plane1D;517;" ><!--/frak T, upper case t -->
-<!ENTITY tfr              "%plane1D;531;" ><!--/frak t, lower case t -->
-<!ENTITY Ufr              "%plane1D;518;" ><!--/frak U, upper case u -->
-<!ENTITY ufr              "%plane1D;532;" ><!--/frak u, lower case u -->
-<!ENTITY Vfr              "%plane1D;519;" ><!--/frak V, upper case v -->
-<!ENTITY vfr              "%plane1D;533;" ><!--/frak v, lower case v -->
-<!ENTITY Wfr              "%plane1D;51A;" ><!--/frak W, upper case w -->
-<!ENTITY wfr              "%plane1D;534;" ><!--/frak w, lower case w -->
-<!ENTITY Xfr              "%plane1D;51B;" ><!--/frak X, upper case x -->
-<!ENTITY xfr              "%plane1D;535;" ><!--/frak x, lower case x -->
-<!ENTITY Yfr              "%plane1D;51C;" ><!--/frak Y, upper case y -->
-<!ENTITY yfr              "%plane1D;536;" ><!--/frak y, lower case y -->
-<!ENTITY Zfr              "&#x02128;" ><!--/frak Z, upper case z  -->
-<!ENTITY zfr              "%plane1D;537;" ><!--/frak z, lower case z -->
-
-
-<!ENTITY % ent-isomopf
-      PUBLIC "-//W3C//ENTITIES Math Alphabets: Open Face for MathML 2.0//EN"
-             "iso9573-13/isomopf.ent" >
-
-<!--
-     File isomopf.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY % plane1D  "&#38;#38;#x1D">
-
-<!ENTITY Aopf             "%plane1D;538;" ><!--/Bbb A, open face A -->
-<!ENTITY Bopf             "%plane1D;539;" ><!--/Bbb B, open face B -->
-<!ENTITY Copf             "&#x02102;" ><!--/Bbb C, open face C -->
-<!ENTITY Dopf             "%plane1D;53B;" ><!--/Bbb D, open face D -->
-<!ENTITY Eopf             "%plane1D;53C;" ><!--/Bbb E, open face E -->
-<!ENTITY Fopf             "%plane1D;53D;" ><!--/Bbb F, open face F -->
-<!ENTITY Gopf             "%plane1D;53E;" ><!--/Bbb G, open face G -->
-<!ENTITY Hopf             "&#x0210D;" ><!--/Bbb H, open face H -->
-<!ENTITY Iopf             "%plane1D;540;" ><!--/Bbb I, open face I -->
-<!ENTITY Jopf             "%plane1D;541;" ><!--/Bbb J, open face J -->
-<!ENTITY Kopf             "%plane1D;542;" ><!--/Bbb K, open face K  -->
-<!ENTITY Lopf             "%plane1D;543;" ><!--/Bbb L, open face L  -->
-<!ENTITY Mopf             "%plane1D;544;" ><!--/Bbb M, open face M  -->
-<!ENTITY Nopf             "&#x02115;" ><!--/Bbb N, open face N -->
-<!ENTITY Oopf             "%plane1D;546;" ><!--/Bbb O, open face O -->
-<!ENTITY Popf             "&#x02119;" ><!--/Bbb P, open face P -->
-<!ENTITY Qopf             "&#x0211A;" ><!--/Bbb Q, open face Q -->
-<!ENTITY Ropf             "&#x0211D;" ><!--/Bbb R, open face R -->
-<!ENTITY Sopf             "%plane1D;54A;" ><!--/Bbb S, open face S -->
-<!ENTITY Topf             "%plane1D;54B;" ><!--/Bbb T, open face T -->
-<!ENTITY Uopf             "%plane1D;54C;" ><!--/Bbb U, open face U -->
-<!ENTITY Vopf             "%plane1D;54D;" ><!--/Bbb V, open face V -->
-<!ENTITY Wopf             "%plane1D;54E;" ><!--/Bbb W, open face W -->
-<!ENTITY Xopf             "%plane1D;54F;" ><!--/Bbb X, open face X -->
-<!ENTITY Yopf             "%plane1D;550;" ><!--/Bbb Y, open face Y -->
-<!ENTITY Zopf             "&#x02124;" ><!--/Bbb Z, open face Z -->
-
-
-<!ENTITY % ent-isomscr
-      PUBLIC "-//W3C//ENTITIES Math Alphabets: Script for MathML 2.0//EN"
-             "iso9573-13/isomscr.ent" >
-
-<!--
-     File isomscr.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY % plane1D  "&#38;#38;#x1D">
-
-<!ENTITY Ascr             "%plane1D;49C;" ><!--/scr A, script letter A -->
-<!ENTITY ascr             "%plane1D;4B6;" ><!--/scr a, script letter a -->
-<!ENTITY Bscr             "&#x0212C;" ><!--/scr B, script letter B -->
-<!ENTITY bscr             "%plane1D;4B7;" ><!--/scr b, script letter b -->
-<!ENTITY Cscr             "%plane1D;49E;" ><!--/scr C, script letter C -->
-<!ENTITY cscr             "%plane1D;4B8;" ><!--/scr c, script letter c -->
-<!ENTITY Dscr             "%plane1D;49F;" ><!--/scr D, script letter D -->
-<!ENTITY dscr             "%plane1D;4B9;" ><!--/scr d, script letter d -->
-<!ENTITY Escr             "&#x02130;" ><!--/scr E, script letter E -->
-<!ENTITY escr             "&#x0212F;" ><!--/scr e, script letter e -->
-<!ENTITY Fscr             "&#x02131;" ><!--/scr F, script letter F -->
-<!ENTITY fscr             "%plane1D;4BB;" ><!--/scr f, script letter f -->
-<!ENTITY Gscr             "%plane1D;4A2;" ><!--/scr G, script letter G -->
-<!ENTITY gscr             "&#x0210A;" ><!--/scr g, script letter g -->
-<!ENTITY Hscr             "&#x0210B;" ><!--/scr H, script letter H -->
-<!ENTITY hscr             "%plane1D;4BD;" ><!--/scr h, script letter h -->
-<!ENTITY Iscr             "&#x02110;" ><!--/scr I, script letter I -->
-<!ENTITY iscr             "%plane1D;4BE;" ><!--/scr i, script letter i -->
-<!ENTITY Jscr             "%plane1D;4A5;" ><!--/scr J, script letter J -->
-<!ENTITY jscr             "%plane1D;4BF;" ><!--/scr j, script letter j -->
-<!ENTITY Kscr             "%plane1D;4A6;" ><!--/scr K, script letter K -->
-<!ENTITY kscr             "%plane1D;4C0;" ><!--/scr k, script letter k -->
-<!ENTITY Lscr             "&#x02112;" ><!--/scr L, script letter L -->
-<!ENTITY lscr             "&#x02113;" ><!--/scr l, script letter l -->
-<!ENTITY Mscr             "&#x02133;" ><!--/scr M, script letter M -->
-<!ENTITY mscr             "%plane1D;4C2;" ><!--/scr m, script letter m -->
-<!ENTITY Nscr             "%plane1D;4A9;" ><!--/scr N, script letter N -->
-<!ENTITY nscr             "%plane1D;4C3;" ><!--/scr n, script letter n -->
-<!ENTITY Oscr             "%plane1D;4AA;" ><!--/scr O, script letter O -->
-<!ENTITY oscr             "&#x02134;" ><!--/scr o, script letter o -->
-<!ENTITY Pscr             "%plane1D;4AB;" ><!--/scr P, script letter P -->
-<!ENTITY pscr             "%plane1D;4C5;" ><!--/scr p, script letter p -->
-<!ENTITY Qscr             "%plane1D;4AC;" ><!--/scr Q, script letter Q -->
-<!ENTITY qscr             "%plane1D;4C6;" ><!--/scr q, script letter q -->
-<!ENTITY Rscr             "&#x0211B;" ><!--/scr R, script letter R -->
-<!ENTITY rscr             "%plane1D;4C7;" ><!--/scr r, script letter r -->
-<!ENTITY Sscr             "%plane1D;4AE;" ><!--/scr S, script letter S -->
-<!ENTITY sscr             "%plane1D;4C8;" ><!--/scr s, script letter s -->
-<!ENTITY Tscr             "%plane1D;4AF;" ><!--/scr T, script letter T -->
-<!ENTITY tscr             "%plane1D;4C9;" ><!--/scr t, script letter t -->
-<!ENTITY Uscr             "%plane1D;4B0;" ><!--/scr U, script letter U -->
-<!ENTITY uscr             "%plane1D;4CA;" ><!--/scr u, script letter u -->
-<!ENTITY Vscr             "%plane1D;4B1;" ><!--/scr V, script letter V -->
-<!ENTITY vscr             "%plane1D;4CB;" ><!--/scr v, script letter v -->
-<!ENTITY Wscr             "%plane1D;4B2;" ><!--/scr W, script letter W -->
-<!ENTITY wscr             "%plane1D;4CC;" ><!--/scr w, script letter w -->
-<!ENTITY Xscr             "%plane1D;4B3;" ><!--/scr X, script letter X -->
-<!ENTITY xscr             "%plane1D;4CD;" ><!--/scr x, script letter x -->
-<!ENTITY Yscr             "%plane1D;4B4;" ><!--/scr Y, script letter Y -->
-<!ENTITY yscr             "%plane1D;4CE;" ><!--/scr y, script letter y -->
-<!ENTITY Zscr             "%plane1D;4B5;" ><!--/scr Z, script letter Z -->
-<!ENTITY zscr             "%plane1D;4CF;" ><!--/scr z, script letter z -->
-
-
-<!ENTITY % ent-isotech
-      PUBLIC "-//W3C//ENTITIES General Technical for MathML 2.0//EN"
-             "iso9573-13/isotech.ent" >
-
-<!--
-     File isotech.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     References to the VARIANT SELECTOR 1 character (&#x0FE00;)
-     should match the uses listed in Unicode Technical Report 25.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (C) International Organization for Standardization 1991
-     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.
-
--->
-
-<!ENTITY % plane1D  "&#38;#38;#x1D">
-
-<!ENTITY acd              "&#x0223F;" ><!--ac current -->
-<!ENTITY aleph            "&#x02135;" ><!--/aleph aleph, Hebrew -->
-<!ENTITY And              "&#x02A53;" ><!--dbl logical and -->
-<!ENTITY and              "&#x02227;" ><!--/wedge /land B: logical and -->
-<!ENTITY andand           "&#x02A55;" ><!--two logical and -->
-<!ENTITY andd             "&#x02A5C;" ><!--and, horizontal dash -->
-<!ENTITY andslope         "&#x02A58;" ><!--sloping large and -->
-<!ENTITY andv             "&#x02A5A;" ><!--and with middle stem -->
-<!ENTITY angrt            "&#x0221F;" ><!--right (90 degree) angle -->
-<!ENTITY angsph           "&#x02222;" ><!--/sphericalangle angle-spherical -->
-<!ENTITY angst            "&#x0212B;" ><!--Angstrom capital A, ring -->
-<!ENTITY ap               "&#x02248;" ><!--/approx R: approximate -->
-<!ENTITY apacir           "&#x02A6F;" ><!--approximate, circumflex accent -->
-<!ENTITY awconint         "&#x02233;" ><!--contour integral, anti-clockwise -->
-<!ENTITY awint            "&#x02A11;" ><!--anti clock-wise integration -->
-<!ENTITY becaus           "&#x02235;" ><!--/because R: because -->
-<!ENTITY bernou           "&#x0212C;" ><!--Bernoulli function (script capital B)  -->
-<!ENTITY bne              "&#x0003D;&#x020E5;" ><!--reverse not equal -->
-<!ENTITY bnequiv          "&#x02261;&#x020E5;" ><!--reverse not equivalent -->
-<!ENTITY bNot             "&#x02AED;" ><!--reverse not with two horizontal strokes -->
-<!ENTITY bnot             "&#x02310;" ><!--reverse not -->
-<!ENTITY bottom           "&#x022A5;" ><!--/bot bottom -->
-<!ENTITY cap              "&#x02229;" ><!--/cap B: intersection -->
-<!ENTITY Cconint          "&#x02230;" ><!--triple contour integral operator -->
-<!ENTITY cirfnint         "&#x02A10;" ><!--circulation function -->
-<!ENTITY compfn           "&#x02218;" ><!--/circ B: composite function (small circle) -->
-<!ENTITY cong             "&#x02245;" ><!--/cong R: congruent with -->
-<!ENTITY Conint           "&#x0222F;" ><!--double contour integral operator -->
-<!ENTITY conint           "&#x0222E;" ><!--/oint L: contour integral operator -->
-<!ENTITY ctdot            "&#x022EF;" ><!--/cdots, three dots, centered -->
-<!ENTITY cup              "&#x0222A;" ><!--/cup B: union or logical sum -->
-<!ENTITY cwconint         "&#x02232;" ><!--contour integral, clockwise -->
-<!ENTITY cwint            "&#x02231;" ><!--clockwise integral -->
-<!ENTITY cylcty           "&#x0232D;" ><!--cylindricity -->
-<!ENTITY disin            "&#x022F2;" ><!--set membership, long horizontal stroke -->
-<!ENTITY Dot              "&#x000A8;" ><!--dieresis or umlaut mark -->
-<!ENTITY DotDot           "&#x020DC;" ><!--four dots above -->
-<!ENTITY dsol             "&#x029F6;" ><!--solidus, bar above -->
-<!ENTITY dtdot            "&#x022F1;" ><!--/ddots, three dots, descending -->
-<!ENTITY dwangle          "&#x029A6;" ><!--large downward pointing angle -->
-<!ENTITY epar             "&#x022D5;" ><!--parallel, equal; equal or parallel -->
-<!ENTITY eparsl           "&#x029E3;" ><!--parallel, slanted, equal; homothetically congruent to -->
-<!ENTITY equiv            "&#x02261;" ><!--/equiv R: identical with -->
-<!ENTITY eqvparsl         "&#x029E5;" ><!--equivalent, equal; congruent and parallel -->
-<!ENTITY exist            "&#x02203;" ><!--/exists at least one exists -->
-<!ENTITY fnof             "&#x00192;" ><!--function of (italic small f) -->
-<!ENTITY forall           "&#x02200;" ><!--/forall for all -->
-<!ENTITY fpartint         "&#x02A0D;" ><!--finite part integral -->
-<!ENTITY ge               "&#x02265;" ><!--/geq /ge R: greater-than-or-equal -->
-<!ENTITY hamilt           "&#x0210B;" ><!--Hamiltonian (script capital H)  -->
-<!ENTITY iff              "&#x021D4;" ><!--/iff if and only if  -->
-<!ENTITY iinfin           "&#x029DC;" ><!--infinity sign, incomplete -->
-<!ENTITY imped            "%plane1D;543;" ><!--impedance -->
-<!ENTITY infin            "&#x0221E;" ><!--/infty infinity -->
-<!ENTITY Int              "&#x0222C;" ><!--double integral operator -->
-<!ENTITY int              "&#x0222B;" ><!--/int L: integral operator -->
-<!ENTITY intlarhk         "&#x02A17;" ><!--integral, left arrow with hook -->
-<!ENTITY isin             "&#x02208;" ><!--/in R: set membership  -->
-<!ENTITY isindot          "&#x022F5;" ><!--set membership, dot above -->
-<!ENTITY isinE            "&#x022F9;" ><!--set membership, two horizontal strokes -->
-<!ENTITY isins            "&#x022F4;" ><!--set membership, vertical bar on horizontal stroke -->
-<!ENTITY isinsv           "&#x022F3;" ><!--large set membership, vertical bar on horizontal stroke -->
-<!ENTITY isinv            "&#x02208;" ><!--set membership, variant -->
-<!ENTITY lagran           "&#x02112;" ><!--Lagrangian (script capital L)  -->
-<!ENTITY Lang             "&#x0300A;" ><!--left angle bracket, double -->
-<!ENTITY lang             "&#x02329;" ><!--/langle O: left angle bracket -->
-<!ENTITY lArr             "&#x021D0;" ><!--/Leftarrow A: is implied by -->
-<!ENTITY lbbrk            "&#x03014;" ><!--left broken bracket -->
-<!ENTITY le               "&#x02264;" ><!--/leq /le R: less-than-or-equal -->
-<!ENTITY loang            "&#x02989;" ><!--left open angular bracket -->
-<!ENTITY lobrk            "&#x0301A;" ><!--left open bracket -->
-<!ENTITY lopar            "&#x02985;" ><!--left open parenthesis -->
-<!ENTITY lowast           "&#x02217;" ><!--low asterisk -->
-<!ENTITY minus            "&#x02212;" ><!--B: minus sign -->
-<!ENTITY mnplus           "&#x02213;" ><!--/mp B: minus-or-plus sign -->
-<!ENTITY nabla            "&#x02207;" ><!--/nabla del, Hamilton operator -->
-<!ENTITY ne               "&#x02260;" ><!--/ne /neq R: not equal -->
-<!ENTITY nedot            "&#x02260;&#x00307;" ><!--not equal, dot -->
-<!ENTITY nhpar            "&#x02AF2;" ><!--not, horizontal, parallel -->
-<!ENTITY ni               "&#x0220B;" ><!--/ni /owns R: contains -->
-<!ENTITY nis              "&#x022FC;" ><!--contains, vertical bar on horizontal stroke -->
-<!ENTITY nisd             "&#x022FA;" ><!--contains, long horizontal stroke -->
-<!ENTITY niv              "&#x0220B;" ><!--contains, variant -->
-<!ENTITY Not              "&#x02AEC;" ><!--not with two horizontal strokes -->
-<!ENTITY notin            "&#x02209;" ><!--/notin N: negated set membership -->
-<!ENTITY notindot         "&#x02209;&#x00307;" ><!--negated set membership, dot above -->
-<!ENTITY notinva          "&#x02209;" ><!--negated set membership, variant -->
-<!ENTITY notinvb          "&#x022F7;" ><!--negated set membership, variant -->
-<!ENTITY notinvc          "&#x022F6;" ><!--negated set membership, variant -->
-<!ENTITY notni            "&#x0220C;" ><!--negated contains -->
-<!ENTITY notniva          "&#x0220C;" ><!--negated contains, variant -->
-<!ENTITY notnivb          "&#x022FE;" ><!--contains, variant -->
-<!ENTITY notnivc          "&#x022FD;" ><!--contains, variant -->
-<!ENTITY nparsl           "&#x02225;&#x0FE00;&#x020E5;" ><!--not parallel, slanted -->
-<!ENTITY npart            "&#x02202;&#x00338;" ><!--not partial differential -->
-<!ENTITY npolint          "&#x02A14;" ><!--line integration, not including the pole -->
-<!ENTITY nvinfin          "&#x029DE;" ><!--not, vert, infinity -->
-<!ENTITY olcross          "&#x029BB;" ><!--circle, cross -->
-<!ENTITY Or               "&#x02A54;" ><!--dbl logical or -->
-<!ENTITY or               "&#x02228;" ><!--/vee /lor B: logical or -->
-<!ENTITY ord              "&#x02A5D;" ><!--or, horizontal dash -->
-<!ENTITY order            "&#x02134;" ><!--order of (script small o)  -->
-<!ENTITY oror             "&#x02A56;" ><!--two logical or -->
-<!ENTITY orslope          "&#x02A57;" ><!--sloping large or -->
-<!ENTITY orv              "&#x02A5B;" ><!--or with middle stem -->
-<!ENTITY par              "&#x02225;" ><!--/parallel R: parallel -->
-<!ENTITY parsl            "&#x02225;&#x0FE00;" ><!--parallel, slanted -->
-<!ENTITY part             "&#x02202;" ><!--/partial partial differential -->
-<!ENTITY permil           "&#x02030;" ><!--per thousand -->
-<!ENTITY perp             "&#x022A5;" ><!--/perp R: perpendicular -->
-<!ENTITY pertenk          "&#x02031;" ><!--per 10 thousand -->
-<!ENTITY phmmat           "&#x02133;" ><!--physics M-matrix (script capital M)  -->
-<!ENTITY pointint         "&#x02A15;" ><!--integral around a point operator -->
-<!ENTITY Prime            "&#x02033;" ><!--double prime or second -->
-<!ENTITY prime            "&#x02032;" ><!--/prime prime or minute -->
-<!ENTITY profalar         "&#x0232E;" ><!--all-around profile -->
-<!ENTITY profline         "&#x02312;" ><!--profile of a line -->
-<!ENTITY profsurf         "&#x02313;" ><!--profile of a surface -->
-<!ENTITY prop             "&#x0221D;" ><!--/propto R: is proportional to -->
-<!ENTITY qint             "&#x02A0C;" ><!--/iiiint quadruple integral operator -->
-<!ENTITY qprime           "&#x02057;" ><!--quadruple prime -->
-<!ENTITY quatint          "&#x02A16;" ><!--quaternion integral operator -->
-<!ENTITY radic            "&#x0221A;" ><!--/surd radical -->
-<!ENTITY Rang             "&#x0300B;" ><!--right angle bracket, double -->
-<!ENTITY rang             "&#x0232A;" ><!--/rangle C: right angle bracket -->
-<!ENTITY rArr             "&#x021D2;" ><!--/Rightarrow A: implies -->
-<!ENTITY rbbrk            "&#x03015;" ><!--right broken bracket -->
-<!ENTITY roang            "&#x0298A;" ><!--right open angular bracket -->
-<!ENTITY robrk            "&#x0301B;" ><!--right open bracket -->
-<!ENTITY ropar            "&#x02986;" ><!--right open parenthesis -->
-<!ENTITY rppolint         "&#x02A12;" ><!--line integration, rectangular path around pole -->
-<!ENTITY scpolint         "&#x02A13;" ><!--line integration, semi-circular path around pole -->
-<!ENTITY sim              "&#x0223C;" ><!--/sim R: similar -->
-<!ENTITY simdot           "&#x02A6A;" ><!--similar, dot -->
-<!ENTITY sime             "&#x02243;" ><!--/simeq R: similar, equals -->
-<!ENTITY smeparsl         "&#x029E4;" ><!--similar, parallel, slanted, equal -->
-<!ENTITY square           "&#x025A1;" ><!--/square, square -->
-<!ENTITY squarf           "&#x025AA;" ><!--/blacksquare, square, filled  -->
-<!ENTITY sub              "&#x02282;" ><!--/subset R: subset or is implied by -->
-<!ENTITY sube             "&#x02286;" ><!--/subseteq R: subset, equals -->
-<!ENTITY sup              "&#x02283;" ><!--/supset R: superset or implies -->
-<!ENTITY supe             "&#x02287;" ><!--/supseteq R: superset, equals -->
-<!ENTITY tdot             "&#x020DB;" ><!--three dots above -->
-<!ENTITY there4           "&#x02234;" ><!--/therefore R: therefore -->
-<!ENTITY tint             "&#x0222D;" ><!--/iiint triple integral operator -->
-<!ENTITY top              "&#x022A4;" ><!--/top top -->
-<!ENTITY topbot           "&#x02336;" ><!--top and bottom -->
-<!ENTITY topcir           "&#x02AF1;" ><!--top, circle below -->
-<!ENTITY tprime           "&#x02034;" ><!--triple prime -->
-<!ENTITY utdot            "&#x022F0;" ><!--three dots, ascending -->
-<!ENTITY uwangle          "&#x029A7;" ><!--large upward pointing angle -->
-<!ENTITY vangrt           "&#x022BE;" ><!--right angle, variant -->
-<!ENTITY veeeq            "&#x0225A;" ><!--logical or, equals -->
-<!ENTITY Verbar           "&#x02016;" ><!--/Vert dbl vertical bar -->
-<!ENTITY wedgeq           "&#x02259;" ><!--/wedgeq R: corresponds to (wedge, equals) -->
-<!ENTITY xnis             "&#x022FB;" ><!--large contains, vertical bar on horizontal stroke -->
-
-
-<!-- Entity sets from informative annex to ISO 8879:1986 (SGML) ....... -->
-
-<!ENTITY % ent-isobox
-      PUBLIC "-//W3C//ENTITIES Box and Line Drawing for MathML 2.0//EN"
-             "iso8879/isobox.ent" >
-
-<!--
-     File isobox.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY boxDL            "&#x02557;" ><!--lower left quadrant -->
-<!ENTITY boxDl            "&#x02556;" ><!--lower left quadrant -->
-<!ENTITY boxdL            "&#x02555;" ><!--lower left quadrant -->
-<!ENTITY boxdl            "&#x02510;" ><!--lower left quadrant -->
-<!ENTITY boxDR            "&#x02554;" ><!--lower right quadrant -->
-<!ENTITY boxDr            "&#x02553;" ><!--lower right quadrant -->
-<!ENTITY boxdR            "&#x02552;" ><!--lower right quadrant -->
-<!ENTITY boxdr            "&#x0250C;" ><!--lower right quadrant -->
-<!ENTITY boxH             "&#x02550;" ><!--horizontal line -->
-<!ENTITY boxh             "&#x02500;" ><!--horizontal line  -->
-<!ENTITY boxHD            "&#x02566;" ><!--lower left and right quadrants -->
-<!ENTITY boxHd            "&#x02564;" ><!--lower left and right quadrants -->
-<!ENTITY boxhD            "&#x02565;" ><!--lower left and right quadrants -->
-<!ENTITY boxhd            "&#x0252C;" ><!--lower left and right quadrants -->
-<!ENTITY boxHU            "&#x02569;" ><!--upper left and right quadrants -->
-<!ENTITY boxHu            "&#x02567;" ><!--upper left and right quadrants -->
-<!ENTITY boxhU            "&#x02568;" ><!--upper left and right quadrants -->
-<!ENTITY boxhu            "&#x02534;" ><!--upper left and right quadrants -->
-<!ENTITY boxUL            "&#x0255D;" ><!--upper left quadrant -->
-<!ENTITY boxUl            "&#x0255C;" ><!--upper left quadrant -->
-<!ENTITY boxuL            "&#x0255B;" ><!--upper left quadrant -->
-<!ENTITY boxul            "&#x02518;" ><!--upper left quadrant -->
-<!ENTITY boxUR            "&#x0255A;" ><!--upper right quadrant -->
-<!ENTITY boxUr            "&#x02559;" ><!--upper right quadrant -->
-<!ENTITY boxuR            "&#x02558;" ><!--upper right quadrant -->
-<!ENTITY boxur            "&#x02514;" ><!--upper right quadrant -->
-<!ENTITY boxV             "&#x02551;" ><!--vertical line -->
-<!ENTITY boxv             "&#x02502;" ><!--vertical line -->
-<!ENTITY boxVH            "&#x0256C;" ><!--all four quadrants -->
-<!ENTITY boxVh            "&#x0256B;" ><!--all four quadrants -->
-<!ENTITY boxvH            "&#x0256A;" ><!--all four quadrants -->
-<!ENTITY boxvh            "&#x0253C;" ><!--all four quadrants -->
-<!ENTITY boxVL            "&#x02563;" ><!--upper and lower left quadrants -->
-<!ENTITY boxVl            "&#x02562;" ><!--upper and lower left quadrants -->
-<!ENTITY boxvL            "&#x02561;" ><!--upper and lower left quadrants -->
-<!ENTITY boxvl            "&#x02524;" ><!--upper and lower left quadrants -->
-<!ENTITY boxVR            "&#x02560;" ><!--upper and lower right quadrants -->
-<!ENTITY boxVr            "&#x0255F;" ><!--upper and lower right quadrants -->
-<!ENTITY boxvR            "&#x0255E;" ><!--upper and lower right quadrants -->
-<!ENTITY boxvr            "&#x0251C;" ><!--upper and lower right quadrants -->
-
-
-<!ENTITY % ent-isocyr1
-      PUBLIC "-//W3C//ENTITIES Russian Cyrillic for MathML 2.0//EN"
-             "iso8879/isocyr1.ent" >
-
-<!--
-     File isocyr1.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY Acy              "&#x00410;" ><!--=capital A, Cyrillic -->
-<!ENTITY acy              "&#x00430;" ><!--=small a, Cyrillic -->
-<!ENTITY Bcy              "&#x00411;" ><!--=capital BE, Cyrillic -->
-<!ENTITY bcy              "&#x00431;" ><!--=small be, Cyrillic -->
-<!ENTITY CHcy             "&#x00427;" ><!--=capital CHE, Cyrillic -->
-<!ENTITY chcy             "&#x00447;" ><!--=small che, Cyrillic -->
-<!ENTITY Dcy              "&#x00414;" ><!--=capital DE, Cyrillic -->
-<!ENTITY dcy              "&#x00434;" ><!--=small de, Cyrillic -->
-<!ENTITY Ecy              "&#x0042D;" ><!--=capital E, Cyrillic -->
-<!ENTITY ecy              "&#x0044D;" ><!--=small e, Cyrillic -->
-<!ENTITY Fcy              "&#x00424;" ><!--=capital EF, Cyrillic -->
-<!ENTITY fcy              "&#x00444;" ><!--=small ef, Cyrillic -->
-<!ENTITY Gcy              "&#x00413;" ><!--=capital GHE, Cyrillic -->
-<!ENTITY gcy              "&#x00433;" ><!--=small ghe, Cyrillic -->
-<!ENTITY HARDcy           "&#x0042A;" ><!--=capital HARD sign, Cyrillic -->
-<!ENTITY hardcy           "&#x0044A;" ><!--=small hard sign, Cyrillic -->
-<!ENTITY Icy              "&#x00418;" ><!--=capital I, Cyrillic -->
-<!ENTITY icy              "&#x00438;" ><!--=small i, Cyrillic -->
-<!ENTITY IEcy             "&#x00415;" ><!--=capital IE, Cyrillic -->
-<!ENTITY iecy             "&#x00435;" ><!--=small ie, Cyrillic -->
-<!ENTITY IOcy             "&#x00401;" ><!--=capital IO, Russian -->
-<!ENTITY iocy             "&#x00451;" ><!--=small io, Russian -->
-<!ENTITY Jcy              "&#x00419;" ><!--=capital short I, Cyrillic -->
-<!ENTITY jcy              "&#x00439;" ><!--=small short i, Cyrillic -->
-<!ENTITY Kcy              "&#x0041A;" ><!--=capital KA, Cyrillic -->
-<!ENTITY kcy              "&#x0043A;" ><!--=small ka, Cyrillic -->
-<!ENTITY KHcy             "&#x00425;" ><!--=capital HA, Cyrillic -->
-<!ENTITY khcy             "&#x00445;" ><!--=small ha, Cyrillic -->
-<!ENTITY Lcy              "&#x0041B;" ><!--=capital EL, Cyrillic -->
-<!ENTITY lcy              "&#x0043B;" ><!--=small el, Cyrillic -->
-<!ENTITY Mcy              "&#x0041C;" ><!--=capital EM, Cyrillic -->
-<!ENTITY mcy              "&#x0043C;" ><!--=small em, Cyrillic -->
-<!ENTITY Ncy              "&#x0041D;" ><!--=capital EN, Cyrillic -->
-<!ENTITY ncy              "&#x0043D;" ><!--=small en, Cyrillic -->
-<!ENTITY numero           "&#x02116;" ><!--=numero sign -->
-<!ENTITY Ocy              "&#x0041E;" ><!--=capital O, Cyrillic -->
-<!ENTITY ocy              "&#x0043E;" ><!--=small o, Cyrillic -->
-<!ENTITY Pcy              "&#x0041F;" ><!--=capital PE, Cyrillic -->
-<!ENTITY pcy              "&#x0043F;" ><!--=small pe, Cyrillic -->
-<!ENTITY Rcy              "&#x00420;" ><!--=capital ER, Cyrillic -->
-<!ENTITY rcy              "&#x00440;" ><!--=small er, Cyrillic -->
-<!ENTITY Scy              "&#x00421;" ><!--=capital ES, Cyrillic -->
-<!ENTITY scy              "&#x00441;" ><!--=small es, Cyrillic -->
-<!ENTITY SHCHcy           "&#x00429;" ><!--=capital SHCHA, Cyrillic -->
-<!ENTITY shchcy           "&#x00449;" ><!--=small shcha, Cyrillic -->
-<!ENTITY SHcy             "&#x00428;" ><!--=capital SHA, Cyrillic -->
-<!ENTITY shcy             "&#x00448;" ><!--=small sha, Cyrillic -->
-<!ENTITY SOFTcy           "&#x0042C;" ><!--=capital SOFT sign, Cyrillic -->
-<!ENTITY softcy           "&#x0044C;" ><!--=small soft sign, Cyrillic -->
-<!ENTITY Tcy              "&#x00422;" ><!--=capital TE, Cyrillic -->
-<!ENTITY tcy              "&#x00442;" ><!--=small te, Cyrillic -->
-<!ENTITY TScy             "&#x00426;" ><!--=capital TSE, Cyrillic -->
-<!ENTITY tscy             "&#x00446;" ><!--=small tse, Cyrillic -->
-<!ENTITY Ucy              "&#x00423;" ><!--=capital U, Cyrillic -->
-<!ENTITY ucy              "&#x00443;" ><!--=small u, Cyrillic -->
-<!ENTITY Vcy              "&#x00412;" ><!--=capital VE, Cyrillic -->
-<!ENTITY vcy              "&#x00432;" ><!--=small ve, Cyrillic -->
-<!ENTITY YAcy             "&#x0042F;" ><!--=capital YA, Cyrillic -->
-<!ENTITY yacy             "&#x0044F;" ><!--=small ya, Cyrillic -->
-<!ENTITY Ycy              "&#x0042B;" ><!--=capital YERU, Cyrillic -->
-<!ENTITY ycy              "&#x0044B;" ><!--=small yeru, Cyrillic -->
-<!ENTITY YUcy             "&#x0042E;" ><!--=capital YU, Cyrillic -->
-<!ENTITY yucy             "&#x0044E;" ><!--=small yu, Cyrillic -->
-<!ENTITY Zcy              "&#x00417;" ><!--=capital ZE, Cyrillic -->
-<!ENTITY zcy              "&#x00437;" ><!--=small ze, Cyrillic -->
-<!ENTITY ZHcy             "&#x00416;" ><!--=capital ZHE, Cyrillic -->
-<!ENTITY zhcy             "&#x00436;" ><!--=small zhe, Cyrillic -->
-
-
-<!ENTITY % ent-isocyr2
-      PUBLIC "-//W3C//ENTITIES Non-Russian Cyrillic for MathML 2.0//EN"
-             "iso8879/isocyr2.ent" >
-
-<!--
-     File isocyr2.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY DJcy             "&#x00402;" ><!--=capital DJE, Serbian -->
-<!ENTITY djcy             "&#x00452;" ><!--=small dje, Serbian -->
-<!ENTITY DScy             "&#x00405;" ><!--=capital DSE, Macedonian -->
-<!ENTITY dscy             "&#x00455;" ><!--=small dse, Macedonian -->
-<!ENTITY DZcy             "&#x0040F;" ><!--=capital dze, Serbian -->
-<!ENTITY dzcy             "&#x0045F;" ><!--=small dze, Serbian -->
-<!ENTITY GJcy             "&#x00403;" ><!--=capital GJE Macedonian -->
-<!ENTITY gjcy             "&#x00453;" ><!--=small gje, Macedonian -->
-<!ENTITY Iukcy            "&#x00406;" ><!--=capital I, Ukrainian -->
-<!ENTITY iukcy            "&#x00456;" ><!--=small i, Ukrainian -->
-<!ENTITY Jsercy           "&#x00408;" ><!--=capital JE, Serbian -->
-<!ENTITY jsercy           "&#x00458;" ><!--=small je, Serbian -->
-<!ENTITY Jukcy            "&#x00404;" ><!--=capital JE, Ukrainian -->
-<!ENTITY jukcy            "&#x00454;" ><!--=small je, Ukrainian -->
-<!ENTITY KJcy             "&#x0040C;" ><!--=capital KJE, Macedonian -->
-<!ENTITY kjcy             "&#x0045C;" ><!--=small kje Macedonian -->
-<!ENTITY LJcy             "&#x00409;" ><!--=capital LJE, Serbian -->
-<!ENTITY ljcy             "&#x00459;" ><!--=small lje, Serbian -->
-<!ENTITY NJcy             "&#x0040A;" ><!--=capital NJE, Serbian -->
-<!ENTITY njcy             "&#x0045A;" ><!--=small nje, Serbian -->
-<!ENTITY TSHcy            "&#x0040B;" ><!--=capital TSHE, Serbian -->
-<!ENTITY tshcy            "&#x0045B;" ><!--=small tshe, Serbian -->
-<!ENTITY Ubrcy            "&#x0040E;" ><!--=capital U, Byelorussian -->
-<!ENTITY ubrcy            "&#x0045E;" ><!--=small u, Byelorussian -->
-<!ENTITY YIcy             "&#x00407;" ><!--=capital YI, Ukrainian -->
-<!ENTITY yicy             "&#x00457;" ><!--=small yi, Ukrainian -->
-
-
-<!ENTITY % ent-isodia
-      PUBLIC "-//W3C//ENTITIES Diacritical Marks for MathML 2.0//EN"
-             "iso8879/isodia.ent" >
-
-<!--
-     File isodia.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY acute            "&#x000B4;" ><!--=acute accent -->
-<!ENTITY breve            "&#x002D8;" ><!--=breve -->
-<!ENTITY caron            "&#x002C7;" ><!--=caron -->
-<!ENTITY cedil            "&#x000B8;" ><!--=cedilla -->
-<!ENTITY circ             "&#x002C6;" ><!--circumflex accent -->
-<!ENTITY dblac            "&#x002DD;" ><!--=double acute accent -->
-<!ENTITY die              "&#x000A8;" ><!--=dieresis -->
-<!ENTITY dot              "&#x002D9;" ><!--=dot above -->
-<!ENTITY grave            "&#x00060;" ><!--=grave accent -->
-<!ENTITY macr             "&#x000AF;" ><!--=macron -->
-<!ENTITY ogon             "&#x002DB;" ><!--=ogonek -->
-<!ENTITY ring             "&#x002DA;" ><!--=ring -->
-<!ENTITY tilde            "&#x002DC;" ><!--=tilde -->
-<!ENTITY uml              "&#x000A8;" ><!--=umlaut mark -->
-
-
-<!ENTITY % ent-isolat1
-      PUBLIC "-//W3C//ENTITIES Added Latin 1 for MathML 2.0//EN"
-             "iso8879/isolat1.ent" >
-
-<!--
-     File isolat1.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY Aacute           "&#x000C1;" ><!--=capital A, acute accent -->
-<!ENTITY aacute           "&#x000E1;" ><!--=small a, acute accent -->
-<!ENTITY Acirc            "&#x000C2;" ><!--=capital A, circumflex accent -->
-<!ENTITY acirc            "&#x000E2;" ><!--=small a, circumflex accent -->
-<!ENTITY AElig            "&#x000C6;" ><!--=capital AE diphthong (ligature) -->
-<!ENTITY aelig            "&#x000E6;" ><!--=small ae diphthong (ligature) -->
-<!ENTITY Agrave           "&#x000C0;" ><!--=capital A, grave accent -->
-<!ENTITY agrave           "&#x000E0;" ><!--=small a, grave accent -->
-<!ENTITY Aring            "&#x000C5;" ><!--=capital A, ring -->
-<!ENTITY aring            "&#x000E5;" ><!--=small a, ring -->
-<!ENTITY Atilde           "&#x000C3;" ><!--=capital A, tilde -->
-<!ENTITY atilde           "&#x000E3;" ><!--=small a, tilde -->
-<!ENTITY Auml             "&#x000C4;" ><!--=capital A, dieresis or umlaut mark -->
-<!ENTITY auml             "&#x000E4;" ><!--=small a, dieresis or umlaut mark -->
-<!ENTITY Ccedil           "&#x000C7;" ><!--=capital C, cedilla -->
-<!ENTITY ccedil           "&#x000E7;" ><!--=small c, cedilla -->
-<!ENTITY Eacute           "&#x000C9;" ><!--=capital E, acute accent -->
-<!ENTITY eacute           "&#x000E9;" ><!--=small e, acute accent -->
-<!ENTITY Ecirc            "&#x000CA;" ><!--=capital E, circumflex accent -->
-<!ENTITY ecirc            "&#x000EA;" ><!--=small e, circumflex accent -->
-<!ENTITY Egrave           "&#x000C8;" ><!--=capital E, grave accent -->
-<!ENTITY egrave           "&#x000E8;" ><!--=small e, grave accent -->
-<!ENTITY ETH              "&#x000D0;" ><!--=capital Eth, Icelandic -->
-<!ENTITY eth              "&#x000F0;" ><!--=small eth, Icelandic -->
-<!ENTITY Euml             "&#x000CB;" ><!--=capital E, dieresis or umlaut mark -->
-<!ENTITY euml             "&#x000EB;" ><!--=small e, dieresis or umlaut mark -->
-<!ENTITY Iacute           "&#x000CD;" ><!--=capital I, acute accent -->
-<!ENTITY iacute           "&#x000ED;" ><!--=small i, acute accent -->
-<!ENTITY Icirc            "&#x000CE;" ><!--=capital I, circumflex accent -->
-<!ENTITY icirc            "&#x000EE;" ><!--=small i, circumflex accent -->
-<!ENTITY Igrave           "&#x000CC;" ><!--=capital I, grave accent -->
-<!ENTITY igrave           "&#x000EC;" ><!--=small i, grave accent -->
-<!ENTITY Iuml             "&#x000CF;" ><!--=capital I, dieresis or umlaut mark -->
-<!ENTITY iuml             "&#x000EF;" ><!--=small i, dieresis or umlaut mark -->
-<!ENTITY Ntilde           "&#x000D1;" ><!--=capital N, tilde -->
-<!ENTITY ntilde           "&#x000F1;" ><!--=small n, tilde -->
-<!ENTITY Oacute           "&#x000D3;" ><!--=capital O, acute accent -->
-<!ENTITY oacute           "&#x000F3;" ><!--=small o, acute accent -->
-<!ENTITY Ocirc            "&#x000D4;" ><!--=capital O, circumflex accent -->
-<!ENTITY ocirc            "&#x000F4;" ><!--=small o, circumflex accent -->
-<!ENTITY Ograve           "&#x000D2;" ><!--=capital O, grave accent -->
-<!ENTITY ograve           "&#x000F2;" ><!--=small o, grave accent -->
-<!ENTITY Oslash           "&#x000D8;" ><!--=capital O, slash -->
-<!ENTITY oslash           "&#x000F8;" ><!--latin small letter o with stroke -->
-<!ENTITY Otilde           "&#x000D5;" ><!--=capital O, tilde -->
-<!ENTITY otilde           "&#x000F5;" ><!--=small o, tilde -->
-<!ENTITY Ouml             "&#x000D6;" ><!--=capital O, dieresis or umlaut mark -->
-<!ENTITY ouml             "&#x000F6;" ><!--=small o, dieresis or umlaut mark -->
-<!ENTITY szlig            "&#x000DF;" ><!--=small sharp s, German (sz ligature) -->
-<!ENTITY THORN            "&#x000DE;" ><!--=capital THORN, Icelandic -->
-<!ENTITY thorn            "&#x000FE;" ><!--=small thorn, Icelandic -->
-<!ENTITY Uacute           "&#x000DA;" ><!--=capital U, acute accent -->
-<!ENTITY uacute           "&#x000FA;" ><!--=small u, acute accent -->
-<!ENTITY Ucirc            "&#x000DB;" ><!--=capital U, circumflex accent -->
-<!ENTITY ucirc            "&#x000FB;" ><!--=small u, circumflex accent -->
-<!ENTITY Ugrave           "&#x000D9;" ><!--=capital U, grave accent -->
-<!ENTITY ugrave           "&#x000F9;" ><!--=small u, grave accent -->
-<!ENTITY Uuml             "&#x000DC;" ><!--=capital U, dieresis or umlaut mark -->
-<!ENTITY uuml             "&#x000FC;" ><!--=small u, dieresis or umlaut mark -->
-<!ENTITY Yacute           "&#x000DD;" ><!--=capital Y, acute accent -->
-<!ENTITY yacute           "&#x000FD;" ><!--=small y, acute accent -->
-<!ENTITY yuml             "&#x000FF;" ><!--=small y, dieresis or umlaut mark -->
-
-
-<!ENTITY % ent-isolat2
-      PUBLIC "-//W3C//ENTITIES Added Latin 2 for MathML 2.0//EN"
-             "iso8879/isolat2.ent" >
-
-<!--
-     File isolat2.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY Abreve           "&#x00102;" ><!--=capital A, breve -->
-<!ENTITY abreve           "&#x00103;" ><!--=small a, breve -->
-<!ENTITY Amacr            "&#x00100;" ><!--=capital A, macron -->
-<!ENTITY amacr            "&#x00101;" ><!--=small a, macron -->
-<!ENTITY Aogon            "&#x00104;" ><!--=capital A, ogonek -->
-<!ENTITY aogon            "&#x00105;" ><!--=small a, ogonek -->
-<!ENTITY Cacute           "&#x00106;" ><!--=capital C, acute accent -->
-<!ENTITY cacute           "&#x00107;" ><!--=small c, acute accent -->
-<!ENTITY Ccaron           "&#x0010C;" ><!--=capital C, caron -->
-<!ENTITY ccaron           "&#x0010D;" ><!--=small c, caron -->
-<!ENTITY Ccirc            "&#x00108;" ><!--=capital C, circumflex accent -->
-<!ENTITY ccirc            "&#x00109;" ><!--=small c, circumflex accent -->
-<!ENTITY Cdot             "&#x0010A;" ><!--=capital C, dot above -->
-<!ENTITY cdot             "&#x0010B;" ><!--=small c, dot above -->
-<!ENTITY Dcaron           "&#x0010E;" ><!--=capital D, caron -->
-<!ENTITY dcaron           "&#x0010F;" ><!--=small d, caron -->
-<!ENTITY Dstrok           "&#x00110;" ><!--=capital D, stroke -->
-<!ENTITY dstrok           "&#x00111;" ><!--=small d, stroke -->
-<!ENTITY Ecaron           "&#x0011A;" ><!--=capital E, caron -->
-<!ENTITY ecaron           "&#x0011B;" ><!--=small e, caron -->
-<!ENTITY Edot             "&#x00116;" ><!--=capital E, dot above -->
-<!ENTITY edot             "&#x00117;" ><!--=small e, dot above -->
-<!ENTITY Emacr            "&#x00112;" ><!--=capital E, macron -->
-<!ENTITY emacr            "&#x00113;" ><!--=small e, macron -->
-<!ENTITY ENG              "&#x0014A;" ><!--=capital ENG, Lapp -->
-<!ENTITY eng              "&#x0014B;" ><!--=small eng, Lapp -->
-<!ENTITY Eogon            "&#x00118;" ><!--=capital E, ogonek -->
-<!ENTITY eogon            "&#x00119;" ><!--=small e, ogonek -->
-<!ENTITY gacute           "&#x001F5;" ><!--=small g, acute accent -->
-<!ENTITY Gbreve           "&#x0011E;" ><!--=capital G, breve -->
-<!ENTITY gbreve           "&#x0011F;" ><!--=small g, breve -->
-<!ENTITY Gcedil           "&#x00122;" ><!--=capital G, cedilla -->
-<!ENTITY Gcirc            "&#x0011C;" ><!--=capital G, circumflex accent -->
-<!ENTITY gcirc            "&#x0011D;" ><!--=small g, circumflex accent -->
-<!ENTITY Gdot             "&#x00120;" ><!--=capital G, dot above -->
-<!ENTITY gdot             "&#x00121;" ><!--=small g, dot above -->
-<!ENTITY Hcirc            "&#x00124;" ><!--=capital H, circumflex accent -->
-<!ENTITY hcirc            "&#x00125;" ><!--=small h, circumflex accent -->
-<!ENTITY Hstrok           "&#x00126;" ><!--=capital H, stroke -->
-<!ENTITY hstrok           "&#x00127;" ><!--=small h, stroke -->
-<!ENTITY Idot             "&#x00130;" ><!--=capital I, dot above -->
-<!ENTITY IJlig            "&#x00132;" ><!--=capital IJ ligature -->
-<!ENTITY ijlig            "&#x00133;" ><!--=small ij ligature -->
-<!ENTITY Imacr            "&#x0012A;" ><!--=capital I, macron -->
-<!ENTITY imacr            "&#x0012B;" ><!--=small i, macron -->
-<!ENTITY inodot           "&#x00131;" ><!--=small i without dot -->
-<!ENTITY Iogon            "&#x0012E;" ><!--=capital I, ogonek -->
-<!ENTITY iogon            "&#x0012F;" ><!--=small i, ogonek -->
-<!ENTITY Itilde           "&#x00128;" ><!--=capital I, tilde -->
-<!ENTITY itilde           "&#x00129;" ><!--=small i, tilde -->
-<!ENTITY Jcirc            "&#x00134;" ><!--=capital J, circumflex accent -->
-<!ENTITY jcirc            "&#x00135;" ><!--=small j, circumflex accent -->
-<!ENTITY Kcedil           "&#x00136;" ><!--=capital K, cedilla -->
-<!ENTITY kcedil           "&#x00137;" ><!--=small k, cedilla -->
-<!ENTITY kgreen           "&#x00138;" ><!--=small k, Greenlandic -->
-<!ENTITY Lacute           "&#x00139;" ><!--=capital L, acute accent -->
-<!ENTITY lacute           "&#x0013A;" ><!--=small l, acute accent -->
-<!ENTITY Lcaron           "&#x0013D;" ><!--=capital L, caron -->
-<!ENTITY lcaron           "&#x0013E;" ><!--=small l, caron -->
-<!ENTITY Lcedil           "&#x0013B;" ><!--=capital L, cedilla -->
-<!ENTITY lcedil           "&#x0013C;" ><!--=small l, cedilla -->
-<!ENTITY Lmidot           "&#x0013F;" ><!--=capital L, middle dot -->
-<!ENTITY lmidot           "&#x00140;" ><!--=small l, middle dot -->
-<!ENTITY Lstrok           "&#x00141;" ><!--=capital L, stroke -->
-<!ENTITY lstrok           "&#x00142;" ><!--=small l, stroke -->
-<!ENTITY Nacute           "&#x00143;" ><!--=capital N, acute accent -->
-<!ENTITY nacute           "&#x00144;" ><!--=small n, acute accent -->
-<!ENTITY napos            "&#x00149;" ><!--=small n, apostrophe -->
-<!ENTITY Ncaron           "&#x00147;" ><!--=capital N, caron -->
-<!ENTITY ncaron           "&#x00148;" ><!--=small n, caron -->
-<!ENTITY Ncedil           "&#x00145;" ><!--=capital N, cedilla -->
-<!ENTITY ncedil           "&#x00146;" ><!--=small n, cedilla -->
-<!ENTITY Odblac           "&#x00150;" ><!--=capital O, double acute accent -->
-<!ENTITY odblac           "&#x00151;" ><!--=small o, double acute accent -->
-<!ENTITY OElig            "&#x00152;" ><!--=capital OE ligature -->
-<!ENTITY oelig            "&#x00153;" ><!--=small oe ligature -->
-<!ENTITY Omacr            "&#x0014C;" ><!--=capital O, macron -->
-<!ENTITY omacr            "&#x0014D;" ><!--=small o, macron -->
-<!ENTITY Racute           "&#x00154;" ><!--=capital R, acute accent -->
-<!ENTITY racute           "&#x00155;" ><!--=small r, acute accent -->
-<!ENTITY Rcaron           "&#x00158;" ><!--=capital R, caron -->
-<!ENTITY rcaron           "&#x00159;" ><!--=small r, caron -->
-<!ENTITY Rcedil           "&#x00156;" ><!--=capital R, cedilla -->
-<!ENTITY rcedil           "&#x00157;" ><!--=small r, cedilla -->
-<!ENTITY Sacute           "&#x0015A;" ><!--=capital S, acute accent -->
-<!ENTITY sacute           "&#x0015B;" ><!--=small s, acute accent -->
-<!ENTITY Scaron           "&#x00160;" ><!--=capital S, caron -->
-<!ENTITY scaron           "&#x00161;" ><!--=small s, caron -->
-<!ENTITY Scedil           "&#x0015E;" ><!--=capital S, cedilla -->
-<!ENTITY scedil           "&#x0015F;" ><!--=small s, cedilla -->
-<!ENTITY Scirc            "&#x0015C;" ><!--=capital S, circumflex accent -->
-<!ENTITY scirc            "&#x0015D;" ><!--=small s, circumflex accent -->
-<!ENTITY Tcaron           "&#x00164;" ><!--=capital T, caron -->
-<!ENTITY tcaron           "&#x00165;" ><!--=small t, caron -->
-<!ENTITY Tcedil           "&#x00162;" ><!--=capital T, cedilla -->
-<!ENTITY tcedil           "&#x00163;" ><!--=small t, cedilla -->
-<!ENTITY Tstrok           "&#x00166;" ><!--=capital T, stroke -->
-<!ENTITY tstrok           "&#x00167;" ><!--=small t, stroke -->
-<!ENTITY Ubreve           "&#x0016C;" ><!--=capital U, breve -->
-<!ENTITY ubreve           "&#x0016D;" ><!--=small u, breve -->
-<!ENTITY Udblac           "&#x00170;" ><!--=capital U, double acute accent -->
-<!ENTITY udblac           "&#x00171;" ><!--=small u, double acute accent -->
-<!ENTITY Umacr            "&#x0016A;" ><!--=capital U, macron -->
-<!ENTITY umacr            "&#x0016B;" ><!--=small u, macron -->
-<!ENTITY Uogon            "&#x00172;" ><!--=capital U, ogonek -->
-<!ENTITY uogon            "&#x00173;" ><!--=small u, ogonek -->
-<!ENTITY Uring            "&#x0016E;" ><!--=capital U, ring -->
-<!ENTITY uring            "&#x0016F;" ><!--=small u, ring -->
-<!ENTITY Utilde           "&#x00168;" ><!--=capital U, tilde -->
-<!ENTITY utilde           "&#x00169;" ><!--=small u, tilde -->
-<!ENTITY Wcirc            "&#x00174;" ><!--=capital W, circumflex accent -->
-<!ENTITY wcirc            "&#x00175;" ><!--=small w, circumflex accent -->
-<!ENTITY Ycirc            "&#x00176;" ><!--=capital Y, circumflex accent -->
-<!ENTITY ycirc            "&#x00177;" ><!--=small y, circumflex accent -->
-<!ENTITY Yuml             "&#x00178;" ><!--=capital Y, dieresis or umlaut mark -->
-<!ENTITY Zacute           "&#x00179;" ><!--=capital Z, acute accent -->
-<!ENTITY zacute           "&#x0017A;" ><!--=small z, acute accent -->
-<!ENTITY Zcaron           "&#x0017D;" ><!--=capital Z, caron -->
-<!ENTITY zcaron           "&#x0017E;" ><!--=small z, caron -->
-<!ENTITY Zdot             "&#x0017B;" ><!--=capital Z, dot above -->
-<!ENTITY zdot             "&#x0017C;" ><!--=small z, dot above -->
-
-
-<!ENTITY % ent-isonum
-      PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN"
-             "iso8879/isonum.ent" >
-
-<!--
-     File isonum.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY amp              "&#38;#38;" ><!--=ampersand -->
-<!ENTITY apos             "&#x00027;" ><!--=apostrophe -->
-<!ENTITY ast              "&#x0002A;" ><!--/ast B: =asterisk -->
-<!ENTITY brvbar           "&#x000A6;" ><!--=broken (vertical) bar -->
-<!ENTITY bsol             "&#x0005C;" ><!--/backslash =reverse solidus -->
-<!ENTITY cent             "&#x000A2;" ><!--=cent sign -->
-<!ENTITY colon            "&#x0003A;" ><!--/colon P: -->
-<!ENTITY comma            "&#x0002C;" ><!--P: =comma -->
-<!ENTITY commat           "&#x00040;" ><!--=commercial at -->
-<!ENTITY copy             "&#x000A9;" ><!--=copyright sign -->
-<!ENTITY curren           "&#x000A4;" ><!--=general currency sign -->
-<!ENTITY darr             "&#x02193;" ><!--/downarrow A: =downward arrow -->
-<!ENTITY deg              "&#x000B0;" ><!--=degree sign -->
-<!ENTITY divide           "&#x000F7;" ><!--/div B: =divide sign -->
-<!ENTITY dollar           "&#x00024;" ><!--=dollar sign -->
-<!ENTITY equals           "&#x0003D;" ><!--=equals sign R: -->
-<!ENTITY excl             "&#x00021;" ><!--=exclamation mark -->
-<!ENTITY frac12           "&#x000BD;" ><!--=fraction one-half -->
-<!ENTITY frac14           "&#x000BC;" ><!--=fraction one-quarter -->
-<!ENTITY frac18           "&#x0215B;" ><!--=fraction one-eighth -->
-<!ENTITY frac34           "&#x000BE;" ><!--=fraction three-quarters -->
-<!ENTITY frac38           "&#x0215C;" ><!--=fraction three-eighths -->
-<!ENTITY frac58           "&#x0215D;" ><!--=fraction five-eighths -->
-<!ENTITY frac78           "&#x0215E;" ><!--=fraction seven-eighths -->
-<!ENTITY gt               "&#x0003E;" ><!--=greater-than sign R: -->
-<!ENTITY half             "&#x000BD;" ><!--=fraction one-half -->
-<!ENTITY horbar           "&#x02015;" ><!--=horizontal bar -->
-<!ENTITY hyphen           "&#x02010;" ><!--=hyphen -->
-<!ENTITY iexcl            "&#x000A1;" ><!--=inverted exclamation mark -->
-<!ENTITY iquest           "&#x000BF;" ><!--=inverted question mark -->
-<!ENTITY laquo            "&#x000AB;" ><!--=angle quotation mark, left -->
-<!ENTITY larr             "&#x02190;" ><!--/leftarrow /gets A: =leftward arrow -->
-<!ENTITY lcub             "&#x0007B;" ><!--/lbrace O: =left curly bracket -->
-<!ENTITY ldquo            "&#x0201C;" ><!--=double quotation mark, left -->
-<!ENTITY lowbar           "&#x0005F;" ><!--=low line -->
-<!ENTITY lpar             "&#x00028;" ><!--O: =left parenthesis -->
-<!ENTITY lsqb             "&#x0005B;" ><!--/lbrack O: =left square bracket -->
-<!ENTITY lsquo            "&#x02018;" ><!--=single quotation mark, left -->
-<!ENTITY lt               "&#38;#60;" ><!--=less-than sign R: -->
-<!ENTITY micro            "&#x000B5;" ><!--=micro sign -->
-<!ENTITY middot           "&#x000B7;" ><!--/centerdot B: =middle dot -->
-<!ENTITY nbsp             "&#x000A0;" ><!--=no break (required) space -->
-<!ENTITY not              "&#x000AC;" ><!--/neg /lnot =not sign -->
-<!ENTITY num              "&#x00023;" ><!--=number sign -->
-<!ENTITY ohm              "&#x02126;" ><!--=ohm sign -->
-<!ENTITY ordf             "&#x000AA;" ><!--=ordinal indicator, feminine -->
-<!ENTITY ordm             "&#x000BA;" ><!--=ordinal indicator, masculine -->
-<!ENTITY para             "&#x000B6;" ><!--=pilcrow (paragraph sign) -->
-<!ENTITY percnt           "&#x00025;" ><!--=percent sign -->
-<!ENTITY period           "&#x0002E;" ><!--=full stop, period -->
-<!ENTITY plus             "&#x0002B;" ><!--=plus sign B: -->
-<!ENTITY plusmn           "&#x000B1;" ><!--/pm B: =plus-or-minus sign -->
-<!ENTITY pound            "&#x000A3;" ><!--=pound sign -->
-<!ENTITY quest            "&#x0003F;" ><!--=question mark -->
-<!ENTITY quot             "&#x00022;" ><!--=quotation mark -->
-<!ENTITY raquo            "&#x000BB;" ><!--=angle quotation mark, right -->
-<!ENTITY rarr             "&#x02192;" ><!--/rightarrow /to A: =rightward arrow -->
-<!ENTITY rcub             "&#x0007D;" ><!--/rbrace C: =right curly bracket -->
-<!ENTITY rdquo            "&#x0201D;" ><!--=double quotation mark, right -->
-<!ENTITY reg              "&#x000AE;" ><!--/circledR =registered sign -->
-<!ENTITY rpar             "&#x00029;" ><!--C: =right parenthesis -->
-<!ENTITY rsqb             "&#x0005D;" ><!--/rbrack C: =right square bracket -->
-<!ENTITY rsquo            "&#x02019;" ><!--=single quotation mark, right -->
-<!ENTITY sect             "&#x000A7;" ><!--=section sign -->
-<!ENTITY semi             "&#x0003B;" ><!--=semicolon P: -->
-<!ENTITY shy              "&#x000AD;" ><!--=soft hyphen -->
-<!ENTITY sol              "&#x0002F;" ><!--=solidus -->
-<!ENTITY sung             "&#x0266A;" ><!--=music note (sung text sign) -->
-<!ENTITY sup1             "&#x000B9;" ><!--=superscript one -->
-<!ENTITY sup2             "&#x000B2;" ><!--=superscript two -->
-<!ENTITY sup3             "&#x000B3;" ><!--=superscript three -->
-<!ENTITY times            "&#x000D7;" ><!--/times B: =multiply sign -->
-<!ENTITY trade            "&#x02122;" ><!--=trade mark sign -->
-<!ENTITY uarr             "&#x02191;" ><!--/uparrow A: =upward arrow -->
-<!ENTITY verbar           "&#x0007C;" ><!--/vert =vertical bar -->
-<!ENTITY yen              "&#x000A5;" ><!--/yen =yen sign -->
-
-
-<!ENTITY % ent-isopub
-      PUBLIC "-//W3C//ENTITIES Publishing for MathML 2.0//EN"
-             "iso8879/isopub.ent" >
-
-<!--
-     File isopub.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     Entity names in this file are derived from files carrying the
-     following notice:
-
-     (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.
-
--->
-
-<!ENTITY blank            "&#x02423;" ><!--=significant blank symbol -->
-<!ENTITY blk12            "&#x02592;" ><!--=50% shaded block -->
-<!ENTITY blk14            "&#x02591;" ><!--=25% shaded block -->
-<!ENTITY blk34            "&#x02593;" ><!--=75% shaded block -->
-<!ENTITY block            "&#x02588;" ><!--=full block -->
-<!ENTITY bull             "&#x02022;" ><!--/bullet B: =round bullet, filled -->
-<!ENTITY caret            "&#x02041;" ><!--=caret (insertion mark) -->
-<!ENTITY check            "&#x02713;" ><!--/checkmark =tick, check mark -->
-<!ENTITY cir              "&#x025CB;" ><!--/circ B: =circle, open -->
-<!ENTITY clubs            "&#x02663;" ><!--/clubsuit =club suit symbol  -->
-<!ENTITY copysr           "&#x02117;" ><!--=sound recording copyright sign -->
-<!ENTITY cross            "&#x02717;" ><!--=ballot cross -->
-<!ENTITY Dagger           "&#x02021;" ><!--/ddagger B: =double dagger -->
-<!ENTITY dagger           "&#x02020;" ><!--/dagger B: =dagger -->
-<!ENTITY dash             "&#x02010;" ><!--=hyphen (true graphic) -->
-<!ENTITY diams            "&#x02666;" ><!--/diamondsuit =diamond suit symbol  -->
-<!ENTITY dlcrop           "&#x0230D;" ><!--downward left crop mark  -->
-<!ENTITY drcrop           "&#x0230C;" ><!--downward right crop mark  -->
-<!ENTITY dtri             "&#x025BF;" ><!--/triangledown =down triangle, open -->
-<!ENTITY dtrif            "&#x025BE;" ><!--/blacktriangledown =dn tri, filled -->
-<!ENTITY emsp             "&#x02003;" ><!--=em space -->
-<!ENTITY emsp13           "&#x02004;" ><!--=1/3-em space -->
-<!ENTITY emsp14           "&#x02005;" ><!--=1/4-em space -->
-<!ENTITY ensp             "&#x02002;" ><!--=en space (1/2-em) -->
-<!ENTITY female           "&#x02640;" ><!--=female symbol -->
-<!ENTITY ffilig           "&#x0FB03;" ><!--small ffi ligature -->
-<!ENTITY fflig            "&#x0FB00;" ><!--small ff ligature -->
-<!ENTITY ffllig           "&#x0FB04;" ><!--small ffl ligature -->
-<!ENTITY filig            "&#x0FB01;" ><!--small fi ligature -->
-<!ENTITY flat             "&#x0266D;" ><!--/flat =musical flat -->
-<!ENTITY fllig            "&#x0FB02;" ><!--small fl ligature -->
-<!ENTITY frac13           "&#x02153;" ><!--=fraction one-third -->
-<!ENTITY frac15           "&#x02155;" ><!--=fraction one-fifth -->
-<!ENTITY frac16           "&#x02159;" ><!--=fraction one-sixth -->
-<!ENTITY frac23           "&#x02154;" ><!--=fraction two-thirds -->
-<!ENTITY frac25           "&#x02156;" ><!--=fraction two-fifths -->
-<!ENTITY frac35           "&#x02157;" ><!--=fraction three-fifths -->
-<!ENTITY frac45           "&#x02158;" ><!--=fraction four-fifths -->
-<!ENTITY frac56           "&#x0215A;" ><!--=fraction five-sixths -->
-<!ENTITY hairsp           "&#x0200A;" ><!--=hair space -->
-<!ENTITY hellip           "&#x02026;" ><!--=ellipsis (horizontal) -->
-<!ENTITY hybull           "&#x02043;" ><!--rectangle, filled (hyphen bullet) -->
-<!ENTITY incare           "&#x02105;" ><!--=in-care-of symbol -->
-<!ENTITY ldquor           "&#x0201E;" ><!--=rising dbl quote, left (low) -->
-<!ENTITY lhblk            "&#x02584;" ><!--=lower half block -->
-<!ENTITY loz              "&#x025CA;" ><!--/lozenge - lozenge or total mark -->
-<!ENTITY lozf             "&#x029EB;" ><!--/blacklozenge - lozenge, filled -->
-<!ENTITY lsquor           "&#x0201A;" ><!--=rising single quote, left (low) -->
-<!ENTITY ltri             "&#x025C3;" ><!--/triangleleft B: l triangle, open -->
-<!ENTITY ltrif            "&#x025C2;" ><!--/blacktriangleleft R: =l tri, filled -->
-<!ENTITY male             "&#x02642;" ><!--=male symbol -->
-<!ENTITY malt             "&#x02720;" ><!--/maltese =maltese cross -->
-<!ENTITY marker           "&#x025AE;" ><!--=histogram marker -->
-<!ENTITY mdash            "&#x02014;" ><!--=em dash  -->
-<!ENTITY mldr             "&#x02026;" ><!--em leader -->
-<!ENTITY natur            "&#x0266E;" ><!--/natural - music natural -->
-<!ENTITY ndash            "&#x02013;" ><!--=en dash -->
-<!ENTITY nldr             "&#x02025;" ><!--=double baseline dot (en leader) -->
-<!ENTITY numsp            "&#x02007;" ><!--=digit space (width of a number) -->
-<!ENTITY phone            "&#x0260E;" ><!--=telephone symbol  -->
-<!ENTITY puncsp           "&#x02008;" ><!--=punctuation space (width of comma) -->
-<!ENTITY rdquor           "&#x0201D;" ><!--rising dbl quote, right (high) -->
-<!ENTITY rect             "&#x025AD;" ><!--=rectangle, open -->
-<!ENTITY rsquor           "&#x02019;" ><!--rising single quote, right (high) -->
-<!ENTITY rtri             "&#x025B9;" ><!--/triangleright B: r triangle, open -->
-<!ENTITY rtrif            "&#x025B8;" ><!--/blacktriangleright R: =r tri, filled -->
-<!ENTITY rx               "&#x0211E;" ><!--pharmaceutical prescription (Rx) -->
-<!ENTITY sext             "&#x02736;" ><!--sextile (6-pointed star) -->
-<!ENTITY sharp            "&#x0266F;" ><!--/sharp =musical sharp -->
-<!ENTITY spades           "&#x02660;" ><!--/spadesuit =spades suit symbol  -->
-<!ENTITY squ              "&#x025A1;" ><!--=square, open -->
-<!ENTITY squf             "&#x025AA;" ><!--/blacksquare =sq bullet, filled -->
-<!ENTITY star             "&#x022C6;" ><!--=star, open -->
-<!ENTITY starf            "&#x02605;" ><!--/bigstar - star, filled  -->
-<!ENTITY target           "&#x02316;" ><!--register mark or target -->
-<!ENTITY telrec           "&#x02315;" ><!--=telephone recorder symbol -->
-<!ENTITY thinsp           "&#x02009;" ><!--=thin space (1/6-em) -->
-<!ENTITY uhblk            "&#x02580;" ><!--=upper half block -->
-<!ENTITY ulcrop           "&#x0230F;" ><!--upward left crop mark  -->
-<!ENTITY urcrop           "&#x0230E;" ><!--upward right crop mark  -->
-<!ENTITY utri             "&#x025B5;" ><!--/triangle =up triangle, open -->
-<!ENTITY utrif            "&#x025B4;" ><!--/blacktriangle =up tri, filled -->
-<!ENTITY vellip           "&#x022EE;" ><!--vertical ellipsis -->
-
-
-<!-- New characters defined by MathML ............................ -->
-
-<!ENTITY % ent-mmlextra
-      PUBLIC "-//W3C//ENTITIES Extra for MathML 2.0//EN"
-             "mathml/mmlextra.ent" >
-
-<!--
-     File mmlextra.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
--->
-
-<!ENTITY % plane1D  "&#38;#38;#x1D">
-
-<!ENTITY af               "&#x02061;" ><!--character showing function application in presentation tagging -->
-<!ENTITY aopf             "%plane1D;552;" ><!-- -->
-<!ENTITY asympeq          "&#x0224D;" ><!--Old ISOAMSR asymp (for HTML compatibility) -->
-<!ENTITY bopf             "%plane1D;553;" ><!-- -->
-<!ENTITY copf             "%plane1D;554;" ><!-- -->
-<!ENTITY Cross            "&#x02A2F;" ><!--cross or vector product -->
-<!ENTITY DD               "&#x02145;" ><!--D for use in differentials, e.g., within integrals -->
-<!ENTITY dd               "&#x02146;" ><!--d for use in differentials, e.g., within integrals -->
-<!ENTITY dopf             "%plane1D;555;" ><!-- -->
-<!ENTITY DownArrowBar     "&#x02913;" ><!--down arrow to bar -->
-<!ENTITY DownBreve        "&#x00311;" ><!--breve, inverted (non-spacing) -->
-<!ENTITY DownLeftRightVector "&#x02950;" ><!--left-down-right-down harpoon -->
-<!ENTITY DownLeftTeeVector "&#x0295E;" ><!--left-down harpoon from bar -->
-<!ENTITY DownLeftVectorBar "&#x02956;" ><!--left-down harpoon to bar -->
-<!ENTITY DownRightTeeVector "&#x0295F;" ><!--right-down harpoon from bar -->
-<!ENTITY DownRightVectorBar "&#x02957;" ><!--right-down harpoon to bar -->
-<!ENTITY ee               "&#x02147;" ><!--e use for the exponential base of the natural logarithms -->
-<!ENTITY EmptySmallSquare "&#x025FB;" ><!--empty small square -->
-<!ENTITY EmptyVerySmallSquare "&#x025AB;" ><!--empty small square -->
-<!ENTITY eopf             "%plane1D;556;" ><!-- -->
-<!ENTITY Equal            "&#x02A75;" ><!--two consecutive equal signs -->
-<!ENTITY FilledSmallSquare "&#x025FC;" ><!--filled small square -->
-<!ENTITY FilledVerySmallSquare "&#x025AA;" ><!--filled very small square -->
-<!ENTITY fopf             "%plane1D;557;" ><!-- -->
-<!ENTITY gopf             "%plane1D;558;" ><!-- -->
-<!ENTITY GreaterGreater   "&#x02AA2;" ><!--alias for GT -->
-<!ENTITY Hat              "&#x0005E;" ><!--circumflex accent -->
-<!ENTITY hopf             "%plane1D;559;" ><!-- -->
-<!ENTITY HorizontalLine   "&#x02500;" ><!--short horizontal line  -->
-<!ENTITY ic               "&#x02063;" ><!--short form of  &InvisibleComma; -->
-<!ENTITY ii               "&#x02148;" ><!--i for use as a square root of -1 -->
-<!ENTITY iopf             "%plane1D;55A;" ><!-- -->
-<!ENTITY it               "&#x02062;" ><!--marks multiplication when it is understood without a mark -->
-<!ENTITY jopf             "%plane1D;55B;" ><!-- -->
-<!ENTITY kopf             "%plane1D;55C;" ><!-- -->
-<!ENTITY larrb            "&#x021E4;" ><!--leftwards arrow to bar -->
-<!ENTITY LeftDownTeeVector "&#x02961;" ><!--down-left harpoon from bar -->
-<!ENTITY LeftDownVectorBar "&#x02959;" ><!--down-left harpoon to bar -->
-<!ENTITY LeftRightVector  "&#x0294E;" ><!--left-up-right-up harpoon -->
-<!ENTITY LeftTeeVector    "&#x0295A;" ><!--left-up harpoon from bar -->
-<!ENTITY LeftTriangleBar  "&#x029CF;" ><!--not left triangle, vertical bar -->
-<!ENTITY LeftUpDownVector "&#x02951;" ><!--up-left-down-left harpoon -->
-<!ENTITY LeftUpTeeVector  "&#x02960;" ><!--up-left harpoon from bar -->
-<!ENTITY LeftUpVectorBar  "&#x02958;" ><!--up-left harpoon to bar -->
-<!ENTITY LeftVectorBar    "&#x02952;" ><!--left-up harpoon to bar -->
-<!ENTITY LessLess         "&#x02AA1;" ><!--alias for Lt -->
-<!ENTITY lopf             "%plane1D;55D;" ><!-- -->
-<!ENTITY mapstodown       "&#x021A7;" ><!--downwards arrow from bar -->
-<!ENTITY mapstoleft       "&#x021A4;" ><!--leftwards arrow from bar -->
-<!ENTITY mapstoup         "&#x021A5;" ><!--upwards arrow from bar -->
-<!ENTITY MediumSpace      "&#x0205F;" ><!--space of width 4/18 em -->
-<!ENTITY mopf             "%plane1D;55E;" ><!-- -->
-<!ENTITY nbump            "&#x0224E;&#x00338;" ><!--not bumpy equals -->
-<!ENTITY nbumpe           "&#x0224F;&#x00338;" ><!--not bumpy single equals -->
-<!ENTITY nesim            "&#x02242;&#x00338;" ><!--not equal or similar -->
-<!ENTITY NewLine          "&#x0000A;" ><!--force a line break; line feed -->
-<!ENTITY NoBreak          "&#x02060;" ><!--never break line here -->
-<!ENTITY nopf             "%plane1D;55F;" ><!-- -->
-<!ENTITY NotCupCap        "&#x0226D;" ><!--alias for &nasymp; -->
-<!ENTITY NotHumpEqual     "&#x0224F;&#x00338;" ><!--alias for &nbumpe; -->
-<!ENTITY NotLeftTriangleBar "&#x029CF;&#x00338;" ><!--not left triangle, vertical bar -->
-<!ENTITY NotNestedGreaterGreater "&#x02AA2;&#x00338;" ><!--not double greater-than sign -->
-<!ENTITY NotNestedLessLess "&#x02AA1;&#x00338;" ><!--not double less-than sign -->
-<!ENTITY NotRightTriangleBar "&#x029D0;&#x00338;" ><!--not vertical bar, right triangle -->
-<!ENTITY NotSquareSubset  "&#x0228F;&#x00338;" ><!--square not subset -->
-<!ENTITY NotSquareSuperset "&#x02290;&#x00338;" ><!--negated set-like partial order operator -->
-<!ENTITY NotSucceedsTilde "&#x0227F;&#x00338;" ><!--not succeeds or similar -->
-<!ENTITY oopf             "%plane1D;560;" ><!-- -->
-<!ENTITY OverBar          "&#x000AF;" ><!--over bar -->
-<!ENTITY OverBrace        "&#x0FE37;" ><!--over brace  -->
-<!ENTITY OverBracket      "&#x023B4;" ><!--over bracket -->
-<!ENTITY OverParenthesis  "&#x0FE35;" ><!--over parenthesis -->
-<!ENTITY planckh          "&#x0210E;" ><!--the ring (skew field) of quaternions -->
-<!ENTITY popf             "%plane1D;561;" ><!-- -->
-<!ENTITY Product          "&#x0220F;" ><!--alias for &prod -->
-<!ENTITY qopf             "%plane1D;562;" ><!-- -->
-<!ENTITY rarrb            "&#x021E5;" ><!--leftwards arrow to bar -->
-<!ENTITY RightDownTeeVector "&#x0295D;" ><!--down-right harpoon from bar -->
-<!ENTITY RightDownVectorBar "&#x02955;" ><!--down-right harpoon to bar -->
-<!ENTITY RightTeeVector   "&#x0295B;" ><!--right-up harpoon from bar -->
-<!ENTITY RightTriangleBar "&#x029D0;" ><!--vertical bar, right triangle -->
-<!ENTITY RightUpDownVector "&#x0294F;" ><!--up-right-down-right harpoon -->
-<!ENTITY RightUpTeeVector "&#x0295C;" ><!--up-right harpoon from bar -->
-<!ENTITY RightUpVectorBar "&#x02954;" ><!--up-right harpoon to bar -->
-<!ENTITY RightVectorBar   "&#x02953;" ><!--up-right harpoon to bar -->
-<!ENTITY ropf             "%plane1D;563;" ><!-- -->
-<!ENTITY RoundImplies     "&#x02970;" ><!--round implies -->
-<!ENTITY RuleDelayed      "&#x029F4;" ><!--rule-delayed (colon right arrow) -->
-<!ENTITY sopf             "%plane1D;564;" ><!-- -->
-<!ENTITY Tab              "&#x00009;" ><!--tabulator stop; horizontal tabulation -->
-<!ENTITY ThickSpace       "&#x02009;&#x0200A;&#x0200A;" ><!--space of width 5/18 em -->
-<!ENTITY topf             "%plane1D;565;" ><!-- -->
-<!ENTITY UnderBar         "&#x00332;" ><!--combining low line -->
-<!ENTITY UnderBrace       "&#x0FE38;" ><!--under brace  -->
-<!ENTITY UnderBracket     "&#x023B5;" ><!--under bracket -->
-<!ENTITY UnderParenthesis "&#x0FE36;" ><!--under parenthesis -->
-<!ENTITY uopf             "%plane1D;566;" ><!-- -->
-<!ENTITY UpArrowBar       "&#x02912;" ><!--up arrow to bar -->
-<!ENTITY Upsilon          "&#x003A5;" ><!--ISOGRK1 Ugr, HTML4 Upsilon -->
-<!ENTITY VerticalLine     "&#x0007C;" ><!--alias ISONUM verbar -->
-<!ENTITY VerticalSeparator "&#x02758;" ><!--vertical separating operator -->
-<!ENTITY vopf             "%plane1D;567;" ><!-- -->
-<!ENTITY wopf             "%plane1D;568;" ><!-- -->
-<!ENTITY xopf             "%plane1D;569;" ><!-- -->
-<!ENTITY yopf             "%plane1D;56A;" ><!-- -->
-<!ENTITY ZeroWidthSpace   "&#x0200B;" ><!--zero width space -->
-<!ENTITY zopf             "%plane1D;56B;" ><!-- -->
-
-
-<!-- MathML aliases for characters defined above ................. -->
-
-<!ENTITY % ent-mmlalias
-      PUBLIC "-//W3C//ENTITIES Aiases for MathML 2.0//EN"
-             "mathml/mmlalias.ent" >
-
-<!--
-     File mmlalias.ent produced by the XSL script characters.xsl
-     from input data in unicode.xml.
-
-     Please report any errors to David Carlisle
-     via the public W3C list www-math@w3.org.
-
-     The numeric character values assigned to each entity
-     (should) match the Unicode assignments in Unicode 3.2.
-
-     References to the VARIANT SELECTOR 1 character (&#x0FE00;)
-     should match the uses listed in Unicode Technical Report 25.
-
--->
-
-<!ENTITY angle            "&#x02220;" ><!--alias ISOAMSO ang -->
-<!ENTITY ApplyFunction    "&#x02061;" ><!--character showing function application in presentation tagging -->
-<!ENTITY approx           "&#x02248;" ><!--alias ISOTECH ap -->
-<!ENTITY approxeq         "&#x0224A;" ><!--alias ISOAMSR ape -->
-<!ENTITY Assign           "&#x02254;" ><!--assignment operator, alias ISOAMSR colone -->
-<!ENTITY backcong         "&#x0224C;" ><!--alias ISOAMSR bcong -->
-<!ENTITY backepsilon      "&#x003F6;" ><!--alias ISOAMSR bepsi -->
-<!ENTITY backprime        "&#x02035;" ><!--alias ISOAMSO bprime -->
-<!ENTITY backsim          "&#x0223D;" ><!--alias ISOAMSR bsim -->
-<!ENTITY backsimeq        "&#x022CD;" ><!--alias ISOAMSR bsime -->
-<!ENTITY Backslash        "&#x02216;" ><!--alias ISOAMSB setmn -->
-<!ENTITY barwedge         "&#x022BC;" ><!--alias ISOAMSB barwed -->
-<!ENTITY Because          "&#x02235;" ><!--alias ISOTECH becaus -->
-<!ENTITY because          "&#x02235;" ><!--alias ISOTECH becaus -->
-<!ENTITY Bernoullis       "&#x0212C;" ><!--alias ISOTECH bernou -->
-<!ENTITY between          "&#x0226C;" ><!--alias ISOAMSR twixt -->
-<!ENTITY bigcap           "&#x022C2;" ><!--alias ISOAMSB xcap -->
-<!ENTITY bigcirc          "&#x025EF;" ><!--alias ISOAMSB xcirc -->
-<!ENTITY bigcup           "&#x022C3;" ><!--alias ISOAMSB xcup -->
-<!ENTITY bigodot          "&#x02299;" ><!--alias ISOAMSB xodot -->
-<!ENTITY bigoplus         "&#x02295;" ><!--alias ISOAMSB xoplus -->
-<!ENTITY bigotimes        "&#x02297;" ><!--alias ISOAMSB xotime -->
-<!ENTITY bigsqcup         "&#x02294;" ><!--alias ISOAMSB xsqcup -->
-<!ENTITY bigstar          "&#x02605;" ><!--ISOPUB    starf  -->
-<!ENTITY bigtriangledown  "&#x025BD;" ><!--alias ISOAMSB xdtri -->
-<!ENTITY bigtriangleup    "&#x025B3;" ><!--alias ISOAMSB xutri -->
-<!ENTITY biguplus         "&#x0228E;" ><!--alias ISOAMSB xuplus -->
-<!ENTITY bigvee           "&#x022C1;" ><!--alias ISOAMSB xvee -->
-<!ENTITY bigwedge         "&#x022C0;" ><!--alias ISOAMSB xwedge -->
-<!ENTITY bkarow           "&#x0290D;" ><!--alias ISOAMSA rbarr -->
-<!ENTITY blacklozenge     "&#x029EB;" ><!--alias ISOPUB lozf -->
-<!ENTITY blacksquare      "&#x025AA;" ><!--ISOTECH  squarf  -->
-<!ENTITY blacktriangle    "&#x025B4;" ><!--alias ISOPUB utrif -->
-<!ENTITY blacktriangledown "&#x025BE;" ><!--alias ISOPUB dtrif -->
-<!ENTITY blacktriangleleft "&#x025C2;" ><!--alias ISOPUB ltrif -->
-<!ENTITY blacktriangleright "&#x025B8;" ><!--alias ISOPUB rtrif -->
-<!ENTITY bot              "&#x022A5;" ><!--alias ISOTECH bottom -->
-<!ENTITY boxminus         "&#x0229F;" ><!--alias ISOAMSB minusb -->
-<!ENTITY boxplus          "&#x0229E;" ><!--alias ISOAMSB plusb -->
-<!ENTITY boxtimes         "&#x022A0;" ><!--alias ISOAMSB timesb -->
-<!ENTITY Breve            "&#x002D8;" ><!--alias ISODIA breve -->
-<!ENTITY bullet           "&#x02022;" ><!--alias ISOPUB bull -->
-<!ENTITY Bumpeq           "&#x0224E;" ><!--alias ISOAMSR bump -->
-<!ENTITY bumpeq           "&#x0224F;" ><!--alias ISOAMSR bumpe -->
-<!ENTITY CapitalDifferentialD "&#x02145;" ><!--D for use in differentials, e.g., within integrals -->
-<!ENTITY Cayleys          "&#x0212D;" ><!--the non-associative ring of octonions or Cayley numbers -->
-<!ENTITY Cedilla          "&#x000B8;" ><!--alias ISODIA cedil -->
-<!ENTITY CenterDot        "&#x000B7;" ><!--alias ISONUM middot -->
-<!ENTITY centerdot        "&#x000B7;" ><!--alias ISONUM middot -->
-<!ENTITY checkmark        "&#x02713;" ><!--alias ISOPUB check -->
-<!ENTITY circeq           "&#x02257;" ><!--alias ISOAMSR cire -->
-<!ENTITY circlearrowleft  "&#x021BA;" ><!--alias ISOAMSA olarr -->
-<!ENTITY circlearrowright "&#x021BB;" ><!--alias ISOAMSA orarr -->
-<!ENTITY circledast       "&#x0229B;" ><!--alias ISOAMSB oast -->
-<!ENTITY circledcirc      "&#x0229A;" ><!--alias ISOAMSB ocir -->
-<!ENTITY circleddash      "&#x0229D;" ><!--alias ISOAMSB odash -->
-<!ENTITY CircleDot        "&#x02299;" ><!--alias ISOAMSB odot -->
-<!ENTITY circledR         "&#x000AE;" ><!--alias ISONUM reg -->
-<!ENTITY circledS         "&#x024C8;" ><!--alias ISOAMSO oS -->
-<!ENTITY CircleMinus      "&#x02296;" ><!--alias ISOAMSB ominus -->
-<!ENTITY CirclePlus       "&#x02295;" ><!--alias ISOAMSB oplus -->
-<!ENTITY CircleTimes      "&#x02297;" ><!--alias ISOAMSB otimes -->
-<!ENTITY ClockwiseContourIntegral "&#x02232;" ><!--alias ISOTECH cwconint -->
-<!ENTITY CloseCurlyDoubleQuote "&#x0201D;" ><!--alias ISONUM rdquo -->
-<!ENTITY CloseCurlyQuote  "&#x02019;" ><!--alias ISONUM rsquo -->
-<!ENTITY clubsuit         "&#x02663;" ><!--ISOPUB    clubs  -->
-<!ENTITY coloneq          "&#x02254;" ><!--alias ISOAMSR colone -->
-<!ENTITY complement       "&#x02201;" ><!--alias ISOAMSO comp -->
-<!ENTITY complexes        "&#x02102;" ><!--the field of complex numbers -->
-<!ENTITY Congruent        "&#x02261;" ><!--alias ISOTECH equiv -->
-<!ENTITY ContourIntegral  "&#x0222E;" ><!--alias ISOTECH conint -->
-<!ENTITY Coproduct        "&#x02210;" ><!--alias ISOAMSB coprod -->
-<!ENTITY CounterClockwiseContourIntegral "&#x02233;" ><!--alias ISOTECH awconint -->
-<!ENTITY CupCap           "&#x0224D;" ><!--alias asympeq -->
-<!ENTITY curlyeqprec      "&#x022DE;" ><!--alias ISOAMSR cuepr -->
-<!ENTITY curlyeqsucc      "&#x022DF;" ><!--alias ISOAMSR cuesc -->
-<!ENTITY curlyvee         "&#x022CE;" ><!--alias ISOAMSB cuvee -->
-<!ENTITY curlywedge       "&#x022CF;" ><!--alias ISOAMSB cuwed -->
-<!ENTITY curvearrowleft   "&#x021B6;" ><!--alias ISOAMSA cularr -->
-<!ENTITY curvearrowright  "&#x021B7;" ><!--alias ISOAMSA curarr -->
-<!ENTITY dbkarow          "&#x0290F;" ><!--alias ISOAMSA rBarr -->
-<!ENTITY ddagger          "&#x02021;" ><!--alias ISOPUB Dagger -->
-<!ENTITY ddotseq          "&#x02A77;" ><!--alias ISOAMSR eDDot -->
-<!ENTITY Del              "&#x02207;" ><!--alias ISOTECH nabla -->
-<!ENTITY DiacriticalAcute "&#x000B4;" ><!--alias ISODIA acute -->
-<!ENTITY DiacriticalDot   "&#x002D9;" ><!--alias ISODIA dot -->
-<!ENTITY DiacriticalDoubleAcute "&#x002DD;" ><!--alias ISODIA dblac -->
-<!ENTITY DiacriticalGrave "&#x00060;" ><!--alias ISODIA grave -->
-<!ENTITY DiacriticalTilde "&#x002DC;" ><!--alias ISODIA tilde -->
-<!ENTITY Diamond          "&#x022C4;" ><!--alias ISOAMSB diam -->
-<!ENTITY diamond          "&#x022C4;" ><!--alias ISOAMSB diam -->
-<!ENTITY diamondsuit      "&#x02666;" ><!--ISOPUB    diams  -->
-<!ENTITY DifferentialD    "&#x02146;" ><!--d for use in differentials, e.g., within integrals -->
-<!ENTITY digamma          "&#x003DC;" ><!--alias ISOGRK3 gammad -->
-<!ENTITY div              "&#x000F7;" ><!--alias ISONUM divide -->
-<!ENTITY divideontimes    "&#x022C7;" ><!--alias ISOAMSB divonx -->
-<!ENTITY doteq            "&#x02250;" ><!--alias ISOAMSR esdot -->
-<!ENTITY doteqdot         "&#x02251;" ><!--alias ISOAMSR eDot -->
-<!ENTITY DotEqual         "&#x02250;" ><!--alias ISOAMSR esdot -->
-<!ENTITY dotminus         "&#x02238;" ><!--alias ISOAMSB minusd -->
-<!ENTITY dotplus          "&#x02214;" ><!--alias ISOAMSB plusdo -->
-<!ENTITY dotsquare        "&#x022A1;" ><!--alias ISOAMSB sdotb -->
-<!ENTITY doublebarwedge   "&#x02306;" ><!--alias ISOAMSB Barwed -->
-<!ENTITY DoubleContourIntegral "&#x0222F;" ><!--alias ISOTECH Conint -->
-<!ENTITY DoubleDot        "&#x000A8;" ><!--alias ISODIA die -->
-<!ENTITY DoubleDownArrow  "&#x021D3;" ><!--alias ISOAMSA dArr -->
-<!ENTITY DoubleLeftArrow  "&#x021D0;" ><!--alias ISOTECH lArr -->
-<!ENTITY DoubleLeftRightArrow "&#x021D4;" ><!--alias ISOAMSA hArr -->
-<!ENTITY DoubleLeftTee    "&#x02AE4;" ><!--alias for  &Dashv;  -->
-<!ENTITY DoubleLongLeftArrow "&#x027F8;" ><!--alias ISOAMSA xlArr -->
-<!ENTITY DoubleLongLeftRightArrow "&#x027FA;" ><!--alias ISOAMSA xhArr -->
-<!ENTITY DoubleLongRightArrow "&#x027F9;" ><!--alias ISOAMSA xrArr -->
-<!ENTITY DoubleRightArrow "&#x021D2;" ><!--alias ISOTECH rArr -->
-<!ENTITY DoubleRightTee   "&#x022A8;" ><!--alias ISOAMSR vDash -->
-<!ENTITY DoubleUpArrow    "&#x021D1;" ><!--alias ISOAMSA uArr -->
-<!ENTITY DoubleUpDownArrow "&#x021D5;" ><!--alias ISOAMSA vArr -->
-<!ENTITY DoubleVerticalBar "&#x02225;" ><!--alias ISOTECH par -->
-<!ENTITY DownArrow        "&#x02193;" ><!--alias ISONUM darr -->
-<!ENTITY Downarrow        "&#x021D3;" ><!--alias ISOAMSA dArr -->
-<!ENTITY downarrow        "&#x02193;" ><!--alias ISONUM darr -->
-<!ENTITY DownArrowUpArrow "&#x021F5;" ><!--alias ISOAMSA duarr -->
-<!ENTITY downdownarrows   "&#x021CA;" ><!--alias ISOAMSA ddarr -->
-<!ENTITY downharpoonleft  "&#x021C3;" ><!--alias ISOAMSA dharl -->
-<!ENTITY downharpoonright "&#x021C2;" ><!--alias ISOAMSA dharr -->
-<!ENTITY DownLeftVector   "&#x021BD;" ><!--alias ISOAMSA lhard -->
-<!ENTITY DownRightVector  "&#x021C1;" ><!--alias ISOAMSA rhard -->
-<!ENTITY DownTee          "&#x022A4;" ><!--alias ISOTECH top -->
-<!ENTITY DownTeeArrow     "&#x021A7;" ><!--alias for mapstodown -->
-<!ENTITY drbkarow         "&#x02910;" ><!--alias ISOAMSA RBarr -->
-<!ENTITY Element          "&#x02208;" ><!--alias ISOTECH isinv -->
-<!ENTITY emptyset         "&#x02205;" ><!--alias ISOAMSO empty -->
-<!ENTITY eqcirc           "&#x02256;" ><!--alias ISOAMSR ecir -->
-<!ENTITY eqcolon          "&#x02255;" ><!--alias ISOAMSR ecolon -->
-<!ENTITY eqsim            "&#x02242;" ><!--alias ISOAMSR esim -->
-<!ENTITY eqslantgtr       "&#x022DD;" ><!--alias ISOAMSR egs -->
-<!ENTITY eqslantless      "&#x022DC;" ><!--alias ISOAMSR els -->
-<!ENTITY EqualTilde       "&#x02242;" ><!--alias ISOAMSR esim -->
-<!ENTITY Equilibrium      "&#x021CC;" ><!--alias ISOAMSA rlhar -->
-<!ENTITY Exists           "&#x02203;" ><!--alias ISOTECH exist -->
-<!ENTITY expectation      "&#x02130;" ><!--expectation (operator) -->
-<!ENTITY ExponentialE     "&#x02147;" ><!--e use for the exponential base of the natural logarithms -->
-<!ENTITY exponentiale     "&#x02147;" ><!--base of the Napierian logarithms -->
-<!ENTITY fallingdotseq    "&#x02252;" ><!--alias ISOAMSR efDot -->
-<!ENTITY ForAll           "&#x02200;" ><!--alias ISOTECH forall -->
-<!ENTITY Fouriertrf       "&#x02131;" ><!--Fourier transform -->
-<!ENTITY geq              "&#x02265;" ><!--alias ISOTECH ge -->
-<!ENTITY geqq             "&#x02267;" ><!--alias ISOAMSR gE -->
-<!ENTITY geqslant         "&#x02A7E;" ><!--alias ISOAMSR ges -->
-<!ENTITY gg               "&#x0226B;" ><!--alias ISOAMSR Gt -->
-<!ENTITY ggg              "&#x022D9;" ><!--alias ISOAMSR Gg -->
-<!ENTITY gnapprox         "&#x02A8A;" ><!--alias ISOAMSN gnap -->
-<!ENTITY gneq             "&#x02269;" ><!--alias ISOAMSN gne -->
-<!ENTITY gneqq            "&#x02269;" ><!--alias ISOAMSN gnE -->
-<!ENTITY GreaterEqual     "&#x02265;" ><!--alias ISOTECH ge -->
-<!ENTITY GreaterEqualLess "&#x022DB;" ><!--alias ISOAMSR gel -->
-<!ENTITY GreaterFullEqual "&#x02267;" ><!--alias ISOAMSR gE -->
-<!ENTITY GreaterLess      "&#x02277;" ><!--alias ISOAMSR gl -->
-<!ENTITY GreaterSlantEqual "&#x02A7E;" ><!--alias ISOAMSR ges -->
-<!ENTITY GreaterTilde     "&#x02273;" ><!--alias ISOAMSR gsim -->
-<!ENTITY gtrapprox        "&#x02273;" ><!--alias ISOAMSR gap -->
-<!ENTITY gtrdot           "&#x022D7;" ><!--alias ISOAMSR gtdot -->
-<!ENTITY gtreqless        "&#x022DB;" ><!--alias ISOAMSR gel -->
-<!ENTITY gtreqqless       "&#x022DB;" ><!--alias ISOAMSR gEl -->
-<!ENTITY gtrless          "&#x02277;" ><!--alias ISOAMSR gl -->
-<!ENTITY gtrsim           "&#x02273;" ><!--alias ISOAMSR gsim -->
-<!ENTITY gvertneqq        "&#x02269;&#x0FE00;" ><!--alias ISOAMSN gvnE -->
-<!ENTITY Hacek            "&#x002C7;" ><!--alias ISODIA caron -->
-<!ENTITY hbar             "&#x0210F;" ><!--alias ISOAMSO plank -->
-<!ENTITY heartsuit        "&#x02661;" ><!--ISOPUB    hearts  -->
-<!ENTITY HilbertSpace     "&#x0210B;" ><!--Hilbert space -->
-<!ENTITY hksearow         "&#x02925;" ><!--alias ISOAMSA searhk -->
-<!ENTITY hkswarow         "&#x02926;" ><!--alias ISOAMSA swarhk -->
-<!ENTITY hookleftarrow    "&#x021A9;" ><!--alias ISOAMSA larrhk -->
-<!ENTITY hookrightarrow   "&#x021AA;" ><!--alias ISOAMSA rarrhk -->
-<!ENTITY hslash           "&#x0210F;" ><!--alias ISOAMSO plankv -->
-<!ENTITY HumpDownHump     "&#x0224E;" ><!--alias ISOAMSR bump -->
-<!ENTITY HumpEqual        "&#x0224F;" ><!--alias ISOAMSR bumpe -->
-<!ENTITY iiiint           "&#x02A0C;" ><!--alias ISOTECH qint -->
-<!ENTITY iiint            "&#x0222D;" ><!--alias ISOTECH tint -->
-<!ENTITY Im               "&#x02111;" ><!--alias ISOAMSO image -->
-<!ENTITY ImaginaryI       "&#x02148;" ><!--i for use as a square root of -1 -->
-<!ENTITY imagline         "&#x02110;" ><!--the geometric imaginary line -->
-<!ENTITY imagpart         "&#x02111;" ><!--alias ISOAMSO image -->
-<!ENTITY Implies          "&#x021D2;" ><!--alias ISOTECH rArr -->
-<!ENTITY in               "&#x02208;" ><!--ISOTECH   isin  -->
-<!ENTITY integers         "&#x02124;" ><!--the ring of integers -->
-<!ENTITY Integral         "&#x0222B;" ><!--alias ISOTECH int -->
-<!ENTITY intercal         "&#x022BA;" ><!--alias ISOAMSB intcal -->
-<!ENTITY Intersection     "&#x022C2;" ><!--alias ISOAMSB xcap -->
-<!ENTITY intprod          "&#x02A3C;" ><!--alias ISOAMSB iprod -->
-<!ENTITY InvisibleComma   "&#x02063;" ><!--used as a separator, e.g., in indices -->
-<!ENTITY InvisibleTimes   "&#x02062;" ><!--marks multiplication when it is understood without a mark -->
-<!ENTITY langle           "&#x02329;" ><!--alias ISOTECH lang -->
-<!ENTITY Laplacetrf       "&#x02112;" ><!--Laplace transform -->
-<!ENTITY lbrace           "&#x0007B;" ><!--alias ISONUM lcub -->
-<!ENTITY lbrack           "&#x0005B;" ><!--alias ISONUM lsqb -->
-<!ENTITY LeftAngleBracket "&#x02329;" ><!--alias ISOTECH lang -->
-<!ENTITY LeftArrow        "&#x02190;" ><!--alias ISONUM larr -->
-<!ENTITY Leftarrow        "&#x021D0;" ><!--alias ISOTECH lArr -->
-<!ENTITY leftarrow        "&#x02190;" ><!--alias ISONUM larr -->
-<!ENTITY LeftArrowBar     "&#x021E4;" ><!--alias for larrb -->
-<!ENTITY LeftArrowRightArrow "&#x021C6;" ><!--alias ISOAMSA lrarr -->
-<!ENTITY leftarrowtail    "&#x021A2;" ><!--alias ISOAMSA larrtl -->
-<!ENTITY LeftCeiling      "&#x02308;" ><!--alias ISOAMSC lceil -->
-<!ENTITY LeftDoubleBracket "&#x0301A;" ><!--left double bracket delimiter -->
-<!ENTITY LeftDownVector   "&#x021C3;" ><!--alias ISOAMSA dharl -->
-<!ENTITY LeftFloor        "&#x0230A;" ><!--alias ISOAMSC lfloor -->
-<!ENTITY leftharpoondown  "&#x021BD;" ><!--alias ISOAMSA lhard -->
-<!ENTITY leftharpoonup    "&#x021BC;" ><!--alias ISOAMSA lharu -->
-<!ENTITY leftleftarrows   "&#x021C7;" ><!--alias ISOAMSA llarr -->
-<!ENTITY LeftRightArrow   "&#x02194;" ><!--alias ISOAMSA harr -->
-<!ENTITY Leftrightarrow   "&#x021D4;" ><!--alias ISOAMSA hArr -->
-<!ENTITY leftrightarrow   "&#x02194;" ><!--alias ISOAMSA harr -->
-<!ENTITY leftrightarrows  "&#x021C6;" ><!--alias ISOAMSA lrarr -->
-<!ENTITY leftrightharpoons "&#x021CB;" ><!--alias ISOAMSA lrhar -->
-<!ENTITY leftrightsquigarrow "&#x021AD;" ><!--alias ISOAMSA harrw -->
-<!ENTITY LeftTee          "&#x022A3;" ><!--alias ISOAMSR dashv -->
-<!ENTITY LeftTeeArrow     "&#x021A4;" ><!--alias for mapstoleft -->
-<!ENTITY leftthreetimes   "&#x022CB;" ><!--alias ISOAMSB lthree -->
-<!ENTITY LeftTriangle     "&#x022B2;" ><!--alias ISOAMSR vltri -->
-<!ENTITY LeftTriangleEqual "&#x022B4;" ><!--alias ISOAMSR ltrie -->
-<!ENTITY LeftUpVector     "&#x021BF;" ><!--alias ISOAMSA uharl -->
-<!ENTITY LeftVector       "&#x021BC;" ><!--alias ISOAMSA lharu -->
-<!ENTITY leq              "&#x02264;" ><!--alias ISOTECH le -->
-<!ENTITY leqq             "&#x02266;" ><!--alias ISOAMSR lE -->
-<!ENTITY leqslant         "&#x02A7D;" ><!--alias ISOAMSR les -->
-<!ENTITY lessapprox       "&#x02272;" ><!--alias ISOAMSR lap -->
-<!ENTITY lessdot          "&#x022D6;" ><!--alias ISOAMSR ltdot -->
-<!ENTITY lesseqgtr        "&#x022DA;" ><!--alias ISOAMSR leg -->
-<!ENTITY lesseqqgtr       "&#x022DA;" ><!--alias ISOAMSR lEg -->
-<!ENTITY LessEqualGreater "&#x022DA;" ><!--alias ISOAMSR leg -->
-<!ENTITY LessFullEqual    "&#x02266;" ><!--alias ISOAMSR lE -->
-<!ENTITY LessGreater      "&#x02276;" ><!--alias ISOAMSR lg -->
-<!ENTITY lessgtr          "&#x02276;" ><!--alias ISOAMSR lg -->
-<!ENTITY lesssim          "&#x02272;" ><!--alias ISOAMSR lsim -->
-<!ENTITY LessSlantEqual   "&#x02A7D;" ><!--alias ISOAMSR les -->
-<!ENTITY LessTilde        "&#x02272;" ><!--alias ISOAMSR lsim -->
-<!ENTITY ll               "&#x0226A;" ><!--alias ISOAMSR Lt -->
-<!ENTITY llcorner         "&#x0231E;" ><!--alias ISOAMSC dlcorn -->
-<!ENTITY Lleftarrow       "&#x021DA;" ><!--alias ISOAMSA lAarr -->
-<!ENTITY lmoustache       "&#x023B0;" ><!--alias ISOAMSC lmoust -->
-<!ENTITY lnapprox         "&#x02A89;" ><!--alias ISOAMSN lnap -->
-<!ENTITY lneq             "&#x02268;" ><!--alias ISOAMSN lne -->
-<!ENTITY lneqq            "&#x02268;" ><!--alias ISOAMSN lnE -->
-<!ENTITY LongLeftArrow    "&#x027F5;" ><!--alias ISOAMSA xlarr -->
-<!ENTITY Longleftarrow    "&#x027F8;" ><!--alias ISOAMSA xlArr -->
-<!ENTITY longleftarrow    "&#x027F5;" ><!--alias ISOAMSA xlarr -->
-<!ENTITY LongLeftRightArrow "&#x027F7;" ><!--alias ISOAMSA xharr -->
-<!ENTITY Longleftrightarrow "&#x027FA;" ><!--alias ISOAMSA xhArr -->
-<!ENTITY longleftrightarrow "&#x027F7;" ><!--alias ISOAMSA xharr -->
-<!ENTITY longmapsto       "&#x027FC;" ><!--alias ISOAMSA xmap -->
-<!ENTITY LongRightArrow   "&#x027F6;" ><!--alias ISOAMSA xrarr -->
-<!ENTITY Longrightarrow   "&#x027F9;" ><!--alias ISOAMSA xrArr -->
-<!ENTITY longrightarrow   "&#x027F6;" ><!--alias ISOAMSA xrarr -->
-<!ENTITY looparrowleft    "&#x021AB;" ><!--alias ISOAMSA larrlp -->
-<!ENTITY looparrowright   "&#x021AC;" ><!--alias ISOAMSA rarrlp -->
-<!ENTITY LowerLeftArrow   "&#x02199;" ><!--alias ISOAMSA swarr -->
-<!ENTITY LowerRightArrow  "&#x02198;" ><!--alias ISOAMSA searr -->
-<!ENTITY lozenge          "&#x025CA;" ><!--alias ISOPUB loz -->
-<!ENTITY lrcorner         "&#x0231F;" ><!--alias ISOAMSC drcorn -->
-<!ENTITY Lsh              "&#x021B0;" ><!--alias ISOAMSA lsh -->
-<!ENTITY lvertneqq        "&#x02268;&#x0FE00;" ><!--alias ISOAMSN lvnE -->
-<!ENTITY maltese          "&#x02720;" ><!--alias ISOPUB malt -->
-<!ENTITY mapsto           "&#x021A6;" ><!--alias ISOAMSA map -->
-<!ENTITY measuredangle    "&#x02221;" ><!--alias ISOAMSO angmsd -->
-<!ENTITY Mellintrf        "&#x02133;" ><!--Mellin transform -->
-<!ENTITY MinusPlus        "&#x02213;" ><!--alias ISOTECH mnplus -->
-<!ENTITY mp               "&#x02213;" ><!--alias ISOTECH mnplus -->
-<!ENTITY multimap         "&#x022B8;" ><!--alias ISOAMSA mumap -->
-<!ENTITY napprox          "&#x02249;" ><!--alias ISOAMSN nap -->
-<!ENTITY natural          "&#x0266E;" ><!--alias ISOPUB natur -->
-<!ENTITY naturals         "&#x02115;" ><!--the semi-ring of natural numbers -->
-<!ENTITY nearrow          "&#x02197;" ><!--alias ISOAMSA nearr -->
-<!ENTITY NegativeMediumSpace "&#x0200B;" ><!--space of width -4/18 em -->
-<!ENTITY NegativeThickSpace "&#x0200B;" ><!--space of width -5/18 em -->
-<!ENTITY NegativeThinSpace "&#x0200B;" ><!--space of width -3/18 em -->
-<!ENTITY NegativeVeryThinSpace "&#x0200B;" ><!--space of width -1/18 em -->
-<!ENTITY NestedGreaterGreater "&#x0226B;" ><!--alias ISOAMSR Gt -->
-<!ENTITY NestedLessLess   "&#x0226A;" ><!--alias ISOAMSR Lt -->
-<!ENTITY nexists          "&#x02204;" ><!--alias ISOAMSO nexist -->
-<!ENTITY ngeq             "&#x02271;" ><!--alias ISOAMSN nge -->
-<!ENTITY ngeqq            "&#x02A7E;&#x00338;" ><!--alias ISOAMSN ngE -->
-<!ENTITY ngeqslant        "&#x02A7E;&#x00338;" ><!--alias ISOAMSN nges -->
-<!ENTITY ngtr             "&#x0226F;" ><!--alias ISOAMSN ngt -->
-<!ENTITY nLeftarrow       "&#x021CD;" ><!--alias ISOAMSA nlArr -->
-<!ENTITY nleftarrow       "&#x0219A;" ><!--alias ISOAMSA nlarr -->
-<!ENTITY nLeftrightarrow  "&#x021CE;" ><!--alias ISOAMSA nhArr -->
-<!ENTITY nleftrightarrow  "&#x021AE;" ><!--alias ISOAMSA nharr -->
-<!ENTITY nleq             "&#x02270;" ><!--alias ISOAMSN nle -->
-<!ENTITY nleqq            "&#x02A7D;&#x00338;" ><!--alias ISOAMSN nlE -->
-<!ENTITY nleqslant        "&#x02A7D;&#x00338;" ><!--alias ISOAMSN nles -->
-<!ENTITY nless            "&#x0226E;" ><!--alias ISOAMSN nlt -->
-<!ENTITY NonBreakingSpace "&#x000A0;" ><!--alias ISONUM nbsp -->
-<!ENTITY NotCongruent     "&#x02262;" ><!--alias ISOAMSN nequiv -->
-<!ENTITY NotDoubleVerticalBar "&#x02226;" ><!--alias ISOAMSN npar -->
-<!ENTITY NotElement       "&#x02209;" ><!--alias ISOTECH notin -->
-<!ENTITY NotEqual         "&#x02260;" ><!--alias ISOTECH ne -->
-<!ENTITY NotEqualTilde    "&#x02242;&#x00338;" ><!--alias for  &nesim; -->
-<!ENTITY NotExists        "&#x02204;" ><!--alias ISOAMSO nexist -->
-<!ENTITY NotGreater       "&#x0226F;" ><!--alias ISOAMSN ngt -->
-<!ENTITY NotGreaterEqual  "&#x02271;" ><!--alias ISOAMSN nge -->
-<!ENTITY NotGreaterFullEqual "&#x02A7D;&#x00338;" ><!--alias ISOAMSN nlE -->
-<!ENTITY NotGreaterGreater "&#x0226B;&#x00338;" ><!--alias ISOAMSN nGtv -->
-<!ENTITY NotGreaterLess   "&#x02279;" ><!--alias ISOAMSN ntvgl -->
-<!ENTITY NotGreaterSlantEqual "&#x02A7E;&#x00338;" ><!--alias ISOAMSN nges -->
-<!ENTITY NotGreaterTilde  "&#x02275;" ><!--alias ISOAMSN ngsim -->
-<!ENTITY NotHumpDownHump  "&#x0224E;&#x00338;" ><!--alias for &nbump; -->
-<!ENTITY NotLeftTriangle  "&#x022EA;" ><!--alias ISOAMSN nltri -->
-<!ENTITY NotLeftTriangleEqual "&#x022EC;" ><!--alias ISOAMSN nltrie -->
-<!ENTITY NotLess          "&#x0226E;" ><!--alias ISOAMSN nlt -->
-<!ENTITY NotLessEqual     "&#x02270;" ><!--alias ISOAMSN nle -->
-<!ENTITY NotLessGreater   "&#x02278;" ><!--alias ISOAMSN ntvlg -->
-<!ENTITY NotLessLess      "&#x0226A;&#x00338;" ><!--alias ISOAMSN nLtv -->
-<!ENTITY NotLessSlantEqual "&#x02A7D;&#x00338;" ><!--alias ISOAMSN nles -->
-<!ENTITY NotLessTilde     "&#x02274;" ><!--alias ISOAMSN nlsim -->
-<!ENTITY NotPrecedes      "&#x02280;" ><!--alias ISOAMSN npr -->
-<!ENTITY NotPrecedesEqual "&#x02AAF;&#x00338;" ><!--alias ISOAMSN npre -->
-<!ENTITY NotPrecedesSlantEqual "&#x022E0;" ><!--alias ISOAMSN nprcue -->
-<!ENTITY NotReverseElement "&#x0220C;" ><!--alias ISOTECH notniva -->
-<!ENTITY NotRightTriangle "&#x022EB;" ><!--alias ISOAMSN nrtri -->
-<!ENTITY NotRightTriangleEqual "&#x022ED;" ><!--alias ISOAMSN nrtrie -->
-<!ENTITY NotSquareSubsetEqual "&#x022E2;" ><!--alias ISOAMSN nsqsube -->
-<!ENTITY NotSquareSupersetEqual "&#x022E3;" ><!--alias ISOAMSN nsqsupe -->
-<!ENTITY NotSubset        "&#x02284;" ><!--alias ISOAMSN vnsub -->
-<!ENTITY NotSubsetEqual   "&#x02288;" ><!--alias ISOAMSN nsube -->
-<!ENTITY NotSucceeds      "&#x02281;" ><!--alias ISOAMSN nsc -->
-<!ENTITY NotSucceedsEqual "&#x02AB0;&#x00338;" ><!--alias ISOAMSN nsce -->
-<!ENTITY NotSucceedsSlantEqual "&#x022E1;" ><!--alias ISOAMSN nsccue -->
-<!ENTITY NotSuperset      "&#x02285;" ><!--alias ISOAMSN vnsup -->
-<!ENTITY NotSupersetEqual "&#x02289;" ><!--alias ISOAMSN nsupe -->
-<!ENTITY NotTilde         "&#x02241;" ><!--alias ISOAMSN nsim -->
-<!ENTITY NotTildeEqual    "&#x02244;" ><!--alias ISOAMSN nsime -->
-<!ENTITY NotTildeFullEqual "&#x02247;" ><!--alias ISOAMSN ncong -->
-<!ENTITY NotTildeTilde    "&#x02249;" ><!--alias ISOAMSN nap -->
-<!ENTITY NotVerticalBar   "&#x02224;" ><!--alias ISOAMSN nmid -->
-<!ENTITY nparallel        "&#x02226;" ><!--alias ISOAMSN npar -->
-<!ENTITY nprec            "&#x02280;" ><!--alias ISOAMSN npr -->
-<!ENTITY npreceq          "&#x02AAF;&#x00338;" ><!--alias ISOAMSN npre -->
-<!ENTITY nRightarrow      "&#x021CF;" ><!--alias ISOAMSA nrArr -->
-<!ENTITY nrightarrow      "&#x0219B;" ><!--alias ISOAMSA nrarr -->
-<!ENTITY nshortmid        "&#x02224;" ><!--alias ISOAMSN nsmid -->
-<!ENTITY nshortparallel   "&#x02226;" ><!--alias ISOAMSN nspar -->
-<!ENTITY nsimeq           "&#x02244;" ><!--alias ISOAMSN nsime -->
-<!ENTITY nsubset          "&#x02284;" ><!--alias ISOAMSN vnsub -->
-<!ENTITY nsubseteq        "&#x02288;" ><!--alias ISOAMSN nsube -->
-<!ENTITY nsubseteqq       "&#x02288;" ><!--alias ISOAMSN nsubE -->
-<!ENTITY nsucc            "&#x02281;" ><!--alias ISOAMSN nsc -->
-<!ENTITY nsucceq          "&#x02AB0;&#x00338;" ><!--alias ISOAMSN nsce -->
-<!ENTITY nsupset          "&#x02285;" ><!--alias ISOAMSN vnsup -->
-<!ENTITY nsupseteq        "&#x02289;" ><!--alias ISOAMSN nsupe -->
-<!ENTITY nsupseteqq       "&#x02289;" ><!--alias ISOAMSN nsupE -->
-<!ENTITY ntriangleleft    "&#x022EA;" ><!--alias ISOAMSN nltri -->
-<!ENTITY ntrianglelefteq  "&#x022EC;" ><!--alias ISOAMSN nltrie -->
-<!ENTITY ntriangleright   "&#x022EB;" ><!--alias ISOAMSN nrtri -->
-<!ENTITY ntrianglerighteq "&#x022ED;" ><!--alias ISOAMSN nrtrie -->
-<!ENTITY nwarrow          "&#x02196;" ><!--alias ISOAMSA nwarr -->
-<!ENTITY oint             "&#x0222E;" ><!--alias ISOTECH conint -->
-<!ENTITY OpenCurlyDoubleQuote "&#x0201C;" ><!--alias ISONUM ldquo -->
-<!ENTITY OpenCurlyQuote   "&#x02018;" ><!--alias ISONUM lsquo -->
-<!ENTITY orderof          "&#x02134;" ><!--alias ISOTECH order -->
-<!ENTITY parallel         "&#x02225;" ><!--alias ISOTECH par -->
-<!ENTITY PartialD         "&#x02202;" ><!--alias ISOTECH part -->
-<!ENTITY pitchfork        "&#x022D4;" ><!--alias ISOAMSR fork -->
-<!ENTITY PlusMinus        "&#x000B1;" ><!--alias ISONUM plusmn -->
-<!ENTITY pm               "&#x000B1;" ><!--alias ISONUM plusmn -->
-<!ENTITY Poincareplane    "&#x0210C;" ><!--the Poincare upper half-plane -->
-<!ENTITY prec             "&#x0227A;" ><!--alias ISOAMSR pr -->
-<!ENTITY precapprox       "&#x0227E;" ><!--alias ISOAMSR prap -->
-<!ENTITY preccurlyeq      "&#x0227C;" ><!--alias ISOAMSR prcue -->
-<!ENTITY Precedes         "&#x0227A;" ><!--alias ISOAMSR pr -->
-<!ENTITY PrecedesEqual    "&#x02AAF;" ><!--alias ISOAMSR pre -->
-<!ENTITY PrecedesSlantEqual "&#x0227C;" ><!--alias ISOAMSR prcue -->
-<!ENTITY PrecedesTilde    "&#x0227E;" ><!--alias ISOAMSR prsim -->
-<!ENTITY preceq           "&#x02AAF;" ><!--alias ISOAMSR pre -->
-<!ENTITY precnapprox      "&#x022E8;" ><!--alias ISOAMSN prnap -->
-<!ENTITY precneqq         "&#x02AB5;" ><!--alias ISOAMSN prnE -->
-<!ENTITY precnsim         "&#x022E8;" ><!--alias ISOAMSN prnsim -->
-<!ENTITY precsim          "&#x0227E;" ><!--alias ISOAMSR prsim -->
-<!ENTITY primes           "&#x02119;" ><!--the prime natural numbers -->
-<!ENTITY Proportion       "&#x02237;" ><!--alias ISOAMSR Colon -->
-<!ENTITY Proportional     "&#x0221D;" ><!--alias ISOTECH prop -->
-<!ENTITY propto           "&#x0221D;" ><!--alias ISOTECH prop -->
-<!ENTITY quaternions      "&#x0210D;" ><!--the ring (skew field) of quaternions -->
-<!ENTITY questeq          "&#x0225F;" ><!--alias ISOAMSR equest -->
-<!ENTITY rangle           "&#x0232A;" ><!--alias ISOTECH rang -->
-<!ENTITY rationals        "&#x0211A;" ><!--the field of rational numbers -->
-<!ENTITY rbrace           "&#x0007D;" ><!--alias ISONUM rcub -->
-<!ENTITY rbrack           "&#x0005D;" ><!--alias ISONUM rsqb -->
-<!ENTITY Re               "&#x0211C;" ><!--alias ISOAMSO real -->
-<!ENTITY realine          "&#x0211B;" ><!--the geometric real line -->
-<!ENTITY realpart         "&#x0211C;" ><!--alias ISOAMSO real -->
-<!ENTITY reals            "&#x0211D;" ><!--the field of real numbers -->
-<!ENTITY ReverseElement   "&#x0220B;" ><!--alias ISOTECH niv -->
-<!ENTITY ReverseEquilibrium "&#x021CB;" ><!--alias ISOAMSA lrhar -->
-<!ENTITY ReverseUpEquilibrium "&#x0296F;" ><!--alias ISOAMSA duhar -->
-<!ENTITY RightAngleBracket "&#x0232A;" ><!--alias ISOTECH rang -->
-<!ENTITY RightArrow       "&#x02192;" ><!--alias ISONUM rarr -->
-<!ENTITY Rightarrow       "&#x021D2;" ><!--alias ISOTECH rArr -->
-<!ENTITY rightarrow       "&#x02192;" ><!--alias ISONUM rarr -->
-<!ENTITY RightArrowBar    "&#x021E5;" ><!--alias for rarrb -->
-<!ENTITY RightArrowLeftArrow "&#x021C4;" ><!--alias ISOAMSA rlarr -->
-<!ENTITY rightarrowtail   "&#x021A3;" ><!--alias ISOAMSA rarrtl -->
-<!ENTITY RightCeiling     "&#x02309;" ><!--alias ISOAMSC rceil -->
-<!ENTITY RightDoubleBracket "&#x0301B;" ><!--right double bracket delimiter -->
-<!ENTITY RightDownVector  "&#x021C2;" ><!--alias ISOAMSA dharr -->
-<!ENTITY RightFloor       "&#x0230B;" ><!--alias ISOAMSC rfloor -->
-<!ENTITY rightharpoondown "&#x021C1;" ><!--alias ISOAMSA rhard -->
-<!ENTITY rightharpoonup   "&#x021C0;" ><!--alias ISOAMSA rharu -->
-<!ENTITY rightleftarrows  "&#x021C4;" ><!--alias ISOAMSA rlarr -->
-<!ENTITY rightleftharpoons "&#x021CC;" ><!--alias ISOAMSA rlhar -->
-<!ENTITY rightrightarrows "&#x021C9;" ><!--alias ISOAMSA rrarr -->
-<!ENTITY rightsquigarrow  "&#x0219D;" ><!--alias ISOAMSA rarrw -->
-<!ENTITY RightTee         "&#x022A2;" ><!--alias ISOAMSR vdash -->
-<!ENTITY RightTeeArrow    "&#x021A6;" ><!--alias ISOAMSA map -->
-<!ENTITY rightthreetimes  "&#x022CC;" ><!--alias ISOAMSB rthree -->
-<!ENTITY RightTriangle    "&#x022B3;" ><!--alias ISOAMSR vrtri -->
-<!ENTITY RightTriangleEqual "&#x022B5;" ><!--alias ISOAMSR rtrie -->
-<!ENTITY RightUpVector    "&#x021BE;" ><!--alias ISOAMSA uharr -->
-<!ENTITY RightVector      "&#x021C0;" ><!--alias ISOAMSA rharu -->
-<!ENTITY risingdotseq     "&#x02253;" ><!--alias ISOAMSR erDot -->
-<!ENTITY rmoustache       "&#x023B1;" ><!--alias ISOAMSC rmoust -->
-<!ENTITY Rrightarrow      "&#x021DB;" ><!--alias ISOAMSA rAarr -->
-<!ENTITY Rsh              "&#x021B1;" ><!--alias ISOAMSA rsh -->
-<!ENTITY searrow          "&#x02198;" ><!--alias ISOAMSA searr -->
-<!ENTITY setminus         "&#x02216;" ><!--alias ISOAMSB setmn -->
-<!ENTITY ShortDownArrow   "&#x02193;" ><!--short down arrow -->
-<!ENTITY ShortLeftArrow   "&#x02190;" ><!--alias ISOAMSA slarr -->
-<!ENTITY shortmid         "&#x02223;" ><!--alias ISOAMSR smid -->
-<!ENTITY shortparallel    "&#x02225;" ><!--alias ISOAMSR spar -->
-<!ENTITY ShortRightArrow  "&#x02192;" ><!--alias ISOAMSA srarr -->
-<!ENTITY ShortUpArrow     "&#x02191;" ><!--short up arrow  -->
-<!ENTITY simeq            "&#x02243;" ><!--alias ISOTECH sime -->
-<!ENTITY SmallCircle      "&#x02218;" ><!--alias ISOTECH compfn -->
-<!ENTITY smallsetminus    "&#x02216;" ><!--alias ISOAMSB ssetmn -->
-<!ENTITY spadesuit        "&#x02660;" ><!--ISOPUB    spades  -->
-<!ENTITY Sqrt             "&#x0221A;" ><!--alias ISOTECH radic -->
-<!ENTITY sqsubset         "&#x0228F;" ><!--alias ISOAMSR sqsub -->
-<!ENTITY sqsubseteq       "&#x02291;" ><!--alias ISOAMSR sqsube -->
-<!ENTITY sqsupset         "&#x02290;" ><!--alias ISOAMSR sqsup -->
-<!ENTITY sqsupseteq       "&#x02292;" ><!--alias ISOAMSR sqsupe -->
-<!ENTITY Square           "&#x025A1;" ><!--alias for square -->
-<!ENTITY SquareIntersection "&#x02293;" ><!--alias ISOAMSB sqcap -->
-<!ENTITY SquareSubset     "&#x0228F;" ><!--alias ISOAMSR sqsub -->
-<!ENTITY SquareSubsetEqual "&#x02291;" ><!--alias ISOAMSR sqsube -->
-<!ENTITY SquareSuperset   "&#x02290;" ><!--alias ISOAMSR sqsup -->
-<!ENTITY SquareSupersetEqual "&#x02292;" ><!--alias ISOAMSR sqsupe -->
-<!ENTITY SquareUnion      "&#x02294;" ><!--alias ISOAMSB sqcup -->
-<!ENTITY Star             "&#x022C6;" ><!--alias ISOAMSB sstarf -->
-<!ENTITY straightepsilon  "&#x003B5;" ><!--alias ISOGRK3 epsi -->
-<!ENTITY straightphi      "&#x003D5;" ><!--alias ISOGRK3 phi -->
-<!ENTITY Subset           "&#x022D0;" ><!--alias ISOAMSR Sub -->
-<!ENTITY subset           "&#x02282;" ><!--alias ISOTECH sub -->
-<!ENTITY subseteq         "&#x02286;" ><!--alias ISOTECH sube -->
-<!ENTITY subseteqq        "&#x02286;" ><!--alias ISOAMSR subE -->
-<!ENTITY SubsetEqual      "&#x02286;" ><!--alias ISOTECH sube -->
-<!ENTITY subsetneq        "&#x0228A;" ><!--alias ISOAMSN subne -->
-<!ENTITY subsetneqq       "&#x0228A;" ><!--alias ISOAMSN subnE -->
-<!ENTITY succ             "&#x0227B;" ><!--alias ISOAMSR sc -->
-<!ENTITY succapprox       "&#x0227F;" ><!--alias ISOAMSR scap -->
-<!ENTITY succcurlyeq      "&#x0227D;" ><!--alias ISOAMSR sccue -->
-<!ENTITY Succeeds         "&#x0227B;" ><!--alias ISOAMSR sc -->
-<!ENTITY SucceedsEqual    "&#x0227D;" ><!--alias ISOAMSR sce -->
-<!ENTITY SucceedsSlantEqual "&#x0227D;" ><!--alias ISOAMSR sccue -->
-<!ENTITY SucceedsTilde    "&#x0227F;" ><!--alias ISOAMSR scsim -->
-<!ENTITY succeq           "&#x0227D;" ><!--alias ISOAMSR sce -->
-<!ENTITY succnapprox      "&#x022E9;" ><!--alias ISOAMSN scnap -->
-<!ENTITY succneqq         "&#x02AB6;" ><!--alias ISOAMSN scnE -->
-<!ENTITY succnsim         "&#x022E9;" ><!--alias ISOAMSN scnsim -->
-<!ENTITY succsim          "&#x0227F;" ><!--alias ISOAMSR scsim -->
-<!ENTITY SuchThat         "&#x0220B;" ><!--ISOTECH  ni -->
-<!ENTITY Sum              "&#x02211;" ><!--alias ISOAMSB sum -->
-<!ENTITY Superset         "&#x02283;" ><!--alias ISOTECH sup -->
-<!ENTITY SupersetEqual    "&#x02287;" ><!--alias ISOTECH supe -->
-<!ENTITY Supset           "&#x022D1;" ><!--alias ISOAMSR Sup -->
-<!ENTITY supset           "&#x02283;" ><!--alias ISOTECH sup -->
-<!ENTITY supseteq         "&#x02287;" ><!--alias ISOTECH supe -->
-<!ENTITY supseteqq        "&#x02287;" ><!--alias ISOAMSR supE -->
-<!ENTITY supsetneq        "&#x0228B;" ><!--alias ISOAMSN supne -->
-<!ENTITY supsetneqq       "&#x0228B;" ><!--alias ISOAMSN supnE -->
-<!ENTITY swarrow          "&#x02199;" ><!--alias ISOAMSA swarr -->
-<!ENTITY Therefore        "&#x02234;" ><!--alias ISOTECH there4 -->
-<!ENTITY therefore        "&#x02234;" ><!--alias ISOTECH there4 -->
-<!ENTITY thickapprox      "&#x02248;" ><!--ISOAMSR   thkap  -->
-<!ENTITY thicksim         "&#x0223C;" ><!--ISOAMSR   thksim -->
-<!ENTITY ThinSpace        "&#x02009;" ><!--space of width 3/18 em alias ISOPUB thinsp -->
-<!ENTITY Tilde            "&#x0223C;" ><!--alias ISOTECH sim -->
-<!ENTITY TildeEqual       "&#x02243;" ><!--alias ISOTECH sime -->
-<!ENTITY TildeFullEqual   "&#x02245;" ><!--alias ISOTECH cong -->
-<!ENTITY TildeTilde       "&#x02248;" ><!--alias ISOTECH ap -->
-<!ENTITY toea             "&#x02928;" ><!--alias ISOAMSA nesear -->
-<!ENTITY tosa             "&#x02929;" ><!--alias ISOAMSA seswar -->
-<!ENTITY triangle         "&#x025B5;" ><!--alias ISOPUB utri -->
-<!ENTITY triangledown     "&#x025BF;" ><!--alias ISOPUB dtri -->
-<!ENTITY triangleleft     "&#x025C3;" ><!--alias ISOPUB ltri -->
-<!ENTITY trianglelefteq   "&#x022B4;" ><!--alias ISOAMSR ltrie -->
-<!ENTITY triangleq        "&#x0225C;" ><!--alias ISOAMSR trie -->
-<!ENTITY triangleright    "&#x025B9;" ><!--alias ISOPUB rtri -->
-<!ENTITY trianglerighteq  "&#x022B5;" ><!--alias ISOAMSR rtrie -->
-<!ENTITY TripleDot        "&#x020DB;" ><!--alias ISOTECH tdot -->
-<!ENTITY twoheadleftarrow "&#x0219E;" ><!--alias ISOAMSA Larr -->
-<!ENTITY twoheadrightarrow "&#x021A0;" ><!--alias ISOAMSA Rarr -->
-<!ENTITY ulcorner         "&#x0231C;" ><!--alias ISOAMSC ulcorn -->
-<!ENTITY Union            "&#x022C3;" ><!--alias ISOAMSB xcup -->
-<!ENTITY UnionPlus        "&#x0228E;" ><!--alias ISOAMSB uplus -->
-<!ENTITY UpArrow          "&#x02191;" ><!--alias ISONUM uarr -->
-<!ENTITY Uparrow          "&#x021D1;" ><!--alias ISOAMSA uArr -->
-<!ENTITY uparrow          "&#x02191;" ><!--alias ISONUM uarr -->
-<!ENTITY UpArrowDownArrow "&#x021C5;" ><!--alias ISOAMSA udarr -->
-<!ENTITY UpDownArrow      "&#x02195;" ><!--alias ISOAMSA varr -->
-<!ENTITY Updownarrow      "&#x021D5;" ><!--alias ISOAMSA vArr -->
-<!ENTITY updownarrow      "&#x02195;" ><!--alias ISOAMSA varr -->
-<!ENTITY UpEquilibrium    "&#x0296E;" ><!--alias ISOAMSA udhar -->
-<!ENTITY upharpoonleft    "&#x021BF;" ><!--alias ISOAMSA uharl -->
-<!ENTITY upharpoonright   "&#x021BE;" ><!--alias ISOAMSA uharr -->
-<!ENTITY UpperLeftArrow   "&#x02196;" ><!--alias ISOAMSA nwarr -->
-<!ENTITY UpperRightArrow  "&#x02197;" ><!--alias ISOAMSA nearr -->
-<!ENTITY upsilon          "&#x003C5;" ><!--alias ISOGRK3 upsi -->
-<!ENTITY UpTee            "&#x022A5;" ><!--alias ISOTECH perp -->
-<!ENTITY UpTeeArrow       "&#x021A5;" ><!--Alias mapstoup -->
-<!ENTITY upuparrows       "&#x021C8;" ><!--alias ISOAMSA uuarr -->
-<!ENTITY urcorner         "&#x0231D;" ><!--alias ISOAMSC urcorn -->
-<!ENTITY varepsilon       "&#x0025B;" ><!--alias ISOGRK3 epsiv -->
-<!ENTITY varkappa         "&#x003F0;" ><!--alias ISOGRK3 kappav -->
-<!ENTITY varnothing       "&#x02205;" ><!--alias ISOAMSO emptyv -->
-<!ENTITY varphi           "&#x003C6;" ><!--alias ISOGRK3 phiv -->
-<!ENTITY varpi            "&#x003D6;" ><!--alias ISOGRK3 piv -->
-<!ENTITY varpropto        "&#x0221D;" ><!--alias ISOAMSR vprop -->
-<!ENTITY varrho           "&#x003F1;" ><!--alias ISOGRK3 rhov -->
-<!ENTITY varsigma         "&#x003C2;" ><!--alias ISOGRK3 sigmav -->
-<!ENTITY varsubsetneq     "&#x0228A;&#x0FE00;" ><!--alias ISOAMSN vsubne -->
-<!ENTITY varsubsetneqq    "&#x0228A;&#x0FE00;" ><!--alias ISOAMSN vsubnE -->
-<!ENTITY varsupsetneq     "&#x0228B;&#x0FE00;" ><!--alias ISOAMSN vsupne -->
-<!ENTITY varsupsetneqq    "&#x0228B;&#x0FE00;" ><!--alias ISOAMSN vsupnE -->
-<!ENTITY vartheta         "&#x003D1;" ><!--alias ISOGRK3 thetav -->
-<!ENTITY vartriangleleft  "&#x022B2;" ><!--alias ISOAMSR vltri -->
-<!ENTITY vartriangleright "&#x022B3;" ><!--alias ISOAMSR vrtri -->
-<!ENTITY Vee              "&#x022C1;" ><!--alias ISOAMSB xvee -->
-<!ENTITY vee              "&#x02228;" ><!--alias ISOTECH or -->
-<!ENTITY Vert             "&#x02016;" ><!--alias ISOTECH Verbar -->
-<!ENTITY vert             "&#x0007C;" ><!--alias ISONUM verbar -->
-<!ENTITY VerticalBar      "&#x02223;" ><!--alias ISOAMSR mid -->
-<!ENTITY VerticalTilde    "&#x02240;" ><!--alias ISOAMSB wreath -->
-<!ENTITY VeryThinSpace    "&#x0200A;" ><!--space of width 1/18 em alias ISOPUB hairsp -->
-<!ENTITY Wedge            "&#x022C0;" ><!--alias ISOAMSB xwedge -->
-<!ENTITY wedge            "&#x02227;" ><!--alias ISOTECH and -->
-<!ENTITY wp               "&#x02118;" ><!--alias ISOAMSO weierp -->
-<!ENTITY wr               "&#x02240;" ><!--alias ISOAMSB wreath -->
-<!ENTITY zeetrf           "&#x02128;" ><!--zee transform -->
-
-
-<!-- end of MathML Character Entity section -->]]>
-
-<!-- Revision History:
-
-       Initial draft (syntax = XML) 1997-05-09
-          Stephen Buswell
-       Revised 1997-05-14
-          Robert Miner
-       Revised 1997-06-29 and 1997-07-02
-          Stephen Buswell
-       Revised 1997-12-15
-          Stephen Buswell
-       Revised 1998-02-08
-          Stephen Buswell
-       Revised 1998-04-04
-          Stephen Buswell
-       Entities and small revisions 1999-02-21
-          David Carlisle
-       Added attribute definitionURL to ci and cn 1999-10-11
-          Nico Poppelier
-       Additions for MathML 2  1999-12-16
-          David Carlisle
-       Namespace support 2000-01-14
-          David Carlisle
-       XHTML Compatibility 2000-02-23
-          Murray Altheim
-       New content elements 2000-03-26
-          David Carlisle
-       Further revisions for MathML2 CR draft 2000-07-11
-          David Carlisle
-       Further revisions for MathML2 CR draft 2000-10-31
-          David Carlisle
-       Revisions for Unicode 3.2  2002-05-21
-          David Carlisle
-       Add width and side attributes to mtable (to align with the specification)  2002-06-05
-          David Carlisle
-       Use %XLINK.prefix rather than hardwired xlink:, add xlink:type 2002-06-12
-          David Carlisle
-       Add missing numalign and denomalign attributes for mfrac 2002-07-05
-          David Carlisle
-
--->
-
-<!-- end of MathML 2.0 DTD  ................................................ -->
-<!-- ....................................................................... -->
-
-
-]]>
-
-<!-- end of xhtml-math-svg.dtd -->
diff --git a/lib/dtds/xhtml11/xhtml-special.ent b/lib/dtds/xhtml11/xhtml-special.ent
deleted file mode 100644
index 0af4654..0000000
--- a/lib/dtds/xhtml11/xhtml-special.ent
+++ /dev/null
@@ -1,82 +0,0 @@
-<!-- ...................................................................... -->
-<!-- XML-compatible ISO Special Character Entity Set for XHTML ............ -->
-<!-- file: xhtml-special.ent
-
-     Typical invocation:
-
-       <!ENTITY % xhtml-special
-           PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
-                  "xhtml-special.ent" >
-       %xhtml-special;
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-special.ent"
-
-     Revision:  $Id: xhtml-special.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.
-
-     Revisions:
-2000-10-28: added &apos; and altered XML Predefined Entities for compatibility
--->
-
-<!-- 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.
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY lt      "&#38;#60;" ><!-- less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;" ><!-- greater-than sign, U+003E ISOnum -->
-<!ENTITY amp     "&#38;#38;" ><!-- ampersand, U+0026 ISOnum -->
-<!ENTITY apos    "&#39;" ><!-- The Apostrophe (Apostrophe Quote, APL Quote), U+0027 ISOnum -->
-<!ENTITY quot    "&#34;" ><!-- quotation mark (Quote Double), U+0022 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;" ><!-- latin capital ligature OE, U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;" ><!-- latin small ligature oe, U+0153 ISOlat2 -->
-
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;" ><!-- latin capital letter S with caron, U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;" ><!-- latin small letter s with caron, U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;" ><!-- latin capital letter Y with diaeresis, U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;" ><!-- modifier letter circumflex accent, U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;" ><!-- small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;" ><!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;" ><!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;" ><!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;" ><!-- zero width non-joiner, U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;" ><!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;" ><!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;" ><!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;" ><!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;" ><!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;" ><!-- left single quotation mark, U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;" ><!-- right single quotation mark, U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;" ><!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;" ><!-- left double quotation mark, U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;" ><!-- right double quotation mark, U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;" ><!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;" ><!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;" ><!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;" ><!-- per mille sign, U+2030 ISOtech -->
-
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY lsaquo  "&#8249;" ><!-- single left-pointing angle quotation mark, U+2039 ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;" ><!-- single right-pointing angle quotation mark, U+203A ISO proposed -->
-<!ENTITY euro    "&#8364;" ><!-- euro sign, U+20AC NEW -->
-
-<!-- end of xhtml-special.ent -->
diff --git a/lib/dtds/xhtml11/xhtml-symbol.ent b/lib/dtds/xhtml11/xhtml-symbol.ent
deleted file mode 100644
index e92a1c7..0000000
--- a/lib/dtds/xhtml11/xhtml-symbol.ent
+++ /dev/null
@@ -1,204 +0,0 @@
-<!-- ...................................................................... -->
-<!-- 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     "&#402;" ><!-- latin small f with hook = function
-                              = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;" ><!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;" ><!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;" ><!-- greek capital letter gamma, U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;" ><!-- greek capital letter delta, U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;" ><!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;" ><!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;" ><!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;" ><!-- greek capital letter theta, U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;" ><!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;" ><!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;" ><!-- greek capital letter lambda, U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;" ><!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;" ><!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;" ><!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;" ><!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;" ><!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;" ><!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;" ><!-- greek capital letter sigma, U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;" ><!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;" ><!-- greek capital letter upsilon,
-                              U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;" ><!-- greek capital letter phi, U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;" ><!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;" ><!-- greek capital letter psi, U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;" ><!-- greek capital letter omega, U+03A9 ISOgrk3 -->
-<!ENTITY alpha    "&#945;" ><!-- greek small letter alpha, U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;" ><!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;" ><!-- greek small letter gamma, U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;" ><!-- greek small letter delta, U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;" ><!-- greek small letter epsilon, U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;" ><!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;" ><!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;" ><!-- greek small letter theta, U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;" ><!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;" ><!-- greek small letter kappa, U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;" ><!-- greek small letter lambda, U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;" ><!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;" ><!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;" ><!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;" ><!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;" ><!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;" ><!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;" ><!-- greek small letter final sigma, U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;" ><!-- greek small letter sigma, U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;" ><!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;" ><!-- greek small letter upsilon, U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;" ><!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;" ><!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;" ><!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;" ><!-- greek small letter omega, U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;" ><!-- greek small letter theta symbol, U+03D1 NEW -->
-<!ENTITY upsih    "&#978;" ><!-- greek upsilon with hook symbol, U+03D2 NEW -->
-<!ENTITY piv      "&#982;" ><!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;" ><!-- bullet = black small circle, U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;" ><!-- horizontal ellipsis = three dot leader, U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;" ><!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;" ><!-- double prime = seconds = inches, U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;" ><!-- overline = spacing overscore, U+203E NEW -->
-<!ENTITY frasl    "&#8260;" ><!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;" ><!-- script capital P = power set = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;" ><!-- blackletter capital I = imaginary part, U+2111 ISOamso -->
-<!ENTITY real     "&#8476;" ><!-- blackletter capital R = real part symbol, U+211C ISOamso -->
-<!ENTITY trade    "&#8482;" ><!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;" ><!-- 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     "&#8592;" ><!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;" ><!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;" ><!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;" ><!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;" ><!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;" ><!-- downwards arrow with corner leftwards
-                               = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;" ><!-- 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     "&#8657;" ><!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;" ><!-- 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     "&#8659;" ><!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;" ><!-- left right double arrow, U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;" ><!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;" ><!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;" ><!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;" ><!-- empty set = null set, U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;" ><!-- nabla = backward difference, U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;" ><!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;" ><!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;" ><!-- contains as member, U+220B ISOtech -->
-<!-- should there be a more memorable name than 'ni'? -->
-<!ENTITY prod     "&#8719;" ><!-- 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      "&#8721;" ><!-- 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    "&#8722;" ><!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;" ><!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;" ><!-- square root = radical sign, U+221A ISOtech -->
-<!ENTITY prop     "&#8733;" ><!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;" ><!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;" ><!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;" ><!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;" ><!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;" ><!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;" ><!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;" ><!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;" ><!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;" ><!-- 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     "&#8773;" ><!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;" ><!-- almost equal to = asymptotic to, U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;" ><!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;" ><!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;" ><!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;" ><!-- greater-than or equal to, U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;" ><!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;" ><!-- 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     "&#8836;" ><!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;" ><!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;" ><!-- superset of or equal to, U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;" ><!-- circled plus = direct sum, U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;" ><!-- circled times = vector product, U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;" ><!-- up tack = orthogonal to = perpendicular, U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;" ><!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;" ><!-- left ceiling = apl upstile, U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;" ><!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;" ><!-- left floor = apl downstile, U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;" ><!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;" ><!-- 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     "&#9002;" ><!-- 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      "&#9674;" ><!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;" ><!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;" ><!-- black club suit = shamrock, U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;" ><!-- black heart suit = valentine, U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;" ><!-- black diamond suit, U+2666 ISOpub -->
-
-<!-- end of xhtml-symbol.ent -->
diff --git a/lib/dtds/xhtml11/xhtml11-flat.dtd b/lib/dtds/xhtml11/xhtml11-flat.dtd
deleted file mode 100644
index 1e855bc..0000000
--- a/lib/dtds/xhtml11/xhtml11-flat.dtd
+++ /dev/null
@@ -1,4689 +0,0 @@
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 DTD  ........................................................ -->
-<!-- file: xhtml11.dtd
--->
-
-<!-- XHTML 1.1 DTD
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-
-     The Extensible HyperText Markup Language (XHTML)
-     Copyright 1998-2008 World Wide Web Consortium
-        (Massachusetts Institute of Technology, European Research Consortium
-         for Informatics and Mathematics, Keio University).
-         All Rights Reserved.
-
-     Permission to use, copy, modify and distribute the XHTML DTD and its 
-     accompanying documentation for any purpose and without fee is hereby 
-     granted in perpetuity, provided that the above copyright notice and 
-     this paragraph appear in all copies.  The copyright holders make no 
-     representation about the suitability of the DTD for any purpose.
-
-     It is provided "as is" without expressed or implied warranty.
-
-        Author:     Murray M. Altheim <altheim@eng.sun.com>
-        Revision:   $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $
-
--->
-<!-- This is the driver file for version 1.1 of the XHTML DTD.
-
-     Please use this public identifier to identify it:
-
-         "-//W3C//DTD XHTML 1.1//EN"
--->
-<!ENTITY % XHTML.version  "-//W3C//DTD XHTML 1.1//EN" >
-
-<!-- Use this URI to identify the default namespace:
-
-         "http://www.w3.org/1999/xhtml"
-
-     See the Qualified Names module for information
-     on the use of namespace prefixes in the DTD.
-
-	 Note that XHTML namespace elements are not prefixed by default,
-	 but the XHTML namespace prefix is defined as "xhtml" so that
-	 other markup languages can extend this one and use the XHTML
-	 prefixed global attributes if required.
-
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % XHTML.prefix "xhtml" >
-
-<!-- Be sure to include prefixed global attributes - we don't need
-     them, but languages that extend XHTML 1.1 might.
--->
-<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >
-
-<!-- Reserved for use with the XLink namespace:
--->
-<!ENTITY % XLINK.xmlns "" >
-<!ENTITY % XLINK.xmlns.attrib "" >
-
-<!-- For example, if you are using XHTML 1.1 directly, use the public
-     identifier in the DOCTYPE declaration, with the namespace declaration
-     on the document element to identify the default namespace:
-
-       <?xml version="1.0"?>
-       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
-                             "http://www.w3.org/MarkUp/DTD/xhtml11.dtd">
-       <html xmlns="http://www.w3.org/1999/xhtml"
-             xml:lang="en">
-       ...
-       </html>
-
-     Revisions:
-     (none)
--->
-
-<!-- reserved for future use with document profiles -->
-<!ENTITY % XHTML.profile  "" >
-
-<!-- ensure XHTML Notations are disabled -->
-<!ENTITY % xhtml-notations.module "IGNORE" >
-
-<!-- Bidirectional Text features
-     This feature-test entity is used to declare elements
-     and attributes used for bidirectional text support.
--->
-<!ENTITY % XHTML.bidi  "INCLUDE" >
-
-<?doc type="doctype" role="title" { XHTML 1.1 } ?>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Pre-Framework Redeclaration placeholder  .................... -->
-<!-- this serves as a location to insert markup declarations
-     into the DTD prior to the framework declarations.
--->
-<!ENTITY % xhtml-prefw-redecl.module "IGNORE" >
-<![%xhtml-prefw-redecl.module;[
-%xhtml-prefw-redecl.mod;
-<!-- end of xhtml-prefw-redecl.module -->]]>
-
-<!ENTITY % xhtml-events.module "INCLUDE" >
-
-<!-- Inline Style Module  ........................................ -->
-<!ENTITY % xhtml-inlstyle.module "INCLUDE" >
-<![%xhtml-inlstyle.module;[
-<!ENTITY % xhtml-inlstyle.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Style Module  ........................................... -->
-<!-- file: xhtml-inlstyle-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Inline Style 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Style
-
-     This module declares the 'style' attribute, used to support inline
-     style markup. This module must be instantiated prior to the XHTML
-     Common Attributes module in order to be included in %Core.attrib;.
--->
-
-<!ENTITY % style.attrib
-     "style        CDATA                    #IMPLIED"
->
-
-
-<!ENTITY % Core.extra.attrib
-     "%style.attrib;"
->
-
-<!-- end of xhtml-inlstyle-1.mod -->
-]]>
-
-<!-- declare Document Model module instantiated in framework
--->
-<!ENTITY % xhtml-model.mod
-     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" >
-
-<!-- adding the lang attribute into the I18N collection -->
-
-<!ENTITY % xhtml-datatypes.module "INCLUDE" >
-<![%xhtml-datatypes.module;[
-<!ENTITY % xhtml-datatypes.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-            "xhtml-datatypes-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Datatypes Module  .............................................. -->
-<!-- file: xhtml-datatypes-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Datatypes
-
-     defines containers for the following datatypes, many of
-     these imported from other specifications and standards.
--->
-
-<!-- Length defined for cellpadding/cellspacing -->
-
-<!-- nn for pixels or nn% for percentage length -->
-<!ENTITY % Length.datatype "CDATA" >
-
-<!-- space-separated list of link types -->
-<!ENTITY % LinkTypes.datatype "NMTOKENS" >
-
-<!-- single or comma-separated list of media descriptors -->
-<!ENTITY % MediaDesc.datatype "CDATA" >
-
-<!-- pixel, percentage, or relative -->
-<!ENTITY % MultiLength.datatype "CDATA" >
-
-<!-- one or more digits (NUMBER) -->
-<!ENTITY % Number.datatype "CDATA" >
-
-<!-- integer representing length in pixels -->
-<!ENTITY % Pixels.datatype "CDATA" >
-
-<!-- script expression -->
-<!ENTITY % Script.datatype "CDATA" >
-
-<!-- textual content -->
-<!ENTITY % Text.datatype "CDATA" >
-
-<!-- Placeholder Compact URI-related types -->
-<!ENTITY % CURIE.datatype "CDATA" >
-<!ENTITY % CURIEs.datatype "CDATA" >
-<!ENTITY % SafeCURIE.datatype "CDATA" >
-<!ENTITY % SafeCURIEs.datatype "CDATA" >
-<!ENTITY % URIorSafeCURIE.datatype "CDATA" >
-<!ENTITY % URIorSafeCURIEs.datatype "CDATA" >
-
-<!-- Imported Datatypes ................................ -->
-
-<!-- a single character from [ISO10646] -->
-<!ENTITY % Character.datatype "CDATA" >
-
-<!-- a character encoding, as per [RFC2045] -->
-<!ENTITY % Charset.datatype "CDATA" >
-
-<!-- a space separated list of character encodings, as per [RFC2045] -->
-<!ENTITY % Charsets.datatype "CDATA" >
-
-<!-- Color specification using color name or sRGB (#RRGGBB) values -->
-<!ENTITY % Color.datatype "CDATA" >
-
-<!-- media type, as per [RFC2045] -->
-<!ENTITY % ContentType.datatype "CDATA" >
-
-<!-- comma-separated list of media types, as per [RFC2045] -->
-<!ENTITY % ContentTypes.datatype "CDATA" >
-
-<!-- date and time information. ISO date format -->
-<!ENTITY % Datetime.datatype "CDATA" >
-
-<!-- formal public identifier, as per [ISO8879] -->
-<!ENTITY % FPI.datatype "CDATA" >
-
-<!-- a language code, as per [RFC3066] or its successor -->
-<!ENTITY % LanguageCode.datatype "CDATA" >
-
-<!-- a comma separated list of language code ranges -->
-<!ENTITY % LanguageCodes.datatype "CDATA" >
-
-<!-- a qualified name , as per [XMLNS] or its successor -->
-<!ENTITY % QName.datatype "CDATA" >
-<!ENTITY % QNames.datatype "CDATA" >
-
-<!-- a Uniform Resource Identifier, see [URI] -->
-<!ENTITY % URI.datatype "CDATA" >
-
-<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
-<!ENTITY % URIs.datatype "CDATA" >
-
-<!-- a relative URI reference consisting of an initial '#' and a fragment ID -->
-<!ENTITY % URIREF.datatype "CDATA" >
-
-<!-- end of xhtml-datatypes-1.mod -->
-]]>
-
-<!ENTITY % lang.attrib
-     "xml:lang     %LanguageCode.datatype;  #IMPLIED
-      lang         %LanguageCode.datatype;  #IMPLIED"
->
-
-<!-- Modular Framework Module (required) ......................... -->
-<!ENTITY % xhtml-framework.module "INCLUDE" >
-<![%xhtml-framework.module;[
-<!ENTITY % xhtml-framework.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Modular Framework Module  ...................................... -->
-<!-- file: xhtml-framework-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Modular Framework
-
-     This required module instantiates the modules needed
-     to support the XHTML modularization model, including:
-
-        +  datatypes
-        +  namespace-qualified names
-        +  common attributes
-        +  document model
-        +  character entities
-
-     The Intrinsic Events module is ignored by default but
-     occurs in this module because it must be instantiated
-     prior to Attributes but after Datatypes.
--->
-
-<!ENTITY % xhtml-arch.module "IGNORE" >
-<![%xhtml-arch.module;[
-<!ENTITY % xhtml-arch.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN"
-            "xhtml-arch-1.mod" >
-%xhtml-arch.mod;]]>
-
-<!ENTITY % xhtml-notations.module "IGNORE" >
-<![%xhtml-notations.module;[
-<!ENTITY % xhtml-notations.mod
-     PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN"
-            "xhtml-notations-1.mod" >
-%xhtml-notations.mod;]]>
-
-<!ENTITY % xhtml-datatypes.module "INCLUDE" >
-<![%xhtml-datatypes.module;[
-<!ENTITY % xhtml-datatypes.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-            "xhtml-datatypes-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Datatypes Module  .............................................. -->
-<!-- file: xhtml-datatypes-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Datatypes
-
-     defines containers for the following datatypes, many of
-     these imported from other specifications and standards.
--->
-
-<!-- Length defined for cellpadding/cellspacing -->
-
-<!-- nn for pixels or nn% for percentage length -->
-<!ENTITY % Length.datatype "CDATA" >
-
-<!-- space-separated list of link types -->
-<!ENTITY % LinkTypes.datatype "NMTOKENS" >
-
-<!-- single or comma-separated list of media descriptors -->
-<!ENTITY % MediaDesc.datatype "CDATA" >
-
-<!-- pixel, percentage, or relative -->
-<!ENTITY % MultiLength.datatype "CDATA" >
-
-<!-- one or more digits (NUMBER) -->
-<!ENTITY % Number.datatype "CDATA" >
-
-<!-- integer representing length in pixels -->
-<!ENTITY % Pixels.datatype "CDATA" >
-
-<!-- script expression -->
-<!ENTITY % Script.datatype "CDATA" >
-
-<!-- textual content -->
-<!ENTITY % Text.datatype "CDATA" >
-
-<!-- Placeholder Compact URI-related types -->
-<!ENTITY % CURIE.datatype "CDATA" >
-<!ENTITY % CURIEs.datatype "CDATA" >
-<!ENTITY % SafeCURIE.datatype "CDATA" >
-<!ENTITY % SafeCURIEs.datatype "CDATA" >
-<!ENTITY % URIorSafeCURIE.datatype "CDATA" >
-<!ENTITY % URIorSafeCURIEs.datatype "CDATA" >
-
-<!-- Imported Datatypes ................................ -->
-
-<!-- a single character from [ISO10646] -->
-<!ENTITY % Character.datatype "CDATA" >
-
-<!-- a character encoding, as per [RFC2045] -->
-<!ENTITY % Charset.datatype "CDATA" >
-
-<!-- a space separated list of character encodings, as per [RFC2045] -->
-<!ENTITY % Charsets.datatype "CDATA" >
-
-<!-- Color specification using color name or sRGB (#RRGGBB) values -->
-<!ENTITY % Color.datatype "CDATA" >
-
-<!-- media type, as per [RFC2045] -->
-<!ENTITY % ContentType.datatype "CDATA" >
-
-<!-- comma-separated list of media types, as per [RFC2045] -->
-<!ENTITY % ContentTypes.datatype "CDATA" >
-
-<!-- date and time information. ISO date format -->
-<!ENTITY % Datetime.datatype "CDATA" >
-
-<!-- formal public identifier, as per [ISO8879] -->
-<!ENTITY % FPI.datatype "CDATA" >
-
-<!-- a language code, as per [RFC3066] or its successor -->
-<!ENTITY % LanguageCode.datatype "CDATA" >
-
-<!-- a comma separated list of language code ranges -->
-<!ENTITY % LanguageCodes.datatype "CDATA" >
-
-<!-- a qualified name , as per [XMLNS] or its successor -->
-<!ENTITY % QName.datatype "CDATA" >
-<!ENTITY % QNames.datatype "CDATA" >
-
-<!-- a Uniform Resource Identifier, see [URI] -->
-<!ENTITY % URI.datatype "CDATA" >
-
-<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
-<!ENTITY % URIs.datatype "CDATA" >
-
-<!-- a relative URI reference consisting of an initial '#' and a fragment ID -->
-<!ENTITY % URIREF.datatype "CDATA" >
-
-<!-- end of xhtml-datatypes-1.mod -->
-]]>
-
-<!-- placeholder for XLink support module -->
-<!ENTITY % xhtml-xlink.mod "" >
-
-
-<!ENTITY % xhtml-qname.module "INCLUDE" >
-<![%xhtml-qname.module;[
-<!ENTITY % xhtml-qname.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
-            "xhtml-qname-1.mod" >
-<!-- ....................................................................... -->
-<!-- XHTML Qname Module  ................................................... -->
-<!-- file: xhtml-qname-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-qname-1.mod"
-
-     Revisions:
-	   #2000-10-22: added qname declarations for ruby elements
-     ....................................................................... -->
-
-<!-- XHTML Qname (Qualified Name) Module
-
-     This module is contained in two parts, labeled Section 'A' and 'B':
-
-       Section A declares parameter entities to support namespace-
-       qualified names, namespace declarations, and name prefixing
-       for XHTML and extensions.
-
-       Section B declares parameter entities used to provide
-       namespace-qualified names for all XHTML element types:
-
-         %applet.qname;   the xmlns-qualified name for <applet>
-         %base.qname;     the xmlns-qualified name for <base>
-         ...
-
-     XHTML extensions would create a module similar to this one.
-     Included in the XHTML distribution is a template module
-     ('template-qname-1.mod') suitable for this purpose.
--->
-
-<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: -->
-
-<!-- 1. Declare a %XHTML.prefixed; conditional section keyword, used
-        to activate namespace prefixing. The default value should
-        inherit '%NS.prefixed;' from the DTD driver, so that unless
-        overridden, the default behaviour follows the overall DTD
-        prefixing scheme.
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % XHTML.prefixed "%NS.prefixed;" >
-
-<!-- By default, we always permit XHTML attribute collections to have
-     namespace-qualified prefixes as well.
--->
-<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >
-<!-- By default, we allow the XML Schema attributes on the root
-     element.
--->
-<!ENTITY % XHTML.xsi.attrs "INCLUDE" >
-
-<!-- 2. Declare a parameter entity (eg., %XHTML.xmlns;) containing
-        the URI reference used to identify the XHTML namespace:
--->
-<!ENTITY % XHTML.xmlns  "http://www.w3.org/1999/xhtml" >
-
-<!-- 3. Declare parameter entities (eg., %XHTML.prefix;) containing
-        the default namespace prefix string(s) to use when prefixing
-        is enabled. This may be overridden in the DTD driver or the
-        internal subset of an document instance. If no default prefix
-        is desired, this may be declared as an empty string.
-
-     NOTE: As specified in [XMLNAMES], the namespace prefix serves
-     as a proxy for the URI reference, and is not in itself significant.
--->
-<!ENTITY % XHTML.prefix  "xhtml" >
-
-<!-- 4. Declare parameter entities (eg., %XHTML.pfx;) containing the
-        colonized prefix(es) (eg., '%XHTML.prefix;:') used when
-        prefixing is active, an empty string when it is not.
--->
-<![%XHTML.prefixed;[
-<!ENTITY % XHTML.pfx  "%XHTML.prefix;:" >
-]]>
-<!ENTITY % XHTML.pfx  "" >
-
-<!-- declare qualified name extensions here ............ -->
-<!ENTITY % xhtml-qname-extra.mod "" >
-
-
-<!-- 5. The parameter entity %XHTML.xmlns.extra.attrib; may be
-        redeclared to contain any non-XHTML namespace declaration
-        attributes for namespaces embedded in XHTML. The default
-        is an empty string.  XLink should be included here if used
-        in the DTD.
--->
-<!ENTITY % XHTML.xmlns.extra.attrib "" >
-
-<!-- The remainder of Section A is only followed in XHTML, not extensions. -->
-
-<!-- Declare a parameter entity %NS.decl.attrib; containing
-     all XML Namespace declarations used in the DTD, plus the
-     xmlns declaration for XHTML, its form dependent on whether
-     prefixing is active.
--->
-<!ENTITY % XHTML.xmlns.attrib.prefixed
-     "xmlns:%XHTML.prefix;  %URI.datatype;   #FIXED '%XHTML.xmlns;'"
->
-<![%XHTML.prefixed;[
-<!ENTITY % NS.decl.attrib
-     "%XHTML.xmlns.attrib.prefixed;
-      %XHTML.xmlns.extra.attrib;"
->
-]]>
-<!ENTITY % NS.decl.attrib
-     "%XHTML.xmlns.extra.attrib;"
->
-
-<!-- Declare a parameter entity %XSI.prefix as a prefix to use for XML
-     Schema Instance attributes.
--->
-<!ENTITY % XSI.prefix "xsi" >
-
-<!ENTITY % XSI.xmlns "http://www.w3.org/2001/XMLSchema-instance" >
-
-<!-- Declare a parameter entity %XSI.xmlns.attrib as support for the
-     schemaLocation attribute, since this is legal throughout the DTD.
--->
-<!ENTITY % XSI.xmlns.attrib
-     "xmlns:%XSI.prefix;  %URI.datatype;   #FIXED '%XSI.xmlns;'" >
-
-<!-- This is a placeholder for future XLink support.
--->
-<!ENTITY % XLINK.xmlns.attrib "" >
-
-<!-- This is the attribute for the XML Schema namespace - XHTML
-     Modularization is also expressed in XML Schema, and it needs to
-	 be legal to declare the XML Schema namespace and the
-	 schemaLocation attribute on the root element of XHTML family
-	 documents.
--->
-<![%XHTML.xsi.attrs;[
-<!ENTITY % XSI.prefix "xsi" >
-<!ENTITY % XSI.pfx "%XSI.prefix;:" >
-<!ENTITY % XSI.xmlns "http://www.w3.org/2001/XMLSchema-instance" >
-
-<!ENTITY % XSI.xmlns.attrib
-     "xmlns:%XSI.prefix;  %URI.datatype;    #FIXED '%XSI.xmlns;'"
->
-]]>
-<!ENTITY % XSI.prefix "" >
-<!ENTITY % XSI.pfx "" >
-<!ENTITY % XSI.xmlns.attrib "" >
-
-
-<!-- Declare a parameter entity %NS.decl.attrib; containing all
-     XML namespace declaration attributes used by XHTML, including
-     a default xmlns attribute when prefixing is inactive.
--->
-<![%XHTML.prefixed;[
-<!ENTITY % XHTML.xmlns.attrib
-     "%NS.decl.attrib;
-      %XSI.xmlns.attrib;
-      %XLINK.xmlns.attrib;"
->
-]]>
-<!ENTITY % XHTML.xmlns.attrib
-     "xmlns        %URI.datatype;           #FIXED '%XHTML.xmlns;'
-      %NS.decl.attrib;
-      %XSI.xmlns.attrib;
-      %XLINK.xmlns.attrib;"
->
-
-<!-- placeholder for qualified name redeclarations -->
-<!ENTITY % xhtml-qname.redecl "" >
-
-
-<!-- Section B: XHTML Qualified Names ::::::::::::::::::::::::::::: -->
-
-<!-- 6. This section declares parameter entities used to provide
-        namespace-qualified names for all XHTML element types.
--->
-
-<!-- module:  xhtml-applet-1.mod -->
-<!ENTITY % applet.qname  "%XHTML.pfx;applet" >
-
-<!-- module:  xhtml-base-1.mod -->
-<!ENTITY % base.qname    "%XHTML.pfx;base" >
-
-<!-- module:  xhtml-bdo-1.mod -->
-<!ENTITY % bdo.qname     "%XHTML.pfx;bdo" >
-
-<!-- module:  xhtml-blkphras-1.mod -->
-<!ENTITY % address.qname "%XHTML.pfx;address" >
-<!ENTITY % blockquote.qname  "%XHTML.pfx;blockquote" >
-<!ENTITY % pre.qname     "%XHTML.pfx;pre" >
-<!ENTITY % h1.qname      "%XHTML.pfx;h1" >
-<!ENTITY % h2.qname      "%XHTML.pfx;h2" >
-<!ENTITY % h3.qname      "%XHTML.pfx;h3" >
-<!ENTITY % h4.qname      "%XHTML.pfx;h4" >
-<!ENTITY % h5.qname      "%XHTML.pfx;h5" >
-<!ENTITY % h6.qname      "%XHTML.pfx;h6" >
-
-<!-- module:  xhtml-blkpres-1.mod -->
-<!ENTITY % hr.qname      "%XHTML.pfx;hr" >
-
-<!-- module:  xhtml-blkstruct-1.mod -->
-<!ENTITY % div.qname     "%XHTML.pfx;div" >
-<!ENTITY % p.qname       "%XHTML.pfx;p" >
-
-<!-- module:  xhtml-edit-1.mod -->
-<!ENTITY % ins.qname     "%XHTML.pfx;ins" >
-<!ENTITY % del.qname     "%XHTML.pfx;del" >
-
-<!-- module:  xhtml-form-1.mod -->
-<!ENTITY % form.qname    "%XHTML.pfx;form" >
-<!ENTITY % label.qname   "%XHTML.pfx;label" >
-<!ENTITY % input.qname   "%XHTML.pfx;input" >
-<!ENTITY % select.qname  "%XHTML.pfx;select" >
-<!ENTITY % optgroup.qname  "%XHTML.pfx;optgroup" >
-<!ENTITY % option.qname  "%XHTML.pfx;option" >
-<!ENTITY % textarea.qname  "%XHTML.pfx;textarea" >
-<!ENTITY % fieldset.qname  "%XHTML.pfx;fieldset" >
-<!ENTITY % legend.qname  "%XHTML.pfx;legend" >
-<!ENTITY % button.qname  "%XHTML.pfx;button" >
-
-<!-- module:  xhtml-hypertext-1.mod -->
-<!ENTITY % a.qname       "%XHTML.pfx;a" >
-
-<!-- module:  xhtml-image-1.mod -->
-<!ENTITY % img.qname     "%XHTML.pfx;img" >
-
-<!-- module:  xhtml-inlphras-1.mod -->
-<!ENTITY % abbr.qname    "%XHTML.pfx;abbr" >
-<!ENTITY % acronym.qname "%XHTML.pfx;acronym" >
-<!ENTITY % cite.qname    "%XHTML.pfx;cite" >
-<!ENTITY % code.qname    "%XHTML.pfx;code" >
-<!ENTITY % dfn.qname     "%XHTML.pfx;dfn" >
-<!ENTITY % em.qname      "%XHTML.pfx;em" >
-<!ENTITY % kbd.qname     "%XHTML.pfx;kbd" >
-<!ENTITY % q.qname       "%XHTML.pfx;q" >
-<!ENTITY % samp.qname    "%XHTML.pfx;samp" >
-<!ENTITY % strong.qname  "%XHTML.pfx;strong" >
-<!ENTITY % var.qname     "%XHTML.pfx;var" >
-
-<!-- module:  xhtml-inlpres-1.mod -->
-<!ENTITY % b.qname       "%XHTML.pfx;b" >
-<!ENTITY % big.qname     "%XHTML.pfx;big" >
-<!ENTITY % i.qname       "%XHTML.pfx;i" >
-<!ENTITY % small.qname   "%XHTML.pfx;small" >
-<!ENTITY % sub.qname     "%XHTML.pfx;sub" >
-<!ENTITY % sup.qname     "%XHTML.pfx;sup" >
-<!ENTITY % tt.qname      "%XHTML.pfx;tt" >
-
-<!-- module:  xhtml-inlstruct-1.mod -->
-<!ENTITY % br.qname      "%XHTML.pfx;br" >
-<!ENTITY % span.qname    "%XHTML.pfx;span" >
-
-<!-- module:  xhtml-ismap-1.mod (also csismap, ssismap) -->
-<!ENTITY % map.qname     "%XHTML.pfx;map" >
-<!ENTITY % area.qname    "%XHTML.pfx;area" >
-
-<!-- module:  xhtml-link-1.mod -->
-<!ENTITY % link.qname    "%XHTML.pfx;link" >
-
-<!-- module:  xhtml-list-1.mod -->
-<!ENTITY % dl.qname      "%XHTML.pfx;dl" >
-<!ENTITY % dt.qname      "%XHTML.pfx;dt" >
-<!ENTITY % dd.qname      "%XHTML.pfx;dd" >
-<!ENTITY % ol.qname      "%XHTML.pfx;ol" >
-<!ENTITY % ul.qname      "%XHTML.pfx;ul" >
-<!ENTITY % li.qname      "%XHTML.pfx;li" >
-
-<!-- module:  xhtml-meta-1.mod -->
-<!ENTITY % meta.qname    "%XHTML.pfx;meta" >
-
-<!-- module:  xhtml-param-1.mod -->
-<!ENTITY % param.qname   "%XHTML.pfx;param" >
-
-<!-- module:  xhtml-object-1.mod -->
-<!ENTITY % object.qname  "%XHTML.pfx;object" >
-
-<!-- module:  xhtml-script-1.mod -->
-<!ENTITY % script.qname  "%XHTML.pfx;script" >
-<!ENTITY % noscript.qname  "%XHTML.pfx;noscript" >
-
-<!-- module:  xhtml-struct-1.mod -->
-<!ENTITY % html.qname    "%XHTML.pfx;html" >
-<!ENTITY % head.qname    "%XHTML.pfx;head" >
-<!ENTITY % title.qname   "%XHTML.pfx;title" >
-<!ENTITY % body.qname    "%XHTML.pfx;body" >
-
-<!-- module:  xhtml-style-1.mod -->
-<!ENTITY % style.qname   "%XHTML.pfx;style" >
-
-<!-- module:  xhtml-table-1.mod -->
-<!ENTITY % table.qname   "%XHTML.pfx;table" >
-<!ENTITY % caption.qname "%XHTML.pfx;caption" >
-<!ENTITY % thead.qname   "%XHTML.pfx;thead" >
-<!ENTITY % tfoot.qname   "%XHTML.pfx;tfoot" >
-<!ENTITY % tbody.qname   "%XHTML.pfx;tbody" >
-<!ENTITY % colgroup.qname  "%XHTML.pfx;colgroup" >
-<!ENTITY % col.qname     "%XHTML.pfx;col" >
-<!ENTITY % tr.qname      "%XHTML.pfx;tr" >
-<!ENTITY % th.qname      "%XHTML.pfx;th" >
-<!ENTITY % td.qname      "%XHTML.pfx;td" >
-
-<!-- module:  xhtml-ruby-1.mod -->
-
-<!ENTITY % ruby.qname    "%XHTML.pfx;ruby" >
-<!ENTITY % rbc.qname     "%XHTML.pfx;rbc" >
-<!ENTITY % rtc.qname     "%XHTML.pfx;rtc" >
-<!ENTITY % rb.qname      "%XHTML.pfx;rb" >
-<!ENTITY % rt.qname      "%XHTML.pfx;rt" >
-<!ENTITY % rp.qname      "%XHTML.pfx;rp" >
-
-<!-- Provisional XHTML 2.0 Qualified Names  ...................... -->
-
-<!-- module:  xhtml-image-2.mod -->
-<!ENTITY % alt.qname     "%XHTML.pfx;alt" >
-
-<!-- end of xhtml-qname-1.mod -->
-]]>
-
-<!ENTITY % xhtml-events.module "IGNORE" >
-<![%xhtml-events.module;[
-<!ENTITY % xhtml-events.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"
-            "xhtml-events-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Intrinsic Events Module  ....................................... -->
-<!-- file: xhtml-events-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-events-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Intrinsic Event Attributes
-
-     These are the event attributes defined in HTML 4,
-     Section 18.2.3 "Intrinsic Events". This module must be
-     instantiated prior to the Attributes Module but after
-     the Datatype Module in the Modular Framework module.
-
-    "Note: Authors of HTML documents are advised that changes
-     are likely to occur in the realm of intrinsic events
-     (e.g., how scripts are bound to events). Research in
-     this realm is carried on by members of the W3C Document
-     Object Model Working Group (see the W3C Web site at
-     http://www.w3.org/ for more information)."
--->
-<!-- NOTE: Because the ATTLIST declarations in this module occur
-     before their respective ELEMENT declarations in other
-     modules, there may be a dependency on this module that
-     should be considered if any of the parameter entities used
-     for element type names (eg., %a.qname;) are redeclared.
--->
-
-<!ENTITY % Events.attrib
-     "onclick      %Script.datatype;        #IMPLIED
-      ondblclick   %Script.datatype;        #IMPLIED
-      onmousedown  %Script.datatype;        #IMPLIED
-      onmouseup    %Script.datatype;        #IMPLIED
-      onmouseover  %Script.datatype;        #IMPLIED
-      onmousemove  %Script.datatype;        #IMPLIED
-      onmouseout   %Script.datatype;        #IMPLIED
-      onkeypress   %Script.datatype;        #IMPLIED
-      onkeydown    %Script.datatype;        #IMPLIED
-      onkeyup      %Script.datatype;        #IMPLIED"
->
-
-<![%XHTML.global.attrs.prefixed;[
-<!ENTITY % XHTML.global.events.attrib
-     "%XHTML.prefix;:onclick      %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:ondblclick   %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onmousedown  %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onmouseup    %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onmouseover  %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onmousemove  %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onmouseout   %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onkeypress   %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onkeydown    %Script.datatype;        #IMPLIED
-      %XHTML.prefix;:onkeyup      %Script.datatype;        #IMPLIED"
->
-]]>
-
-<!-- additional attributes on anchor element
--->
-<!ATTLIST %a.qname;
-     onfocus      %Script.datatype;         #IMPLIED
-     onblur       %Script.datatype;         #IMPLIED
->
-
-<!-- additional attributes on form element
--->
-<!ATTLIST %form.qname;
-      onsubmit     %Script.datatype;        #IMPLIED
-      onreset      %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on label element
--->
-<!ATTLIST %label.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on input element
--->
-<!ATTLIST %input.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
-      onselect     %Script.datatype;        #IMPLIED
-      onchange     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on select element
--->
-<!ATTLIST %select.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
-      onchange     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on textarea element
--->
-<!ATTLIST %textarea.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
-      onselect     %Script.datatype;        #IMPLIED
-      onchange     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on button element
--->
-<!ATTLIST %button.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on body element
--->
-<!ATTLIST %body.qname;
-      onload       %Script.datatype;        #IMPLIED
-      onunload     %Script.datatype;        #IMPLIED
->
-
-<!-- additional attributes on area element
--->
-<!ATTLIST %area.qname;
-      onfocus      %Script.datatype;        #IMPLIED
-      onblur       %Script.datatype;        #IMPLIED
->
-
-<!-- end of xhtml-events-1.mod -->
-]]>
-
-<!ENTITY % xhtml-attribs.module "INCLUDE" >
-<![%xhtml-attribs.module;[
-<!ENTITY % xhtml-attribs.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
-            "xhtml-attribs-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Common Attributes Module  ...................................... -->
-<!-- file: xhtml-attribs-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-attribs-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Common Attributes
-
-     This module declares many of the common attributes for the XHTML DTD.
-     %NS.decl.attrib; is declared in the XHTML Qname module.
-
-	 Note that this file was extended in XHTML Modularization 1.1 to 
-	 include declarations of "global" versions of the attribute collections.
-	 The global versions of the attributes are for use on elements in other 
-	 namespaces.  The global version of "common" includes the xmlns declaration
-	 for the prefixed version of the xhtml namespace.  If you are only using a
-	 specific attribute or an individual attribute collection, you must also
-	 include the XHTML.xmlns.attrib.prefixed PE on your elements.
--->
-
-<!ENTITY % id.attrib
-     "id           ID                       #IMPLIED"
->
-
-<![%XHTML.global.attrs.prefixed;[
-<!ENTITY % XHTML.global.id.attrib
-     "%XHTML.prefix;:id           ID        #IMPLIED"
->
-]]>
-
-<!ENTITY % class.attrib
-     "class        CDATA                 #IMPLIED"
->
-
-<![%XHTML.global.attrs.prefixed;[
-<!ENTITY % XHTML.global.class.attrib
-     "%XHTML.prefix;:class        CDATA                 #IMPLIED"
->
-]]>
-
-<!ENTITY % title.attrib
-     "title        %Text.datatype;          #IMPLIED"
->
-
-<![%XHTML.global.attrs.prefixed;[
-<!ENTITY % XHTML.global.title.attrib
-     "%XHTML.prefix;:title        %Text.datatype;          #IMPLIED"
->
-]]>
-
-<!ENTITY % Core.extra.attrib "" >
-
-<!ENTITY % Core.attrib
-     "%XHTML.xmlns.attrib;
-      %id.attrib;
-      %class.attrib;
-      %title.attrib;
-      %Core.extra.attrib;"
->
-
-<!ENTITY % XHTML.global.core.extra.attrib "" >
-
-<![%XHTML.global.attrs.prefixed;[
-
-<!ENTITY % XHTML.global.core.attrib
-     "%XHTML.global.id.attrib;
-      %XHTML.global.class.attrib;
-      %XHTML.global.title.attrib;
-      %XHTML.global.core.extra.attrib;"
->
-]]>
-
-<!ENTITY % XHTML.global.core.attrib "" >
-
-
-<!ENTITY % lang.attrib
-     "xml:lang     %LanguageCode.datatype;  #IMPLIED"
->
-
-<![%XHTML.bidi;[
-<!ENTITY % dir.attrib
-     "dir          ( ltr | rtl )            #IMPLIED"
->
-
-<!ENTITY % I18n.attrib
-     "%dir.attrib;
-      %lang.attrib;"
->
-
-<![%XHTML.global.attrs.prefixed;[
-<!ENTITY XHTML.global.i18n.attrib
-     "%XHTML.prefix;:dir          ( ltr | rtl )            #IMPLIED
-      %lang.attrib;"
->
-]]>
-<!ENTITY XHTML.global.i18n.attrib "" >
-
-]]>
-<!ENTITY % I18n.attrib
-     "%lang.attrib;"
->
-<!ENTITY % XHTML.global.i18n.attrib
-     "%lang.attrib;"
->
-
-<!ENTITY % Common.extra.attrib "" >
-<!ENTITY % XHTML.global.common.extra.attrib "" >
-
-<!-- intrinsic event attributes declared previously
--->
-<!ENTITY % Events.attrib "" >
-
-<!ENTITY % XHTML.global.events.attrib "" >
-
-<!ENTITY % Common.attrib
-     "%Core.attrib;
-      %I18n.attrib;
-      %Events.attrib;
-      %Common.extra.attrib;"
->
-
-<!ENTITY % XHTML.global.common.attrib
-     "%XHTML.xmlns.attrib.prefixed;
-      %XHTML.global.core.attrib;
-	  %XHTML.global.i18n.attrib;
-	  %XHTML.global.events.attrib;
-	  %XHTML.global.common.extra.attrib;"
->
-
-<!-- end of xhtml-attribs-1.mod -->
-]]>
-
-<!-- placeholder for content model redeclarations -->
-<!ENTITY % xhtml-model.redecl "" >
-
-
-<!ENTITY % xhtml-model.module "INCLUDE" >
-<![%xhtml-model.module;[
-<!-- instantiate the Document Model module declared in the DTD driver
--->
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 Document Model Module  ...................................... -->
-<!-- file: xhtml11-model-1.mod
-
-     This is XHTML 1.1, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- XHTML 1.1 Document Model
-
-     This module describes the groupings of elements that make up
-     common content models for XHTML elements.
-
-     XHTML has three basic content models:
-
-         %Inline.mix;  character-level elements
-         %Block.mix;   block-like elements, eg., paragraphs and lists
-         %Flow.mix;    any block or inline elements
-
-     Any parameter entities declared in this module may be used
-     to create element content models, but the above three are
-     considered 'global' (insofar as that term applies here).
-
-     The reserved word '#PCDATA' (indicating a text string) is now
-     included explicitly with each element declaration that is
-     declared as mixed content, as XML requires that this token
-     occur first in a content model specification.
--->
-<!-- Extending the Model
-
-     While in some cases this module may need to be rewritten to
-     accommodate changes to the document model, minor extensions
-     may be accomplished by redeclaring any of the three *.extra;
-     parameter entities to contain extension element types as follows:
-
-         %Misc.extra;    whose parent may be any block or
-                         inline element.
-
-         %Inline.extra;  whose parent may be any inline element.
-
-         %Block.extra;   whose parent may be any block element.
-
-     If used, these parameter entities must be an OR-separated
-     list beginning with an OR separator ("|"), eg., "| a | b | c"
-
-     All block and inline *.class parameter entities not part
-     of the *struct.class classes begin with "| " to allow for
-     exclusion from mixes.
--->
-
-<!-- ..............  Optional Elements in head  .................. -->
-
-<!ENTITY % HeadOpts.mix
-     "( %script.qname; | %style.qname; | %meta.qname;
-      | %link.qname; | %object.qname; )*"
->
-
-<!-- .................  Miscellaneous Elements  .................. -->
-
-<!-- ins and del are used to denote editing changes
--->
-<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" >
-
-<!-- script and noscript are used to contain scripts
-     and alternative content
--->
-<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >
-
-<!ENTITY % Misc.extra "" >
-
-<!-- These elements are neither block nor inline, and can
-     essentially be used anywhere in the document body.
--->
-<!ENTITY % Misc.class
-     "%Edit.class;
-      %Script.class;
-      %Misc.extra;"
->
-
-<!-- ....................  Inline Elements  ...................... -->
-
-<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >
-
-<!ENTITY % InlPhras.class
-     "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
-      | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
-      | %abbr.qname; | %acronym.qname; | %q.qname;" >
-
-<!ENTITY % InlPres.class
-     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
-      | %small.qname; | %sub.qname; | %sup.qname;" >
-
-<!ENTITY % I18n.class "| %bdo.qname;" >
-
-<!ENTITY % Anchor.class "| %a.qname;" >
-
-<!ENTITY % InlSpecial.class
-     "| %img.qname; | %map.qname;
-      | %object.qname;" >
-
-<!ENTITY % InlForm.class
-     "| %input.qname; | %select.qname; | %textarea.qname;
-      | %label.qname; | %button.qname;" >
-
-<!ENTITY % Inline.extra "" >
-
-<!ENTITY % Ruby.class "| %ruby.qname;" >
-
-<!-- %Inline.class; includes all inline elements,
-     used as a component in mixes
--->
-<!ENTITY % Inline.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Ruby.class;
-      %Inline.extra;"
->
-
-<!-- %InlNoRuby.class; includes all inline elements
-     except ruby, used as a component in mixes
--->
-<!ENTITY % InlNoRuby.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Inline.extra;"
->
-
-<!-- %NoRuby.content; includes all inlines except ruby
--->
-<!ENTITY % NoRuby.content
-     "( #PCDATA
-      | %InlNoRuby.class;
-      %Misc.class; )*"
->
-
-<!-- %InlNoAnchor.class; includes all non-anchor inlines,
-     used as a component in mixes
--->
-<!ENTITY % InlNoAnchor.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Ruby.class;
-      %Inline.extra;"
->
-
-<!-- %InlNoAnchor.mix; includes all non-anchor inlines
--->
-<!ENTITY % InlNoAnchor.mix
-     "%InlNoAnchor.class;
-      %Misc.class;"
->
-
-<!-- %Inline.mix; includes all inline elements, including %Misc.class;
--->
-<!ENTITY % Inline.mix
-     "%Inline.class;
-      %Misc.class;"
->
-
-<!-- .....................  Block Elements  ...................... -->
-
-<!-- In the HTML 4.0 DTD, heading and list elements were included
-     in the %block; parameter entity. The %Heading.class; and
-     %List.class; parameter entities must now be included explicitly
-     on element declarations where desired.
--->
-
-<!ENTITY % Heading.class
-     "%h1.qname; | %h2.qname; | %h3.qname;
-      | %h4.qname; | %h5.qname; | %h6.qname;" >
-
-<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >
-
-<!ENTITY % Table.class "| %table.qname;" >
-
-<!ENTITY % Form.class  "| %form.qname;" >
-
-<!ENTITY % Fieldset.class  "| %fieldset.qname;" >
-
-<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >
-
-<!ENTITY % BlkPhras.class
-     "| %pre.qname; | %blockquote.qname; | %address.qname;" >
-
-<!ENTITY % BlkPres.class "| %hr.qname;" >
-
-<!ENTITY % BlkSpecial.class
-     "%Table.class;
-      %Form.class;
-      %Fieldset.class;"
->
-
-<!ENTITY % Block.extra "" >
-
-<!-- %Block.class; includes all block elements,
-     used as an component in mixes
--->
-<!ENTITY % Block.class
-     "%BlkStruct.class;
-      %BlkPhras.class;
-      %BlkPres.class;
-      %BlkSpecial.class;
-      %Block.extra;"
->
-
-<!-- %Block.mix; includes all block elements plus %Misc.class;
--->
-<!ENTITY % Block.mix
-     "%Heading.class;
-      | %List.class;
-      | %Block.class;
-      %Misc.class;"
->
-
-<!-- ................  All Content Elements  .................. -->
-
-<!-- %Flow.mix; includes all text content, block and inline
--->
-<!ENTITY % Flow.mix
-     "%Heading.class;
-      | %List.class;
-      | %Block.class;
-      | %Inline.class;
-      %Misc.class;"
->
-
-<!-- end of xhtml11-model-1.mod -->
-]]>
-
-<!ENTITY % xhtml-charent.module "INCLUDE" >
-<![%xhtml-charent.module;[
-<!ENTITY % xhtml-charent.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
-            "xhtml-charent-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Character Entities Module  ......................................... -->
-<!-- file: xhtml-charent-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-charent-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Character Entities for XHTML
-
-     This module declares the set of character entities for XHTML,
-     including the Latin 1, Symbol and Special character collections.
--->
-
-<!ENTITY % xhtml-lat1
-    PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-           "xhtml-lat1.ent" >
-<!-- 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.
--->
-<!-- Character entity set. Typical invocation:
-    <!ENTITY % HTMLlat1 PUBLIC
-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
-    %HTMLlat1;
--->
-
-<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
-                                  U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
-                                  U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
-                                  U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
-                                  = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
-                                  U+00AC ISOnum -->
-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
-                                  U+00AD ISOnum -->
-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
-                                  U+00AE ISOnum -->
-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
-                                  = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
-                                  U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
-                                  = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
-                                  = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
-                                  U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
-                                  U+00B6 ISOnum -->
-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
-                                  = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
-                                  U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
-                                  U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
-                                  = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
-                                  = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
-                                  = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
-                                  = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;"> <!-- inverted question mark
-                                  = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
-                                  = latin capital letter A grave,
-                                  U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
-                                  U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
-                                  U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
-                                  U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
-                                  U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
-                                  = latin capital letter A ring,
-                                  U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
-                                  = latin capital ligature AE,
-                                  U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
-                                  U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
-                                  U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
-                                  U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
-                                  U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
-                                  U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
-                                  U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
-                                  U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
-                                  U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
-                                  U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
-                                  U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
-                                  U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
-                                  U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
-                                  U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
-                                  U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
-                                  U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
-                                  = latin capital letter O slash,
-                                  U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
-                                  U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
-                                  U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
-                                  U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
-                                  U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
-                                  U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
-                                  U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
-                                  U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
-                                  = latin small letter a grave,
-                                  U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
-                                  U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
-                                  U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
-                                  U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
-                                  U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
-                                  = latin small letter a ring,
-                                  U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
-                                  = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
-                                  U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
-                                  U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
-                                  U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
-                                  U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
-                                  U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
-                                  U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
-                                  U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
-                                  U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
-                                  U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
-                                  U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
-                                  U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
-                                  U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
-                                  U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
-                                  U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
-                                  U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
-                                  = latin small letter o slash,
-                                  U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
-                                  U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
-                                  U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
-                                  U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
-                                  U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
-                                  U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
-                                  U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
-                                  U+00FF ISOlat1 -->
-
-
-<!ENTITY % xhtml-symbol
-    PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
-           "xhtml-symbol.ent" >
-<!-- Mathematical, Greek and Symbolic characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLsymbol PUBLIC
-        "-//W3C//ENTITIES Symbols for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
-     %HTMLsymbol;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function
-                                    = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
-                                    U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
-                                    U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
-                                    U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,
-                                    U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
-                                    U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
-                                    U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
-                                    U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
-                                    U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
-                                    U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
-                                    U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
-                                    U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
-                                    U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
-                                    U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
-                                    U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
-                                    U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,
-                                    U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
-                                    U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
-                                    U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
-                                    U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
-                                    U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
-                                    U+03D1 NEW -->
-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
-                                    U+03D2 NEW -->
-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
-                                     U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
-                                     U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
-                                     U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
-                                     U+203E NEW -->
-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
-                                     = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,
-                                     U+2111 ISOamso -->
-<!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,
-                                     U+211C ISOamso -->
-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;"> <!-- 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     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
-                                     = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;"> <!-- 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     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;"> <!-- 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     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
-                                     U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
-                                     U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
-<!ENTITY prod     "&#8719;"> <!-- 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      "&#8721;"> <!-- n-ary summation, 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    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
-                                     U+221A ISOtech -->
-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;"> <!-- 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     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
-                                     U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
-                                     U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
-<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
-                                     U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
-                                     U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
-                                     U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
-                                     U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,
-                                     U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,
-                                     U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
-                                     U+2329 ISOtech -->
-<!-- lang is NOT the same character as U+003C 'less than sign' 
-     or U+2039 'single left-pointing angle quotation mark' -->
-<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
-                                     U+232A ISOtech -->
-<!-- rang is NOT the same character as U+003E 'greater than sign' 
-     or U+203A 'single right-pointing angle quotation mark' -->
-
-<!-- Geometric Shapes -->
-<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
-                                     U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
-                                     U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
-
-
-<!ENTITY % xhtml-special
-    PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
-           "xhtml-special.ent" >
-<!-- Special characters for XHTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLspecial PUBLIC
-        "-//W3C//ENTITIES Special for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
-     %HTMLspecial;
--->
-
-<!-- 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 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->
-<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
-<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
-<!ENTITY apos	 "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
-                                    U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
-                                    U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
-                                    U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
-                                    U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
-                                    U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
-                                    U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
-                                    U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
-                                    U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
-                                    U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
-                                    U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
-                                    U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
-                                    U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-
-<!-- Currency Symbols -->
-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
-
-
-<!-- end of xhtml-charent-1.mod -->
-]]>
-
-<!-- end of xhtml-framework-1.mod -->
-]]>
-
-<!-- Post-Framework Redeclaration placeholder  ................... -->
-<!-- this serves as a location to insert markup declarations
-     into the DTD following the framework declarations.
--->
-<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
-<![%xhtml-postfw-redecl.module;[
-%xhtml-postfw-redecl.mod;
-<!-- end of xhtml-postfw-redecl.module -->]]>
-
-<!-- Text Module (Required)  ..................................... -->
-<!ENTITY % xhtml-text.module "INCLUDE" >
-<![%xhtml-text.module;[
-<!ENTITY % xhtml-text.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Text Module  ................................................... -->
-<!-- file: xhtml-text-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Textual Content
-
-     The Text module includes declarations for all core
-     text container elements and their attributes.
--->
-
-<!ENTITY % xhtml-inlstruct.module "INCLUDE" >
-<![%xhtml-inlstruct.module;[
-<!ENTITY % xhtml-inlstruct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"
-            "xhtml-inlstruct-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Structural Module  ...................................... -->
-<!-- file: xhtml-inlstruct-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlstruct-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Structural
-
-        br, span
-
-     This module declares the elements and their attributes
-     used to support inline-level structural markup.
--->
-
-<!-- br: forced line break ............................. -->
-
-<!ENTITY % br.element  "INCLUDE" >
-<![%br.element;[
-
-<!ENTITY % br.content  "EMPTY" >
-<!ENTITY % br.qname  "br" >
-<!ELEMENT %br.qname;  %br.content; >
-
-<!-- end of br.element -->]]>
-
-<!ENTITY % br.attlist  "INCLUDE" >
-<![%br.attlist;[
-<!ATTLIST %br.qname;
-      %Core.attrib;
->
-<!-- end of br.attlist -->]]>
-
-<!-- span: generic inline container .................... -->
-
-<!ENTITY % span.element  "INCLUDE" >
-<![%span.element;[
-<!ENTITY % span.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % span.qname  "span" >
-<!ELEMENT %span.qname;  %span.content; >
-<!-- end of span.element -->]]>
-
-<!ENTITY % span.attlist  "INCLUDE" >
-<![%span.attlist;[
-<!ATTLIST %span.qname;
-      %Common.attrib;
->
-<!-- end of span.attlist -->]]>
-
-<!-- end of xhtml-inlstruct-1.mod -->
-]]>
-
-<!ENTITY % xhtml-inlphras.module "INCLUDE" >
-<![%xhtml-inlphras.module;[
-<!ENTITY % xhtml-inlphras.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
-            "xhtml-inlphras-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Phrasal Module  ......................................... -->
-<!-- file: xhtml-inlphras-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlphras-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Phrasal
-
-        abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
-
-     This module declares the elements and their attributes used to
-     support inline-level phrasal markup.
--->
-
-<!ENTITY % abbr.element  "INCLUDE" >
-<![%abbr.element;[
-<!ENTITY % abbr.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % abbr.qname  "abbr" >
-<!ELEMENT %abbr.qname;  %abbr.content; >
-<!-- end of abbr.element -->]]>
-
-<!ENTITY % abbr.attlist  "INCLUDE" >
-<![%abbr.attlist;[
-<!ATTLIST %abbr.qname;
-      %Common.attrib;
->
-<!-- end of abbr.attlist -->]]>
-
-<!ENTITY % acronym.element  "INCLUDE" >
-<![%acronym.element;[
-<!ENTITY % acronym.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % acronym.qname  "acronym" >
-<!ELEMENT %acronym.qname;  %acronym.content; >
-<!-- end of acronym.element -->]]>
-
-<!ENTITY % acronym.attlist  "INCLUDE" >
-<![%acronym.attlist;[
-<!ATTLIST %acronym.qname;
-      %Common.attrib;
->
-<!-- end of acronym.attlist -->]]>
-
-<!ENTITY % cite.element  "INCLUDE" >
-<![%cite.element;[
-<!ENTITY % cite.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % cite.qname  "cite" >
-<!ELEMENT %cite.qname;  %cite.content; >
-<!-- end of cite.element -->]]>
-
-<!ENTITY % cite.attlist  "INCLUDE" >
-<![%cite.attlist;[
-<!ATTLIST %cite.qname;
-      %Common.attrib;
->
-<!-- end of cite.attlist -->]]>
-
-<!ENTITY % code.element  "INCLUDE" >
-<![%code.element;[
-<!ENTITY % code.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % code.qname  "code" >
-<!ELEMENT %code.qname;  %code.content; >
-<!-- end of code.element -->]]>
-
-<!ENTITY % code.attlist  "INCLUDE" >
-<![%code.attlist;[
-<!ATTLIST %code.qname;
-      %Common.attrib;
->
-<!-- end of code.attlist -->]]>
-
-<!ENTITY % dfn.element  "INCLUDE" >
-<![%dfn.element;[
-<!ENTITY % dfn.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % dfn.qname  "dfn" >
-<!ELEMENT %dfn.qname;  %dfn.content; >
-<!-- end of dfn.element -->]]>
-
-<!ENTITY % dfn.attlist  "INCLUDE" >
-<![%dfn.attlist;[
-<!ATTLIST %dfn.qname;
-      %Common.attrib;
->
-<!-- end of dfn.attlist -->]]>
-
-<!ENTITY % em.element  "INCLUDE" >
-<![%em.element;[
-<!ENTITY % em.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % em.qname  "em" >
-<!ELEMENT %em.qname;  %em.content; >
-<!-- end of em.element -->]]>
-
-<!ENTITY % em.attlist  "INCLUDE" >
-<![%em.attlist;[
-<!ATTLIST %em.qname;
-      %Common.attrib;
->
-<!-- end of em.attlist -->]]>
-
-<!ENTITY % kbd.element  "INCLUDE" >
-<![%kbd.element;[
-<!ENTITY % kbd.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % kbd.qname  "kbd" >
-<!ELEMENT %kbd.qname;  %kbd.content; >
-<!-- end of kbd.element -->]]>
-
-<!ENTITY % kbd.attlist  "INCLUDE" >
-<![%kbd.attlist;[
-<!ATTLIST %kbd.qname;
-      %Common.attrib;
->
-<!-- end of kbd.attlist -->]]>
-
-<!ENTITY % q.element  "INCLUDE" >
-<![%q.element;[
-<!ENTITY % q.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % q.qname  "q" >
-<!ELEMENT %q.qname;  %q.content; >
-<!-- end of q.element -->]]>
-
-<!ENTITY % q.attlist  "INCLUDE" >
-<![%q.attlist;[
-<!ATTLIST %q.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
->
-<!-- end of q.attlist -->]]>
-
-<!ENTITY % samp.element  "INCLUDE" >
-<![%samp.element;[
-<!ENTITY % samp.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % samp.qname  "samp" >
-<!ELEMENT %samp.qname;  %samp.content; >
-<!-- end of samp.element -->]]>
-
-<!ENTITY % samp.attlist  "INCLUDE" >
-<![%samp.attlist;[
-<!ATTLIST %samp.qname;
-      %Common.attrib;
->
-<!-- end of samp.attlist -->]]>
-
-<!ENTITY % strong.element  "INCLUDE" >
-<![%strong.element;[
-<!ENTITY % strong.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % strong.qname  "strong" >
-<!ELEMENT %strong.qname;  %strong.content; >
-<!-- end of strong.element -->]]>
-
-<!ENTITY % strong.attlist  "INCLUDE" >
-<![%strong.attlist;[
-<!ATTLIST %strong.qname;
-      %Common.attrib;
->
-<!-- end of strong.attlist -->]]>
-
-<!ENTITY % var.element  "INCLUDE" >
-<![%var.element;[
-<!ENTITY % var.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % var.qname  "var" >
-<!ELEMENT %var.qname;  %var.content; >
-<!-- end of var.element -->]]>
-
-<!ENTITY % var.attlist  "INCLUDE" >
-<![%var.attlist;[
-<!ATTLIST %var.qname;
-      %Common.attrib;
->
-<!-- end of var.attlist -->]]>
-
-<!-- end of xhtml-inlphras-1.mod -->
-]]>
-
-<!ENTITY % xhtml-blkstruct.module "INCLUDE" >
-<![%xhtml-blkstruct.module;[
-<!ENTITY % xhtml-blkstruct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
-            "xhtml-blkstruct-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Block Structural Module  ....................................... -->
-<!-- file: xhtml-blkstruct-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkstruct-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Block Structural
-
-        div, p
-
-     This module declares the elements and their attributes used to
-     support block-level structural markup.
--->
-
-<!ENTITY % div.element  "INCLUDE" >
-<![%div.element;[
-<!ENTITY % div.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ENTITY % div.qname  "div" >
-<!ELEMENT %div.qname;  %div.content; >
-<!-- end of div.element -->]]>
-
-<!ENTITY % div.attlist  "INCLUDE" >
-<![%div.attlist;[
-<!ATTLIST %div.qname;
-      %Common.attrib;
->
-<!-- end of div.attlist -->]]>
-
-<!ENTITY % p.element  "INCLUDE" >
-<![%p.element;[
-<!ENTITY % p.content
-     "( #PCDATA | %Inline.mix; )*" >
-<!ENTITY % p.qname  "p" >
-<!ELEMENT %p.qname;  %p.content; >
-<!-- end of p.element -->]]>
-
-<!ENTITY % p.attlist  "INCLUDE" >
-<![%p.attlist;[
-<!ATTLIST %p.qname;
-      %Common.attrib;
->
-<!-- end of p.attlist -->]]>
-
-<!-- end of xhtml-blkstruct-1.mod -->
-]]>
-
-<!ENTITY % xhtml-blkphras.module "INCLUDE" >
-<![%xhtml-blkphras.module;[
-<!ENTITY % xhtml-blkphras.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
-            "xhtml-blkphras-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Block Phrasal Module  .......................................... -->
-<!-- file: xhtml-blkphras-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkphras-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Block Phrasal
-
-        address, blockquote, pre, h1, h2, h3, h4, h5, h6
-
-     This module declares the elements and their attributes used to
-     support block-level phrasal markup.
--->
-
-<!ENTITY % address.element  "INCLUDE" >
-<![%address.element;[
-<!ENTITY % address.content
-     "( #PCDATA | %Inline.mix; )*" >
-<!ENTITY % address.qname  "address" >
-<!ELEMENT %address.qname;  %address.content; >
-<!-- end of address.element -->]]>
-
-<!ENTITY % address.attlist  "INCLUDE" >
-<![%address.attlist;[
-<!ATTLIST %address.qname;
-      %Common.attrib;
->
-<!-- end of address.attlist -->]]>
-
-<!ENTITY % blockquote.element  "INCLUDE" >
-<![%blockquote.element;[
-<!ENTITY % blockquote.content
-     "( %Block.mix; )*"
->
-<!ENTITY % blockquote.qname  "blockquote" >
-<!ELEMENT %blockquote.qname;  %blockquote.content; >
-<!-- end of blockquote.element -->]]>
-
-<!ENTITY % blockquote.attlist  "INCLUDE" >
-<![%blockquote.attlist;[
-<!ATTLIST %blockquote.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
->
-<!-- end of blockquote.attlist -->]]>
-
-<!ENTITY % pre.element  "INCLUDE" >
-<![%pre.element;[
-<!ENTITY % pre.content
-     "( #PCDATA
-      | %InlStruct.class;
-      %InlPhras.class;
-      | %tt.qname; | %i.qname; | %b.qname;
-      %I18n.class;
-      %Anchor.class;
-      | %map.qname;
-      %Misc.class;
-      %Inline.extra; )*"
->
-<!ENTITY % pre.qname  "pre" >
-<!ELEMENT %pre.qname;  %pre.content; >
-<!-- end of pre.element -->]]>
-
-<!ENTITY % pre.attlist  "INCLUDE" >
-<![%pre.attlist;[
-<!ATTLIST %pre.qname;
-      %Common.attrib;
->
-<!-- end of pre.attlist -->]]>
-
-<!-- ...................  Heading Elements  ................... -->
-
-<!ENTITY % Heading.content  "( #PCDATA | %Inline.mix; )*" >
-
-<!ENTITY % h1.element  "INCLUDE" >
-<![%h1.element;[
-<!ENTITY % h1.qname  "h1" >
-<!ELEMENT %h1.qname;  %Heading.content; >
-<!-- end of h1.element -->]]>
-
-<!ENTITY % h1.attlist  "INCLUDE" >
-<![%h1.attlist;[
-<!ATTLIST %h1.qname;
-      %Common.attrib;
->
-<!-- end of h1.attlist -->]]>
-
-<!ENTITY % h2.element  "INCLUDE" >
-<![%h2.element;[
-<!ENTITY % h2.qname  "h2" >
-<!ELEMENT %h2.qname;  %Heading.content; >
-<!-- end of h2.element -->]]>
-
-<!ENTITY % h2.attlist  "INCLUDE" >
-<![%h2.attlist;[
-<!ATTLIST %h2.qname;
-      %Common.attrib;
->
-<!-- end of h2.attlist -->]]>
-
-<!ENTITY % h3.element  "INCLUDE" >
-<![%h3.element;[
-<!ENTITY % h3.qname  "h3" >
-<!ELEMENT %h3.qname;  %Heading.content; >
-<!-- end of h3.element -->]]>
-
-<!ENTITY % h3.attlist  "INCLUDE" >
-<![%h3.attlist;[
-<!ATTLIST %h3.qname;
-      %Common.attrib;
->
-<!-- end of h3.attlist -->]]>
-
-<!ENTITY % h4.element  "INCLUDE" >
-<![%h4.element;[
-<!ENTITY % h4.qname  "h4" >
-<!ELEMENT %h4.qname;  %Heading.content; >
-<!-- end of h4.element -->]]>
-
-<!ENTITY % h4.attlist  "INCLUDE" >
-<![%h4.attlist;[
-<!ATTLIST %h4.qname;
-      %Common.attrib;
->
-<!-- end of h4.attlist -->]]>
-
-<!ENTITY % h5.element  "INCLUDE" >
-<![%h5.element;[
-<!ENTITY % h5.qname  "h5" >
-<!ELEMENT %h5.qname;  %Heading.content; >
-<!-- end of h5.element -->]]>
-
-<!ENTITY % h5.attlist  "INCLUDE" >
-<![%h5.attlist;[
-<!ATTLIST %h5.qname;
-      %Common.attrib;
->
-<!-- end of h5.attlist -->]]>
-
-<!ENTITY % h6.element  "INCLUDE" >
-<![%h6.element;[
-<!ENTITY % h6.qname  "h6" >
-<!ELEMENT %h6.qname;  %Heading.content; >
-<!-- end of h6.element -->]]>
-
-<!ENTITY % h6.attlist  "INCLUDE" >
-<![%h6.attlist;[
-<!ATTLIST %h6.qname;
-      %Common.attrib;
->
-<!-- end of h6.attlist -->]]>
-
-<!-- end of xhtml-blkphras-1.mod -->
-]]>
-
-<!-- end of xhtml-text-1.mod -->
-]]>
-
-<!-- Hypertext Module (required) ................................. -->
-<!ENTITY % xhtml-hypertext.module "INCLUDE" >
-<![%xhtml-hypertext.module;[
-<!ENTITY % xhtml-hypertext.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Hypertext Module  .............................................. -->
-<!-- file: xhtml-hypertext-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Hypertext
-
-        a
-
-     This module declares the anchor ('a') element type, which
-     defines the source of a hypertext link. The destination
-     (or link 'target') is identified via its 'id' attribute
-     rather than the 'name' attribute as was used in HTML.
--->
-
-<!-- ............  Anchor Element  ............ -->
-
-<!ENTITY % a.element  "INCLUDE" >
-<![%a.element;[
-<!ENTITY % a.content
-     "( #PCDATA | %InlNoAnchor.mix; )*"
->
-<!ENTITY % a.qname  "a" >
-<!ELEMENT %a.qname;  %a.content; >
-<!-- end of a.element -->]]>
-
-<!ENTITY % a.attlist  "INCLUDE" >
-<![%a.attlist;[
-<!ATTLIST %a.qname;
-      %Common.attrib;
-      href         %URI.datatype;           #IMPLIED
-      charset      %Charset.datatype;       #IMPLIED
-      type         %ContentType.datatype;   #IMPLIED
-      hreflang     %LanguageCode.datatype;  #IMPLIED
-      rel          %LinkTypes.datatype;     #IMPLIED
-      rev          %LinkTypes.datatype;     #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
->
-<!-- end of a.attlist -->]]>
-
-<!-- end of xhtml-hypertext-1.mod -->
-]]>
-
-<!-- Lists Module (required)  .................................... -->
-<!ENTITY % xhtml-list.module "INCLUDE" >
-<![%xhtml-list.module;[
-<!ENTITY % xhtml-list.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Lists Module  .................................................. -->
-<!-- file: xhtml-list-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Lists
-
-        dl, dt, dd, ol, ul, li
-
-     This module declares the list-oriented element types
-     and their attributes.
--->
-
-<!ENTITY % dl.qname  "dl" >
-<!ENTITY % dt.qname  "dt" >
-<!ENTITY % dd.qname  "dd" >
-<!ENTITY % ol.qname  "ol" >
-<!ENTITY % ul.qname  "ul" >
-<!ENTITY % li.qname  "li" >
-
-<!-- dl: Definition List ............................... -->
-
-<!ENTITY % dl.element  "INCLUDE" >
-<![%dl.element;[
-<!ENTITY % dl.content  "( %dt.qname; | %dd.qname; )+" >
-<!ELEMENT %dl.qname;  %dl.content; >
-<!-- end of dl.element -->]]>
-
-<!ENTITY % dl.attlist  "INCLUDE" >
-<![%dl.attlist;[
-<!ATTLIST %dl.qname;
-      %Common.attrib;
->
-<!-- end of dl.attlist -->]]>
-
-<!-- dt: Definition Term ............................... -->
-
-<!ENTITY % dt.element  "INCLUDE" >
-<![%dt.element;[
-<!ENTITY % dt.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ELEMENT %dt.qname;  %dt.content; >
-<!-- end of dt.element -->]]>
-
-<!ENTITY % dt.attlist  "INCLUDE" >
-<![%dt.attlist;[
-<!ATTLIST %dt.qname;
-      %Common.attrib;
->
-<!-- end of dt.attlist -->]]>
-
-<!-- dd: Definition Description ........................ -->
-
-<!ENTITY % dd.element  "INCLUDE" >
-<![%dd.element;[
-<!ENTITY % dd.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %dd.qname;  %dd.content; >
-<!-- end of dd.element -->]]>
-
-<!ENTITY % dd.attlist  "INCLUDE" >
-<![%dd.attlist;[
-<!ATTLIST %dd.qname;
-      %Common.attrib;
->
-<!-- end of dd.attlist -->]]>
-
-<!-- ol: Ordered List (numbered styles) ................ -->
-
-<!ENTITY % ol.element  "INCLUDE" >
-<![%ol.element;[
-<!ENTITY % ol.content  "( %li.qname; )+" >
-<!ELEMENT %ol.qname;  %ol.content; >
-<!-- end of ol.element -->]]>
-
-<!ENTITY % ol.attlist  "INCLUDE" >
-<![%ol.attlist;[
-<!ATTLIST %ol.qname;
-      %Common.attrib;
->
-<!-- end of ol.attlist -->]]>
-
-<!-- ul: Unordered List (bullet styles) ................ -->
-
-<!ENTITY % ul.element  "INCLUDE" >
-<![%ul.element;[
-<!ENTITY % ul.content  "( %li.qname; )+" >
-<!ELEMENT %ul.qname;  %ul.content; >
-<!-- end of ul.element -->]]>
-
-<!ENTITY % ul.attlist  "INCLUDE" >
-<![%ul.attlist;[
-<!ATTLIST %ul.qname;
-      %Common.attrib;
->
-<!-- end of ul.attlist -->]]>
-
-<!-- li: List Item ..................................... -->
-
-<!ENTITY % li.element  "INCLUDE" >
-<![%li.element;[
-<!ENTITY % li.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %li.qname;  %li.content; >
-<!-- end of li.element -->]]>
-
-<!ENTITY % li.attlist  "INCLUDE" >
-<![%li.attlist;[
-<!ATTLIST %li.qname;
-      %Common.attrib;
->
-<!-- end of li.attlist -->]]>
-
-<!-- end of xhtml-list-1.mod -->
-]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Edit Module  ................................................ -->
-<!ENTITY % xhtml-edit.module "INCLUDE" >
-<![%xhtml-edit.module;[
-<!ENTITY % xhtml-edit.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Editing Elements Module  ....................................... -->
-<!-- file: xhtml-edit-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Editing Elements
-
-        ins, del
-
-     This module declares element types and attributes used to indicate
-     inserted and deleted content while editing a document.
--->
-
-<!-- ins: Inserted Text  ............................... -->
-
-<!ENTITY % ins.element  "INCLUDE" >
-<![%ins.element;[
-<!ENTITY % ins.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ENTITY % ins.qname  "ins" >
-<!ELEMENT %ins.qname;  %ins.content; >
-<!-- end of ins.element -->]]>
-
-<!ENTITY % ins.attlist  "INCLUDE" >
-<![%ins.attlist;[
-<!ATTLIST %ins.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
-      datetime     %Datetime.datatype;      #IMPLIED
->
-<!-- end of ins.attlist -->]]>
-
-<!-- del: Deleted Text  ................................ -->
-
-<!ENTITY % del.element  "INCLUDE" >
-<![%del.element;[
-<!ENTITY % del.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ENTITY % del.qname  "del" >
-<!ELEMENT %del.qname;  %del.content; >
-<!-- end of del.element -->]]>
-
-<!ENTITY % del.attlist  "INCLUDE" >
-<![%del.attlist;[
-<!ATTLIST %del.qname;
-      %Common.attrib;
-      cite         %URI.datatype;           #IMPLIED
-      datetime     %Datetime.datatype;      #IMPLIED
->
-<!-- end of del.attlist -->]]>
-
-<!-- end of xhtml-edit-1.mod -->
-]]>
-
-<!-- BIDI Override Module  ....................................... -->
-<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >
-<![%xhtml-bdo.module;[
-<!ENTITY % xhtml-bdo.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML BDO Element Module ............................................. -->
-<!-- file: xhtml-bdo-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Bidirectional Override (bdo) Element
-
-     This modules declares the element 'bdo', used to override the
-     Unicode bidirectional algorithm for selected fragments of text.
-
-     DEPENDENCIES:
-     Relies on the conditional section keyword %XHTML.bidi; declared
-     as "INCLUDE". Bidirectional text support includes both the bdo
-     element and the 'dir' attribute.
--->
-
-<!ENTITY % bdo.element  "INCLUDE" >
-<![%bdo.element;[
-<!ENTITY % bdo.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % bdo.qname  "bdo" >
-<!ELEMENT %bdo.qname;  %bdo.content; >
-<!-- end of bdo.element -->]]>
-
-<!ENTITY % bdo.attlist  "INCLUDE" >
-<![%bdo.attlist;[
-<!ATTLIST %bdo.qname;
-      %Core.attrib;
-	  %lang.attrib;
-      dir          ( ltr | rtl )            #REQUIRED
->
-]]>
-
-<!-- end of xhtml-bdo-1.mod -->
-]]>
-
-<!-- Ruby Module  ................................................ -->
-<!ENTITY % Ruby.common.attlists "INCLUDE" >
-<!ENTITY % Ruby.common.attrib "%Common.attrib;" >
-<!ENTITY % xhtml-ruby.module "INCLUDE" >
-<![%xhtml-ruby.module;[
-<!ENTITY % xhtml-ruby.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-ruby-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Ruby Module .................................................... -->
-<!-- file: xhtml-ruby-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $
-
-     This module is based on the W3C Ruby Annotation Specification:
-
-        http://www.w3.org/TR/ruby
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
-       SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod"
-
-     ...................................................................... -->
-
-<!-- Ruby Elements
-
-        ruby, rbc, rtc, rb, rt, rp
-
-     This module declares the elements and their attributes used to
-     support ruby annotation markup.
--->
-
-<!-- declare qualified element type names:
--->
-<!ENTITY % ruby.qname  "ruby" >
-<!ENTITY % rbc.qname  "rbc" >
-<!ENTITY % rtc.qname  "rtc" >
-<!ENTITY % rb.qname  "rb" >
-<!ENTITY % rt.qname  "rt" >
-<!ENTITY % rp.qname  "rp" >
-
-<!-- rp fallback is included by default.
--->
-<!ENTITY % Ruby.fallback "INCLUDE" >
-<!ENTITY % Ruby.fallback.mandatory "IGNORE" >
-
-<!-- Complex ruby is included by default; it may be 
-     overridden by other modules to ignore it.
--->
-<!ENTITY % Ruby.complex "INCLUDE" >
-
-<!-- Fragments for the content model of the ruby element -->
-<![%Ruby.fallback;[
-<![%Ruby.fallback.mandatory;[
-<!ENTITY % Ruby.content.simple 
-     "( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )"
->
-]]>
-<!ENTITY % Ruby.content.simple 
-     "( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )"
->
-]]>
-<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" >
-
-<![%Ruby.complex;[
-<!ENTITY % Ruby.content.complex 
-     "| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )"
->
-]]>
-<!ENTITY % Ruby.content.complex "" >
-
-<!-- Content models of the rb and the rt elements are intended to
-     allow other inline-level elements of its parent markup language,
-     but it should not include ruby descendent elements. The following
-     parameter entity %NoRuby.content; can be used to redefine
-     those content models with minimum effort.  It's defined as
-     '( #PCDATA )' by default.
--->
-<!ENTITY % NoRuby.content "( #PCDATA )" >
-
-<!-- one or more digits (NUMBER) -->
-<!ENTITY % Number.datatype "CDATA" >
-
-<!-- ruby element ...................................... -->
-
-<!ENTITY % ruby.element  "INCLUDE" >
-<![%ruby.element;[
-<!ENTITY % ruby.content
-     "( %Ruby.content.simple; %Ruby.content.complex; )"
->
-<!ELEMENT %ruby.qname;  %ruby.content; >
-<!-- end of ruby.element -->]]>
-
-<![%Ruby.complex;[
-<!-- rbc (ruby base component) element ................. -->
-
-<!ENTITY % rbc.element  "INCLUDE" >
-<![%rbc.element;[
-<!ENTITY % rbc.content
-     "(%rb.qname;)+"
->
-<!ELEMENT %rbc.qname;  %rbc.content; >
-<!-- end of rbc.element -->]]>
-
-<!-- rtc (ruby text component) element ................. -->
-
-<!ENTITY % rtc.element  "INCLUDE" >
-<![%rtc.element;[
-<!ENTITY % rtc.content
-     "(%rt.qname;)+"
->
-<!ELEMENT %rtc.qname;  %rtc.content; >
-<!-- end of rtc.element -->]]>
-]]>
-
-<!-- rb (ruby base) element ............................ -->
-
-<!ENTITY % rb.element  "INCLUDE" >
-<![%rb.element;[
-<!-- %rb.content; uses %NoRuby.content; as its content model,
-     which is '( #PCDATA )' by default. It may be overridden
-     by other modules to allow other inline-level elements
-     of its parent markup language, but it should not include
-     ruby descendent elements.
--->
-<!ENTITY % rb.content "%NoRuby.content;" >
-<!ELEMENT %rb.qname;  %rb.content; >
-<!-- end of rb.element -->]]>
-
-<!-- rt (ruby text) element ............................ -->
-
-<!ENTITY % rt.element  "INCLUDE" >
-<![%rt.element;[
-<!-- %rt.content; uses %NoRuby.content; as its content model,
-     which is '( #PCDATA )' by default. It may be overridden
-     by other modules to allow other inline-level elements
-     of its parent markup language, but it should not include
-     ruby descendent elements.
--->
-<!ENTITY % rt.content "%NoRuby.content;" >
-
-<!ELEMENT %rt.qname;  %rt.content; >
-<!-- end of rt.element -->]]>
-
-<!-- rbspan attribute is used for complex ruby only ...... -->
-<![%Ruby.complex;[
-<!ENTITY % rt.attlist  "INCLUDE" >
-<![%rt.attlist;[
-<!ATTLIST %rt.qname;
-      rbspan         %Number.datatype;      "1"
->
-<!-- end of rt.attlist -->]]>
-]]>
-
-<!-- rp (ruby parenthesis) element ..................... -->
-
-<![%Ruby.fallback;[
-<!ENTITY % rp.element  "INCLUDE" >
-<![%rp.element;[
-<!ENTITY % rp.content
-     "( #PCDATA )"
->
-<!ELEMENT %rp.qname;  %rp.content; >
-<!-- end of rp.element -->]]>
-]]>
-
-<!-- Ruby Common Attributes
-
-     The following optional ATTLIST declarations provide an easy way
-     to define common attributes for ruby elements.  These declarations
-     are ignored by default.
-
-     Ruby elements are intended to have common attributes of its
-     parent markup language.  For example, if a markup language defines
-     common attributes as a parameter entity %attrs;, you may add
-     those attributes by just declaring the following parameter entities
-
-         <!ENTITY % Ruby.common.attlists  "INCLUDE" >
-         <!ENTITY % Ruby.common.attrib  "%attrs;" >
-
-     before including the Ruby module.
--->
-
-<!ENTITY % Ruby.common.attlists  "IGNORE" >
-<![%Ruby.common.attlists;[
-<!ENTITY % Ruby.common.attrib  "" >
-
-<!-- common attributes for ruby ........................ -->
-
-<!ENTITY % Ruby.common.attlist  "INCLUDE" >
-<![%Ruby.common.attlist;[
-<!ATTLIST %ruby.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Ruby.common.attlist -->]]>
-
-<![%Ruby.complex;[
-<!-- common attributes for rbc ......................... -->
-
-<!ENTITY % Rbc.common.attlist  "INCLUDE" >
-<![%Rbc.common.attlist;[
-<!ATTLIST %rbc.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rbc.common.attlist -->]]>
-
-<!-- common attributes for rtc ......................... -->
-
-<!ENTITY % Rtc.common.attlist  "INCLUDE" >
-<![%Rtc.common.attlist;[
-<!ATTLIST %rtc.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rtc.common.attlist -->]]>
-]]>
-
-<!-- common attributes for rb .......................... -->
-
-<!ENTITY % Rb.common.attlist  "INCLUDE" >
-<![%Rb.common.attlist;[
-<!ATTLIST %rb.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rb.common.attlist -->]]>
-
-<!-- common attributes for rt .......................... -->
-
-<!ENTITY % Rt.common.attlist  "INCLUDE" >
-<![%Rt.common.attlist;[
-<!ATTLIST %rt.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rt.common.attlist -->]]>
-
-<![%Ruby.fallback;[
-<!-- common attributes for rp .......................... -->
-
-<!ENTITY % Rp.common.attlist  "INCLUDE" >
-<![%Rp.common.attlist;[
-<!ATTLIST %rp.qname;
-      %Ruby.common.attrib;
->
-<!-- end of Rp.common.attlist -->]]>
-]]>
-]]>
-
-<!-- end of xhtml-ruby-1.mod -->
-]]>
-
-<!-- Presentation Module  ........................................ -->
-<!ENTITY % xhtml-pres.module "INCLUDE" >
-<![%xhtml-pres.module;[
-<!ENTITY % xhtml-pres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Presentation Module ............................................ -->
-<!-- file: xhtml-pres-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Presentational Elements
-
-     This module defines elements and their attributes for
-     simple presentation-related markup.
--->
-
-<!ENTITY % xhtml-inlpres.module "INCLUDE" >
-<![%xhtml-inlpres.module;[
-<!ENTITY % xhtml-inlpres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"
-            "xhtml-inlpres-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Inline Presentation Module  .................................... -->
-<!-- file: xhtml-inlpres-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlpres-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Inline Presentational Elements
-
-        b, big, i, small, sub, sup, tt
-
-     This module declares the elements and their attributes used to
-     support inline-level presentational markup.
--->
-
-<!ENTITY % b.element  "INCLUDE" >
-<![%b.element;[
-<!ENTITY % b.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % b.qname  "b" >
-<!ELEMENT %b.qname;  %b.content; >
-<!-- end of b.element -->]]>
-
-<!ENTITY % b.attlist  "INCLUDE" >
-<![%b.attlist;[
-<!ATTLIST %b.qname;
-      %Common.attrib;
->
-<!-- end of b.attlist -->]]>
-
-<!ENTITY % big.element  "INCLUDE" >
-<![%big.element;[
-<!ENTITY % big.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % big.qname  "big" >
-<!ELEMENT %big.qname;  %big.content; >
-<!-- end of big.element -->]]>
-
-<!ENTITY % big.attlist  "INCLUDE" >
-<![%big.attlist;[
-<!ATTLIST %big.qname;
-      %Common.attrib;
->
-<!-- end of big.attlist -->]]>
-
-<!ENTITY % i.element  "INCLUDE" >
-<![%i.element;[
-<!ENTITY % i.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % i.qname  "i" >
-<!ELEMENT %i.qname;  %i.content; >
-<!-- end of i.element -->]]>
-
-<!ENTITY % i.attlist  "INCLUDE" >
-<![%i.attlist;[
-<!ATTLIST %i.qname;
-      %Common.attrib;
->
-<!-- end of i.attlist -->]]>
-
-<!ENTITY % small.element  "INCLUDE" >
-<![%small.element;[
-<!ENTITY % small.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % small.qname  "small" >
-<!ELEMENT %small.qname;  %small.content; >
-<!-- end of small.element -->]]>
-
-<!ENTITY % small.attlist  "INCLUDE" >
-<![%small.attlist;[
-<!ATTLIST %small.qname;
-      %Common.attrib;
->
-<!-- end of small.attlist -->]]>
-
-<!ENTITY % sub.element  "INCLUDE" >
-<![%sub.element;[
-<!ENTITY % sub.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % sub.qname  "sub" >
-<!ELEMENT %sub.qname;  %sub.content; >
-<!-- end of sub.element -->]]>
-
-<!ENTITY % sub.attlist  "INCLUDE" >
-<![%sub.attlist;[
-<!ATTLIST %sub.qname;
-      %Common.attrib;
->
-<!-- end of sub.attlist -->]]>
-
-<!ENTITY % sup.element  "INCLUDE" >
-<![%sup.element;[
-<!ENTITY % sup.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % sup.qname  "sup" >
-<!ELEMENT %sup.qname;  %sup.content; >
-<!-- end of sup.element -->]]>
-
-<!ENTITY % sup.attlist  "INCLUDE" >
-<![%sup.attlist;[
-<!ATTLIST %sup.qname;
-      %Common.attrib;
->
-<!-- end of sup.attlist -->]]>
-
-<!ENTITY % tt.element  "INCLUDE" >
-<![%tt.element;[
-<!ENTITY % tt.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ENTITY % tt.qname  "tt" >
-<!ELEMENT %tt.qname;  %tt.content; >
-<!-- end of tt.element -->]]>
-
-<!ENTITY % tt.attlist  "INCLUDE" >
-<![%tt.attlist;[
-<!ATTLIST %tt.qname;
-      %Common.attrib;
->
-<!-- end of tt.attlist -->]]>
-
-<!-- end of xhtml-inlpres-1.mod -->
-]]>
-
-<!ENTITY % xhtml-blkpres.module "INCLUDE" >
-<![%xhtml-blkpres.module;[
-<!ENTITY % xhtml-blkpres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"
-            "xhtml-blkpres-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Block Presentation Module  ..................................... -->
-<!-- file: xhtml-blkpres-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkpres-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Block Presentational Elements
-
-        hr
-
-     This module declares the elements and their attributes used to
-     support block-level presentational markup.
--->
-
-<!ENTITY % hr.element  "INCLUDE" >
-<![%hr.element;[
-<!ENTITY % hr.content  "EMPTY" >
-<!ENTITY % hr.qname  "hr" >
-<!ELEMENT %hr.qname;  %hr.content; >
-<!-- end of hr.element -->]]>
-
-<!ENTITY % hr.attlist  "INCLUDE" >
-<![%hr.attlist;[
-<!ATTLIST %hr.qname;
-      %Common.attrib;
->
-<!-- end of hr.attlist -->]]>
-
-<!-- end of xhtml-blkpres-1.mod -->
-]]>
-
-<!-- end of xhtml-pres-1.mod -->
-]]>
-
-<!-- Link Element Module  ........................................ -->
-<!ENTITY % xhtml-link.module "INCLUDE" >
-<![%xhtml-link.module;[
-<!ENTITY % xhtml-link.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Link Element Module  ........................................... -->
-<!-- file: xhtml-link-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Link element
-
-        link
-
-     This module declares the link element type and its attributes,
-     which could (in principle) be used to define document-level links
-     to external resources such as:
-
-     a) for document specific toolbars/menus, e.g. start, contents,
-        previous, next, index, end, help
-     b) to link to a separate style sheet (rel="stylesheet")
-     c) to make a link to a script (rel="script")
-     d) by style sheets to control how collections of html nodes are
-        rendered into printed documents
-     e) to make a link to a printable version of this document
-        e.g. a postscript or pdf version (rel="alternate" media="print")
--->
-
-<!-- link: Media-Independent Link ...................... -->
-
-<!ENTITY % link.element  "INCLUDE" >
-<![%link.element;[
-<!ENTITY % link.content  "EMPTY" >
-<!ENTITY % link.qname  "link" >
-<!ELEMENT %link.qname;  %link.content; >
-<!-- end of link.element -->]]>
-
-<!ENTITY % link.attlist  "INCLUDE" >
-<![%link.attlist;[
-<!ATTLIST %link.qname;
-      %Common.attrib;
-      charset      %Charset.datatype;       #IMPLIED
-      href         %URI.datatype;           #IMPLIED
-      hreflang     %LanguageCode.datatype;  #IMPLIED
-      type         %ContentType.datatype;   #IMPLIED
-      rel          %LinkTypes.datatype;     #IMPLIED
-      rev          %LinkTypes.datatype;     #IMPLIED
-      media        %MediaDesc.datatype;     #IMPLIED
->
-<!-- end of link.attlist -->]]>
-
-<!-- end of xhtml-link-1.mod -->
-]]>
-
-<!-- Document Metainformation Module  ............................ -->
-<!ENTITY % xhtml-meta.module "INCLUDE" >
-<![%xhtml-meta.module;[
-<!ENTITY % xhtml-meta.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Document Metainformation Module  ............................... -->
-<!-- file: xhtml-meta-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Meta Information
-
-        meta
-
-     This module declares the meta element type and its attributes,
-     used to provide declarative document metainformation.
--->
-
-<!-- meta: Generic Metainformation ..................... -->
-
-<!ENTITY % meta.element  "INCLUDE" >
-<![%meta.element;[
-<!ENTITY % meta.content  "EMPTY" >
-<!ENTITY % meta.qname  "meta" >
-<!ELEMENT %meta.qname;  %meta.content; >
-<!-- end of meta.element -->]]>
-
-<!ENTITY % meta.attlist  "INCLUDE" >
-<![%meta.attlist;[
-<!ATTLIST %meta.qname;
-      %XHTML.xmlns.attrib;
-      %I18n.attrib;
-      http-equiv   NMTOKEN                  #IMPLIED
-      name         NMTOKEN                  #IMPLIED
-      content      CDATA                    #REQUIRED
-      scheme       CDATA                    #IMPLIED
->
-<!-- end of meta.attlist -->]]>
-
-<!-- end of xhtml-meta-1.mod -->
-]]>
-
-<!-- Base Element Module  ........................................ -->
-<!ENTITY % xhtml-base.module "INCLUDE" >
-<![%xhtml-base.module;[
-<!ENTITY % xhtml-base.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Base Element Module  ........................................... -->
-<!-- file: xhtml-base-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Base element
-
-        base
-
-     This module declares the base element type and its attributes,
-     used to define a base URI against which relative URIs in the
-     document will be resolved.
-
-     Note that this module also redeclares the content model for
-     the head element to include the base element.
--->
-
-<!-- base: Document Base URI ........................... -->
-
-<!ENTITY % base.element  "INCLUDE" >
-<![%base.element;[
-<!ENTITY % base.content  "EMPTY" >
-<!ENTITY % base.qname  "base" >
-<!ELEMENT %base.qname;  %base.content; >
-<!-- end of base.element -->]]>
-
-<!ENTITY % base.attlist  "INCLUDE" >
-<![%base.attlist;[
-<!ATTLIST %base.qname;
-      %XHTML.xmlns.attrib;
-      href         %URI.datatype;           #REQUIRED
->
-<!-- end of base.attlist -->]]>
-
-<!ENTITY % head.content
-    "( %HeadOpts.mix;,
-     ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? )
-     | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))"
->
-
-<!-- end of xhtml-base-1.mod -->
-]]>
-
-<!-- Scripting Module  ........................................... -->
-<!ENTITY % xhtml-script.module "INCLUDE" >
-<![%xhtml-script.module;[
-<!ENTITY % xhtml-script.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Document Scripting Module  ..................................... -->
-<!-- file: xhtml-script-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Scripting
-
-        script, noscript
-
-     This module declares element types and attributes used to provide
-     support for executable scripts as well as an alternate content
-     container where scripts are not supported.
--->
-
-<!-- script: Scripting Statement ....................... -->
-
-<!ENTITY % script.element  "INCLUDE" >
-<![%script.element;[
-<!ENTITY % script.content  "( #PCDATA )" >
-<!ENTITY % script.qname  "script" >
-<!ELEMENT %script.qname;  %script.content; >
-<!-- end of script.element -->]]>
-
-<!ENTITY % script.attlist  "INCLUDE" >
-<![%script.attlist;[
-<!ATTLIST %script.qname;
-      %XHTML.xmlns.attrib;
-	  %id.attrib;
-      xml:space    ( preserve )             #FIXED 'preserve'
-      charset      %Charset.datatype;       #IMPLIED
-      type         %ContentType.datatype;   #REQUIRED
-      src          %URI.datatype;           #IMPLIED
-      defer        ( defer )                #IMPLIED
->
-<!-- end of script.attlist -->]]>
-
-<!-- noscript: No-Script Alternate Content ............. -->
-
-<!ENTITY % noscript.element  "INCLUDE" >
-<![%noscript.element;[
-<!ENTITY % noscript.content
-     "( %Block.mix; )+"
->
-<!ENTITY % noscript.qname  "noscript" >
-<!ELEMENT %noscript.qname;  %noscript.content; >
-<!-- end of noscript.element -->]]>
-
-<!ENTITY % noscript.attlist  "INCLUDE" >
-<![%noscript.attlist;[
-<!ATTLIST %noscript.qname;
-      %Common.attrib;
->
-<!-- end of noscript.attlist -->]]>
-
-<!-- end of xhtml-script-1.mod -->
-]]>
-
-<!-- Style Sheets Module  ......................................... -->
-<!ENTITY % xhtml-style.module "INCLUDE" >
-<![%xhtml-style.module;[
-<!ENTITY % xhtml-style.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Document Style Sheet Module  ................................... -->
-<!-- file: xhtml-style-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//DTD XHTML Style Sheets 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Style Sheets
-
-        style
-
-     This module declares the style element type and its attributes,
-     used to embed style sheet information in the document head element.
--->
-
-<!-- style: Style Sheet Information .................... -->
-
-<!ENTITY % style.element  "INCLUDE" >
-<![%style.element;[
-<!ENTITY % style.content  "( #PCDATA )" >
-<!ENTITY % style.qname  "style" >
-<!ELEMENT %style.qname;  %style.content; >
-<!-- end of style.element -->]]>
-
-<!ENTITY % style.attlist  "INCLUDE" >
-<![%style.attlist;[
-<!ATTLIST %style.qname;
-      %XHTML.xmlns.attrib;
-      %id.attrib;
-      %title.attrib;
-      %I18n.attrib;
-      xml:space    ( preserve )             #FIXED 'preserve'
-      type         %ContentType.datatype;   #REQUIRED
-      media        %MediaDesc.datatype;     #IMPLIED
->
-<!-- end of style.attlist -->]]>
-
-<!-- end of xhtml-style-1.mod -->
-]]>
-
-<!-- Image Module  ............................................... -->
-<!ENTITY % xhtml-image.module "INCLUDE" >
-<![%xhtml-image.module;[
-<!ENTITY % xhtml-image.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Images Module  ................................................. -->
-<!-- file: xhtml-image-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Rovision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Images
-
-        img
-
-     This module provides markup to support basic image embedding.
--->
-
-<!-- To avoid problems with text-only UAs as well as to make
-     image content understandable and navigable to users of
-     non-visual UAs, you need to provide a description with
-     the 'alt' attribute, and avoid server-side image maps.
--->
-
-<!ENTITY % img.element  "INCLUDE" >
-<![%img.element;[
-<!ENTITY % img.content  "EMPTY" >
-<!ENTITY % img.qname  "img" >
-<!ELEMENT %img.qname;  %img.content; >
-<!-- end of img.element -->]]>
-
-<!ENTITY % img.attlist  "INCLUDE" >
-<![%img.attlist;[
-<!ATTLIST %img.qname;
-      %Common.attrib;
-      src          %URI.datatype;           #REQUIRED
-      alt          %Text.datatype;          #REQUIRED
-      longdesc     %URI.datatype;           #IMPLIED
-      name         CDATA                    #IMPLIED
-      height       %Length.datatype;        #IMPLIED
-      width        %Length.datatype;        #IMPLIED
->
-<!-- end of img.attlist -->]]>
-
-<!-- end of xhtml-image-1.mod -->
-]]>
-
-<!-- Client-side Image Map Module  ............................... -->
-<!ENTITY % xhtml-csismap.module "INCLUDE" >
-<![%xhtml-csismap.module;[
-<!ENTITY % xhtml-csismap.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Client-side Image Map Module  .................................. -->
-<!-- file: xhtml-csismap-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Client-side Image Maps
-
-        area, map
-
-     This module declares elements and attributes to support client-side
-     image maps. This requires that the Image Module (or a module
-     declaring the img element type) be included in the DTD.
-
-     These can be placed in the same document or grouped in a
-     separate document, although the latter isn't widely supported
--->
-
-<!ENTITY % area.element  "INCLUDE" >
-<![%area.element;[
-<!ENTITY % area.content  "EMPTY" >
-<!ENTITY % area.qname  "area" >
-<!ELEMENT %area.qname;  %area.content; >
-<!-- end of area.element -->]]>
-
-<!ENTITY % Shape.datatype "( rect | circle | poly | default )">
-<!ENTITY % Coords.datatype "CDATA" >
-
-<!ENTITY % area.attlist  "INCLUDE" >
-<![%area.attlist;[
-<!ATTLIST %area.qname;
-      %Common.attrib;
-      href         %URI.datatype;           #IMPLIED
-      shape        %Shape.datatype;         'rect'
-      coords       %Coords.datatype;        #IMPLIED
-      nohref       ( nohref )               #IMPLIED
-      alt          %Text.datatype;          #REQUIRED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of area.attlist -->]]>
-
-<!-- modify anchor attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %a.qname;
-      shape        %Shape.datatype;         'rect'
-      coords       %Coords.datatype;        #IMPLIED
->
-
-<!-- modify img attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %img.qname;
-      usemap       %URIREF.datatype;        #IMPLIED
->
-
-<!-- modify form input attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %input.qname;
-      usemap       %URIREF.datatype;        #IMPLIED
->
-
-<!-- modify object attribute definition list
-     to allow for client-side image maps
--->
-<!ATTLIST %object.qname;
-      usemap       %URIREF.datatype;        #IMPLIED
->
-
-<!-- 'usemap' points to the 'id' attribute of a <map> element,
-     which must be in the same document; support for external
-     document maps was not widely supported in HTML and is
-     eliminated in XHTML.
-
-     It is considered an error for the element pointed to by
-     a usemap IDREF to occur in anything but a <map> element.
--->
-
-<!ENTITY % map.element  "INCLUDE" >
-<![%map.element;[
-<!ENTITY % map.content
-     "(( %Block.mix; ) | %area.qname; )+"
->
-<!ENTITY % map.qname  "map" >
-<!ELEMENT %map.qname;  %map.content; >
-<!-- end of map.element -->]]>
-
-<!ENTITY % map.attlist  "INCLUDE" >
-<![%map.attlist;[
-<!ATTLIST %map.qname;
-      %XHTML.xmlns.attrib;
-      id           ID                       #REQUIRED
-      %class.attrib;
-      %title.attrib;
-      %Core.extra.attrib;
-      %I18n.attrib;
-      %Events.attrib;
->
-<!-- end of map.attlist -->]]>
-
-<!-- end of xhtml-csismap-1.mod -->
-]]>
-
-<!-- Server-side Image Map Module  ............................... -->
-<!ENTITY % xhtml-ssismap.module "INCLUDE" >
-<![%xhtml-ssismap.module;[
-<!ENTITY % xhtml-ssismap.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Server-side Image Map Module  .................................. -->
-<!-- file: xhtml-ssismap-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod"
-
-     Revisions:
-#2000-10-22: added declaration for 'ismap' on <input>
-     ....................................................................... -->
-
-<!-- Server-side Image Maps
-
-     This adds the 'ismap' attribute to the img and input elements
-     to support server-side processing of a user selection.
--->
-
-<!ATTLIST %img.qname;
-      ismap        ( ismap )                #IMPLIED
->
-
-<!ATTLIST %input.qname;
-      ismap        ( ismap )                #IMPLIED
->
-
-<!-- end of xhtml-ssismap-1.mod -->
-]]>
-
-<!-- Param Element Module  ....................................... -->
-<!ENTITY % xhtml-param.module "INCLUDE" >
-<![%xhtml-param.module;[
-<!ENTITY % xhtml-param.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Param Element Module  ..................................... -->
-<!-- file: xhtml-param-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Parameters for Java Applets and Embedded Objects
-
-        param
-
-     This module provides declarations for the param element,
-     used to provide named property values for the applet
-     and object elements.
--->
-
-<!-- param: Named Property Value ....................... -->
-
-<!ENTITY % param.element  "INCLUDE" >
-<![%param.element;[
-<!ENTITY % param.content  "EMPTY" >
-<!ENTITY % param.qname  "param" >
-<!ELEMENT %param.qname;  %param.content; >
-<!-- end of param.element -->]]>
-
-<!ENTITY % param.attlist  "INCLUDE" >
-<![%param.attlist;[
-<!ATTLIST %param.qname;
-      %XHTML.xmlns.attrib;
-      %id.attrib;
-      name         CDATA                    #REQUIRED
-      value        CDATA                    #IMPLIED
-      valuetype    ( data | ref | object )  'data'
-      type         %ContentType.datatype;   #IMPLIED
->
-<!-- end of param.attlist -->]]>
-
-<!-- end of xhtml-param-1.mod -->
-]]>
-
-<!-- Embedded Object Module  ..................................... -->
-<!ENTITY % xhtml-object.module "INCLUDE" >
-<![%xhtml-object.module;[
-<!ENTITY % xhtml-object.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Embedded Object Module  ........................................ -->
-<!-- file: xhtml-object-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Embedded Objects
-
-        object
-
-     This module declares the object element type and its attributes, used
-     to embed external objects as part of XHTML pages. In the document,
-     place param elements prior to other content within the object element.
-
-     Note that use of this module requires instantiation of the Param
-     Element Module.
--->
-
-<!-- object: Generic Embedded Object ................... -->
-
-<!ENTITY % object.element  "INCLUDE" >
-<![%object.element;[
-<!ENTITY % object.content
-     "( #PCDATA | %Flow.mix; | %param.qname; )*"
->
-<!ENTITY % object.qname  "object" >
-<!ELEMENT %object.qname;  %object.content; >
-<!-- end of object.element -->]]>
-
-<!ENTITY % object.attlist  "INCLUDE" >
-<![%object.attlist;[
-<!ATTLIST %object.qname;
-      %Common.attrib;
-      declare      ( declare )              #IMPLIED
-      classid      %URI.datatype;           #IMPLIED
-      codebase     %URI.datatype;           #IMPLIED
-      data         %URI.datatype;           #IMPLIED
-      type         %ContentType.datatype;   #IMPLIED
-      codetype     %ContentType.datatype;   #IMPLIED
-      archive      %URIs.datatype;          #IMPLIED
-      standby      %Text.datatype;          #IMPLIED
-      height       %Length.datatype;        #IMPLIED
-      width        %Length.datatype;        #IMPLIED
-      name         CDATA                    #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
->
-<!-- end of object.attlist -->]]>
-
-<!-- end of xhtml-object-1.mod -->
-]]>
-
-<!-- Tables Module ............................................... -->
-<!ENTITY % xhtml-table.module "INCLUDE" >
-<![%xhtml-table.module;[
-<!ENTITY % xhtml-table.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Table Module  .................................................. -->
-<!-- file: xhtml-table-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Tables
-
-        table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td
-
-     This module declares element types and attributes used to provide
-     table markup similar to HTML 4, including features that enable
-     better accessibility for non-visual user agents.
--->
-
-<!-- declare qualified element type names:
--->
-<!ENTITY % table.qname  "table" >
-<!ENTITY % caption.qname  "caption" >
-<!ENTITY % thead.qname  "thead" >
-<!ENTITY % tfoot.qname  "tfoot" >
-<!ENTITY % tbody.qname  "tbody" >
-<!ENTITY % colgroup.qname  "colgroup" >
-<!ENTITY % col.qname  "col" >
-<!ENTITY % tr.qname  "tr" >
-<!ENTITY % th.qname  "th" >
-<!ENTITY % td.qname  "td" >
-
-<!-- The frame attribute specifies which parts of the frame around
-     the table should be rendered. The values are not the same as
-     CALS to avoid a name clash with the valign attribute.
--->
-<!ENTITY % frame.attrib
-     "frame        ( void
-                   | above
-                   | below
-                   | hsides
-                   | lhs
-                   | rhs
-                   | vsides
-                   | box
-                   | border )               #IMPLIED"
->
-
-<!-- The rules attribute defines which rules to draw between cells:
-
-     If rules is absent then assume:
-
-       "none" if border is absent or border="0" otherwise "all"
--->
-<!ENTITY % rules.attrib
-     "rules        ( none
-                   | groups
-                   | rows
-                   | cols
-                   | all )                  #IMPLIED"
->
-
-<!-- horizontal alignment attributes for cell contents
--->
-<!ENTITY % CellHAlign.attrib
-     "align        ( left
-                   | center
-                   | right
-                   | justify
-                   | char )                 #IMPLIED
-      char         %Character.datatype;     #IMPLIED
-      charoff      %Length.datatype;        #IMPLIED"
->
-
-<!-- vertical alignment attribute for cell contents
--->
-<!ENTITY % CellVAlign.attrib
-     "valign       ( top
-                   | middle
-                   | bottom
-                   | baseline )             #IMPLIED"
->
-
-<!-- scope is simpler than axes attribute for common tables
--->
-<!ENTITY % scope.attrib
-     "scope        ( row
-                   | col
-                   | rowgroup
-                   | colgroup )             #IMPLIED"
->
-
-<!-- table: Table Element .............................. -->
-
-<!ENTITY % table.element  "INCLUDE" >
-<![%table.element;[
-<!ENTITY % table.content
-     "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ),
-      (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))"
->
-<!ELEMENT %table.qname;  %table.content; >
-<!-- end of table.element -->]]>
-
-<!ENTITY % table.attlist  "INCLUDE" >
-<![%table.attlist;[
-<!ATTLIST %table.qname;
-      %Common.attrib;
-      summary      %Text.datatype;          #IMPLIED
-      width        %Length.datatype;        #IMPLIED
-      border       %Pixels.datatype;        #IMPLIED
-      %frame.attrib;
-      %rules.attrib;
-      cellspacing  %Length.datatype;        #IMPLIED
-      cellpadding  %Length.datatype;        #IMPLIED
->
-<!-- end of table.attlist -->]]>
-
-<!-- caption: Table Caption ............................ -->
-
-<!ENTITY % caption.element  "INCLUDE" >
-<![%caption.element;[
-<!ENTITY % caption.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ELEMENT %caption.qname;  %caption.content; >
-<!-- end of caption.element -->]]>
-
-<!ENTITY % caption.attlist  "INCLUDE" >
-<![%caption.attlist;[
-<!ATTLIST %caption.qname;
-      %Common.attrib;
->
-<!-- end of caption.attlist -->]]>
-
-<!-- thead: Table Header ............................... -->
-
-<!-- Use thead to duplicate headers when breaking table
-     across page boundaries, or for static headers when
-     tbody sections are rendered in scrolling panel.
--->
-
-<!ENTITY % thead.element  "INCLUDE" >
-<![%thead.element;[
-<!ENTITY % thead.content  "( %tr.qname; )+" >
-<!ELEMENT %thead.qname;  %thead.content; >
-<!-- end of thead.element -->]]>
-
-<!ENTITY % thead.attlist  "INCLUDE" >
-<![%thead.attlist;[
-<!ATTLIST %thead.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of thead.attlist -->]]>
-
-<!-- tfoot: Table Footer ............................... -->
-
-<!-- Use tfoot to duplicate footers when breaking table
-     across page boundaries, or for static footers when
-     tbody sections are rendered in scrolling panel.
--->
-
-<!ENTITY % tfoot.element  "INCLUDE" >
-<![%tfoot.element;[
-<!ENTITY % tfoot.content  "( %tr.qname; )+" >
-<!ELEMENT %tfoot.qname;  %tfoot.content; >
-<!-- end of tfoot.element -->]]>
-
-<!ENTITY % tfoot.attlist  "INCLUDE" >
-<![%tfoot.attlist;[
-<!ATTLIST %tfoot.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of tfoot.attlist -->]]>
-
-<!-- tbody: Table Body ................................. -->
-
-<!-- Use multiple tbody sections when rules are needed
-     between groups of table rows.
--->
-
-<!ENTITY % tbody.element  "INCLUDE" >
-<![%tbody.element;[
-<!ENTITY % tbody.content  "( %tr.qname; )+" >
-<!ELEMENT %tbody.qname;  %tbody.content; >
-<!-- end of tbody.element -->]]>
-
-<!ENTITY % tbody.attlist  "INCLUDE" >
-<![%tbody.attlist;[
-<!ATTLIST %tbody.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of tbody.attlist -->]]>
-
-<!-- colgroup: Table Column Group ...................... -->
-
-<!-- colgroup groups a set of col elements. It allows you
-     to group several semantically-related columns together.
--->
-
-<!ENTITY % colgroup.element  "INCLUDE" >
-<![%colgroup.element;[
-<!ENTITY % colgroup.content  "( %col.qname; )*" >
-<!ELEMENT %colgroup.qname;  %colgroup.content; >
-<!-- end of colgroup.element -->]]>
-
-<!ENTITY % colgroup.attlist  "INCLUDE" >
-<![%colgroup.attlist;[
-<!ATTLIST %colgroup.qname;
-      %Common.attrib;
-      span         %Number.datatype;        '1'
-      width        %MultiLength.datatype;   #IMPLIED
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of colgroup.attlist -->]]>
-
-<!-- col: Table Column ................................. -->
-
-<!-- col elements define the alignment properties for
-     cells in one or more columns.
-
-     The width attribute specifies the width of the
-     columns, e.g.
-
-       width="64"        width in screen pixels
-       width="0.5*"      relative width of 0.5
-
-     The span attribute causes the attributes of one
-     col element to apply to more than one column.
--->
-
-<!ENTITY % col.element  "INCLUDE" >
-<![%col.element;[
-<!ENTITY % col.content  "EMPTY" >
-<!ELEMENT %col.qname;  %col.content; >
-<!-- end of col.element -->]]>
-
-<!ENTITY % col.attlist  "INCLUDE" >
-<![%col.attlist;[
-<!ATTLIST %col.qname;
-      %Common.attrib;
-      span         %Number.datatype;        '1'
-      width        %MultiLength.datatype;   #IMPLIED
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of col.attlist -->]]>
-
-<!-- tr: Table Row ..................................... -->
-
-<!ENTITY % tr.element  "INCLUDE" >
-<![%tr.element;[
-<!ENTITY % tr.content  "( %th.qname; | %td.qname; )+" >
-<!ELEMENT %tr.qname;  %tr.content; >
-<!-- end of tr.element -->]]>
-
-<!ENTITY % tr.attlist  "INCLUDE" >
-<![%tr.attlist;[
-<!ATTLIST %tr.qname;
-      %Common.attrib;
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of tr.attlist -->]]>
-
-<!-- th: Table Header Cell ............................. -->
-
-<!-- th is for header cells, td for data,
-     but for cells acting as both use td
--->
-
-<!ENTITY % th.element  "INCLUDE" >
-<![%th.element;[
-<!ENTITY % th.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %th.qname;  %th.content; >
-<!-- end of th.element -->]]>
-
-<!ENTITY % th.attlist  "INCLUDE" >
-<![%th.attlist;[
-<!ATTLIST %th.qname;
-      %Common.attrib;
-      abbr         %Text.datatype;          #IMPLIED
-      axis         CDATA                    #IMPLIED
-      headers      IDREFS                   #IMPLIED
-      %scope.attrib;
-      rowspan      %Number.datatype;        '1'
-      colspan      %Number.datatype;        '1'
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of th.attlist -->]]>
-
-<!-- td: Table Data Cell ............................... -->
-
-<!ENTITY % td.element  "INCLUDE" >
-<![%td.element;[
-<!ENTITY % td.content
-     "( #PCDATA | %Flow.mix; )*"
->
-<!ELEMENT %td.qname;  %td.content; >
-<!-- end of td.element -->]]>
-
-<!ENTITY % td.attlist  "INCLUDE" >
-<![%td.attlist;[
-<!ATTLIST %td.qname;
-      %Common.attrib;
-      abbr         %Text.datatype;          #IMPLIED
-      axis         CDATA                    #IMPLIED
-      headers      IDREFS                   #IMPLIED
-      %scope.attrib;
-      rowspan      %Number.datatype;        '1'
-      colspan      %Number.datatype;        '1'
-      %CellHAlign.attrib;
-      %CellVAlign.attrib;
->
-<!-- end of td.attlist -->]]>
-
-<!-- end of xhtml-table-1.mod -->
-]]>
-
-<!-- Forms Module  ............................................... -->
-<!ENTITY % xhtml-form.module "INCLUDE" >
-<![%xhtml-form.module;[
-<!ENTITY % xhtml-form.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Forms Module  .................................................. -->
-<!-- file: xhtml-form-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Forms
-
-        form, label, input, select, optgroup, option,
-        textarea, fieldset, legend, button
-
-     This module declares markup to provide support for online
-     forms, based on the features found in HTML 4 forms.
--->
-
-<!-- declare qualified element type names:
--->
-<!ENTITY % form.qname  "form" >
-<!ENTITY % label.qname  "label" >
-<!ENTITY % input.qname  "input" >
-<!ENTITY % select.qname  "select" >
-<!ENTITY % optgroup.qname  "optgroup" >
-<!ENTITY % option.qname  "option" >
-<!ENTITY % textarea.qname  "textarea" >
-<!ENTITY % fieldset.qname  "fieldset" >
-<!ENTITY % legend.qname  "legend" >
-<!ENTITY % button.qname  "button" >
-
-<!-- %BlkNoForm.mix; includes all non-form block elements,
-     plus %Misc.class;
--->
-<!ENTITY % BlkNoForm.mix
-     "%Heading.class;
-      | %List.class;
-      | %BlkStruct.class;
-      %BlkPhras.class;
-      %BlkPres.class;
-      %Table.class;
-      %Block.extra;
-      %Misc.class;"
->
-
-<!-- form: Form Element ................................ -->
-
-<!ENTITY % form.element  "INCLUDE" >
-<![%form.element;[
-<!ENTITY % form.content
-     "( %BlkNoForm.mix;
-      | %fieldset.qname; )+"
->
-<!ELEMENT %form.qname;  %form.content; >
-<!-- end of form.element -->]]>
-
-<!ENTITY % form.attlist  "INCLUDE" >
-<![%form.attlist;[
-<!ATTLIST %form.qname;
-      %Common.attrib;
-      action       %URI.datatype;           #REQUIRED
-      method       ( get | post )           'get'
-      name         CDATA                    #IMPLIED
-      enctype      %ContentType.datatype;   'application/x-www-form-urlencoded'
-      accept-charset %Charsets.datatype;    #IMPLIED
-      accept       %ContentTypes.datatype;  #IMPLIED
->
-<!-- end of form.attlist -->]]>
-
-<!-- label: Form Field Label Text ...................... -->
-
-<!-- Each label must not contain more than ONE field
--->
-
-<!ENTITY % label.element  "INCLUDE" >
-<![%label.element;[
-<!ENTITY % label.content
-     "( #PCDATA
-      | %input.qname; | %select.qname; | %textarea.qname; | %button.qname;
-      | %InlStruct.class;
-      %InlPhras.class;
-      %I18n.class;
-      %InlPres.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %Inline.extra;
-      %Misc.class; )*"
->
-<!ELEMENT %label.qname;  %label.content; >
-<!-- end of label.element -->]]>
-
-<!ENTITY % label.attlist  "INCLUDE" >
-<![%label.attlist;[
-<!ATTLIST %label.qname;
-      %Common.attrib;
-      for          IDREF                    #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of label.attlist -->]]>
-
-<!-- input: Form Control ............................... -->
-
-<!ENTITY % input.element  "INCLUDE" >
-<![%input.element;[
-<!ENTITY % input.content  "EMPTY" >
-<!ELEMENT %input.qname;  %input.content; >
-<!-- end of input.element -->]]>
-
-<!ENTITY % input.attlist  "INCLUDE" >
-<![%input.attlist;[
-<!ENTITY % InputType.class
-     "( text | password | checkbox | radio | submit
-      | reset | file | hidden | image | button )"
->
-<!-- attribute 'name' required for all but submit & reset
--->
-<!ATTLIST %input.qname;
-      %Common.attrib;
-      type         %InputType.class;        'text'
-      name         CDATA                    #IMPLIED
-      value        CDATA                    #IMPLIED
-      checked      ( checked )              #IMPLIED
-      disabled     ( disabled )             #IMPLIED
-      readonly     ( readonly )             #IMPLIED
-      size         %Number.datatype;        #IMPLIED
-      maxlength    %Number.datatype;        #IMPLIED
-      src          %URI.datatype;           #IMPLIED
-      alt          %Text.datatype;          #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
-      accept       %ContentTypes.datatype;  #IMPLIED
->
-<!-- end of input.attlist -->]]>
-
-<!-- select: Option Selector ........................... -->
-
-<!ENTITY % select.element  "INCLUDE" >
-<![%select.element;[
-<!ENTITY % select.content
-     "( %optgroup.qname; | %option.qname; )+"
->
-<!ELEMENT %select.qname;  %select.content; >
-<!-- end of select.element -->]]>
-
-<!ENTITY % select.attlist  "INCLUDE" >
-<![%select.attlist;[
-<!ATTLIST %select.qname;
-      %Common.attrib;
-      name         CDATA                    #IMPLIED
-      size         %Number.datatype;        #IMPLIED
-      multiple     ( multiple )             #IMPLIED
-      disabled     ( disabled )             #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
->
-<!-- end of select.attlist -->]]>
-
-<!-- optgroup: Option Group ............................ -->
-
-<!ENTITY % optgroup.element  "INCLUDE" >
-<![%optgroup.element;[
-<!ENTITY % optgroup.content  "( %option.qname; )+" >
-<!ELEMENT %optgroup.qname;  %optgroup.content; >
-<!-- end of optgroup.element -->]]>
-
-<!ENTITY % optgroup.attlist  "INCLUDE" >
-<![%optgroup.attlist;[
-<!ATTLIST %optgroup.qname;
-      %Common.attrib;
-      disabled     ( disabled )             #IMPLIED
-      label        %Text.datatype;          #REQUIRED
->
-<!-- end of optgroup.attlist -->]]>
-
-<!-- option: Selectable Choice ......................... -->
-
-<!ENTITY % option.element  "INCLUDE" >
-<![%option.element;[
-<!ENTITY % option.content  "( #PCDATA )" >
-<!ELEMENT %option.qname;  %option.content; >
-<!-- end of option.element -->]]>
-
-<!ENTITY % option.attlist  "INCLUDE" >
-<![%option.attlist;[
-<!ATTLIST %option.qname;
-      %Common.attrib;
-      selected     ( selected )             #IMPLIED
-      disabled     ( disabled )             #IMPLIED
-      label        %Text.datatype;          #IMPLIED
-      value        CDATA                    #IMPLIED
->
-<!-- end of option.attlist -->]]>
-
-<!-- textarea: Multi-Line Text Field ................... -->
-
-<!ENTITY % textarea.element  "INCLUDE" >
-<![%textarea.element;[
-<!ENTITY % textarea.content  "( #PCDATA )" >
-<!ELEMENT %textarea.qname;  %textarea.content; >
-<!-- end of textarea.element -->]]>
-
-<!ENTITY % textarea.attlist  "INCLUDE" >
-<![%textarea.attlist;[
-<!ATTLIST %textarea.qname;
-      %Common.attrib;
-      name         CDATA                    #IMPLIED
-      rows         %Number.datatype;        #REQUIRED
-      cols         %Number.datatype;        #REQUIRED
-      disabled     ( disabled )             #IMPLIED
-      readonly     ( readonly )             #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of textarea.attlist -->]]>
-
-<!-- fieldset: Form Control Group ...................... -->
-
-<!-- #PCDATA is to solve the mixed content problem,
-     per specification only whitespace is allowed
--->
-
-<!ENTITY % fieldset.element  "INCLUDE" >
-<![%fieldset.element;[
-<!ENTITY % fieldset.content
-     "( #PCDATA | %legend.qname; | %Flow.mix; )*"
->
-<!ELEMENT %fieldset.qname;  %fieldset.content; >
-<!-- end of fieldset.element -->]]>
-
-<!ENTITY % fieldset.attlist  "INCLUDE" >
-<![%fieldset.attlist;[
-<!ATTLIST %fieldset.qname;
-      %Common.attrib;
->
-<!-- end of fieldset.attlist -->]]>
-
-<!-- legend: Fieldset Legend ........................... -->
-
-<!ENTITY % legend.element  "INCLUDE" >
-<![%legend.element;[
-<!ENTITY % legend.content
-     "( #PCDATA | %Inline.mix; )*"
->
-<!ELEMENT %legend.qname;  %legend.content; >
-<!-- end of legend.element -->]]>
-
-<!ENTITY % legend.attlist  "INCLUDE" >
-<![%legend.attlist;[
-<!ATTLIST %legend.qname;
-      %Common.attrib;
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of legend.attlist -->]]>
-
-<!-- button: Push Button ............................... -->
-
-<!ENTITY % button.element  "INCLUDE" >
-<![%button.element;[
-<!ENTITY % button.content
-     "( #PCDATA
-      | %BlkNoForm.mix;
-      | %InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %InlSpecial.class;
-      %Inline.extra; )*"
->
-<!ELEMENT %button.qname;  %button.content; >
-<!-- end of button.element -->]]>
-
-<!ENTITY % button.attlist  "INCLUDE" >
-<![%button.attlist;[
-<!ATTLIST %button.qname;
-      %Common.attrib;
-      name         CDATA                    #IMPLIED
-      value        CDATA                    #IMPLIED
-      type         ( button | submit | reset ) 'submit'
-      disabled     ( disabled )             #IMPLIED
-      tabindex     %Number.datatype;        #IMPLIED
-      accesskey    %Character.datatype;     #IMPLIED
->
-<!-- end of button.attlist -->]]>
-
-<!-- end of xhtml-form-1.mod -->
-]]>
-
-<!-- Legacy Markup ............................................... -->
-<!ENTITY % xhtml-legacy.module "IGNORE" >
-<![%xhtml-legacy.module;[
-<!ENTITY % xhtml-legacy.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" >
-%xhtml-legacy.mod;]]>
-
-<!-- Document Structure Module (required)  ....................... -->
-<!ENTITY % xhtml-struct.module "INCLUDE" >
-<![%xhtml-struct.module;[
-<!ENTITY % xhtml-struct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" >
-<!-- ...................................................................... -->
-<!-- XHTML Structure Module  .............................................. -->
-<!-- file: xhtml-struct-1.mod
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-flat.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- Document Structure
-
-        title, head, body, html
-
-     The Structure Module defines the major structural elements and
-     their attributes.
-
-     Note that the content model of the head element type is redeclared
-     when the Base Module is included in the DTD.
-
-     The parameter entity containing the XML namespace URI value used
-     for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module.
--->
-
-<!-- title: Document Title ............................. -->
-
-<!-- The title element is not considered part of the flow of text.
-     It should be displayed, for example as the page header or
-     window title. Exactly one title is required per document.
--->
-
-<!ENTITY % title.element  "INCLUDE" >
-<![%title.element;[
-<!ENTITY % title.content  "( #PCDATA )" >
-<!ENTITY % title.qname  "title" >
-<!ELEMENT %title.qname;  %title.content; >
-<!-- end of title.element -->]]>
-
-<!ENTITY % title.attlist  "INCLUDE" >
-<![%title.attlist;[
-<!ATTLIST %title.qname;
-      %XHTML.xmlns.attrib;
-      %I18n.attrib;
->
-<!-- end of title.attlist -->]]>
-
-<!-- head: Document Head ............................... -->
-
-<!ENTITY % head.element  "INCLUDE" >
-<![%head.element;[
-<!ENTITY % head.content
-    "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )"
->
-<!ENTITY % head.qname  "head" >
-<!ELEMENT %head.qname;  %head.content; >
-<!-- end of head.element -->]]>
-
-<!ENTITY % head.attlist  "INCLUDE" >
-<![%head.attlist;[
-<!-- reserved for future use with document profiles
--->
-<!ENTITY % profile.attrib
-     "profile      %URIs.datatype;           '%XHTML.profile;'"
->
-
-<!ATTLIST %head.qname;
-      %XHTML.xmlns.attrib;
-      %I18n.attrib;
-      %profile.attrib;
-      %id.attrib;
->
-<!-- end of head.attlist -->]]>
-
-<!-- body: Document Body ............................... -->
-
-<!ENTITY % body.element  "INCLUDE" >
-<![%body.element;[
-<!ENTITY % body.content
-     "( %Block.mix; )*"
->
-<!ENTITY % body.qname  "body" >
-<!ELEMENT %body.qname;  %body.content; >
-<!-- end of body.element -->]]>
-
-<!ENTITY % body.attlist  "INCLUDE" >
-<![%body.attlist;[
-<!ATTLIST %body.qname;
-      %Common.attrib;
->
-<!-- end of body.attlist -->]]>
-
-<!-- html: XHTML Document Element ...................... -->
-
-<!ENTITY % html.element  "INCLUDE" >
-<![%html.element;[
-<!ENTITY % html.content  "( %head.qname;, %body.qname; )" >
-<!ENTITY % html.qname  "html" >
-<!ELEMENT %html.qname;  %html.content; >
-<!-- end of html.element -->]]>
-
-<![%XHTML.xsi.attrs;[
-<!-- define a parameter for the XSI schemaLocation attribute -->
-<!ENTITY % XSI.schemaLocation.attrib
-     "%XSI.pfx;schemaLocation  %URIs.datatype;    #IMPLIED"
->
-]]>
-<!ENTITY % XSI.schemaLocation.attrib "">
-
-<!ENTITY % html.attlist  "INCLUDE" >
-<![%html.attlist;[
-<!-- version attribute value defined in driver
--->
-<!ENTITY % XHTML.version.attrib
-     "version      %FPI.datatype;           #FIXED '%XHTML.version;'"
->
-
-<!-- see the Qualified Names module for information
-     on how to extend XHTML using XML namespaces
--->
-<!ATTLIST %html.qname;
-      %XHTML.xmlns.attrib;
-      %XSI.schemaLocation.attrib;
-      %XHTML.version.attrib;
-      %I18n.attrib;
-      %id.attrib;
->
-<!-- end of html.attlist -->]]>
-
-<!-- end of xhtml-struct-1.mod -->
-]]>
-
-<!-- end of XHTML 1.1 DTD  ................................................. -->
-<!-- ....................................................................... -->
-
diff --git a/lib/dtds/xhtml11/xhtml11-model-1.mod b/lib/dtds/xhtml11/xhtml11-model-1.mod
deleted file mode 100644
index 969e21f..0000000
--- a/lib/dtds/xhtml11/xhtml11-model-1.mod
+++ /dev/null
@@ -1,250 +0,0 @@
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 Document Model Module  ...................................... -->
-<!-- file: xhtml11-model-1.mod
-
-     This is XHTML 1.1, a reformulation of HTML as a modular XML application.
-     Copyright 1998-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved.
-     Revision: $Id: xhtml11-model-1.mod,v 1.1 2010/11/24 20:56:19 bertails Exp $ SMI
-
-     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
-
-       PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
-       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod"
-
-     Revisions:
-     (none)
-     ....................................................................... -->
-
-<!-- XHTML 1.1 Document Model
-
-     This module describes the groupings of elements that make up
-     common content models for XHTML elements.
-
-     XHTML has three basic content models:
-
-         %Inline.mix;  character-level elements
-         %Block.mix;   block-like elements, eg., paragraphs and lists
-         %Flow.mix;    any block or inline elements
-
-     Any parameter entities declared in this module may be used
-     to create element content models, but the above three are
-     considered 'global' (insofar as that term applies here).
-
-     The reserved word '#PCDATA' (indicating a text string) is now
-     included explicitly with each element declaration that is
-     declared as mixed content, as XML requires that this token
-     occur first in a content model specification.
--->
-<!-- Extending the Model
-
-     While in some cases this module may need to be rewritten to
-     accommodate changes to the document model, minor extensions
-     may be accomplished by redeclaring any of the three *.extra;
-     parameter entities to contain extension element types as follows:
-
-         %Misc.extra;    whose parent may be any block or
-                         inline element.
-
-         %Inline.extra;  whose parent may be any inline element.
-
-         %Block.extra;   whose parent may be any block element.
-
-     If used, these parameter entities must be an OR-separated
-     list beginning with an OR separator ("|"), eg., "| a | b | c"
-
-     All block and inline *.class parameter entities not part
-     of the *struct.class classes begin with "| " to allow for
-     exclusion from mixes.
--->
-
-<!-- ..............  Optional Elements in head  .................. -->
-
-<!ENTITY % HeadOpts.mix
-     "( %script.qname; | %style.qname; | %meta.qname;
-      | %link.qname; | %object.qname; )*"
->
-
-<!-- .................  Miscellaneous Elements  .................. -->
-
-<!-- ins and del are used to denote editing changes
--->
-<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" >
-
-<!-- script and noscript are used to contain scripts
-     and alternative content
--->
-<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >
-
-<!ENTITY % Misc.extra "" >
-
-<!-- These elements are neither block nor inline, and can
-     essentially be used anywhere in the document body.
--->
-<!ENTITY % Misc.class
-     "%Edit.class;
-      %Script.class;
-      %Misc.extra;"
->
-
-<!-- ....................  Inline Elements  ...................... -->
-
-<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >
-
-<!ENTITY % InlPhras.class
-     "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
-      | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
-      | %abbr.qname; | %acronym.qname; | %q.qname;" >
-
-<!ENTITY % InlPres.class
-     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
-      | %small.qname; | %sub.qname; | %sup.qname;" >
-
-<!ENTITY % I18n.class "| %bdo.qname;" >
-
-<!ENTITY % Anchor.class "| %a.qname;" >
-
-<!ENTITY % InlSpecial.class
-     "| %img.qname; | %map.qname;
-      | %object.qname;" >
-
-<!ENTITY % InlForm.class
-     "| %input.qname; | %select.qname; | %textarea.qname;
-      | %label.qname; | %button.qname;" >
-
-<!ENTITY % Inline.extra "" >
-
-<!ENTITY % Ruby.class "| %ruby.qname;" >
-
-<!-- %Inline.class; includes all inline elements,
-     used as a component in mixes
--->
-<!ENTITY % Inline.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Ruby.class;
-      %Inline.extra;"
->
-
-<!-- %InlNoRuby.class; includes all inline elements
-     except ruby, used as a component in mixes
--->
-<!ENTITY % InlNoRuby.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %Anchor.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Inline.extra;"
->
-
-<!-- %NoRuby.content; includes all inlines except ruby
--->
-<!ENTITY % NoRuby.content
-     "( #PCDATA
-      | %InlNoRuby.class;
-      %Misc.class; )*"
->
-
-<!-- %InlNoAnchor.class; includes all non-anchor inlines,
-     used as a component in mixes
--->
-<!ENTITY % InlNoAnchor.class
-     "%InlStruct.class;
-      %InlPhras.class;
-      %InlPres.class;
-      %I18n.class;
-      %InlSpecial.class;
-      %InlForm.class;
-      %Ruby.class;
-      %Inline.extra;"
->
-
-<!-- %InlNoAnchor.mix; includes all non-anchor inlines
--->
-<!ENTITY % InlNoAnchor.mix
-     "%InlNoAnchor.class;
-      %Misc.class;"
->
-
-<!-- %Inline.mix; includes all inline elements, including %Misc.class;
--->
-<!ENTITY % Inline.mix
-     "%Inline.class;
-      %Misc.class;"
->
-
-<!-- .....................  Block Elements  ...................... -->
-
-<!-- In the HTML 4.0 DTD, heading and list elements were included
-     in the %block; parameter entity. The %Heading.class; and
-     %List.class; parameter entities must now be included explicitly
-     on element declarations where desired.
--->
-
-<!ENTITY % Heading.class
-     "%h1.qname; | %h2.qname; | %h3.qname;
-      | %h4.qname; | %h5.qname; | %h6.qname;" >
-
-<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >
-
-<!ENTITY % Table.class "| %table.qname;" >
-
-<!ENTITY % Form.class  "| %form.qname;" >
-
-<!ENTITY % Fieldset.class  "| %fieldset.qname;" >
-
-<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >
-
-<!ENTITY % BlkPhras.class
-     "| %pre.qname; | %blockquote.qname; | %address.qname;" >
-
-<!ENTITY % BlkPres.class "| %hr.qname;" >
-
-<!ENTITY % BlkSpecial.class
-     "%Table.class;
-      %Form.class;
-      %Fieldset.class;"
->
-
-<!ENTITY % Block.extra "" >
-
-<!-- %Block.class; includes all block elements,
-     used as an component in mixes
--->
-<!ENTITY % Block.class
-     "%BlkStruct.class;
-      %BlkPhras.class;
-      %BlkPres.class;
-      %BlkSpecial.class;
-      %Block.extra;"
->
-
-<!-- %Block.mix; includes all block elements plus %Misc.class;
--->
-<!ENTITY % Block.mix
-     "%Heading.class;
-      | %List.class;
-      | %Block.class;
-      %Misc.class;"
->
-
-<!-- ................  All Content Elements  .................. -->
-
-<!-- %Flow.mix; includes all text content, block and inline
--->
-<!ENTITY % Flow.mix
-     "%Heading.class;
-      | %List.class;
-      | %Block.class;
-      | %Inline.class;
-      %Misc.class;"
->
-
-<!-- end of xhtml11-model-1.mod -->
diff --git a/lib/dtds/xhtml11/xhtml11.dtd b/lib/dtds/xhtml11/xhtml11.dtd
deleted file mode 100644
index 8f14c40..0000000
--- a/lib/dtds/xhtml11/xhtml11.dtd
+++ /dev/null
@@ -1,323 +0,0 @@
-<!-- ....................................................................... -->
-<!-- XHTML 1.1 DTD  ........................................................ -->
-<!-- file: xhtml11.dtd
--->
-
-<!-- XHTML 1.1 DTD
-
-     This is XHTML, a reformulation of HTML as a modular XML application.
-
-     The Extensible HyperText Markup Language (XHTML)
-     Copyright 1998-2008 World Wide Web Consortium
-        (Massachusetts Institute of Technology, European Research Consortium
-         for Informatics and Mathematics, Keio University).
-         All Rights Reserved.
-
-     Permission to use, copy, modify and distribute the XHTML DTD and its 
-     accompanying documentation for any purpose and without fee is hereby 
-     granted in perpetuity, provided that the above copyright notice and 
-     this paragraph appear in all copies.  The copyright holders make no 
-     representation about the suitability of the DTD for any purpose.
-
-     It is provided "as is" without expressed or implied warranty.
-
-        Author:     Murray M. Altheim <altheim@eng.sun.com>
-        Revision:   $Id: xhtml11.dtd,v 1.1 2010/11/24 20:56:19 bertails Exp $
-
--->
-<!-- This is the driver file for version 1.1 of the XHTML DTD.
-
-     Please use this public identifier to identify it:
-
-         "-//W3C//DTD XHTML 1.1//EN"
--->
-<!ENTITY % XHTML.version  "-//W3C//DTD XHTML 1.1//EN" >
-
-<!-- Use this URI to identify the default namespace:
-
-         "http://www.w3.org/1999/xhtml"
-
-     See the Qualified Names module for information
-     on the use of namespace prefixes in the DTD.
-
-	 Note that XHTML namespace elements are not prefixed by default,
-	 but the XHTML namespace prefix is defined as "xhtml" so that
-	 other markup languages can extend this one and use the XHTML
-	 prefixed global attributes if required.
-
--->
-<!ENTITY % NS.prefixed "IGNORE" >
-<!ENTITY % XHTML.prefix "xhtml" >
-
-<!-- Be sure to include prefixed global attributes - we don't need
-     them, but languages that extend XHTML 1.1 might.
--->
-<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >
-
-<!-- Reserved for use with the XLink namespace:
--->
-<!ENTITY % XLINK.xmlns "" >
-<!ENTITY % XLINK.xmlns.attrib "" >
-
-<!-- For example, if you are using XHTML 1.1 directly, use the public
-     identifier in the DOCTYPE declaration, with the namespace declaration
-     on the document element to identify the default namespace:
-
-       <?xml version="1.0"?>
-       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
-                             "http://www.w3.org/MarkUp/DTD/xhtml11.dtd">
-       <html xmlns="http://www.w3.org/1999/xhtml"
-             xml:lang="en">
-       ...
-       </html>
-
-     Revisions:
-     (none)
--->
-
-<!-- reserved for future use with document profiles -->
-<!ENTITY % XHTML.profile  "" >
-
-<!-- ensure XHTML Notations are disabled -->
-<!ENTITY % xhtml-notations.module "IGNORE" >
-
-<!-- Bidirectional Text features
-     This feature-test entity is used to declare elements
-     and attributes used for bidirectional text support.
--->
-<!ENTITY % XHTML.bidi  "INCLUDE" >
-
-<?doc type="doctype" role="title" { XHTML 1.1 } ?>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Pre-Framework Redeclaration placeholder  .................... -->
-<!-- this serves as a location to insert markup declarations
-     into the DTD prior to the framework declarations.
--->
-<!ENTITY % xhtml-prefw-redecl.module "IGNORE" >
-<![%xhtml-prefw-redecl.module;[
-%xhtml-prefw-redecl.mod;
-<!-- end of xhtml-prefw-redecl.module -->]]>
-
-<!ENTITY % xhtml-events.module "INCLUDE" >
-
-<!-- Inline Style Module  ........................................ -->
-<!ENTITY % xhtml-inlstyle.module "INCLUDE" >
-<![%xhtml-inlstyle.module;[
-<!ENTITY % xhtml-inlstyle.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" >
-%xhtml-inlstyle.mod;]]>
-
-<!-- declare Document Model module instantiated in framework
--->
-<!ENTITY % xhtml-model.mod
-     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" >
-
-<!-- adding the lang attribute into the I18N collection -->
-
-<!ENTITY % xhtml-datatypes.module "INCLUDE" >
-<![%xhtml-datatypes.module;[
-<!ENTITY % xhtml-datatypes.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
-            "xhtml-datatypes-1.mod" >
-%xhtml-datatypes.mod;]]>
-
-<!ENTITY % lang.attrib
-     "xml:lang     %LanguageCode.datatype;  #IMPLIED
-      lang         %LanguageCode.datatype;  #IMPLIED"
->
-
-<!-- Modular Framework Module (required) ......................... -->
-<!ENTITY % xhtml-framework.module "INCLUDE" >
-<![%xhtml-framework.module;[
-<!ENTITY % xhtml-framework.mod
-     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" >
-%xhtml-framework.mod;]]>
-
-<!-- Post-Framework Redeclaration placeholder  ................... -->
-<!-- this serves as a location to insert markup declarations
-     into the DTD following the framework declarations.
--->
-<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
-<![%xhtml-postfw-redecl.module;[
-%xhtml-postfw-redecl.mod;
-<!-- end of xhtml-postfw-redecl.module -->]]>
-
-<!-- Text Module (Required)  ..................................... -->
-<!ENTITY % xhtml-text.module "INCLUDE" >
-<![%xhtml-text.module;[
-<!ENTITY % xhtml-text.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" >
-%xhtml-text.mod;]]>
-
-<!-- Hypertext Module (required) ................................. -->
-<!ENTITY % xhtml-hypertext.module "INCLUDE" >
-<![%xhtml-hypertext.module;[
-<!ENTITY % xhtml-hypertext.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" >
-%xhtml-hypertext.mod;]]>
-
-<!-- Lists Module (required)  .................................... -->
-<!ENTITY % xhtml-list.module "INCLUDE" >
-<![%xhtml-list.module;[
-<!ENTITY % xhtml-list.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" >
-%xhtml-list.mod;]]>
-
-<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
-
-<!-- Edit Module  ................................................ -->
-<!ENTITY % xhtml-edit.module "INCLUDE" >
-<![%xhtml-edit.module;[
-<!ENTITY % xhtml-edit.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" >
-%xhtml-edit.mod;]]>
-
-<!-- BIDI Override Module  ....................................... -->
-<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >
-<![%xhtml-bdo.module;[
-<!ENTITY % xhtml-bdo.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" >
-%xhtml-bdo.mod;]]>
-
-<!-- Ruby Module  ................................................ -->
-<!ENTITY % Ruby.common.attlists "INCLUDE" >
-<!ENTITY % Ruby.common.attrib "%Common.attrib;" >
-<!ENTITY % xhtml-ruby.module "INCLUDE" >
-<![%xhtml-ruby.module;[
-<!ENTITY % xhtml-ruby.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-ruby-1.mod" >
-%xhtml-ruby.mod;]]>
-
-<!-- Presentation Module  ........................................ -->
-<!ENTITY % xhtml-pres.module "INCLUDE" >
-<![%xhtml-pres.module;[
-<!ENTITY % xhtml-pres.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" >
-%xhtml-pres.mod;]]>
-
-<!-- Link Element Module  ........................................ -->
-<!ENTITY % xhtml-link.module "INCLUDE" >
-<![%xhtml-link.module;[
-<!ENTITY % xhtml-link.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" >
-%xhtml-link.mod;]]>
-
-<!-- Document Metainformation Module  ............................ -->
-<!ENTITY % xhtml-meta.module "INCLUDE" >
-<![%xhtml-meta.module;[
-<!ENTITY % xhtml-meta.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" >
-%xhtml-meta.mod;]]>
-
-<!-- Base Element Module  ........................................ -->
-<!ENTITY % xhtml-base.module "INCLUDE" >
-<![%xhtml-base.module;[
-<!ENTITY % xhtml-base.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" >
-%xhtml-base.mod;]]>
-
-<!-- Scripting Module  ........................................... -->
-<!ENTITY % xhtml-script.module "INCLUDE" >
-<![%xhtml-script.module;[
-<!ENTITY % xhtml-script.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" >
-%xhtml-script.mod;]]>
-
-<!-- Style Sheets Module  ......................................... -->
-<!ENTITY % xhtml-style.module "INCLUDE" >
-<![%xhtml-style.module;[
-<!ENTITY % xhtml-style.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" >
-%xhtml-style.mod;]]>
-
-<!-- Image Module  ............................................... -->
-<!ENTITY % xhtml-image.module "INCLUDE" >
-<![%xhtml-image.module;[
-<!ENTITY % xhtml-image.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" >
-%xhtml-image.mod;]]>
-
-<!-- Client-side Image Map Module  ............................... -->
-<!ENTITY % xhtml-csismap.module "INCLUDE" >
-<![%xhtml-csismap.module;[
-<!ENTITY % xhtml-csismap.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" >
-%xhtml-csismap.mod;]]>
-
-<!-- Server-side Image Map Module  ............................... -->
-<!ENTITY % xhtml-ssismap.module "INCLUDE" >
-<![%xhtml-ssismap.module;[
-<!ENTITY % xhtml-ssismap.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" >
-%xhtml-ssismap.mod;]]>
-
-<!-- Param Element Module  ....................................... -->
-<!ENTITY % xhtml-param.module "INCLUDE" >
-<![%xhtml-param.module;[
-<!ENTITY % xhtml-param.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" >
-%xhtml-param.mod;]]>
-
-<!-- Embedded Object Module  ..................................... -->
-<!ENTITY % xhtml-object.module "INCLUDE" >
-<![%xhtml-object.module;[
-<!ENTITY % xhtml-object.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" >
-%xhtml-object.mod;]]>
-
-<!-- Tables Module ............................................... -->
-<!ENTITY % xhtml-table.module "INCLUDE" >
-<![%xhtml-table.module;[
-<!ENTITY % xhtml-table.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" >
-%xhtml-table.mod;]]>
-
-<!-- Forms Module  ............................................... -->
-<!ENTITY % xhtml-form.module "INCLUDE" >
-<![%xhtml-form.module;[
-<!ENTITY % xhtml-form.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" >
-%xhtml-form.mod;]]>
-
-<!-- Legacy Markup ............................................... -->
-<!ENTITY % xhtml-legacy.module "IGNORE" >
-<![%xhtml-legacy.module;[
-<!ENTITY % xhtml-legacy.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" >
-%xhtml-legacy.mod;]]>
-
-<!-- Document Structure Module (required)  ....................... -->
-<!ENTITY % xhtml-struct.module "INCLUDE" >
-<![%xhtml-struct.module;[
-<!ENTITY % xhtml-struct.mod
-     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
-            "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" >
-%xhtml-struct.mod;]]>
-
-<!-- end of XHTML 1.1 DTD  ................................................. -->
-<!-- ....................................................................... -->
diff --git a/lib/dtds/xhtml11/xhtmlcatalog.xml b/lib/dtds/xhtml11/xhtmlcatalog.xml
deleted file mode 100644
index d648fa0..0000000
--- a/lib/dtds/xhtml11/xhtmlcatalog.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
-                         "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
- <!--
-     Comment the DTD declaration to avoid looking for it on the web.
-     Alternatively we can place a copy of the DTD locally and refer to it.
- -->
-<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-
-    <public publicId="-//W3C//DTD XHTML 1.1//EN" uri="xhtml11-flat.dtd"/>
-    <public publicId="-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" uri="xhtml11-model-1.mod"/>
-    <public publicId="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" uri="xhtml-math-svg-flat.dtd"/>
-    
-    <system systemId="http://www.w3.org/MarkUp/DTD/xhtml11.dtd" uri="xhtml11-flat.dtd"/>
-    <system systemId="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" uri="xhtml11-flat.dtd"/>
-    <system systemId="http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" uri="xhtml11-model-1.mod"/>
-    <system systemId="http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod" uri="xhtml11-model-1.mod"/>
-    <system systemId="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd" uri="xhtml-math-svg-flat.dtd"/>
-    <system systemId="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" uri="xhtml-math-svg-flat.dtd"/>
-    
-    <system systemId="http://www.w3.org/MarkUp/DTD/xhtml-lat1.ent" uri="xhtml-lat1.ent"/>
-    <system systemId="http://www.w3.org/MarkUp/DTD/xhtml-symbol.ent" uri="xhtml-symbol.ent"/>
-    <system systemId="http://www.w3.org/MarkUp/DTD/xhtml-special.ent" uri="xhtml-special.ent"/>
-</catalog>
\ No newline at end of file
