|
| |||||||||||||
Go to the source code of this file.
Data Structures | |
| struct | position |
| struct | ATTRIBUTE |
| struct | encoding |
| struct | INIT_ENCODING |
Defines | |
| #define | XmlTok_INCLUDED 1 |
| #define | XML_TOK_TRAILING_RSQB -5 |
| #define | XML_TOK_NONE -4 |
| #define | XML_TOK_TRAILING_CR -3 |
| #define | XML_TOK_PARTIAL_CHAR -2 |
| #define | XML_TOK_PARTIAL -1 |
| #define | XML_TOK_INVALID 0 |
| #define | XML_TOK_START_TAG_WITH_ATTS 1 |
| #define | XML_TOK_START_TAG_NO_ATTS 2 |
| #define | XML_TOK_EMPTY_ELEMENT_WITH_ATTS 3 |
| #define | XML_TOK_EMPTY_ELEMENT_NO_ATTS 4 |
| #define | XML_TOK_END_TAG 5 |
| #define | XML_TOK_DATA_CHARS 6 |
| #define | XML_TOK_DATA_NEWLINE 7 |
| #define | XML_TOK_CDATA_SECT_OPEN 8 |
| #define | XML_TOK_ENTITY_REF 9 |
| #define | XML_TOK_CHAR_REF 10 |
| #define | XML_TOK_PI 11 |
| #define | XML_TOK_XML_DECL 12 |
| #define | XML_TOK_COMMENT 13 |
| #define | XML_TOK_BOM 14 |
| #define | XML_TOK_PROLOG_S 15 |
| #define | XML_TOK_DECL_OPEN 16 |
| #define | XML_TOK_DECL_CLOSE 17 |
| #define | XML_TOK_NAME 18 |
| #define | XML_TOK_NMTOKEN 19 |
| #define | XML_TOK_POUND_NAME 20 |
| #define | XML_TOK_OR 21 |
| #define | XML_TOK_PERCENT 22 |
| #define | XML_TOK_OPEN_PAREN 23 |
| #define | XML_TOK_CLOSE_PAREN 24 |
| #define | XML_TOK_OPEN_BRACKET 25 |
| #define | XML_TOK_CLOSE_BRACKET 26 |
| #define | XML_TOK_LITERAL 27 |
| #define | XML_TOK_PARAM_ENTITY_REF 28 |
| #define | XML_TOK_INSTANCE_START 29 |
| #define | XML_TOK_NAME_QUESTION 30 |
| #define | XML_TOK_NAME_ASTERISK 31 |
| #define | XML_TOK_NAME_PLUS 32 |
| #define | XML_TOK_COND_SECT_OPEN 33 |
| #define | XML_TOK_COND_SECT_CLOSE 34 |
| #define | XML_TOK_CLOSE_PAREN_QUESTION 35 |
| #define | XML_TOK_CLOSE_PAREN_ASTERISK 36 |
| #define | XML_TOK_CLOSE_PAREN_PLUS 37 |
| #define | XML_TOK_COMMA 38 |
| #define | XML_TOK_ATTRIBUTE_VALUE_S 39 |
| #define | XML_TOK_CDATA_SECT_CLOSE 40 |
| #define | XML_TOK_PREFIXED_NAME 41 |
| #define | XML_N_STATES 3 |
| #define | XML_PROLOG_STATE 0 |
| #define | XML_CONTENT_STATE 1 |
| #define | XML_CDATA_SECTION_STATE 2 |
| #define | XML_N_LITERAL_TYPES 2 |
| #define | XML_ATTRIBUTE_VALUE_LITERAL 0 |
| #define | XML_ENTITY_VALUE_LITERAL 1 |
| #define | XML_UTF8_ENCODE_MAX 4 |
| #define | XML_UTF16_ENCODE_MAX 2 |
| #define | XmlTok(enc, state, ptr, end, nextTokPtr) (((enc)->scanners[state])(enc, ptr, end, nextTokPtr)) |
| #define | XmlPrologTok(enc, ptr, end, nextTokPtr) XmlTok(enc, XML_PROLOG_STATE, ptr, end, nextTokPtr) |
| #define | XmlContentTok(enc, ptr, end, nextTokPtr) XmlTok(enc, XML_CONTENT_STATE, ptr, end, nextTokPtr) |
| #define | XmlCdataSectionTok(enc, ptr, end, nextTokPtr) XmlTok(enc, XML_CDATA_SECTION_STATE, ptr, end, nextTokPtr) |
| #define | XmlLiteralTok(enc, literalType, ptr, end, nextTokPtr) (((enc)->literalScanners[literalType])(enc, ptr, end, nextTokPtr)) |
| #define | XmlAttributeValueTok(enc, ptr, end, nextTokPtr) XmlLiteralTok(enc, XML_ATTRIBUTE_VALUE_LITERAL, ptr, end, nextTokPtr) |
| #define | XmlEntityValueTok(enc, ptr, end, nextTokPtr) XmlLiteralTok(enc, XML_ENTITY_VALUE_LITERAL, ptr, end, nextTokPtr) |
| #define | XmlSameName(enc, ptr1, ptr2) (((enc)->sameName)(enc, ptr1, ptr2)) |
| #define | XmlNameMatchesAscii(enc, ptr1, end1, ptr2) (((enc)->nameMatchesAscii)(enc, ptr1, end1, ptr2)) |
| #define | XmlNameLength(enc, ptr) (((enc)->nameLength)(enc, ptr)) |
| #define | XmlSkipS(enc, ptr) (((enc)->skipS)(enc, ptr)) |
| #define | XmlGetAttributes(enc, ptr, attsMax, atts) (((enc)->getAtts)(enc, ptr, attsMax, atts)) |
| #define | XmlCharRefNumber(enc, ptr) (((enc)->charRefNumber)(enc, ptr)) |
| #define | XmlPredefinedEntityName(enc, ptr, end) (((enc)->predefinedEntityName)(enc, ptr, end)) |
| #define | XmlUpdatePosition(enc, ptr, end, pos) (((enc)->updatePosition)(enc, ptr, end, pos)) |
| #define | XmlIsPublicId(enc, ptr, end, badPtr) (((enc)->isPublicId)(enc, ptr, end, badPtr)) |
| #define | XmlUtf8Convert(enc, fromP, fromLim, toP, toLim) (((enc)->utf8Convert)(enc, fromP, fromLim, toP, toLim)) |
| #define | XmlUtf16Convert(enc, fromP, fromLim, toP, toLim) (((enc)->utf16Convert)(enc, fromP, fromLim, toP, toLim)) |
Typedefs | |
| typedef position | POSITION |
| typedef encoding | ENCODING |
Functions | |
| int | XmlParseXmlDecl (int isGeneralTextEntity, const ENCODING *enc, const char *ptr, const char *end, const char **badPtr, const char **versionPtr, const char **versionEndPtr, const char **encodingNamePtr, const ENCODING **namedEncodingPtr, int *standalonePtr) |
| int | XmlInitEncoding (INIT_ENCODING *, const ENCODING **, const char *name) |
| const ENCODING * | XmlGetUtf8InternalEncoding (void) |
| const ENCODING * | XmlGetUtf16InternalEncoding (void) |
| int | XmlUtf8Encode (int charNumber, char *buf) |
| int | XmlUtf16Encode (int charNumber, unsigned short *buf) |
| int | XmlSizeOfUnknownEncoding (void) |
| ENCODING * | XmlInitUnknownEncoding (void *mem, int *table, int(*conv)(void *userData, const char *p), void *userData) |
| int | XmlParseXmlDeclNS (int isGeneralTextEntity, const ENCODING *enc, const char *ptr, const char *end, const char **badPtr, const char **versionPtr, const char **versionEndPtr, const char **encodingNamePtr, const ENCODING **namedEncodingPtr, int *standalonePtr) |
| int | XmlInitEncodingNS (INIT_ENCODING *, const ENCODING **, const char *name) |
| const ENCODING * | XmlGetUtf8InternalEncodingNS (void) |
| const ENCODING * | XmlGetUtf16InternalEncodingNS (void) |
| ENCODING * | XmlInitUnknownEncodingNS (void *mem, int *table, int(*conv)(void *userData, const char *p), void *userData) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 236 of file xmltok.h. Referenced by XML_GetCurrentColumnNumber(), XML_GetCurrentLineNumber(), XML_Parse(), and XML_ParseBuffer(). |
|
|
|
|
|
|
|
|
|
|
|
Referenced by XML_ParserCreate_MM(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
Referenced by XML_ParserCreate_MM(). |
|
||||||||||||||||
|
|
|
||||||||||||||||||||
|
Definition at line 1276 of file xmltok.c. References BT_LEAD2, BT_NONXML, BT_OTHER, unknown_encoding::convert, normal_encoding::enc, normal_encoding::isInvalid2, normal_encoding::isInvalid3, normal_encoding::isInvalid4, normal_encoding::isName2, normal_encoding::isName3, normal_encoding::isName4, normal_encoding::isNmstrt2, normal_encoding::isNmstrt3, normal_encoding::isNmstrt4, unknown_encoding::normal, normal_encoding::type, UCS2_GET_NAMING, unknown_encoding::userData, unknown_encoding::utf16, encoding::utf16Convert, unknown_encoding::utf8, encoding::utf8Convert, and XmlUtf8Encode(). 01280 {
01281 int i;
01282 struct unknown_encoding *e = mem;
01283 for (i = 0; i < (int)sizeof(struct normal_encoding); i++)
01284 ((char *)mem)[i] = ((char *)&latin1_encoding)[i];
01285 for (i = 0; i < 128; i++)
01286 if (latin1_encoding.type[i] != BT_OTHER
01287 && latin1_encoding.type[i] != BT_NONXML
01288 && table[i] != i)
01289 return 0;
01290 for (i = 0; i < 256; i++) {
01291 int c = table[i];
01292 if (c == -1) {
01293 e->normal.type[i] = BT_MALFORM;
01294 /* This shouldn't really get used. */
01295 e->utf16[i] = 0xFFFF;
01296 e->utf8[i][0] = 1;
01297 e->utf8[i][1] = 0;
01298 }
01299 else if (c < 0) {
01300 if (c < -4)
01301 return 0;
01302 e->normal.type[i] = BT_LEAD2 - (c + 2);
01303 e->utf8[i][0] = 0;
01304 e->utf16[i] = 0;
01305 }
01306 else if (c < 0x80) {
01307 if (latin1_encoding.type[c] != BT_OTHER
01308 && latin1_encoding.type[c] != BT_NONXML
01309 && c != i)
01310 return 0;
01311 e->normal.type[i] = latin1_encoding.type[c];
01312 e->utf8[i][0] = 1;
01313 e->utf8[i][1] = (char)c;
01314 e->utf16[i] = c == 0 ? 0xFFFF : c;
01315 }
01316 else if (checkCharRefNumber(c) < 0) {
01317 e->normal.type[i] = BT_NONXML;
01318 /* This shouldn't really get used. */
01319 e->utf16[i] = 0xFFFF;
01320 e->utf8[i][0] = 1;
01321 e->utf8[i][1] = 0;
01322 }
01323 else {
01324 if (c > 0xFFFF)
01325 return 0;
01326 if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff))
01327 e->normal.type[i] = BT_NMSTRT;
01328 else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff))
01329 e->normal.type[i] = BT_NAME;
01330 else
01331 e->normal.type[i] = BT_OTHER;
01332 e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1);
01333 e->utf16[i] = c;
01334 }
01335 }
01336 e->userData = userData;
01337 e->convert = convert;
01338 if (convert) {
01339 e->normal.isName2 = unknown_isName;
01340 e->normal.isName3 = unknown_isName;
01341 e->normal.isName4 = unknown_isName;
01342 e->normal.isNmstrt2 = unknown_isNmstrt;
01343 e->normal.isNmstrt3 = unknown_isNmstrt;
01344 e->normal.isNmstrt4 = unknown_isNmstrt;
01345 e->normal.isInvalid2 = unknown_isInvalid;
01346 e->normal.isInvalid3 = unknown_isInvalid;
01347 e->normal.isInvalid4 = unknown_isInvalid;
01348 }
01349 e->normal.enc.utf8Convert = unknown_toUtf8;
01350 e->normal.enc.utf16Convert = unknown_toUtf16;
01351 return &(e->normal.enc);
01352 }
|
|
||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
Definition at line 1188 of file xmltok.c. 01189 {
01190 return sizeof(struct unknown_encoding);
01191 }
|
|
||||||||||||
|
Definition at line 1163 of file xmltok.c. 01164 {
01165 if (charNum < 0)
01166 return 0;
01167 if (charNum < 0x10000) {
01168 buf[0] = charNum;
01169 return 1;
01170 }
01171 if (charNum < 0x110000) {
01172 charNum -= 0x10000;
01173 buf[0] = (charNum >> 10) + 0xD800;
01174 buf[1] = (charNum & 0x3FF) + 0xDC00;
01175 return 2;
01176 }
01177 return 0;
01178 }
|
|
||||||||||||
|
Definition at line 1127 of file xmltok.c. Referenced by XmlInitUnknownEncoding(). 01128 {
01129 enum {
01130 /* minN is minimum legal resulting value for N byte sequence */
01131 min2 = 0x80,
01132 min3 = 0x800,
01133 min4 = 0x10000
01134 };
01135
01136 if (c < 0)
01137 return 0;
01138 if (c < min2) {
01139 buf[0] = (c | UTF8_cval1);
01140 return 1;
01141 }
01142 if (c < min3) {
01143 buf[0] = ((c >> 6) | UTF8_cval2);
01144 buf[1] = ((c & 0x3f) | 0x80);
01145 return 2;
01146 }
01147 if (c < min4) {
01148 buf[0] = ((c >> 12) | UTF8_cval3);
01149 buf[1] = (((c >> 6) & 0x3f) | 0x80);
01150 buf[2] = ((c & 0x3f) | 0x80);
01151 return 3;
01152 }
01153 if (c < 0x110000) {
01154 buf[0] = ((c >> 18) | UTF8_cval4);
01155 buf[1] = (((c >> 12) & 0x3f) | 0x80);
01156 buf[2] = (((c >> 6) & 0x3f) | 0x80);
01157 buf[3] = ((c & 0x3f) | 0x80);
01158 return 4;
01159 }
01160 return 0;
01161 }
|
| Last updated at Tue Dec 18 21:07:42 PST 2007. | This site and project hosted by... |