+<!-- ============================================================= -->
+<!-- Character Elements -->
+<!-- ============================================================= -->
+<!--
+
+The character elments provide a hook to specify a character without
+specifying the exact representation in target formats. The exact
+representation used is the responsibility of the processor (e.g XSLT
+stylesheet.
+
+Portions Copyright 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.
+
+-->
+
+<!-- no-break space = non-breaking space, U+00A0 ISOnum -->
+<!ELEMENT ch.apos EMPTY><!ATTLIST ch.apos %core.attributes;>
+
+<!-- no-break space = non-breaking space, U+00A0 ISOnum -->
+<!ELEMENT ch.nbsp EMPTY><!ATTLIST ch.nbsp %core.attributes;>
+
+<!-- inverted exclamation mark, U+00A1 ISOnum -->
+<!ELEMENT ch.iexcl EMPTY><!ATTLIST ch.iexcl %core.attributes;>
+
+<!-- cent sign, U+00A2 ISOnum -->
+<!ELEMENT ch.cent EMPTY><!ATTLIST ch.cent %core.attributes;>
+
+<!-- pound sign, U+00A3 ISOnum -->
+<!ELEMENT ch.pound EMPTY><!ATTLIST ch.pound %core.attributes;>
+
+<!-- currency sign, U+00A4 ISOnum -->
+<!ELEMENT ch.curren EMPTY><!ATTLIST ch.curren %core.attributes;>
+
+<!-- yen sign = yuan sign, U+00A5 ISOnum -->
+<!ELEMENT ch.yen EMPTY><!ATTLIST ch.yen %core.attributes;>
+
+<!-- broken bar = broken vertical bar, U+00A6 ISOnum -->
+<!ELEMENT ch.brvbar EMPTY><!ATTLIST ch.brvbar %core.attributes;>
+
+<!-- section sign, U+00A7 ISOnum -->
+<!ELEMENT ch.sect EMPTY><!ATTLIST ch.sect %core.attributes;>
+
+<!-- diaeresis = spacing diaeresis, U+00A8 ISOdia -->
+<!ELEMENT ch.uml EMPTY><!ATTLIST ch.uml %core.attributes;>
+
+<!-- copyright sign, U+00A9 ISOnum -->
+<!ELEMENT ch.copy EMPTY><!ATTLIST ch.copy %core.attributes;>
+
+<!-- feminine ordinal indicator, U+00AA ISOnum -->
+<!ELEMENT ch.ordf EMPTY><!ATTLIST ch.ordf %core.attributes;>
+
+<!-- left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum -->
+<!ELEMENT ch.laquo EMPTY><!ATTLIST ch.laquo %core.attributes;>
+
+<!-- not sign, U+00AC ISOnum -->
+<!ELEMENT ch.not EMPTY><!ATTLIST ch.not %core.attributes;>
+
+<!-- soft hyphen = discretionary hyphen, U+00AD ISOnum -->
+<!ELEMENT ch.shy EMPTY><!ATTLIST ch.shy %core.attributes;>
+
+<!-- registered sign = registered trade mark sign, U+00AE ISOnum -->
+<!ELEMENT ch.reg EMPTY><!ATTLIST ch.reg %core.attributes;>
+
+<!-- macron = spacing macron = overline = APL overbar, U+00AF ISOdia -->
+<!ELEMENT ch.macr EMPTY><!ATTLIST ch.macr %core.attributes;>
+
+<!-- degree sign, U+00B0 ISOnum -->
+<!ELEMENT ch.deg EMPTY><!ATTLIST ch.deg %core.attributes;>
+
+<!-- plus-minus sign = plus-or-minus sign, U+00B1 ISOnum -->
+<!ELEMENT ch.plusmn EMPTY><!ATTLIST ch.plusmn %core.attributes;>
+
+<!-- superscript two = superscript digit two = squared, U+00B2 ISOnum -->
+<!ELEMENT ch.sup2 EMPTY><!ATTLIST ch.sup2 %core.attributes;>
+
+<!-- superscript three = superscript digit three = cubed, U+00B3 ISOnum -->
+<!ELEMENT ch.sup3 EMPTY><!ATTLIST ch.sup3 %core.attributes;>
+
+<!-- acute accent = spacing acute, U+00B4 ISOdia -->
+<!ELEMENT ch.acute EMPTY><!ATTLIST ch.acute %core.attributes;>
+
+<!-- micro sign, U+00B5 ISOnum -->
+<!ELEMENT ch.micro EMPTY><!ATTLIST ch.micro %core.attributes;>
+
+<!-- pilcrow sign = paragraph sign, U+00B6 ISOnum -->
+<!ELEMENT ch.para EMPTY><!ATTLIST ch.para %core.attributes;>
+
+<!-- middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum -->
+<!ELEMENT ch.middot EMPTY><!ATTLIST ch.middot %core.attributes;>
+
+<!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
+<!ELEMENT ch.cedil EMPTY><!ATTLIST ch.cedil %core.attributes;>
+
+<!-- superscript one = superscript digit one, U+00B9 ISOnum -->
+<!ELEMENT ch.sup1 EMPTY><!ATTLIST ch.sup1 %core.attributes;>
+
+<!-- masculine ordinal indicator, U+00BA ISOnum -->
+<!ELEMENT ch.ordm EMPTY><!ATTLIST ch.ordm %core.attributes;>
+
+<!-- right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum -->
+<!ELEMENT ch.raquo EMPTY><!ATTLIST ch.raquo %core.attributes;>
+
+<!-- vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum -->
+<!ELEMENT ch.frac14 EMPTY><!ATTLIST ch.frac14 %core.attributes;>
+
+<!-- vulgar fraction one half = fraction one half, U+00BD ISOnum -->
+<!ELEMENT ch.frac12 EMPTY><!ATTLIST ch.frac12 %core.attributes;>
+
+<!-- vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum -->
+<!ELEMENT ch.frac34 EMPTY><!ATTLIST ch.frac34 %core.attributes;>
+
+<!-- inverted question mark = turned question mark, U+00BF ISOnum -->
+<!ELEMENT ch.iquest EMPTY><!ATTLIST ch.iquest %core.attributes;>
+
+<!-- latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1 -->
+<!ELEMENT ch.Agrave EMPTY><!ATTLIST ch.Agrave %core.attributes;>
+
+<!-- latin capital letter A with acute, U+00C1 ISOlat1 -->
+<!ELEMENT ch.Aacute EMPTY><!ATTLIST ch.Aacute %core.attributes;>
+
+<!-- latin capital letter A with circumflex, U+00C2 ISOlat1 -->
+<!ELEMENT ch.Acirc EMPTY><!ATTLIST ch.Acirc %core.attributes;>
+
+<!-- latin capital letter A with tilde, U+00C3 ISOlat1 -->
+<!ELEMENT ch.Atilde EMPTY><!ATTLIST ch.Atilde %core.attributes;>
+
+<!-- latin capital letter A with diaeresis, U+00C4 ISOlat1 -->
+<!ELEMENT ch.Auml EMPTY><!ATTLIST ch.Auml %core.attributes;>
+
+<!-- latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1 -->
+<!ELEMENT ch.Aring EMPTY><!ATTLIST ch.Aring %core.attributes;>
+
+<!-- latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1 -->
+<!ELEMENT ch.AElig EMPTY><!ATTLIST ch.AElig %core.attributes;>
+
+<!-- latin capital letter C with cedilla, U+00C7 ISOlat1 -->
+<!ELEMENT ch.Ccedil EMPTY><!ATTLIST ch.Ccedil %core.attributes;>
+
+<!-- latin capital letter E with grave, U+00C8 ISOlat1 -->
+<!ELEMENT ch.Egrave EMPTY><!ATTLIST ch.Egrave %core.attributes;>
+
+<!-- latin capital letter E with acute, U+00C9 ISOlat1 -->
+<!ELEMENT ch.Eacute EMPTY><!ATTLIST ch.Eacute %core.attributes;>
+
+<!-- latin capital letter E with circumflex, U+00CA ISOlat1 -->
+<!ELEMENT ch.Ecirc EMPTY><!ATTLIST ch.Ecirc %core.attributes;>
+
+<!-- latin capital letter E with diaeresis, U+00CB ISOlat1 -->
+<!ELEMENT ch.Euml EMPTY><!ATTLIST ch.Euml %core.attributes;>
+
+<!-- latin capital letter I with grave, U+00CC ISOlat1 -->
+<!ELEMENT ch.Igrave EMPTY><!ATTLIST ch.Igrave %core.attributes;>
+
+<!-- latin capital letter I with acute, U+00CD ISOlat1 -->
+<!ELEMENT ch.Iacute EMPTY><!ATTLIST ch.Iacute %core.attributes;>
+
+<!-- latin capital letter I with circumflex, U+00CE ISOlat1 -->
+<!ELEMENT ch.Icirc EMPTY><!ATTLIST ch.Icirc %core.attributes;>
+
+<!-- latin capital letter I with diaeresis, U+00CF ISOlat1 -->
+<!ELEMENT ch.Iuml EMPTY><!ATTLIST ch.Iuml %core.attributes;>
+
+<!-- latin capital letter ETH, U+00D0 ISOlat1 -->
+<!ELEMENT ch.ETH EMPTY><!ATTLIST ch.ETH %core.attributes;>
+
+<!-- latin capital letter N with tilde, U+00D1 ISOlat1 -->
+<!ELEMENT ch.Ntilde EMPTY><!ATTLIST ch.Ntilde %core.attributes;>
+
+<!-- latin capital letter O with grave, U+00D2 ISOlat1 -->
+<!ELEMENT ch.Ograve EMPTY><!ATTLIST ch.Ograve %core.attributes;>
+
+<!-- latin capital letter O with acute, U+00D3 ISOlat1 -->
+<!ELEMENT ch.Oacute EMPTY><!ATTLIST ch.Oacute %core.attributes;>
+
+<!-- latin capital letter O with circumflex, U+00D4 ISOlat1 -->
+<!ELEMENT ch.Ocirc EMPTY><!ATTLIST ch.Ocirc %core.attributes;>
+
+<!-- latin capital letter O with tilde, U+00D5 ISOlat1 -->
+<!ELEMENT ch.Otilde EMPTY><!ATTLIST ch.Otilde %core.attributes;>
+
+<!-- latin capital letter O with diaeresis, U+00D6 ISOlat1 -->
+<!ELEMENT ch.Ouml EMPTY><!ATTLIST ch.Ouml %core.attributes;>
+
+<!-- multiplication sign, U+00D7 ISOnum -->
+<!ELEMENT ch.times EMPTY><!ATTLIST ch.times %core.attributes;>
+
+<!-- latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1 -->
+<!ELEMENT ch.Oslash EMPTY><!ATTLIST ch.Oslash %core.attributes;>
+
+<!-- latin capital letter U with grave, U+00D9 ISOlat1 -->
+<!ELEMENT ch.Ugrave EMPTY><!ATTLIST ch.Ugrave %core.attributes;>
+
+<!-- latin capital letter U with acute, U+00DA ISOlat1 -->
+<!ELEMENT ch.Uacute EMPTY><!ATTLIST ch.Uacute %core.attributes;>
+
+<!-- latin capital letter U with circumflex, U+00DB ISOlat1 -->
+<!ELEMENT ch.Ucirc EMPTY><!ATTLIST ch.Ucirc %core.attributes;>
+
+<!-- latin capital letter U with diaeresis, U+00DC ISOlat1 -->
+<!ELEMENT ch.Uuml EMPTY><!ATTLIST ch.Uuml %core.attributes;>
+
+<!-- latin capital letter Y with acute, U+00DD ISOlat1 -->
+<!ELEMENT ch.Yacute EMPTY><!ATTLIST ch.Yacute %core.attributes;>
+
+<!-- latin capital letter THORN, U+00DE ISOlat1 -->
+<!ELEMENT ch.THORN EMPTY><!ATTLIST ch.THORN %core.attributes;>
+
+<!-- latin small letter sharp s = ess-zed, U+00DF ISOlat1 -->
+<!ELEMENT ch.szlig EMPTY><!ATTLIST ch.szlig %core.attributes;>
+
+<!-- latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1 -->
+<!ELEMENT ch.agrave EMPTY><!ATTLIST ch.agrave %core.attributes;>
+
+<!-- latin small letter a with acute, U+00E1 ISOlat1 -->
+<!ELEMENT ch.aacute EMPTY><!ATTLIST ch.aacute %core.attributes;>
+
+<!-- latin small letter a with circumflex, U+00E2 ISOlat1 -->
+<!ELEMENT ch.acirc EMPTY><!ATTLIST ch.acirc %core.attributes;>
+
+<!-- latin small letter a with tilde, U+00E3 ISOlat1 -->
+<!ELEMENT ch.atilde EMPTY><!ATTLIST ch.atilde %core.attributes;>
+
+<!-- latin small letter a with diaeresis, U+00E4 ISOlat1 -->
+<!ELEMENT ch.auml EMPTY><!ATTLIST ch.auml %core.attributes;>
+
+<!-- latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1 -->
+<!ELEMENT ch.aring EMPTY><!ATTLIST ch.aring %core.attributes;>
+
+<!-- latin small letter ae = latin small ligature ae, U+00E6 ISOlat1 -->
+<!ELEMENT ch.aelig EMPTY><!ATTLIST ch.aelig %core.attributes;>
+
+<!-- latin small letter c with cedilla, U+00E7 ISOlat1 -->
+<!ELEMENT ch.ccedil EMPTY><!ATTLIST ch.ccedil %core.attributes;>
+
+<!-- latin small letter e with grave, U+00E8 ISOlat1 -->
+<!ELEMENT ch.egrave EMPTY><!ATTLIST ch.egrave %core.attributes;>
+
+<!-- latin small letter e with acute, U+00E9 ISOlat1 -->
+<!ELEMENT ch.eacute EMPTY><!ATTLIST ch.eacute %core.attributes;>
+
+<!-- latin small letter e with circumflex, U+00EA ISOlat1 -->
+<!ELEMENT ch.ecirc EMPTY><!ATTLIST ch.ecirc %core.attributes;>
+
+<!-- latin small letter e with diaeresis, U+00EB ISOlat1 -->
+<!ELEMENT ch.euml EMPTY><!ATTLIST ch.euml %core.attributes;>
+
+<!-- latin small letter i with grave, U+00EC ISOlat1 -->
+<!ELEMENT ch.igrave EMPTY><!ATTLIST ch.igrave %core.attributes;>
+
+<!-- latin small letter i with acute, U+00ED ISOlat1 -->
+<!ELEMENT ch.iacute EMPTY><!ATTLIST ch.iacute %core.attributes;>
+
+<!-- latin small letter i with circumflex, U+00EE ISOlat1 -->
+<!ELEMENT ch.icirc EMPTY><!ATTLIST ch.icirc %core.attributes;>
+
+<!-- latin small letter i with diaeresis, U+00EF ISOlat1 -->
+<!ELEMENT ch.iuml EMPTY><!ATTLIST ch.iuml %core.attributes;>
+
+<!-- latin small letter eth, U+00F0 ISOlat1 -->
+<!ELEMENT ch.eth EMPTY><!ATTLIST ch.eth %core.attributes;>
+
+<!-- latin small letter n with tilde, U+00F1 ISOlat1 -->
+<!ELEMENT ch.ntilde EMPTY><!ATTLIST ch.ntilde %core.attributes;>
+
+<!-- latin small letter o with grave, U+00F2 ISOlat1 -->
+<!ELEMENT ch.ograve EMPTY><!ATTLIST ch.ograve %core.attributes;>
+
+<!-- latin small letter o with acute, U+00F3 ISOlat1 -->
+<!ELEMENT ch.oacute EMPTY><!ATTLIST ch.oacute %core.attributes;>
+
+<!-- latin small letter o with circumflex, U+00F4 ISOlat1 -->
+<!ELEMENT ch.ocirc EMPTY><!ATTLIST ch.ocirc %core.attributes;>
+
+<!-- latin small letter o with tilde, U+00F5 ISOlat1 -->
+<!ELEMENT ch.otilde EMPTY><!ATTLIST ch.otilde %core.attributes;>
+
+<!-- latin small letter o with diaeresis, U+00F6 ISOlat1 -->
+<!ELEMENT ch.ouml EMPTY><!ATTLIST ch.ouml %core.attributes;>
+
+<!-- division sign, U+00F7 ISOnum -->
+<!ELEMENT ch.divide EMPTY><!ATTLIST ch.divide %core.attributes;>
+
+<!-- latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1 -->
+<!ELEMENT ch.oslash EMPTY><!ATTLIST ch.oslash %core.attributes;>
+
+<!-- latin small letter u with grave, U+00F9 ISOlat1 -->
+<!ELEMENT ch.ugrave EMPTY><!ATTLIST ch.ugrave %core.attributes;>
+
+<!-- latin small letter u with acute, U+00FA ISOlat1 -->
+<!ELEMENT ch.uacute EMPTY><!ATTLIST ch.uacute %core.attributes;>
+
+<!-- latin small letter u with circumflex, U+00FB ISOlat1 -->
+<!ELEMENT ch.ucirc EMPTY><!ATTLIST ch.ucirc %core.attributes;>
+
+<!-- latin small letter u with diaeresis, U+00FC ISOlat1 -->
+<!ELEMENT ch.uuml EMPTY><!ATTLIST ch.uuml %core.attributes;>
+
+<!-- latin small letter y with acute, U+00FD ISOlat1 -->
+<!ELEMENT ch.yacute EMPTY><!ATTLIST ch.yacute %core.attributes;>
+
+<!-- latin small letter thorn, U+00FE ISOlat1 -->
+<!ELEMENT ch.thorn EMPTY><!ATTLIST ch.thorn %core.attributes;>
+
+<!-- latin small letter y with diaeresis, U+00FF ISOlat1 -->
+<!ELEMENT ch.yuml EMPTY><!ATTLIST ch.yuml %core.attributes;>
+
+
+<!-- ::::::::::::::::::::: Special Characters :::::::::::::::::::: -->
+
+<!-- ampersand -->
+<!ELEMENT ch.ampersand EMPTY><!ATTLIST ch.ampersand %core.attributes;>
+
+<!-- opening left quotation mark -->
+<!ELEMENT ch.lsquot EMPTY><!ATTLIST ch.lsquot %core.attributes;>
+
+<!-- closing right quotation mark -->
+<!ELEMENT ch.rsquot EMPTY><!ATTLIST ch.rsquot %core.attributes;>
+
+<!-- opening left double quotation mark -->
+<!ELEMENT ch.ldquot EMPTY><!ATTLIST ch.ldquot %core.attributes;>
+
+<!-- closing right double quotation mark -->
+<!ELEMENT ch.rdquot EMPTY><!ATTLIST ch.rdquot %core.attributes;>
+
+<!-- mathematical minus -->
+<!ELEMENT ch.minus EMPTY><!ATTLIST ch.minus %core.attributes;>
+
+<!-- endash -->
+<!ELEMENT ch.endash EMPTY><!ATTLIST ch.endash %core.attributes;>
+
+<!-- emdash -->
+<!ELEMENT ch.emdash EMPTY><!ATTLIST ch.emdash %core.attributes;>
+
+<!-- ellipsis -->
+<!ELEMENT ch.ellips EMPTY><!ATTLIST ch.ellips %core.attributes;>
+
+<!-- left ellipsis, used at the beginning of edited material -->
+<!ELEMENT ch.lellips EMPTY><!ATTLIST ch.lellips %core.attributes;>
+
+<!-- blank line to be filled in -->
+<!ELEMENT ch.blankline EMPTY><!ATTLIST ch.blankline %core.attributes;>
+
+<!-- percent sign -->
+<!ELEMENT ch.percent EMPTY><!ATTLIST ch.percent %core.attributes;>
+
+<!-- small horizontal space for use between adjacent quotation marks - added mainly for LaTeX's sake -->
+<!ELEMENT ch.thinspace EMPTY><!ATTLIST ch.thinspace %core.attributes;>
+
+<!-- vulgar fraction one sixteenth = fraction on sixteenth -->
+<!ELEMENT ch.frac116 EMPTY><!ATTLIST ch.frac116 %core.attributes;>
+
+<!-- mathematical plus -->
+<!ELEMENT ch.plus EMPTY><!ATTLIST ch.plus %core.attributes;>
+