00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055
00056
00057 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081
00082
00083 #if !defined(XMLRECOGNIZER_HPP)
00084 #define XMLRECOGNIZER_HPP
00085
00094 class XMLRecognizer
00095 {
00096 public :
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115 enum Encodings
00116 {
00117 EBCDIC = 0
00118 , UCS_4B = 1
00119 , UCS_4L = 2
00120 , US_ASCII = 3
00121 , UTF_8 = 4
00122 , UTF_16B = 5
00123 , UTF_16L = 6
00124
00125 , Encodings_Count
00126 , Encodings_Min = EBCDIC
00127 , Encodings_Max = UTF_16L
00128
00129 , OtherEncoding = 999
00130
00131 #if defined(ENDIANMODE_BIG)
00132 , Def_UTF16 = UTF_16B
00133 , Def_UCS4 = UCS_4B
00134 #else
00135 , Def_UTF16 = UTF_16L
00136 , Def_UCS4 = UCS_4L
00137 #endif
00138 };
00139
00140
00141
00142
00143
00144
00145
00146
00147 static const char fgASCIIPre[];
00148 static const unsigned int fgASCIIPreLen;
00149 static const XMLByte fgEBCDICPre[];
00150 static const unsigned int fgEBCDICPreLen;
00151 static const XMLByte fgUTF16BPre[];
00152 static const XMLByte fgUTF16LPre[];
00153 static const unsigned int fgUTF16PreLen;
00154 static const XMLByte fgUCS4BPre[];
00155 static const XMLByte fgUCS4LPre[];
00156 static const unsigned int fgUCS4PreLen;
00157
00158
00159
00160
00161
00162 static Encodings basicEncodingProbe
00163 (
00164 const XMLByte* const rawBuffer
00165 , const unsigned int rawByteCount
00166 );
00167
00168 static Encodings encodingForName
00169 (
00170 const XMLCh* const theEncName
00171 );
00172
00173 static const XMLCh* nameForEncoding(const Encodings theEncoding);
00174
00175
00176 private :
00177
00178
00179
00180
00181
00182
00183 XMLRecognizer();
00184 ~XMLRecognizer();
00185 void operator=(const XMLRecognizer&);
00186 };
00187
00188 #endif