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