|
|
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... |