changeset 0:bca6df27dbfd

mostly unchanged from http://www.cc.org/dtd
author ht
date Sat, 19 Jan 2008 22:54:40 +0000
parents
children d3a06d7753d9
files dtd/HTMLlat1x.ent dtd/HTMLspecialx.ent dtd/HTMLsymbolx.ent dtd/ThML10.dtd dtd/bible.mod dtd/ebook.mod dtd/html-base.mod dtd/html-blocktext.mod dtd/html-chars.mod dtd/html-entities.mod dtd/html-forms.mod dtd/html-img.mod dtd/html-lists.mod dtd/html-object.mod dtd/html-phrases.mod dtd/html-tables.mod dtd/hymn.mod
diffstat 17 files changed, 2090 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/HTMLlat1x.ent	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,195 @@
+<!-- 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 Full Latin 1//EN//HTML">
+     %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 -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/HTMLspecialx.ent	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,80 @@
+<!-- Special characters for HTML -->
+
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLspecial PUBLIC
+       "-//W3C//ENTITIES Special//EN//HTML">
+     %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 2.0 names. 
+
+-->
+
+<!-- C0 Controls and Basic Latin -->
+<!ENTITY quot    "&#34;"> <!--  quotation mark = APL quote,
+                                    U+0022 ISOnum -->
+<!--
+<!ENTITY amp     "&#38;">   ampersand, U+0026 ISOnum -->
+<!--
+<!ENTITY lt      "&#60;">   less-than sign, U+003C ISOnum -->
+<!--
+<!ENTITY gt      "&#62;">   greater-than sign, U+003E 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 standardised -->
+<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
+                                    U+203A ISO proposed -->
+<!-- rsaquo is proposed but not yet ISO standardised -->
+<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/HTMLsymbolx.ent	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,241 @@
+<!-- Mathematical, Greek and Symbolic characters for HTML -->
+
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLsymbol PUBLIC
+       "-//W3C//ENTITIES Symbolic//EN//HTML">
+     %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 2.0 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 -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/ThML10.dtd	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,95 @@
+<!--
+    ThML: Theological Markup Language for electronic texts and 
+    digital libraries.
+
+    ThML is an extension of the Voyager version 4.0 Strict DTD.
+
+    Author: Harry Plantinga
+    Version 1.0b3, 1999-08-18
+    Namespace = http://www.ccel.org/Profiles/ThML
+
+    Filename: ThML.dtd
+    
+    Version b3: added filebreak="nnn" attribute to div1..div6 elements.
+    In CCEL software this specifies minimum desired filesize for
+    splitting a document into multiple files.
+
+    Version 1.04: added <include href="..."/> element for splitting
+    a ThML file in pieces. Added shorttitle="..." attribute to div1..
+    div6 and <include/>, for a short page-head title for section.
+
+    Version 1.05: added n, 
+    Version 1.06: added type attribute to <term> element
+    Version 1.07: added url, source, surl, type attributes to <def>, to support 
+    	"external" dictionaries (really link bases), 2006-02-28
+    Version 1.08: made some mods to hymn.mod to further standardize hymnal
+	handling and support our new hymnary database application
+-->
+
+ <!-- Name files we will want to include -->
+
+ <!ENTITY % Voyager.entities SYSTEM "html-entities.mod">
+ <!ENTITY % Voyager.chars SYSTEM "html-chars.mod">
+ <!ENTITY % Voyager.base SYSTEM "html-base.mod">
+ <!ENTITY % Voyager.phrases SYSTEM "html-phrases.mod">
+ <!ENTITY % Voyager.lists SYSTEM "html-lists.mod">
+ <!ENTITY % Voyager.blocktext SYSTEM "html-blocktext.mod">
+ <!ENTITY % Voyager.object SYSTEM "html-object.mod">
+ <!ENTITY % Voyager.img SYSTEM "html-img.mod">
+ <!ENTITY % Voyager.forms SYSTEM "html-forms.mod">
+ <!ENTITY % Voyager.tables SYSTEM "html-tables.mod">
+
+ <!ENTITY % ThML.ebook SYSTEM "ebook.mod">
+ <!ENTITY % ThML.bible SYSTEM "bible.mod">
+ <!ENTITY % ThML.hymn  SYSTEM "hymn.mod">
+
+ <!-- Customize entities that control the content model -->
+
+ <!ENTITY % block.forms "form | fieldset">
+ <!ENTITY % media "|object | img | map">
+ <!ENTITY % fontstyle "tt | i | b | big | small">
+ <!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
+                    samp | kbd | var | cite | abbr | acronym" >
+ <!ENTITY % lists "ul | ol | dl">
+ <!ENTITY % inline.forms "input | select | label | textarea | button">
+ <!ENTITY % blocktext "pre | hr | blockquote | address">
+ <!ENTITY % misc "ins | del | script | noscript | added | deleted | 
+            index | pb | scripContext | scripRef | scripCom | scripture">
+ <!ENTITY % extra.inline "| %fontstyle; | %phrase; | %inline.forms; |
+            date | foreign | name | note | sync | unclear">
+ <!ENTITY % extra.block "| %lists; | %blocktext; | %block.forms; | table |
+            glossary | argument | verse | attr | insertIndex | hymn | include">
+
+ <!--
+   Now include the files using the names we declared
+   earlier, starting with the entities file and ending
+   with the base file. The entities file defines the
+   standard content models for elements declared in the
+   following files.
+ -->
+
+ %Voyager.entities;
+ %Voyager.chars;
+
+ %ThML.bible;
+ %ThML.hymn;
+ %ThML.ebook;
+
+ %Voyager.phrases;
+ %Voyager.lists;
+ %Voyager.blocktext;
+ %Voyager.object;
+ %Voyager.img;
+ %Voyager.forms;
+ %Voyager.tables;
+ %Voyager.base;
+
+<!ELEMENT ThML.head (title?, base?, generalInfo?, printSourceInfo?, 
+    electronicEdInfo, (script|style|meta|link)*)>
+
+<!ELEMENT ThML.body (div1|added|deleted)*>
+<!ATTLIST ThML.body 
+    xml:space    (default|preserve) "preserve">
+
+<!ELEMENT ThML (ThML.head, ThML.body, ThML*)>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/bible.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,58 @@
+
+<!--
+  Support for Bibles, Bible references, citations, commentary in Voyager.
+  From the ThML DTD, v1.0.  File: bible.mod
+
+  Author: Harry Plantinga (hplantin@calvin.edu), January 1, 2000. 
+  This file may be copied according to the terms of the Artistic License.
+
+  version 1.01, 2002-09-04: allow osisRef and osisID attributes
+-->
+
+ <!--=========================  Bibles  =============================-->
+ <!--=========== references, citations, commentary ==================-->
+
+ <!ENTITY % scripturePassage "CDATA"> <!-- e.g. Rom. 8:28-30, 9.10-1, Rev2-->
+ <!ENTITY % scriptureParsed  "CDATA"> <!-- version|bk|fch|fv|tch|tv -->
+ <!ENTITY % osisIDType       "CDATA"> <!-- Matt.1.1, e.g. -->
+ <!ENTITY % osisRefType	     "CDATA"> <!-- Bible:Matt.1.1-Matt.1.3, e.g. -->
+ <!ENTITY % scriptureVersion "(NIV | KJV | NKJV | RSV | NRSV | ASV | 
+    NEB | VUL | LXX)"> 
+ <!ENTITY % scripComType     "(About | Commentary | Hymn | Sermon | Outline | 
+    Meditation | Treatise | Study | Poem | Citation)">
+
+ <!ELEMENT scripture (#PCDATA | %block; | %inline; | %misc;)*> 
+ <!ATTLIST scripture %attrs;
+   version %scriptureVersion;  #IMPLIED
+   type    CDATA	       #IMPLIED
+   passage %scripturePassage;  #IMPLIED
+   parsed  %scriptureParsed;   #IMPLIED
+   osisRef %osisRefType;       #IMPLIED
+   osisID  %osisIDType;        #IMPLIED>
+
+ <!ELEMENT scripContext EMPTY>
+ <!ATTLIST scripContext %attrs;
+   version %scriptureVersion;  #IMPLIED
+   passage %scripturePassage;  #IMPLIED
+   parsed  %scriptureParsed;   #IMPLIED>
+
+ <!ELEMENT scripRef %Inline;>
+ <!ATTLIST scripRef %attrs;
+   version %scriptureVersion;  #IMPLIED
+   passage %scripturePassage;  #IMPLIED
+   parsed  %scriptureParsed;   #IMPLIED
+   target  %URI;               #IMPLIED
+   osisRef %osisRefType;       #IMPLIED>
+   
+ <!ELEMENT scripCom EMPTY>
+ <!ATTLIST scripCom %attrs;
+   type    %scripComType;      "Citation"
+   version %scriptureVersion;  #IMPLIED
+   passage %scripturePassage;  #IMPLIED
+   parsed  %scriptureParsed;   #IMPLIED
+   target  %URI;               #IMPLIED
+   osisRef %osisRefType;       #IMPLIED>
+   
+
+ <!ENTITY % misc.bible "| scripContext | scripRef | scripCom | scripture">
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/ebook.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,247 @@
+<!--
+  Electronic book/Digital library support for Voyager.
+
+  Author: Harry.Plantinga@wheaton.edu
+
+  2003-01, v1.1: 
+    - add n attribute to <note> for note reference mark
+    - add shorttitle attribute to <divn> for short form of title
+    - add progress attribute to <divn> for % of way through doc
+  2007-06:
+    - allow <p> in <verse>
+-->
+
+ <!--================ ebooks ================================-->
+
+ <!-- Block-level additions -->
+ <!ELEMENT attr %Inline;>          <!-- attribution, signature, etc. -->
+ <!ATTLIST attr %attrs; >
+
+ <!ELEMENT argument %Inline;>      <!-- chapter subhead or topic -->
+ <!ATTLIST argument %attrs; >
+
+ <!ELEMENT l %Inline;>             <!-- line of poetry -->
+ <!ATTLIST l %attrs;
+   n		CDATA #IMPLIED
+   shownumber	CDATA #IMPLIED>
+
+ <!ELEMENT glossary (term|def+)+>  <!-- list of definitions -->
+ <!ATTLIST glossary %attrs;
+    type     CDATA  #IMPLIED>
+
+ <!ELEMENT sync EMPTY>             <!-- synchronization point -->
+ <!ATTLIST sync %attrs;
+    type     CDATA  #REQUIRED
+    value    CDATA  #REQUIRED>
+
+ <!ELEMENT verse (l|p|%misc;)*>      <!-- group of poetic lines -->
+ <!ATTLIST verse %attrs;
+    type     CDATA  "stanza"
+    n        CDATA  #IMPLIED>
+
+ <!--=====================================================================-->
+ <!-- Inline additions -->
+
+ <!ELEMENT date %Inline;>          <!-- any reference to a date -->
+ <!ATTLIST date %attrs;   
+    value    %Datetime;  #IMPLIED>
+
+ <!ELEMENT index %Flow;>            <!-- index entry or index -->
+ <!ATTLIST index %attrs;
+    type     CDATA  "subject"  
+    subject1 CDATA  #IMPLIED
+    subject2 CDATA  #IMPLIED
+    subject3 CDATA  #IMPLIED
+    subject4 CDATA  #IMPLIED
+    target   CDATA  #IMPLIED>     
+    
+ <!ELEMENT insertIndex EMPTY>      <!-- add a computed index here -->
+ <!ATTLIST insertIndex %attrs;
+    level    CDATA  #IMPLIED
+    type     CDATA  #REQUIRED>
+
+ <!ELEMENT foreign %Inline;>       <!-- foreign-language phrase -->
+ <!ATTLIST foreign 
+    lang   %LanguageCode; #REQUIRED
+    dir    (rtl|ltr)      #IMPLIED
+    %coreattrs;
+    %events;>
+
+ <!ELEMENT name %Inline;>          <!-- a person's name -->
+ <!ATTLIST name %attrs; >
+
+ <!ELEMENT unclear %Flow;>         <!-- text that may be incorrect -->
+ <!ATTLIST unclear %attrs; >
+
+
+ <!--=====================================================================-->
+ <!-- Controls (inline or block level)  (for misc) -->
+ <!ELEMENT added (#PCDATA | %block; | %inline; | %misc; | div1 | div2 |
+           div3 | div4 | div5 | div6)*>  <!-- text added to the source doc -->
+ <!ATTLIST added %attrs;
+    resp     CDATA      #IMPLIED
+    reason   CDATA      #IMPLIED
+    date     %Datetime; #IMPLIED>
+
+ <!ELEMENT deleted (#PCDATA | %block; | %inline; | %misc; | div1 | div2 |
+           div3 | div4 | div5 | div6)*>  <!-- text deleted from source doc -->
+ <!ATTLIST deleted %attrs;
+    resp     CDATA      #IMPLIED
+    reason   CDATA      #IMPLIED
+    date     %Datetime; #IMPLIED>
+
+ <!ELEMENT note %Flow;>            <!-- footnote, endnote, etc. -->
+ <!ATTLIST note %attrs;
+    place    (foot|end|inline|margin|interlinear) "foot"
+    resp     CDATA      #IMPLIED
+    target   IDREF      #IMPLIED
+    targetEnd IDREF     #IMPLIED
+    n        CDATA      #IMPLIED
+    anchored (yes|no)   "yes">
+
+ <!ELEMENT pb EMPTY>               <!-- page break in print edition -->
+ <!ATTLIST pb %attrs;
+    n        CDATA  #IMPLIED
+    corrected CDATA #IMPLIED
+    proofed  CDATA  #IMPLIED
+    thmlized CDATA  #IMPLIED
+    href     %URI;  #IMPLIED>
+
+
+ <!--=====================================================================-->
+ <!-- Other additions (not in Block or Inline models) -->
+ <!ELEMENT term %Inline;>          <!-- term of definition list -->
+ <!ATTLIST term %attrs;
+    type 	CDATA	#IMPLIED>
+
+ <!ELEMENT def %Flow;>             <!-- definitions -->
+ <!ATTLIST def %attrs;
+    type	CDATA   #IMPLIED 
+    target	CDATA   #IMPLIED 
+    source	CDATA	#IMPLIED 
+    surl	CDATA	#IMPLIED> 
+ <!-- type is e.g. Dictionary Entry or Encyclopedia Entry.
+      target is URL of definition, if external.
+      source, surl are name and url of book/source of definition. -->
+
+
+ <!--=====================================================================-->
+ <!-- Structure (divs) -->
+ <!ELEMENT div1 ((%block; | %misc;)*, div2*)> <!-- top divisions -->
+ <!ATTLIST div1 %attrs;
+    type     CDATA  #IMPLIED
+    filebreak    CDATA  #IMPLIED
+    shorttitle CDATA	#IMPLIED
+    progress CDATA  #IMPLIED
+    n        CDATA  #IMPLIED>
+
+ <!ELEMENT div2 ((%block; | %misc;)*, div3*)> 
+ <!ATTLIST div2 %attrs;
+    type     CDATA  #IMPLIED
+    filebreak    CDATA  #IMPLIED
+    shorttitle CDATA	#IMPLIED
+    progress CDATA  #IMPLIED
+    n        CDATA  #IMPLIED>
+
+ <!ELEMENT div3 ((%block; | %misc;)*, div4*)> 
+ <!ATTLIST div3 %attrs;
+    type     CDATA  #IMPLIED
+    filebreak    CDATA  #IMPLIED
+    shorttitle CDATA	#IMPLIED
+    progress CDATA  #IMPLIED
+    n        CDATA  #IMPLIED>
+
+ <!ELEMENT div4 ((%block; | %misc;)*, div5*)> 
+ <!ATTLIST div4 %attrs;
+    type     CDATA  #IMPLIED
+    filebreak    CDATA  #IMPLIED
+    shorttitle CDATA	#IMPLIED
+    progress CDATA  #IMPLIED
+    n        CDATA  #IMPLIED>
+
+ <!ELEMENT div5 ((%block; | %misc;)*, div6*)> 
+ <!ATTLIST div5 %attrs;
+    type     CDATA  #IMPLIED
+    filebreak    CDATA  #IMPLIED
+    shorttitle CDATA	#IMPLIED
+    progress CDATA  #IMPLIED
+    n        CDATA  #IMPLIED>
+
+ <!ELEMENT div6 (%block; | %misc;)*> 
+ <!ATTLIST div6 %attrs;
+    type     CDATA  #IMPLIED
+    filebreak    CDATA  #IMPLIED
+    shorttitle CDATA	#IMPLIED
+    progress CDATA  #IMPLIED
+    n        CDATA  #IMPLIED>
+
+
+ <!--=====================================================================-->
+ <!-- head elements -->
+
+ <!-- generalInfo: info about the book, for all editions -->
+ <!ELEMENT generalInfo (description?, firstPublished?, pubHistory?, 
+    comments?)>
+ <!ELEMENT description %Flow;>     <!-- paragraph-length desc of document -->
+ <!ELEMENT firstPublished %Flow;>  <!-- date first published -->
+ <!ELEMENT pubHistory %Flow;>      <!-- any info about publication history -->
+ <!ELEMENT comments %Flow;>        <!-- any other general comments -->
+
+ <!-- printSourceInfo: info about the print source for this ebook -->
+ <!ELEMENT printSourceInfo (published, copyLocation*, image*)>
+ <!ATTLIST image 
+    type     CDATA  #REQUIRED
+    href     %URI;  #REQUIRED>
+ <!ELEMENT published %Flow;>       <!-- full bibliographic reference -->
+ <!ELEMENT copyLocation %Flow;>    <!-- location of print source -->
+ <!ELEMENT image EMPTY>            <!-- any on-line images of print source -->
+
+ <!-- electronicEdInfo: info about this electronic text -->
+ <!ELEMENT electronicEdInfo (publisherID, authorID, bookID, version, series?,
+    editorialComments?, revisionHistory?, status?, DC, comments?)>
+ <!ELEMENT publisherID (#PCDATA)>  <!-- publisher code -->
+ <!ELEMENT authorID (#PCDATA)>     <!-- author code assigned by publisher -->
+ <!ELEMENT bookID (#PCDATA)>       <!-- book code assigned by publisher -->
+ <!ELEMENT version (#PCDATA)>      <!-- version code -->
+ <!ELEMENT series (#PCDATA)>       <!-- series ID if a vol of a series -->
+ <!ELEMENT editorialComments %Flow;> <!-- editorial practices -->
+ <!ELEMENT revisionHistory %Flow;> <!-- revision history of this etext -->
+ <!ELEMENT status %Flow;>          <!-- how clean/complete is this etext? -->
+
+ <!--=====================================================================-->
+ <!-- Dublin Core record -->
+ <!ELEMENT DC (DC.Title | DC.Creator | DC.Subject | DC.Description |
+    DC.Publisher | DC.Contributor | DC.Date | DC.Type | DC.Format |
+    DC.Identifier | DC.Source | DC.Language | DC.Relation | 
+    DC.Coverage | DC.Rights)*>
+
+ <!-- attributes for DC elements: sub (subtype), scheme, lang -->
+ <!ENTITY % DCAtts 
+   "sub    CDATA #IMPLIED
+    scheme CDATA #IMPLIED
+    lang   CDATA #IMPLIED" >
+
+ <!ELEMENT DC.Title       (#PCDATA)> <!ATTLIST DC.Title       %DCAtts;>
+ <!ELEMENT DC.Creator     (#PCDATA)> <!ATTLIST DC.Creator     %DCAtts;>
+ <!ELEMENT DC.Subject     (#PCDATA)> <!ATTLIST DC.Subject     %DCAtts;>
+ <!ELEMENT DC.Description (#PCDATA)> <!ATTLIST DC.Description %DCAtts;>
+ <!ELEMENT DC.Publisher   (#PCDATA)> <!ATTLIST DC.Publisher   %DCAtts;>
+ <!ELEMENT DC.Contributor (#PCDATA)> <!ATTLIST DC.Contributor %DCAtts;>
+ <!ELEMENT DC.Date        (#PCDATA)> <!ATTLIST DC.Date        %DCAtts;>
+ <!ELEMENT DC.Type        (#PCDATA)> <!ATTLIST DC.Type        %DCAtts;>
+ <!ELEMENT DC.Format      (#PCDATA)> <!ATTLIST DC.Format      %DCAtts;>
+ <!ELEMENT DC.Identifier  (#PCDATA)> <!ATTLIST DC.Identifier  %DCAtts;>
+ <!ELEMENT DC.Source      (#PCDATA)> <!ATTLIST DC.Source      %DCAtts;>
+ <!ELEMENT DC.Language    (#PCDATA)> <!ATTLIST DC.Language    %DCAtts;>
+ <!ELEMENT DC.Relation    (#PCDATA)> <!ATTLIST DC.Relation    %DCAtts;>
+ <!ELEMENT DC.Coverage    (#PCDATA)> <!ATTLIST DC.Coverage    %DCAtts;>
+ <!ELEMENT DC.Rights      (#PCDATA)> <!ATTLIST DC.Rights      %DCAtts;>
+
+
+ <!-- entities -->
+
+
+ <!ENTITY % inline.ebook "| date | foreign | name | note | sync | unclear">
+ <!ENTITY % block.ebook  "| glossary | argument | verse | l | attr | insertIndex">
+ <!ENTITY % misc.ebook   "| added | deleted | index | pb">
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-base.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,272 @@
+<!--
+  Base DTD defining core HTML features for Voyager.
+  This should be imported after the other Voyager DTDs.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+
+  Modified by whp <hplantin@calvin.edu> 2002-08-20
+  to add xcss stylesheet type and elements.
+-->
+
+ <!--=================== Document Body ====================================-->
+
+ <!ENTITY % body.extra "">
+ <!ENTITY % body.content "%Block;">
+
+ <!ELEMENT body %body.content;>
+ <!ATTLIST body
+   %attrs;
+   onload          %Script;   #IMPLIED
+   onunload        %Script;   #IMPLIED
+   %body.extra;
+   >
+
+ <!ELEMENT div %Flow;>  <!-- generic language/style container -->
+ <!ATTLIST div
+   %attrs;
+   >
+
+ <!--===================== Inline Elements ================================-->
+
+ <!ELEMENT span %Inline;> <!-- generic language/style container -->
+ <!ATTLIST span
+   %attrs;
+   >
+
+ <!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
+ <!ATTLIST bdo
+   %coreattrs;
+   lang        %LanguageCode; #IMPLIED
+   dir         (ltr|rtl)      #REQUIRED
+   >
+
+ <!ENTITY % br.extra "">
+
+ <!ELEMENT br EMPTY>   <!-- forced line break -->
+ <!ATTLIST br
+   %coreattrs;
+   %br.extra;
+   >
+
+ <!--================== The Anchor Element ================================-->
+
+ <!ENTITY % a.extra "">
+
+ <!ELEMENT a %Inline;>  <!-- anchors shouldn't be nested -->
+ <!ATTLIST a
+   %attrs;
+   charset     %Charset;      #IMPLIED
+   type        %ContentType;  #IMPLIED
+   name        CDATA          #IMPLIED
+   href        %URI;          #IMPLIED
+   hreflang    %LanguageCode; #IMPLIED
+   rel         %LinkTypes;    #IMPLIED
+   rev         %LinkTypes;    #IMPLIED
+   accesskey   %Character;    #IMPLIED
+   shape       %Shape;        "rect"
+   coords      %Coords;       #IMPLIED
+   tabindex    %Number;       #IMPLIED
+   onfocus     %Script;       #IMPLIED
+   onblur      %Script;       #IMPLIED
+   xml:link    CDATA          #FIXED  "simple"
+   %a.extra;
+   >
+
+ <!--================== The LINK Element ==================================-->
+
+ <!--
+   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
+   >
+
+ <!--=================== Paragraphs =======================================-->
+
+ <!ENTITY % p.extra "">
+
+ <!ELEMENT p %Inline;>
+ <!ATTLIST p
+   %attrs;
+   n		CDATA		#IMPLIED
+   shownumber 	(yes|no) 	"no"
+   %p.extra;
+   >
+
+ <!--=================== Headings =========================================-->
+
+ <!--
+   There are six levels of headings from H1 (the most important)
+   to H6 (the least important).
+ -->
+
+ <!ENTITY % headings.extra "">
+
+ <!ELEMENT h1  %Inline;>
+ <!ATTLIST h1
+    %attrs;
+    %headings.extra;
+    >
+
+ <!ELEMENT h2 %Inline;>
+ <!ATTLIST h2
+    %attrs;
+    %headings.extra;
+    >
+
+ <!ELEMENT h3 %Inline;>
+ <!ATTLIST h3
+    %attrs;
+    %headings.extra;
+    >
+
+ <!ELEMENT h4 %Inline;>
+ <!ATTLIST h4
+    %attrs;
+    %headings.extra;
+    >
+
+ <!ELEMENT h5 %Inline;>
+ <!ATTLIST h5
+    %attrs;
+    %headings.extra;
+    >
+
+ <!ELEMENT h6 %Inline;>
+ <!ATTLIST h6
+    %attrs;
+    %headings.extra;
+    >
+
+ <!--=================== 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
+   >
+
+ <!--================ Document Head =======================================-->
+
+ <!ELEMENT head (title, base?, (script|style|meta|link)*)>
+ <!ATTLIST head
+   %i18n;
+   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;>
+
+ <!-- document base URI -->
+
+ <!ENTITY % base.extra "">
+
+ <!ELEMENT base EMPTY>
+ <!ATTLIST base
+   href        %URI;          #IMPLIED
+   %base.extra;
+   >
+
+ <!-- generic metainformation -->
+ <!ELEMENT meta EMPTY>
+ <!ATTLIST meta
+   %i18n;
+   http-equiv  CDATA          #IMPLIED
+   name        CDATA          #IMPLIED
+   content     CDATA          #REQUIRED
+   scheme      CDATA          #IMPLIED
+   >
+ 
+ <!-- style info, which may include CDATA sections -->
+ <!--selector added by whp-->
+ <!ELEMENT style (#PCDATA | selector)*> 
+
+ <!ATTLIST style
+   %i18n;
+   type        %ContentType;  #REQUIRED
+   media       %MediaDesc;    #IMPLIED
+   title       %Text;         #IMPLIED
+   >
+
+ <!-- selector - part of xcss stylesheet. Added by whp -->
+ <!ELEMENT selector (property+) >
+ <!ATTLIST selector
+   element	CDATA	#IMPLIED
+   class	CDATA	#IMPLIED
+   pseud	CDATA	#IMPLIED
+   >
+
+ <!-- property - part of xcss stylesheet.  Added by whp -->
+ <!ELEMENT property EMPTY >
+ <!ATTLIST property
+   name		CDATA	#IMPLIED
+   value	CDATA	#IMPLIED
+   >
+
+
+
+<!-- a comment here to take up space -->
+
+
+ <!-- script statements, which may include CDATA sections -->
+ <!ELEMENT script (#PCDATA)>
+ <!ATTLIST script
+   charset     %Charset;      #IMPLIED
+   type        %ContentType;  #REQUIRED
+   language    CDATA          #IMPLIED
+   src         %URI;          #IMPLIED
+   defer       (defer)        #IMPLIED
+   >
+
+ <!-- alternate content container for non script-based rendering -->
+
+ <!ENTITY % noscript.content "%Block;">
+
+ <!ELEMENT noscript %noscript.content;>
+ <!ATTLIST noscript
+   %attrs;
+   >
+
+ <!--================ Document Structure ==================================-->
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-blocktext.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,47 @@
+<!--
+  This DTD defines miscellaneous block level elements for
+  Voyager. Defines address, hr, pre, and blockquote elements
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+-->
+
+ <!--=================== Address ==========================================-->
+
+ <!ELEMENT address %Inline;> <!-- information on author -->
+ <!ATTLIST address
+   %attrs;
+   >
+
+ <!--=================== Horizontal Rule ==================================-->
+
+ <!ENTITY % hr.extra "">
+
+ <!ELEMENT hr EMPTY>
+ <!ATTLIST hr
+   %coreattrs;
+   %events;
+   %hr.extra;
+   >
+
+ <!--=================== Preformatted Text ================================-->
+
+ <!ENTITY % pre.extra "">
+
+ <!ELEMENT pre %Inline;>
+ <!ATTLIST pre
+   %attrs;
+   %pre.extra;
+   xml:space (preserve) #FIXED "preserve" 
+   >
+
+
+ <!--=================== Block-like Quotes ================================-->
+
+ <!ELEMENT blockquote %Block;>
+ <!ATTLIST blockquote
+   %attrs;
+   cite        %URI;          #IMPLIED
+   >
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-chars.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,28 @@
+<!--
+  This is the character entities DTD for Voyager. It is
+  derived from the HTML 4.0 strict DTD with a few changes
+  to make it simple to formalize as XML.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+  Date: 17th November 1998
+-->
+ <!--================ Character mnemonic entities =========================-->
+
+ <!ENTITY % HTMLlat1 PUBLIC
+    "-//W3C//ENTITIES Latin1//EN//HTML"
+    "HTMLlat1x.ent">
+ %HTMLlat1;
+
+ <!ENTITY % HTMLsymbol PUBLIC
+    "-//W3C//ENTITIES Symbols//EN//HTML"
+    "HTMLsymbolx.ent">
+ %HTMLsymbol;
+
+ <!ENTITY % HTMLspecial PUBLIC
+    "-//W3C//ENTITIES Special//EN//HTML"
+    "HTMLspecialx.ent">
+ %HTMLspecial;
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-entities.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,155 @@
+<!--
+  This is the entities DTD for Voyager. It is derived from
+  the HTML 4.0 strict DTD with a few changes to make it simple
+  to formalize as XML. It should be included before any element
+  declarations as it defines entities for the content models used
+  by most elements in Voyager.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+  Date: 17th November 1998
+-->
+
+<!--================== 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 "CDATA">
+     <!-- a language code, as per [RFC1766] -->
+ <!ENTITY % Character "CDATA">
+     <!-- a single character from [ISO10646] -->
+ <!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 [RFC1808] and [RFC1738] -->
+
+ <!ENTITY % Datetime "CDATA"> <!-- date and time information. ISO date format -->
+ <!ENTITY % Script "CDATA"> <!-- script expression -->
+ <!ENTITY % StyleSheet "CDATA"> <!-- style sheet data -->
+ <!ENTITY % Text "CDATA"> <!-- render in this frame -->
+ <!ENTITY % FrameTarget "CDATA"> <!-- 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 -->
+
+ <!--=================== Generic Attributes ===============================-->
+
+ <!ENTITY % extra-attrs 
+  "prev		CDATA		#IMPLIED
+   next		CDATA		#IMPLIED "
+   > <!-- for extensions -->
+ 
+ <!-- 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; %extra-attrs;">
+
+ <!--=================== Text Elements =====================================-->
+
+ <!ENTITY % special
+    "a | br | span | bdo %media;">
+
+ <!-- core definition excludes fontstyle/phrase -->
+ <!ENTITY % inline "%special; %extra.inline;">
+
+ <!-- %Inline; covers inline or "text-level" elements -->
+ <!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
+
+ <!--================== Block level elements ==============================-->
+
+ <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+
+ <!ENTITY % block
+      "p | %heading; | div %extra.block;">
+
+ <!ENTITY % Block "(#PCDATA | %block; | %misc;)*">
+
+ <!-- %Flow; mixes Block and Inline and is used for list items etc. -->
+ <!ENTITY % Flow "(#PCDATA | %block; | %inline; | %misc;)*">
+
+ <!--================== HTML content models ===============================-->
+
+ <!--
+     HTML has two basic content models:
+
+         %Inline;     character level elements and text strings
+         %Block;      block-like elements e.g. paragraphs and lists
+ -->
+
+ <!-- this is used to adjust the content model for the html element -->
+ <!ENTITY % html.content "head, body">
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-forms.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,152 @@
+<!--
+  Forms DTD for Voyager. This is expected to be
+  supplanted by a new forms module providing an improved
+  match to database and workflow applications.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+-->
+
+ <!--================ Forms ===============================================-->
+ <!ELEMENT form %Block;>   <!-- forms shouldn't be nested -->
+
+ <!ENTITY % form.extra "">
+
+ <!ATTLIST form
+   %attrs;
+   action      %URI;          #REQUIRED
+   method      (get|post)     "get"
+   enctype     %ContentType;  "application/x-www-form-urlencoded"
+   onsubmit    %Script;       #IMPLIED
+   onreset     %Script;       #IMPLIED
+   accept-charset %Charsets;  #IMPLIED
+   %form.extra;
+   >
+
+ <!--
+   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)"
+    >
+
+ <!-- attribute name required for all but submit & reset -->
+ <!ENTITY % input.extra "">
+
+ <!ELEMENT input EMPTY>     <!-- form control -->
+ <!ATTLIST input
+   %attrs;
+   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
+   tabindex    %Number;       #IMPLIED
+   accesskey   %Character;    #IMPLIED
+   onfocus     %Script;       #IMPLIED
+   onblur      %Script;       #IMPLIED
+   onselect    %Script;       #IMPLIED
+   onchange    %Script;       #IMPLIED
+   accept      %ContentTypes; #IMPLIED
+   %input.extra;
+   >
+
+ <!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;
+   name        CDATA          #IMPLIED
+   rows        %Number;       #REQUIRED
+   cols        %Number;       #REQUIRED
+   disabled    (disabled)     #IMPLIED
+   readonly    (readonly)     #IMPLIED
+   tabindex    %Number;       #IMPLIED
+   accesskey   %Character;    #IMPLIED
+   onfocus     %Script;       #IMPLIED
+   onblur      %Script;       #IMPLIED
+   onselect    %Script;       #IMPLIED
+   onchange    %Script;       #IMPLIED
+   >
+
+ <!--
+   div is introduced here to enclose the contents of
+   the fieldset element to avoid mixed content problems
+ -->
+ <!ELEMENT fieldset (legend,div)>   <!-- form control group -->
+ <!ATTLIST fieldset
+   %attrs;
+   >
+
+ <!ENTITY % legend.extra "">
+
+ <!ELEMENT legend %Inline;>     <!-- fieldset label -->
+ <!ATTLIST legend
+   %attrs;
+   accesskey   %Character;    #IMPLIED
+   %legend.extra;
+   >
+
+ <!--
+  Buttons shouldn't include anchors, form controls, or form elements
+ --> 
+ <!ELEMENT button %Flow;>  <!-- push button -->
+ <!ATTLIST button
+   %attrs;
+   name        CDATA          #IMPLIED
+   value       CDATA          #IMPLIED
+   type        (button|submit|reset) "submit"
+   disabled    (disabled)     #IMPLIED
+   tabindex    %Number;       #IMPLIED
+   accesskey   %Character;    #IMPLIED
+   onfocus     %Script;       #IMPLIED
+   onblur      %Script;       #IMPLIED
+   >
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-img.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,65 @@
+<!--
+  This is the img DTD for Voyager.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+-->
+
+ <!--=================== 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.
+ -->
+
+ <!ENTITY % img.extra "">
+
+ <!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
+   author      CDATA          #IMPLIED
+   copyright   CDATA          #IMPLIED
+   %img.extra;
+   >
+
+ <!-- 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; | %misc;)+ | area+)>
+ <!ATTLIST map
+   %attrs;
+   name        CDATA          #REQUIRED
+   >
+
+ <!ENTITY % area.extra "">
+
+ <!ELEMENT area EMPTY>
+ <!ATTLIST area
+   %attrs;
+   shape       %Shape;        "rect"
+   coords      %Coords;       #IMPLIED
+   href        %URI;          #IMPLIED
+   nohref      (nohref)       #IMPLIED
+   alt         %Text;         #REQUIRED
+   tabindex    %Number;       #IMPLIED
+   accesskey   %Character;    #IMPLIED
+   onfocus     %Script;       #IMPLIED
+   onblur      %Script;       #IMPLIED
+   %area.extra;
+   >
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-lists.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,58 @@
+<!--
+  This is the list DTD for Voyager. Defines ul, ol,
+  li, dl, dt and dd elements.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+-->
+
+ <!--=================== Lists ============================================-->
+
+ <!-- Unordered Lists (UL) bullet styles -->
+ <!ENTITY % ul.extra "">
+
+ <!ELEMENT ul (li)+>
+ <!ATTLIST ul
+   %attrs;
+   %ul.extra;
+   >
+
+ <!-- ordered (numbered) list -->
+ <!ENTITY % ol.extra "">
+
+ <!ELEMENT ol (li)+>
+ <!ATTLIST ol
+   %attrs;
+   %ol.extra;
+   >
+
+ <!-- list item -->
+ <!ENTITY % li.extra "">
+
+ <!ELEMENT li %Flow;>
+ <!ATTLIST li
+   %attrs;
+   %li.extra;
+   >
+
+ <!-- definition lists - DT for term, DD for its definition -->
+
+ <!ENTITY % dl.extra "">
+
+ <!ELEMENT dl (dt|dd)+>
+ <!ATTLIST dl
+   %attrs;
+   %dl.extra;
+   >
+
+ <!ELEMENT dt %Inline;>
+ <!ATTLIST dt
+   %attrs;
+   >
+
+ <!ELEMENT dd %Flow;>
+ <!ATTLIST dd
+   %attrs;
+   >
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-object.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,54 @@
+<!--
+  DTD for the object element for Voyager.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+-->
+
+ <!--==================== 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.
+ -->
+
+ <!ENTITY % object.extra "">
+
+ <!ELEMENT object (#PCDATA | param | %block; | %inline; | %misc;)*>
+ <!ATTLIST object
+   %attrs;
+   declare     (declare)      #IMPLIED
+   classid     %URI;          #IMPLIED
+   codebase    %URI;          #IMPLIED
+   data        %URI;          #IMPLIED
+   type        %ContentType;  #IMPLIED
+   codetype    %ContentType;  #IMPLIED
+   archive     %URI;          #IMPLIED
+   standby     %Text;         #IMPLIED
+   height      %Length;       #IMPLIED
+   width       %Length;       #IMPLIED
+   usemap      %URI;          #IMPLIED
+   name        CDATA          #IMPLIED
+   tabindex    %Number;       #IMPLIED
+   author      CDATA          #IMPLIED
+   copyright   CDATA          #IMPLIED
+   %object.extra;
+   >
+
+ <!--
+   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
+   >
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-phrases.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,71 @@
+<!--
+  Font style and phrase markup, exluding span bdo and br which
+  are defined in the base DTD. This is part of the Voyager
+  suite of DTDs.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved.
+
+  Author: Dave Raggett  <dsr@w3.org>
+-->
+
+ <!--===================== Inline Elements ================================-->
+
+ <!-- excludes span, bdo and br which are defined in the base module -->
+
+ <!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;>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/html-tables.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,191 @@
+<!--
+  DTD for table elements for Voyager.
+
+  Copyright (c) 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. 
+
+  Author: Dave Raggett  <dsr@w3.org>
+
+  Table tags present rendering problems for small displays
+  and voice browsers. As a result, W3C hopes to provide an
+  alternative tag set that makes the data model for tabular
+  data explicit, thereby making it easier to provide renderings
+  appropriate to device capabilities, e.g. as expanding lists.
+-->
+
+ <!--======================= 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.
+
+  The value "border" is included for backwards compatibility with
+  <TABLE BORDER> which yields frame=border and border=implied
+  For <TABLE BORDER=1> you get border=1 and frame=implied. In this
+  case, it is appropriate to treat this as frame=border for backwards
+  compatibility with deployed browsers.
+ -->
+ <!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      CDATA          #IMPLIED
+   frame       %TFrame;       #IMPLIED
+   rules       %TRules;       #IMPLIED
+   cellspacing %Length;       #IMPLIED
+   cellpadding %Length;       #IMPLIED
+   >
+
+ <!ENTITY % CAlign "(top|bottom|left|right)">
+ <!ENTITY % caption.extra "">
+
+ <!ATTLIST caption
+   %attrs;
+   %caption.extra;
+   >
+
+ <!--
+ 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 axes attribute for common tables -->
+ <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+ <!-- TH is for headers, TD for data, but for cells acting as both use TD -->
+
+ <!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;
+   >
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dtd/hymn.mod	Sat Jan 19 22:54:40 2008 +0000
@@ -0,0 +1,81 @@
+<!-- 
+    Support for hymnals.  This is a module that can be added ot 
+    the ThML and the voyager DTD for HTML.
+
+    Harry Plantinga, November 29, 1999
+
+    Modified by whp 2004-06-21, added pb to hymn element
+    Modified by whp, 2002-08-20: add copyright element
+    Modified by whp, 2007-06-13: (version 1.08)
+	  - add copyright attribute to music element
+	  - delete incipit as element. Just use the tune attribute
+	  - allow images in hymns
+        - allow <p> in <verse>
+    Modified by whp, 2007-10-05, while building hymnary.
+	  - added source element, part of hymn or tune
+      - author: added fullname, name
+      - tune: drop name (use title)
+	    - added key for key sig (D flat, etc)
+      - composer:
+	    - deleted authorID (still have composerID)
+		- deleted pub, loc, source atts (use source element)
+		- added fullname, name; deleted life
+-->
+
+<!ELEMENT hymn (title | meter | author | source | date | copyright | argument | tune |
+                verse | index | scripRef | scripCom | p | h1 | h2 |
+                h3 | h4 | h5 | h6 | blockquote | hr | table | note | pb | img)+>
+<!ATTLIST hymn %attrs;
+    firstline  CDATA  #IMPLIED
+    n          CDATA  #IMPLIED>
+
+<!ELEMENT meter %Inline;>
+<!ATTLIST meter %attrs;
+    standard   CDATA  #IMPLIED>
+
+<!ELEMENT copyright %Inline;>
+<!ATTLIST copyright %attrs;
+    year	CDATA #IMPLIED>
+
+<!ELEMENT source %Inline;>
+<!ATTLIST source %attrs;
+    date       CDATA  #IMPLIED>
+
+<!ELEMENT author %Inline;>
+<!ATTLIST author %attrs;
+    type       CDATA  #IMPLIED
+    act        CDATA  #IMPLIED
+    language   CDATA  #IMPLIED
+    date       CDATA  #IMPLIED
+    authorID   CDATA  #IMPLIED
+    fullname   CDATA  #IMPLIED
+    name       CDATA  #IMPLIED>
+
+<!-- the tune element is not to be displayed on a book page. -->
+<!ELEMENT tune (composer | source | music | date | meter | title | copyright)*>
+<!ATTLIST tune %attrs;
+    incipit    CDATA  #IMPLIED
+    meter      CDATA  #IMPLIED
+	key        CDATA  #IMPLIED
+    tuneID     CDATA  #IMPLIED>
+
+<!ELEMENT composer %Inline;>
+<!ATTLIST composer %attrs;
+    type       CDATA  #IMPLIED
+    act        CDATA  #IMPLIED
+    date       CDATA  #IMPLIED
+    composerID CDATA  #IMPLIED
+    fullname   CDATA  #IMPLIED
+    name       CDATA  #IMPLIED>
+
+<!ELEMENT music EMPTY>
+<!ATTLIST music %attrs;
+    type       CDATA  #IMPLIED
+    inline     (yes|no) "no"
+    actuate    (auto|man) "man"
+    copyright  CDATA #IMPLIED
+    href       %URI;   #REQUIRED>
+
+<!ENTITY % block.hymn "| hymn">
+
+