From ee88d32a50d7cafa6a478ba89d587f46607af672 Mon Sep 17 00:00:00 2001
From: Khaled Noaman <knoaman@apache.org>
Date: Thu, 18 Jul 2002 21:03:13 +0000
Subject: [PATCH] Initial checkin: feature to control strict IANA encoding
 name.

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174031 13f79535-47bb-0310-9956-ffa450edef68
---
 tools/IANACharset/IANACharsetList.xml | 795 ++++++++++++++++++++++++++
 tools/IANACharset/charset.dtd         |   7 +
 2 files changed, 802 insertions(+)
 create mode 100644 tools/IANACharset/IANACharsetList.xml
 create mode 100644 tools/IANACharset/charset.dtd

diff --git a/tools/IANACharset/IANACharsetList.xml b/tools/IANACharset/IANACharsetList.xml
new file mode 100644
index 000000000..3c3c9ed34
--- /dev/null
+++ b/tools/IANACharset/IANACharsetList.xml
@@ -0,0 +1,795 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE Charset SYSTEM 'charset.dtd'>
+<Charset>
+    <Encoding name="ANSI_X3.4-1968"/>
+    <Encoding name="iso-ir-6"/>
+    <Encoding name="ANSI_X3.4-1986"/>
+    <Encoding name="ISO_646.irv:1991"/>
+    <Encoding name="ASCII"/>
+    <Encoding name="ISO646-US"/>
+    <Encoding name="US-ASCII"/>
+    <Encoding name="us"/>
+    <Encoding name="IBM367"/>
+    <Encoding name="cp367"/>
+    <Encoding name="csASCII"/>
+    <Encoding name="ISO-10646-UTF-1"/>
+    <Encoding name="csISO10646UTF1"/>
+    <Encoding name="ISO_646.basic:1983"/>
+    <Encoding name="ref"/>
+    <Encoding name="csISO646basic1983"/>
+    <Encoding name="INVARIANT"/>
+    <Encoding name="csINVARIANT"/>
+    <Encoding name="ISO_646.irv:1983"/>
+    <Encoding name="iso-ir-2"/>
+    <Encoding name="irv"/>
+    <Encoding name="csISO2IntlRefVersion"/>
+    <Encoding name="BS_4730"/>
+    <Encoding name="iso-ir-4"/>
+    <Encoding name="ISO646-GB"/>
+    <Encoding name="gb"/>
+    <Encoding name="uk"/>
+    <Encoding name="csISO4UnitedKingdom"/>
+    <Encoding name="NATS-SEFI"/>
+    <Encoding name="iso-ir-8-1"/>
+    <Encoding name="csNATSSEFI"/>
+    <Encoding name="NATS-SEFI-ADD"/>
+    <Encoding name="iso-ir-8-2"/>
+    <Encoding name="csNATSSEFIADD"/>
+    <Encoding name="NATS-DANO"/>
+    <Encoding name="iso-ir-9-1"/>
+    <Encoding name="csNATSDANO"/>
+    <Encoding name="NATS-DANO-ADD"/>
+    <Encoding name="iso-ir-9-2"/>
+    <Encoding name="csNATSDANOADD"/>
+    <Encoding name="SEN_850200_B"/>
+    <Encoding name="iso-ir-10"/>
+    <Encoding name="FI"/>
+    <Encoding name="ISO646-FI"/>
+    <Encoding name="ISO646-SE"/>
+    <Encoding name="se"/>
+    <Encoding name="csISO10Swedish"/>
+    <Encoding name="SEN_850200_C"/>
+    <Encoding name="iso-ir-11"/>
+    <Encoding name="ISO646-SE2"/>
+    <Encoding name="se2"/>
+    <Encoding name="csISO11SwedishForNames"/>
+    <Encoding name="KS_C_5601-1987"/>
+    <Encoding name="iso-ir-149"/>
+    <Encoding name="KS_C_5601-1989"/>
+    <Encoding name="KSC_5601"/>
+    <Encoding name="korean"/>
+    <Encoding name="csKSC56011987"/>
+    <Encoding name="ISO-2022-KR"/>
+    <Encoding name="csISO2022KR"/>
+    <Encoding name="EUC-KR"/>
+    <Encoding name="csEUCKR"/>
+    <Encoding name="ISO-2022-JP"/>
+    <Encoding name="csISO2022JP"/>
+    <Encoding name="ISO-2022-JP-2"/>
+    <Encoding name="csISO2022JP2"/>
+    <Encoding name="ISO-2022-CN"/>
+    <Encoding name="ISO-2022-CN-EXT"/>
+    <Encoding name="JIS_C6220-1969-jp"/>
+    <Encoding name="JIS_C6220-1969"/>
+    <Encoding name="iso-ir-13"/>
+    <Encoding name="katakana"/>
+    <Encoding name="x0201-7"/>
+    <Encoding name="csISO13JISC6220jp"/>
+    <Encoding name="JIS_C6220-1969-ro"/>
+    <Encoding name="iso-ir-14"/>
+    <Encoding name="jp"/>
+    <Encoding name="ISO646-JP"/>
+    <Encoding name="csISO14JISC6220ro"/>
+    <Encoding name="IT"/>
+    <Encoding name="iso-ir-15"/>
+    <Encoding name="ISO646-IT"/>
+    <Encoding name="csISO15Italian"/>
+    <Encoding name="PT"/>
+    <Encoding name="iso-ir-16"/>
+    <Encoding name="ISO646-PT"/>
+    <Encoding name="csISO16Portuguese"/>
+    <Encoding name="ES"/>
+    <Encoding name="iso-ir-17"/>
+    <Encoding name="ISO646-ES"/>
+    <Encoding name="csISO17Spanish"/>
+    <Encoding name="greek7-old"/>
+    <Encoding name="iso-ir-18"/>
+    <Encoding name="csISO18Greek7Old"/>
+    <Encoding name="latin-greek"/>
+    <Encoding name="iso-ir-19"/>
+    <Encoding name="csISO19LatinGreek"/>
+    <Encoding name="DIN_66003"/>
+    <Encoding name="iso-ir-21"/>
+    <Encoding name="de"/>
+    <Encoding name="ISO646-DE"/>
+    <Encoding name="csISO21German"/>
+    <Encoding name="NF_Z_62-010_(1973)"/>
+    <Encoding name="iso-ir-25"/>
+    <Encoding name="ISO646-FR1"/>
+    <Encoding name="csISO25French"/>
+    <Encoding name="Latin-greek-1"/>
+    <Encoding name="iso-ir-27"/>
+    <Encoding name="csISO27LatinGreek1"/>
+    <Encoding name="ISO_5427"/>
+    <Encoding name="iso-ir-37"/>
+    <Encoding name="csISO5427Cyrillic"/>
+    <Encoding name="JIS_C6226-1978"/>
+    <Encoding name="iso-ir-42"/>
+    <Encoding name="csISO42JISC62261978"/>
+    <Encoding name="BS_viewdata"/>
+    <Encoding name="iso-ir-47"/>
+    <Encoding name="csISO47BSViewdata"/>
+    <Encoding name="INIS"/>
+    <Encoding name="iso-ir-49"/>
+    <Encoding name="csISO49INIS"/>
+    <Encoding name="INIS-8"/>
+    <Encoding name="iso-ir-50"/>
+    <Encoding name="csISO50INIS8"/>
+    <Encoding name="INIS-cyrillic"/>
+    <Encoding name="iso-ir-51"/>
+    <Encoding name="csISO51INISCyrillic"/>
+    <Encoding name="ISO_5427:1981"/>
+    <Encoding name="iso-ir-54"/>
+    <Encoding name="ISO5427Cyrillic1981"/>
+    <Encoding name="ISO_5428:1980"/>
+    <Encoding name="iso-ir-55"/>
+    <Encoding name="csISO5428Greek"/>
+    <Encoding name="GB_1988-80"/>
+    <Encoding name="iso-ir-57"/>
+    <Encoding name="cn"/>
+    <Encoding name="ISO646-CN"/>
+    <Encoding name="csISO57GB1988"/>
+    <Encoding name="GB_2312-80"/>
+    <Encoding name="iso-ir-58"/>
+    <Encoding name="chinese"/>
+    <Encoding name="csISO58GB231280"/>
+    <Encoding name="NS_4551-1"/>
+    <Encoding name="iso-ir-60"/>
+    <Encoding name="ISO646-NO"/>
+    <Encoding name="no"/>
+    <Encoding name="csISO60DanishNorwegian"/>
+    <Encoding name="csISO60Norwegian1"/>
+    <Encoding name="NS_4551-2"/>
+    <Encoding name="ISO646-NO2"/>
+    <Encoding name="iso-ir-61"/>
+    <Encoding name="no2"/>
+    <Encoding name="csISO61Norwegian2"/>
+    <Encoding name="NF_Z_62-010"/>
+    <Encoding name="iso-ir-69"/>
+    <Encoding name="ISO646-FR"/>
+    <Encoding name="fr"/>
+    <Encoding name="csISO69French"/>
+    <Encoding name="videotex-suppl"/>
+    <Encoding name="iso-ir-70"/>
+    <Encoding name="csISO70VideotexSupp1"/>
+    <Encoding name="PT2"/>
+    <Encoding name="iso-ir-84"/>
+    <Encoding name="ISO646-PT2"/>
+    <Encoding name="csISO84Portuguese2"/>
+    <Encoding name="ES2"/>
+    <Encoding name="iso-ir-85"/>
+    <Encoding name="ISO646-ES2"/>
+    <Encoding name="csISO85Spanish2"/>
+    <Encoding name="MSZ_7795.3"/>
+    <Encoding name="iso-ir-86"/>
+    <Encoding name="ISO646-HU"/>
+    <Encoding name="hu"/>
+    <Encoding name="csISO86Hungarian"/>
+    <Encoding name="JIS_C6226-1983"/>
+    <Encoding name="iso-ir-87"/>
+    <Encoding name="x0208"/>
+    <Encoding name="JIS_X0208-1983"/>
+    <Encoding name="csISO87JISX0208"/>
+    <Encoding name="greek7"/>
+    <Encoding name="iso-ir-88"/>
+    <Encoding name="csISO88Greek7"/>
+    <Encoding name="ASMO_449"/>
+    <Encoding name="ISO_9036"/>
+    <Encoding name="arabic7"/>
+    <Encoding name="iso-ir-89"/>
+    <Encoding name="csISO89ASMO449"/>
+    <Encoding name="iso-ir-90"/>
+    <Encoding name="csISO90"/>
+    <Encoding name="JIS_C6229-1984-a"/>
+    <Encoding name="iso-ir-91"/>
+    <Encoding name="jp-ocr-a"/>
+    <Encoding name="csISO91JISC62291984a"/>
+    <Encoding name="JIS_C6229-1984-b"/>
+    <Encoding name="iso-ir-92"/>
+    <Encoding name="ISO646-JP-OCR-B"/>
+    <Encoding name="jp-ocr-b"/>
+    <Encoding name="csISO92JISC62991984b"/>
+    <Encoding name="JIS_C6229-1984-b-add"/>
+    <Encoding name="iso-ir-93"/>
+    <Encoding name="jp-ocr-b-add"/>
+    <Encoding name="csISO93JIS62291984badd"/>
+    <Encoding name="JIS_C6229-1984-hand"/>
+    <Encoding name="iso-ir-94"/>
+    <Encoding name="jp-ocr-hand"/>
+    <Encoding name="csISO94JIS62291984hand"/>
+    <Encoding name="JIS_C6229-1984-hand-add"/>
+    <Encoding name="iso-ir-95"/>
+    <Encoding name="jp-ocr-hand-add"/>
+    <Encoding name="csISO95JIS62291984handadd"/>
+    <Encoding name="JIS_C6229-1984-kana"/>
+    <Encoding name="iso-ir-96"/>
+    <Encoding name="csISO96JISC62291984kana"/>
+    <Encoding name="ISO_2033-1983"/>
+    <Encoding name="iso-ir-98"/>
+    <Encoding name="e13b"/>
+    <Encoding name="csISO2033"/>
+    <Encoding name="ANSI_X3.110-1983"/>
+    <Encoding name="iso-ir-99"/>
+    <Encoding name="CSA_T500-1983"/>
+    <Encoding name="NAPLPS"/>
+    <Encoding name="csISO99NAPLPS"/>
+    <Encoding name="ISO_8859-1:1987"/>
+    <Encoding name="iso-ir-100"/>
+    <Encoding name="ISO_8859-1"/>
+    <Encoding name="ISO-8859-1"/>
+    <Encoding name="latin1"/>
+    <Encoding name="l1"/>
+    <Encoding name="IBM819"/>
+    <Encoding name="CP819"/>
+    <Encoding name="csISOLatin1"/>
+    <Encoding name="ISO_8859-2:1987"/>
+    <Encoding name="iso-ir-101"/>
+    <Encoding name="ISO_8859-2"/>
+    <Encoding name="ISO-8859-2"/>
+    <Encoding name="latin2"/>
+    <Encoding name="l2"/>
+    <Encoding name="csISOLatin2"/>
+    <Encoding name="T.61-7bit"/>
+    <Encoding name="iso-ir-102"/>
+    <Encoding name="csISO102T617bit"/>
+    <Encoding name="T.61-8bit"/>
+    <Encoding name="T.61"/>
+    <Encoding name="iso-ir-103"/>
+    <Encoding name="csISO103T618bit"/>
+    <Encoding name="ISO_8859-3:1988"/>
+    <Encoding name="iso-ir-109"/>
+    <Encoding name="ISO_8859-3"/>
+    <Encoding name="ISO-8859-3"/>
+    <Encoding name="latin3"/>
+    <Encoding name="l3"/>
+    <Encoding name="csISOLatin3"/>
+    <Encoding name="ISO_8859-4:1988"/>
+    <Encoding name="iso-ir-110"/>
+    <Encoding name="ISO_8859-4"/>
+    <Encoding name="ISO-8859-4"/>
+    <Encoding name="latin4"/>
+    <Encoding name="l4"/>
+    <Encoding name="csISOLatin4"/>
+    <Encoding name="ECMA-cyrillic"/>
+    <Encoding name="iso-ir-111"/>
+    <Encoding name="csISO111ECMACyrillic"/>
+    <Encoding name="CSA_Z243.4-1985-1"/>
+    <Encoding name="iso-ir-121"/>
+    <Encoding name="ISO646-CA"/>
+    <Encoding name="csa7-1"/>
+    <Encoding name="ca"/>
+    <Encoding name="csISO121Canadian1"/>
+    <Encoding name="CSA_Z243.4-1985-2"/>
+    <Encoding name="iso-ir-122"/>
+    <Encoding name="ISO646-CA2"/>
+    <Encoding name="csa7-2"/>
+    <Encoding name="csISO122Canadian2"/>
+    <Encoding name="CSA_Z243.4-1985-gr"/>
+    <Encoding name="iso-ir-123"/>
+    <Encoding name="csISO123CSAZ24341985gr"/>
+    <Encoding name="ISO_8859-6:1987"/>
+    <Encoding name="iso-ir-127"/>
+    <Encoding name="ISO_8859-6"/>
+    <Encoding name="ISO-8859-6"/>
+    <Encoding name="ECMA-114"/>
+    <Encoding name="ASMO-708"/>
+    <Encoding name="arabic"/>
+    <Encoding name="csISOLatinArabic"/>
+    <Encoding name="ISO_8859-6-E"/>
+    <Encoding name="csISO88596E"/>
+    <Encoding name="ISO-8859-6-E"/>
+    <Encoding name="ISO_8859-6-I"/>
+    <Encoding name="csISO88596I"/>
+    <Encoding name="ISO-8859-6-I"/>
+    <Encoding name="ISO_8859-7:1987"/>
+    <Encoding name="iso-ir-126"/>
+    <Encoding name="ISO_8859-7"/>
+    <Encoding name="ISO-8859-7"/>
+    <Encoding name="ELOT_928"/>
+    <Encoding name="ECMA-118"/>
+    <Encoding name="greek"/>
+    <Encoding name="greek8"/>
+    <Encoding name="csISOLatinGreek"/>
+    <Encoding name="T.101-G2"/>
+    <Encoding name="iso-ir-128"/>
+    <Encoding name="csISO128T101G2"/>
+    <Encoding name="ISO_8859-8:1988"/>
+    <Encoding name="iso-ir-138"/>
+    <Encoding name="ISO_8859-8"/>
+    <Encoding name="ISO-8859-8"/>
+    <Encoding name="hebrew"/>
+    <Encoding name="csISOLatinHebrew"/>
+    <Encoding name="ISO_8859-8-E"/>
+    <Encoding name="csISO88598E"/>
+    <Encoding name="ISO-8859-8-E"/>
+    <Encoding name="ISO_8859-8-I"/>
+    <Encoding name="csISO88598I"/>
+    <Encoding name="ISO-8859-8-I"/>
+    <Encoding name="CSN_369103"/>
+    <Encoding name="iso-ir-139"/>
+    <Encoding name="csISO139CSN369103"/>
+    <Encoding name="JUS_I.B1.002"/>
+    <Encoding name="iso-ir-141"/>
+    <Encoding name="ISO646-YU"/>
+    <Encoding name="js"/>
+    <Encoding name="yu"/>
+    <Encoding name="csISO141JUSIB1002"/>
+    <Encoding name="ISO_6937-2-add"/>
+    <Encoding name="iso-ir-142"/>
+    <Encoding name="csISOTextComm"/>
+    <Encoding name="IEC_P27-1"/>
+    <Encoding name="iso-ir-143"/>
+    <Encoding name="csISO143IECP271"/>
+    <Encoding name="ISO_8859-5:1988"/>
+    <Encoding name="iso-ir-144"/>
+    <Encoding name="ISO_8859-5"/>
+    <Encoding name="ISO-8859-5"/>
+    <Encoding name="cyrillic"/>
+    <Encoding name="csISOLatinCyrillic"/>
+    <Encoding name="JUS_I.B1.003-serb"/>
+    <Encoding name="iso-ir-146"/>
+    <Encoding name="serbian"/>
+    <Encoding name="csISO146Serbian"/>
+    <Encoding name="JUS_I.B1.003-mac"/>
+    <Encoding name="macedonian"/>
+    <Encoding name="iso-ir-147"/>
+    <Encoding name="csISO147Macedonian"/>
+    <Encoding name="ISO_8859-9:1989"/>
+    <Encoding name="iso-ir-148"/>
+    <Encoding name="ISO_8859-9"/>
+    <Encoding name="ISO-8859-9"/>
+    <Encoding name="latin5"/>
+    <Encoding name="l5"/>
+    <Encoding name="csISOLatin5"/>
+    <Encoding name="greek-ccitt"/>
+    <Encoding name="iso-ir-150"/>
+    <Encoding name="csISO150"/>
+    <Encoding name="csISO150GreekCCITT"/>
+    <Encoding name="NC_NC00-10:81"/>
+    <Encoding name="cuba"/>
+    <Encoding name="iso-ir-151"/>
+    <Encoding name="ISO646-CU"/>
+    <Encoding name="csISO151Cuba"/>
+    <Encoding name="ISO_6937-2-25"/>
+    <Encoding name="iso-ir-152"/>
+    <Encoding name="csISO6937Add"/>
+    <Encoding name="GOST_19768-74"/>
+    <Encoding name="ST_SEV_358-88"/>
+    <Encoding name="iso-ir-153"/>
+    <Encoding name="csISO153GOST1976874"/>
+    <Encoding name="ISO_8859-supp"/>
+    <Encoding name="iso-ir-154"/>
+    <Encoding name="latin1-2-5"/>
+    <Encoding name="csISO8859Supp"/>
+    <Encoding name="ISO_10367-box"/>
+    <Encoding name="iso-ir-155"/>
+    <Encoding name="csISO10367Box"/>
+    <Encoding name="ISO-8859-10"/>
+    <Encoding name="iso-ir-157"/>
+    <Encoding name="l6"/>
+    <Encoding name="ISO_8859-10:1992"/>
+    <Encoding name="csISOLatin6"/>
+    <Encoding name="latin6"/>
+    <Encoding name="latin-lap"/>
+    <Encoding name="lap"/>
+    <Encoding name="iso-ir-158"/>
+    <Encoding name="csISO158Lap"/>
+    <Encoding name="JIS_X0212-1990"/>
+    <Encoding name="x0212"/>
+    <Encoding name="iso-ir-159"/>
+    <Encoding name="csISO159JISX02121990"/>
+    <Encoding name="DS_2089"/>
+    <Encoding name="DS2089"/>
+    <Encoding name="ISO646-DK"/>
+    <Encoding name="dk"/>
+    <Encoding name="csISO646Danish"/>
+    <Encoding name="us-dk"/>
+    <Encoding name="csUSDK"/>
+    <Encoding name="dk-us"/>
+    <Encoding name="csDKUS"/>
+    <Encoding name="JIS_X0201"/>
+    <Encoding name="X0201"/>
+    <Encoding name="csHalfWidthKatakana"/>
+    <Encoding name="KSC5636"/>
+    <Encoding name="ISO646-KR"/>
+    <Encoding name="csKSC5636"/>
+    <Encoding name="ISO-10646-UCS-2"/>
+    <Encoding name="csUnicode"/>
+    <Encoding name="ISO-10646-UCS-4"/>
+    <Encoding name="csUCS4"/>
+    <Encoding name="DEC-MCS"/>
+    <Encoding name="dec"/>
+    <Encoding name="csDECMCS"/>
+    <Encoding name="hp-roman8"/>
+    <Encoding name="roman8"/>
+    <Encoding name="r8"/>
+    <Encoding name="csHPRoman8"/>
+    <Encoding name="macintosh"/>
+    <Encoding name="mac"/>
+    <Encoding name="csMacintosh"/>
+    <Encoding name="IBM037"/>
+    <Encoding name="cp037"/>
+    <Encoding name="ebcdic-cp-us"/>
+    <Encoding name="ebcdic-cp-ca"/>
+    <Encoding name="ebcdic-cp-wt"/>
+    <Encoding name="ebcdic-cp-nl"/>
+    <Encoding name="csIBM037"/>
+    <Encoding name="IBM038"/>
+    <Encoding name="EBCDIC-INT"/>
+    <Encoding name="cp038"/>
+    <Encoding name="csIBM038"/>
+    <Encoding name="IBM273"/>
+    <Encoding name="CP273"/>
+    <Encoding name="csIBM273"/>
+    <Encoding name="IBM274"/>
+    <Encoding name="EBCDIC-BE"/>
+    <Encoding name="CP274"/>
+    <Encoding name="csIBM274"/>
+    <Encoding name="IBM275"/>
+    <Encoding name="EBCDIC-BR"/>
+    <Encoding name="cp275"/>
+    <Encoding name="csIBM275"/>
+    <Encoding name="IBM277"/>
+    <Encoding name="EBCDIC-CP-DK"/>
+    <Encoding name="EBCDIC-CP-NO"/>
+    <Encoding name="csIBM277"/>
+    <Encoding name="IBM278"/>
+    <Encoding name="CP278"/>
+    <Encoding name="ebcdic-cp-fi"/>
+    <Encoding name="ebcdic-cp-se"/>
+    <Encoding name="csIBM278"/>
+    <Encoding name="IBM280"/>
+    <Encoding name="CP280"/>
+    <Encoding name="ebcdic-cp-it"/>
+    <Encoding name="csIBM280"/>
+    <Encoding name="IBM281"/>
+    <Encoding name="EBCDIC-JP-E"/>
+    <Encoding name="cp281"/>
+    <Encoding name="csIBM281"/>
+    <Encoding name="IBM284"/>
+    <Encoding name="CP284"/>
+    <Encoding name="ebcdic-cp-es"/>
+    <Encoding name="csIBM284"/>
+    <Encoding name="IBM285"/>
+    <Encoding name="CP285"/>
+    <Encoding name="ebcdic-cp-gb"/>
+    <Encoding name="csIBM285"/>
+    <Encoding name="IBM290"/>
+    <Encoding name="cp290"/>
+    <Encoding name="EBCDIC-JP-kana"/>
+    <Encoding name="csIBM290"/>
+    <Encoding name="IBM297"/>
+    <Encoding name="cp297"/>
+    <Encoding name="ebcdic-cp-fr"/>
+    <Encoding name="csIBM297"/>
+    <Encoding name="IBM420"/>
+    <Encoding name="cp420"/>
+    <Encoding name="ebcdic-cp-ar1"/>
+    <Encoding name="csIBM420"/>
+    <Encoding name="IBM423"/>
+    <Encoding name="cp423"/>
+    <Encoding name="ebcdic-cp-gr"/>
+    <Encoding name="csIBM423"/>
+    <Encoding name="IBM424"/>
+    <Encoding name="cp424"/>
+    <Encoding name="ebcdic-cp-he"/>
+    <Encoding name="csIBM424"/>
+    <Encoding name="IBM437"/>
+    <Encoding name="cp437"/>
+    <Encoding name="437"/>
+    <Encoding name="csPC8CodePage437"/>
+    <Encoding name="IBM500"/>
+    <Encoding name="CP500"/>
+    <Encoding name="ebcdic-cp-be"/>
+    <Encoding name="ebcdic-cp-ch"/>
+    <Encoding name="csIBM500"/>
+    <Encoding name="IBM775"/>
+    <Encoding name="cp775"/>
+    <Encoding name="csPC775Baltic"/>
+    <Encoding name="IBM850"/>
+    <Encoding name="cp850"/>
+    <Encoding name="850"/>
+    <Encoding name="csPC850Multilingual"/>
+    <Encoding name="IBM851"/>
+    <Encoding name="cp851"/>
+    <Encoding name="851"/>
+    <Encoding name="csIBM851"/>
+    <Encoding name="IBM852"/>
+    <Encoding name="cp852"/>
+    <Encoding name="852"/>
+    <Encoding name="csPCp852"/>
+    <Encoding name="IBM855"/>
+    <Encoding name="cp855"/>
+    <Encoding name="855"/>
+    <Encoding name="csIBM855"/>
+    <Encoding name="IBM857"/>
+    <Encoding name="cp857"/>
+    <Encoding name="857"/>
+    <Encoding name="csIBM857"/>
+    <Encoding name="IBM860"/>
+    <Encoding name="cp860"/>
+    <Encoding name="860"/>
+    <Encoding name="csIBM860"/>
+    <Encoding name="IBM861"/>
+    <Encoding name="cp861"/>
+    <Encoding name="861"/>
+    <Encoding name="cp-is"/>
+    <Encoding name="csIBM861"/>
+    <Encoding name="IBM862"/>
+    <Encoding name="cp862"/>
+    <Encoding name="862"/>
+    <Encoding name="csPC862LatinHebrew"/>
+    <Encoding name="IBM863"/>
+    <Encoding name="cp863"/>
+    <Encoding name="863"/>
+    <Encoding name="csIBM863"/>
+    <Encoding name="IBM864"/>
+    <Encoding name="cp864"/>
+    <Encoding name="csIBM864"/>
+    <Encoding name="IBM865"/>
+    <Encoding name="cp865"/>
+    <Encoding name="865"/>
+    <Encoding name="csIBM865"/>
+    <Encoding name="IBM866"/>
+    <Encoding name="cp866"/>
+    <Encoding name="866"/>
+    <Encoding name="csIBM866"/>
+    <Encoding name="IBM868"/>
+    <Encoding name="CP868"/>
+    <Encoding name="cp-ar"/>
+    <Encoding name="csIBM868"/>
+    <Encoding name="IBM869"/>
+    <Encoding name="cp869"/>
+    <Encoding name="869"/>
+    <Encoding name="cp-gr"/>
+    <Encoding name="csIBM869"/>
+    <Encoding name="IBM870"/>
+    <Encoding name="CP870"/>
+    <Encoding name="ebcdic-cp-roece"/>
+    <Encoding name="ebcdic-cp-yu"/>
+    <Encoding name="csIBM870"/>
+    <Encoding name="IBM871"/>
+    <Encoding name="CP871"/>
+    <Encoding name="ebcdic-cp-is"/>
+    <Encoding name="csIBM871"/>
+    <Encoding name="IBM880"/>
+    <Encoding name="cp880"/>
+    <Encoding name="EBCDIC-Cyrillic"/>
+    <Encoding name="csIBM880"/>
+    <Encoding name="IBM891"/>
+    <Encoding name="cp891"/>
+    <Encoding name="csIBM891"/>
+    <Encoding name="IBM903"/>
+    <Encoding name="cp903"/>
+    <Encoding name="csIBM903"/>
+    <Encoding name="IBM904"/>
+    <Encoding name="cp904"/>
+    <Encoding name="904"/>
+    <Encoding name="csIBBM904"/>
+    <Encoding name="IBM905"/>
+    <Encoding name="CP905"/>
+    <Encoding name="ebcdic-cp-tr"/>
+    <Encoding name="csIBM905"/>
+    <Encoding name="IBM918"/>
+    <Encoding name="CP918"/>
+    <Encoding name="ebcdic-cp-ar2"/>
+    <Encoding name="csIBM918"/>
+    <Encoding name="IBM1026"/>
+    <Encoding name="CP1026"/>
+    <Encoding name="csIBM1026"/>
+    <Encoding name="EBCDIC-AT-DE"/>
+    <Encoding name="csIBMEBCDICATDE"/>
+    <Encoding name="EBCDIC-AT-DE-A"/>
+    <Encoding name="csEBCDICATDEA"/>
+    <Encoding name="EBCDIC-CA-FR"/>
+    <Encoding name="csEBCDICCAFR"/>
+    <Encoding name="EBCDIC-DK-NO"/>
+    <Encoding name="csEBCDICDKNO"/>
+    <Encoding name="EBCDIC-DK-NO-A"/>
+    <Encoding name="csEBCDICDKNOA"/>
+    <Encoding name="EBCDIC-FI-SE"/>
+    <Encoding name="csEBCDICFISE"/>
+    <Encoding name="EBCDIC-FI-SE-A"/>
+    <Encoding name="csEBCDICFISEA"/>
+    <Encoding name="EBCDIC-FR"/>
+    <Encoding name="csEBCDICFR"/>
+    <Encoding name="EBCDIC-IT"/>
+    <Encoding name="csEBCDICIT"/>
+    <Encoding name="EBCDIC-PT"/>
+    <Encoding name="csEBCDICPT"/>
+    <Encoding name="EBCDIC-ES"/>
+    <Encoding name="csEBCDICES"/>
+    <Encoding name="EBCDIC-ES-A"/>
+    <Encoding name="csEBCDICESA"/>
+    <Encoding name="EBCDIC-ES-S"/>
+    <Encoding name="csEBCDICESS"/>
+    <Encoding name="EBCDIC-UK"/>
+    <Encoding name="csEBCDICUK"/>
+    <Encoding name="EBCDIC-US"/>
+    <Encoding name="csEBCDICUS"/>
+    <Encoding name="UNKNOWN-8BIT"/>
+    <Encoding name="csUnknown8BiT"/>
+    <Encoding name="MNEMONIC"/>
+    <Encoding name="csMnemonic"/>
+    <Encoding name="MNEM"/>
+    <Encoding name="csMnem"/>
+    <Encoding name="VISCII"/>
+    <Encoding name="csVISCII"/>
+    <Encoding name="VIQR"/>
+    <Encoding name="csVIQR"/>
+    <Encoding name="KOI8-R"/>
+    <Encoding name="csKOI8R"/>
+    <Encoding name="KOI8-U"/>
+    <Encoding name="IBM00858"/>
+    <Encoding name="CCSID00858"/>
+    <Encoding name="CP00858"/>
+    <Encoding name="PC-Multilingual-850+euro"/>
+    <Encoding name="IBM00924"/>
+    <Encoding name="CCSID00924"/>
+    <Encoding name="CP00924"/>
+    <Encoding name="ebcdic-Latin9--euro"/>
+    <Encoding name="IBM01140"/>
+    <Encoding name="CCSID01140"/>
+    <Encoding name="CP01140"/>
+    <Encoding name="ebcdic-us-37+euro"/>
+    <Encoding name="IBM01141"/>
+    <Encoding name="CCSID01141"/>
+    <Encoding name="CP01141"/>
+    <Encoding name="ebcdic-de-273+euro"/>
+    <Encoding name="IBM01142"/>
+    <Encoding name="CCSID01142"/>
+    <Encoding name="CP01142"/>
+    <Encoding name="ebcdic-dk-277+euro"/>
+    <Encoding name="ebcdic-no-277+euro"/>
+    <Encoding name="IBM01143"/>
+    <Encoding name="CCSID01143"/>
+    <Encoding name="CP01143"/>
+    <Encoding name="ebcdic-fi-278+euro"/>
+    <Encoding name="ebcdic-se-278+euro"/>
+    <Encoding name="IBM01144"/>
+    <Encoding name="CCSID01144"/>
+    <Encoding name="CP01144"/>
+    <Encoding name="ebcdic-it-280+euro"/>
+    <Encoding name="IBM01145"/>
+    <Encoding name="CCSID01145"/>
+    <Encoding name="CP01145"/>
+    <Encoding name="ebcdic-es-284+euro"/>
+    <Encoding name="IBM01146"/>
+    <Encoding name="CCSID01146"/>
+    <Encoding name="CP01146"/>
+    <Encoding name="ebcdic-gb-285+euro"/>
+    <Encoding name="IBM01147"/>
+    <Encoding name="CCSID01147"/>
+    <Encoding name="CP01147"/>
+    <Encoding name="ebcdic-fr-297+euro"/>
+    <Encoding name="IBM01148"/>
+    <Encoding name="CCSID01148"/>
+    <Encoding name="CP01148"/>
+    <Encoding name="ebcdic-international-500+euro"/>
+    <Encoding name="IBM01149"/>
+    <Encoding name="CCSID01149"/>
+    <Encoding name="CP01149"/>
+    <Encoding name="ebcdic-is-871+euro"/>
+    <Encoding name="Big5-HKSCS"/>
+    <Encoding name="UNICODE-1-1"/>
+    <Encoding name="csUnicode11"/>
+    <Encoding name="SCSU"/>
+    <Encoding name="UTF-7"/>
+    <Encoding name="UTF-16BE"/>
+    <Encoding name="UTF-16LE"/>
+    <Encoding name="UTF-16"/>
+    <Encoding name="CESU-8"/>
+    <Encoding name="csCESU-8"/>
+    <Encoding name="UTF-32"/>
+    <Encoding name="UTF-32BE"/>
+    <Encoding name="UTF-32LE"/>
+    <Encoding name="UNICODE-1-1-UTF-7"/>
+    <Encoding name="csUnicode11UTF7"/>
+    <Encoding name="UTF-8"/>
+    <Encoding name="ISO-8859-13"/>
+    <Encoding name="ISO-8859-14"/>
+    <Encoding name="iso-ir-199"/>
+    <Encoding name="ISO_8859-14:1998"/>
+    <Encoding name="ISO_8859-14"/>
+    <Encoding name="latin8"/>
+    <Encoding name="iso-celtic"/>
+    <Encoding name="l8"/>
+    <Encoding name="ISO-8859-15"/>
+    <Encoding name="ISO_8859-15"/>
+    <Encoding name="ISO-8859-16"/>
+    <Encoding name=""/>
+    <Encoding name="GBK"/>
+    <Encoding name="CP936"/>
+    <Encoding name="MS936"/>
+    <Encoding name="windows-936"/>
+    <Encoding name="GB18030"/>
+    <Encoding name="JIS_Encoding"/>
+    <Encoding name="csJISEncoding"/>
+    <Encoding name="Shift_JIS"/>
+    <Encoding name="MS_Kanji"/>
+    <Encoding name="csShiftJIS"/>
+    <Encoding name="Extended_UNIX_Code_Packed_Format_for_Japanese"/>
+    <Encoding name="csEUCPkdFmtJapanese"/>
+    <Encoding name="EUC-JP"/>
+    <Encoding name="Extended_UNIX_Code_Fixed_Width_for_Japanese"/>
+    <Encoding name="csEUCFixWidJapanese"/>
+    <Encoding name="ISO-10646-UCS-Basic"/>
+    <Encoding name="csUnicodeASCII"/>
+    <Encoding name="ISO-10646-Unicode-Latin1"/>
+    <Encoding name="csUnicodeLatin1"/>
+    <Encoding name="ISO-10646"/>
+    <Encoding name="ISO-10646-J-1"/>
+    <Encoding name="ISO-Unicode-IBM-1261"/>
+    <Encoding name="csUnicodeIBM1261"/>
+    <Encoding name="ISO-Unicode-IBM-1268"/>
+    <Encoding name="csUnicodeIBM1268"/>
+    <Encoding name="ISO-Unicode-IBM-1276"/>
+    <Encoding name="csUnicodeIBM1276"/>
+    <Encoding name="ISO-Unicode-IBM-1264"/>
+    <Encoding name="csUnicodeIBM1264"/>
+    <Encoding name="ISO-Unicode-IBM-1265"/>
+    <Encoding name="csUnicodeIBM1265"/>
+    <Encoding name="ISO-8859-1-Windows-3.0-Latin-1"/>
+    <Encoding name="csWindows30Latin1"/>
+    <Encoding name="ISO-8859-1-Windows-3.1-Latin-1"/>
+    <Encoding name="csWindows31Latin1"/>
+    <Encoding name="ISO-8859-2-Windows-Latin-2"/>
+    <Encoding name="csWindows31Latin2"/>
+    <Encoding name="ISO-8859-9-Windows-Latin-5"/>
+    <Encoding name="csWindows31Latin5"/>
+    <Encoding name="Adobe-Standard-Encoding"/>
+    <Encoding name="csAdobeStandardEncoding"/>
+    <Encoding name="Ventura-US"/>
+    <Encoding name="csVenturaUS"/>
+    <Encoding name="Ventura-International"/>
+    <Encoding name="csVenturaInternational"/>
+    <Encoding name="PC8-Danish-Norwegian"/>
+    <Encoding name="csPC8DanishNorwegian"/>
+    <Encoding name="PC8-Turkish"/>
+    <Encoding name="csPC8Turkish"/>
+    <Encoding name="IBM-Symbols"/>
+    <Encoding name="csIBMSymbols"/>
+    <Encoding name="IBM-Thai"/>
+    <Encoding name="csIBMThai"/>
+    <Encoding name="HP-Legal"/>
+    <Encoding name="csHPLegal"/>
+    <Encoding name="HP-Pi-font"/>
+    <Encoding name="csHPPiFont"/>
+    <Encoding name="HP-Math8"/>
+    <Encoding name="csHPMath8"/>
+    <Encoding name="Adobe-Symbol-Encoding"/>
+    <Encoding name="csHPPSMath"/>
+    <Encoding name="HP-DeskTop"/>
+    <Encoding name="csHPDesktop"/>
+    <Encoding name="Ventura-Math"/>
+    <Encoding name="csVenturaMath"/>
+    <Encoding name="Microsoft-Publishing"/>
+    <Encoding name="csMicrosoftPublishing"/>
+    <Encoding name="Windows-31J"/>
+    <Encoding name="csWindows31J"/>
+    <Encoding name="GB2312"/>
+    <Encoding name="csGB2312"/>
+    <Encoding name="Big5"/>
+    <Encoding name="csBig5"/>
+    <Encoding name="windows-1250"/>
+    <Encoding name="windows-1251"/>
+    <Encoding name="windows-1252"/>
+    <Encoding name="windows-1253"/>
+    <Encoding name="windows-1254"/>
+    <Encoding name="windows-1255"/>
+    <Encoding name="windows-1256"/>
+    <Encoding name="windows-1257"/>
+    <Encoding name="windows-1258"/>
+    <Encoding name="TIS-620"/>
+    <Encoding name="HZ-GB-2312"/>
+</Charset>
diff --git a/tools/IANACharset/charset.dtd b/tools/IANACharset/charset.dtd
new file mode 100644
index 000000000..4a6516e5d
--- /dev/null
+++ b/tools/IANACharset/charset.dtd
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="USASCII" ?>
+
+<!ELEMENT   Encoding (#PCDATA)>
+<!ATTLIST   Encoding
+            name     CDATA #REQUIRED>
+
+<!ELEMENT   Charset  (Encoding+)>
-- 
GitLab