20 changed files with 0 additions and 12468 deletions
-
99ext/xml/expat/Changes
-
72ext/xml/expat/README
-
11ext/xml/expat/README.php
-
85ext/xml/expat/ascii.h
-
36ext/xml/expat/asciitab.h
-
910ext/xml/expat/expat.h
-
37ext/xml/expat/iasciitab.h
-
46ext/xml/expat/internal.h
-
36ext/xml/expat/latin1tab.h
-
150ext/xml/expat/nametab.h
-
37ext/xml/expat/utf8tab.h
-
30ext/xml/expat/winconfig.h
-
5592ext/xml/expat/xmlparse.c
-
1330ext/xml/expat/xmlrole.c
-
114ext/xml/expat/xmlrole.h
-
1641ext/xml/expat/xmltok.c
-
312ext/xml/expat/xmltok.h
-
1778ext/xml/expat/xmltok_impl.c
-
46ext/xml/expat/xmltok_impl.h
-
106ext/xml/expat/xmltok_ns.c
@ -1,99 +0,0 @@ |
|||
Release 1.95.5 Fri Sep 6 2002 |
|||
- Added XML_UseForeignDTD() for improved SAX2 support. |
|||
- Added XML_GetFeatureList(). |
|||
- Defined XML_Bool type and the values XML_TRUE and XML_FALSE. |
|||
- Use an incomplete struct instead of a void* for the parser |
|||
(may not retain). |
|||
- Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected. |
|||
- Finally fixed bug where default handler would report DTD |
|||
events that were already handled by another handler. |
|||
Initial patch contributed by Darryl Miller. |
|||
- Removed unnecessary DllMain() function that caused static |
|||
linking into a DLL to be difficult. |
|||
- Added VC++ projects for building static libraries. |
|||
- Reduced line-length for all source code and headers to be |
|||
no longer than 80 characters, to help with AS/400 support. |
|||
- Reduced memory copying during parsing (SF patch #600964). |
|||
- Fixed a variety of bugs: see SF issues 580793, 434664, |
|||
483514, 580503, 581069, 584041, 584183, 584832, 585537, |
|||
596555, 596678, 598352, 598944, 599715, 600479, 600971. |
|||
|
|||
Release 1.95.4 Fri Jul 12 2002 |
|||
- Added support for VMS, contributed by Craig Berry. See |
|||
vms/README.vms for more information. |
|||
- Added Mac OS (classic) support, with a makefile for MPW, |
|||
contributed by Thomas Wegner and Daryle Walker. |
|||
- Added Borland C++ Builder 5 / BCC 5.5 support, contributed |
|||
by Patrick McConnell (SF patch #538032). |
|||
- Fixed a variety of bugs: see SF issues 441449, 563184, |
|||
564342, 566334, 566901, 569461, 570263, 575168, 579196. |
|||
- Made skippedEntityHandler conform to SAX2 (see source comment) |
|||
- Re-implemented WFC: Entity Declared from XML 1.0 spec and |
|||
added a new error "entity declared in parameter entity": |
|||
see SF bug report 569461 and SF patch 578161 |
|||
- Re-implemented section 5.1 from XML 1.0 spec: |
|||
see SF bug report 570263 and SF patch 578161 |
|||
|
|||
Release 1.95.3 Mon Jun 3 2002 |
|||
- Added a project to the MSVC workspace to create a wchar_t |
|||
version of the library; the DLLs are named libexpatw.dll. |
|||
- Changed the name of the Windows DLLs from expat.dll to |
|||
libexpat.dll; this fixes SF bug #432456. |
|||
- Added the XML_ParserReset() API function. |
|||
- Fixed XML_SetReturnNSTriplet() to work for element names. |
|||
- Made the XML_UNICODE builds usable (thanks, Karl!). |
|||
- Allow xmlwf to read from standard input. |
|||
- Install a man page for xmlwf on Unix systems. |
|||
- Fixed many bugs; see SF bug reports 231864, 461380, 464837, |
|||
466885, 469226, 477667, 484419, 487840, 494749, 496505, |
|||
547350. Other bugs which we can't test as easily may also |
|||
have been fixed, especially in the area of build support. |
|||
|
|||
Release 1.95.2 Fri Jul 27 2001 |
|||
- More changes to make MSVC happy with the build; add a single |
|||
workspace to support both the library and xmlwf application. |
|||
- Added a Windows installer for Windows users; includes |
|||
xmlwf.exe. |
|||
- Added compile-time constants that can be used to determine the |
|||
Expat version |
|||
- Removed a lot of GNU-specific dependencies to aide portability |
|||
among the various Unix flavors. |
|||
- Fix the UTF-8 BOM bug. |
|||
- Cleaned up warning messages for several compilers. |
|||
- Added the -Wall, -Wstrict-prototypes options for GCC. |
|||
|
|||
Release 1.95.1 Sun Oct 22 15:11:36 EDT 2000 |
|||
- Changes to get expat to build under Microsoft compiler |
|||
- Removed all aborts and instead return an UNEXPECTED_STATE error. |
|||
- Fixed a bug where a stray '%' in an entity value would cause an |
|||
abort. |
|||
- Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for |
|||
finding this oversight. |
|||
- Changed default patterns in lib/Makefile.in to fit non-GNU makes |
|||
Thanks to robin@unrated.net for reporting and providing an |
|||
account to test on. |
|||
- The reference had the wrong label for XML_SetStartNamespaceDecl. |
|||
Reported by an anonymous user. |
|||
|
|||
Release 1.95.0 Fri Sep 29 2000 |
|||
- XML_ParserCreate_MM |
|||
Allows you to set a memory management suite to replace the |
|||
standard malloc,realloc, and free. |
|||
- XML_SetReturnNSTriplet |
|||
If you turn this feature on when namespace processing is in |
|||
effect, then qualified, prefixed element and attribute names |
|||
are returned as "uri|name|prefix" where '|' is whatever |
|||
separator character is used in namespace processing. |
|||
- Merged in features from perl-expat |
|||
o XML_SetElementDeclHandler |
|||
o XML_SetAttlistDeclHandler |
|||
o XML_SetXmlDeclHandler |
|||
o XML_SetEntityDeclHandler |
|||
o StartDoctypeDeclHandler takes 3 additional parameters: |
|||
sysid, pubid, has_internal_subset |
|||
o Many paired handler setters (like XML_SetElementHandler) |
|||
now have corresponding individual handler setters |
|||
o XML_GetInputContext for getting the input context of |
|||
the current parse position. |
|||
- Added reference material |
|||
- Packaged into a distribution that builds a sharable library |
|||
@ -1,72 +0,0 @@ |
|||
|
|||
Expat, Release 1.95.2 |
|||
|
|||
This is expat, a C library for parsing XML, written by James Clark. |
|||
Expat is a stream-oriented XML parser. This means that you register |
|||
handlers with the parser before starting the parse. These handlers |
|||
are called when the parser discovers the associated structures in the |
|||
document being parsed. A start tag is an example of the kind of |
|||
structures for which you may register handlers. |
|||
|
|||
Windows users should use the expat_win32bin package, which includes |
|||
both precompiled libraries and executalbes, and source code for |
|||
developers. |
|||
|
|||
Expat is free software. You may copy, distribute, and modify it under |
|||
the terms of the License contained in the file COPYING distributed |
|||
with this package. This license is the same as the MIT/X Consortium |
|||
license. |
|||
|
|||
Versions of expat that have an odd minor version (the middle number in |
|||
the release above), are development releases and should be considered |
|||
as beta software. Releases with even minor version numbers are |
|||
intended to be production grade software. |
|||
|
|||
To build expat, you first run the configuration shell script in the |
|||
top level distribution directory: |
|||
|
|||
./configure |
|||
|
|||
There are many options which you may provide to configure (which you |
|||
can discover by running configure with the --help option). But the |
|||
one of most interest is the one that sets the installation directory. |
|||
By default, the configure script will set things up to install |
|||
libexpat into /usr/local/lib, expat.h into /usr/local/include, and |
|||
xmlwf into /usr/local/bin. If, for example, you'd prefer to install |
|||
into /home/me/mystuff/lib, /home/me/mystuff/include, and |
|||
/home/me/mystuff/bin, you can tell configure about that with: |
|||
|
|||
./configure --prefix=/home/me/mystuff |
|||
|
|||
After running the configure script, the "make" command will build |
|||
things and "make install" will install things into their proper |
|||
location. Note that you need to have write permission into the |
|||
directories into which things will be installed. |
|||
|
|||
When building for use with C++, you may need to add additional |
|||
compiler flags to support proper interaction with exceptions. This |
|||
can be done by setting the CFLAGS environment variable. For example, |
|||
when using GCC, you can use: |
|||
|
|||
CFLAGS=-fexceptions ./configure |
|||
|
|||
Note for Solaris users: The "ar" command is usually located in |
|||
"/usr/ccs/bin", which is not in the default PATH. You will need to |
|||
add this to your path for the "make" command, and probably also switch |
|||
to GNU make (the "make" found in /usr/ccs/bin does not seem to work |
|||
properly -- appearantly it does not understand .PHONY directives). If |
|||
you're using ksh or bash, use this command to build: |
|||
|
|||
PATH=/usr/ccs/bin:$PATH make |
|||
|
|||
A reference manual is available in the file doc/reference.html in this |
|||
distribution. |
|||
|
|||
The homepage for this project is http://expat.sourceforge.net/. There |
|||
are links there to connect you to the bug reports page. If you need |
|||
to report a bug when you don't have access to a browser, you may also |
|||
send a bug report by email to expat-bugs@lists.sourceforge.net. |
|||
|
|||
Discussion related to the direction of future expat development takes |
|||
place on expat-discuss@lists.sourceforge.net. Archives of this list |
|||
may be found at http://www.geocrawler.com/redir-sf.php3?list=expat-discuss. |
|||
@ -1,11 +0,0 @@ |
|||
this is the PHP-bundled version of expat 1.95.1 |
|||
|
|||
changes from the original version: |
|||
- include <php_config.h> instead of <config.h> |
|||
- include "php_compat.h" for namespace protection |
|||
- hardcode version in xmlparse.c |
|||
- stripped off all unneded files |
|||
|
|||
|
|||
thies@thieso.net, 11th May, 2001 |
|||
|
|||
@ -1,85 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
#define ASCII_A 0x41 |
|||
#define ASCII_B 0x42 |
|||
#define ASCII_C 0x43 |
|||
#define ASCII_D 0x44 |
|||
#define ASCII_E 0x45 |
|||
#define ASCII_F 0x46 |
|||
#define ASCII_G 0x47 |
|||
#define ASCII_H 0x48 |
|||
#define ASCII_I 0x49 |
|||
#define ASCII_J 0x4A |
|||
#define ASCII_K 0x4B |
|||
#define ASCII_L 0x4C |
|||
#define ASCII_M 0x4D |
|||
#define ASCII_N 0x4E |
|||
#define ASCII_O 0x4F |
|||
#define ASCII_P 0x50 |
|||
#define ASCII_Q 0x51 |
|||
#define ASCII_R 0x52 |
|||
#define ASCII_S 0x53 |
|||
#define ASCII_T 0x54 |
|||
#define ASCII_U 0x55 |
|||
#define ASCII_V 0x56 |
|||
#define ASCII_W 0x57 |
|||
#define ASCII_X 0x58 |
|||
#define ASCII_Y 0x59 |
|||
#define ASCII_Z 0x5A |
|||
|
|||
#define ASCII_a 0x61 |
|||
#define ASCII_b 0x62 |
|||
#define ASCII_c 0x63 |
|||
#define ASCII_d 0x64 |
|||
#define ASCII_e 0x65 |
|||
#define ASCII_f 0x66 |
|||
#define ASCII_g 0x67 |
|||
#define ASCII_h 0x68 |
|||
#define ASCII_i 0x69 |
|||
#define ASCII_j 0x6A |
|||
#define ASCII_k 0x6B |
|||
#define ASCII_l 0x6C |
|||
#define ASCII_m 0x6D |
|||
#define ASCII_n 0x6E |
|||
#define ASCII_o 0x6F |
|||
#define ASCII_p 0x70 |
|||
#define ASCII_q 0x71 |
|||
#define ASCII_r 0x72 |
|||
#define ASCII_s 0x73 |
|||
#define ASCII_t 0x74 |
|||
#define ASCII_u 0x75 |
|||
#define ASCII_v 0x76 |
|||
#define ASCII_w 0x77 |
|||
#define ASCII_x 0x78 |
|||
#define ASCII_y 0x79 |
|||
#define ASCII_z 0x7A |
|||
|
|||
#define ASCII_0 0x30 |
|||
#define ASCII_1 0x31 |
|||
#define ASCII_2 0x32 |
|||
#define ASCII_3 0x33 |
|||
#define ASCII_4 0x34 |
|||
#define ASCII_5 0x35 |
|||
#define ASCII_6 0x36 |
|||
#define ASCII_7 0x37 |
|||
#define ASCII_8 0x38 |
|||
#define ASCII_9 0x39 |
|||
|
|||
#define ASCII_TAB 0x09 |
|||
#define ASCII_SPACE 0x20 |
|||
#define ASCII_EXCL 0x21 |
|||
#define ASCII_QUOT 0x22 |
|||
#define ASCII_AMP 0x26 |
|||
#define ASCII_APOS 0x27 |
|||
#define ASCII_MINUS 0x2D |
|||
#define ASCII_PERIOD 0x2E |
|||
#define ASCII_COLON 0x3A |
|||
#define ASCII_SEMI 0x3B |
|||
#define ASCII_LT 0x3C |
|||
#define ASCII_EQUALS 0x3D |
|||
#define ASCII_GT 0x3E |
|||
#define ASCII_LSQB 0x5B |
|||
#define ASCII_RSQB 0x5D |
|||
#define ASCII_UNDERSCORE 0x5F |
|||
@ -1,36 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
/* 0x00 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, |
|||
/* 0x0C */ BT_NONXML, BT_CR, BT_NONXML, BT_NONXML, |
|||
/* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, |
|||
/* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, |
|||
/* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, |
|||
/* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, |
|||
/* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, |
|||
/* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, |
|||
/* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, |
|||
/* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, |
|||
/* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, |
|||
/* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, |
|||
/* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, |
|||
/* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, |
|||
/* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, |
|||
/* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, |
|||
/* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, |
|||
/* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
@ -1,910 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
#ifndef XmlParse_INCLUDED |
|||
#define XmlParse_INCLUDED 1 |
|||
|
|||
#ifdef __VMS |
|||
/* 0 1 2 3 0 1 2 3 |
|||
1234567890123456789012345678901 1234567890123456789012345678901 */ |
|||
#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler |
|||
#define XML_SetUnparsedEntityDeclHandler XML_SetUnparsedEntDeclHandler |
|||
#define XML_SetStartNamespaceDeclHandler XML_SetStartNamespcDeclHandler |
|||
#define XML_SetExternalEntityRefHandlerArg XML_SetExternalEntRefHandlerArg |
|||
#endif |
|||
|
|||
#include <stdlib.h> |
|||
#include "php_compat.h" |
|||
|
|||
#ifndef XMLPARSEAPI |
|||
#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__) |
|||
#ifdef PHP_EXPORTS |
|||
#define XMLPARSEAPI(type) type __cdecl |
|||
#else |
|||
#define XMLPARSEAPI(type) __declspec(dllimport) type __cdecl |
|||
#endif |
|||
#else |
|||
#define XMLPARSEAPI(type) type |
|||
#endif |
|||
#endif /* not defined XMLPARSEAPI */ |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
#ifdef XML_UNICODE_WCHAR_T |
|||
#define XML_UNICODE |
|||
#endif |
|||
|
|||
struct XML_ParserStruct; |
|||
typedef struct XML_ParserStruct *XML_Parser; |
|||
|
|||
#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ |
|||
#ifdef XML_UNICODE_WCHAR_T |
|||
typedef wchar_t XML_Char; |
|||
typedef wchar_t XML_LChar; |
|||
#else |
|||
typedef unsigned short XML_Char; |
|||
typedef char XML_LChar; |
|||
#endif /* XML_UNICODE_WCHAR_T */ |
|||
#else /* Information is UTF-8 encoded. */ |
|||
typedef char XML_Char; |
|||
typedef char XML_LChar; |
|||
#endif /* XML_UNICODE */ |
|||
|
|||
/* Should this be defined using stdbool.h when C99 is available? */ |
|||
typedef unsigned char XML_Bool; |
|||
#define XML_TRUE ((XML_Bool) 1) |
|||
#define XML_FALSE ((XML_Bool) 0) |
|||
|
|||
enum XML_Error { |
|||
XML_ERROR_NONE, |
|||
XML_ERROR_NO_MEMORY, |
|||
XML_ERROR_SYNTAX, |
|||
XML_ERROR_NO_ELEMENTS, |
|||
XML_ERROR_INVALID_TOKEN, |
|||
XML_ERROR_UNCLOSED_TOKEN, |
|||
XML_ERROR_PARTIAL_CHAR, |
|||
XML_ERROR_TAG_MISMATCH, |
|||
XML_ERROR_DUPLICATE_ATTRIBUTE, |
|||
XML_ERROR_JUNK_AFTER_DOC_ELEMENT, |
|||
XML_ERROR_PARAM_ENTITY_REF, |
|||
XML_ERROR_UNDEFINED_ENTITY, |
|||
XML_ERROR_RECURSIVE_ENTITY_REF, |
|||
XML_ERROR_ASYNC_ENTITY, |
|||
XML_ERROR_BAD_CHAR_REF, |
|||
XML_ERROR_BINARY_ENTITY_REF, |
|||
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, |
|||
XML_ERROR_MISPLACED_XML_PI, |
|||
XML_ERROR_UNKNOWN_ENCODING, |
|||
XML_ERROR_INCORRECT_ENCODING, |
|||
XML_ERROR_UNCLOSED_CDATA_SECTION, |
|||
XML_ERROR_EXTERNAL_ENTITY_HANDLING, |
|||
XML_ERROR_NOT_STANDALONE, |
|||
XML_ERROR_UNEXPECTED_STATE, |
|||
XML_ERROR_ENTITY_DECLARED_IN_PE, |
|||
XML_ERROR_FEATURE_REQUIRES_XML_DTD, |
|||
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING |
|||
}; |
|||
|
|||
enum XML_Content_Type { |
|||
XML_CTYPE_EMPTY = 1, |
|||
XML_CTYPE_ANY, |
|||
XML_CTYPE_MIXED, |
|||
XML_CTYPE_NAME, |
|||
XML_CTYPE_CHOICE, |
|||
XML_CTYPE_SEQ |
|||
}; |
|||
|
|||
enum XML_Content_Quant { |
|||
XML_CQUANT_NONE, |
|||
XML_CQUANT_OPT, |
|||
XML_CQUANT_REP, |
|||
XML_CQUANT_PLUS |
|||
}; |
|||
|
|||
/* If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be |
|||
XML_CQUANT_NONE, and the other fields will be zero or NULL. |
|||
If type == XML_CTYPE_MIXED, then quant will be NONE or REP and |
|||
numchildren will contain number of elements that may be mixed in |
|||
and children point to an array of XML_Content cells that will be |
|||
all of XML_CTYPE_NAME type with no quantification. |
|||
|
|||
If type == XML_CTYPE_NAME, then the name points to the name, and |
|||
the numchildren field will be zero and children will be NULL. The |
|||
quant fields indicates any quantifiers placed on the name. |
|||
|
|||
CHOICE and SEQ will have name NULL, the number of children in |
|||
numchildren and children will point, recursively, to an array |
|||
of XML_Content cells. |
|||
|
|||
The EMPTY, ANY, and MIXED types will only occur at top level. |
|||
*/ |
|||
|
|||
typedef struct XML_cp XML_Content; |
|||
|
|||
struct XML_cp { |
|||
enum XML_Content_Type type; |
|||
enum XML_Content_Quant quant; |
|||
XML_Char * name; |
|||
unsigned int numchildren; |
|||
XML_Content * children; |
|||
}; |
|||
|
|||
|
|||
/* This is called for an element declaration. See above for |
|||
description of the model argument. It's the caller's responsibility |
|||
to free model when finished with it. |
|||
*/ |
|||
typedef void (*XML_ElementDeclHandler) (void *userData, |
|||
const XML_Char *name, |
|||
XML_Content *model); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetElementDeclHandler(XML_Parser parser, |
|||
XML_ElementDeclHandler eldecl); |
|||
|
|||
/* The Attlist declaration handler is called for *each* attribute. So |
|||
a single Attlist declaration with multiple attributes declared will |
|||
generate multiple calls to this handler. The "default" parameter |
|||
may be NULL in the case of the "#IMPLIED" or "#REQUIRED" |
|||
keyword. The "isrequired" parameter will be true and the default |
|||
value will be NULL in the case of "#REQUIRED". If "isrequired" is |
|||
true and default is non-NULL, then this is a "#FIXED" default. |
|||
*/ |
|||
typedef void (*XML_AttlistDeclHandler) (void *userData, |
|||
const XML_Char *elname, |
|||
const XML_Char *attname, |
|||
const XML_Char *att_type, |
|||
const XML_Char *dflt, |
|||
int isrequired); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetAttlistDeclHandler(XML_Parser parser, |
|||
XML_AttlistDeclHandler attdecl); |
|||
|
|||
/* The XML declaration handler is called for *both* XML declarations |
|||
and text declarations. The way to distinguish is that the version |
|||
parameter will be NULL for text declarations. The encoding |
|||
parameter may be NULL for XML declarations. The standalone |
|||
parameter will be -1, 0, or 1 indicating respectively that there |
|||
was no standalone parameter in the declaration, that it was given |
|||
as no, or that it was given as yes. |
|||
*/ |
|||
typedef void (*XML_XmlDeclHandler) (void *userData, |
|||
const XML_Char *version, |
|||
const XML_Char *encoding, |
|||
int standalone); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetXmlDeclHandler(XML_Parser parser, |
|||
XML_XmlDeclHandler xmldecl); |
|||
|
|||
|
|||
typedef struct { |
|||
void *(*malloc_fcn)(size_t size); |
|||
void *(*realloc_fcn)(void *ptr, size_t size); |
|||
void (*free_fcn)(void *ptr); |
|||
} XML_Memory_Handling_Suite; |
|||
|
|||
/* Constructs a new parser; encoding is the encoding specified by the |
|||
external protocol or NULL if there is none specified. |
|||
*/ |
|||
XMLPARSEAPI(XML_Parser) |
|||
XML_ParserCreate(const XML_Char *encoding); |
|||
|
|||
/* Constructs a new parser and namespace processor. Element type |
|||
names and attribute names that belong to a namespace will be |
|||
expanded; unprefixed attribute names are never expanded; unprefixed |
|||
element type names are expanded only if there is a default |
|||
namespace. The expanded name is the concatenation of the namespace |
|||
URI, the namespace separator character, and the local part of the |
|||
name. If the namespace separator is '\0' then the namespace URI |
|||
and the local part will be concatenated without any separator. |
|||
When a namespace is not declared, the name and prefix will be |
|||
passed through without expansion. |
|||
*/ |
|||
XMLPARSEAPI(XML_Parser) |
|||
XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); |
|||
|
|||
|
|||
/* Constructs a new parser using the memory management suit referred to |
|||
by memsuite. If memsuite is NULL, then use the standard library memory |
|||
suite. If namespaceSeparator is non-NULL it creates a parser with |
|||
namespace processing as described above. The character pointed at |
|||
will serve as the namespace separator. |
|||
|
|||
All further memory operations used for the created parser will come from |
|||
the given suite. |
|||
*/ |
|||
XMLPARSEAPI(XML_Parser) |
|||
XML_ParserCreate_MM(const XML_Char *encoding, |
|||
const XML_Memory_Handling_Suite *memsuite, |
|||
const XML_Char *namespaceSeparator); |
|||
|
|||
/* Prepare a parser object to be re-used. This is particularly |
|||
valuable when memory allocation overhead is disproportionatly high, |
|||
such as when a large number of small documnents need to be parsed. |
|||
All handlers are cleared from the parser, except for the |
|||
unknownEncodingHandler. The parser's external state is re-initialized |
|||
except for the values of ns and ns_triplets. |
|||
|
|||
Added in Expat 1.95.3. |
|||
*/ |
|||
XMLPARSEAPI(XML_Bool) |
|||
XML_ParserReset(XML_Parser parser, const XML_Char *encoding); |
|||
|
|||
/* atts is array of name/value pairs, terminated by 0; |
|||
names and values are 0 terminated. |
|||
*/ |
|||
typedef void (*XML_StartElementHandler)(void *userData, |
|||
const XML_Char *name, |
|||
const XML_Char **atts); |
|||
|
|||
typedef void (*XML_EndElementHandler)(void *userData, |
|||
const XML_Char *name); |
|||
|
|||
|
|||
/* s is not 0 terminated. */ |
|||
typedef void (*XML_CharacterDataHandler)(void *userData, |
|||
const XML_Char *s, |
|||
int len); |
|||
|
|||
/* target and data are 0 terminated */ |
|||
typedef void (*XML_ProcessingInstructionHandler)(void *userData, |
|||
const XML_Char *target, |
|||
const XML_Char *data); |
|||
|
|||
/* data is 0 terminated */ |
|||
typedef void (*XML_CommentHandler)(void *userData, const XML_Char *data); |
|||
|
|||
typedef void (*XML_StartCdataSectionHandler)(void *userData); |
|||
typedef void (*XML_EndCdataSectionHandler)(void *userData); |
|||
|
|||
/* This is called for any characters in the XML document for which |
|||
there is no applicable handler. This includes both characters that |
|||
are part of markup which is of a kind that is not reported |
|||
(comments, markup declarations), or characters that are part of a |
|||
construct which could be reported but for which no handler has been |
|||
supplied. The characters are passed exactly as they were in the XML |
|||
document except that they will be encoded in UTF-8 or UTF-16. |
|||
Line boundaries are not normalized. Note that a byte order mark |
|||
character is not passed to the default handler. There are no |
|||
guarantees about how characters are divided between calls to the |
|||
default handler: for example, a comment might be split between |
|||
multiple calls. |
|||
*/ |
|||
typedef void (*XML_DefaultHandler)(void *userData, |
|||
const XML_Char *s, |
|||
int len); |
|||
|
|||
/* This is called for the start of the DOCTYPE declaration, before |
|||
any DTD or internal subset is parsed. |
|||
*/ |
|||
typedef void (*XML_StartDoctypeDeclHandler)(void *userData, |
|||
const XML_Char *doctypeName, |
|||
const XML_Char *sysid, |
|||
const XML_Char *pubid, |
|||
int has_internal_subset); |
|||
|
|||
/* This is called for the start of the DOCTYPE declaration when the |
|||
closing > is encountered, but after processing any external |
|||
subset. |
|||
*/ |
|||
typedef void (*XML_EndDoctypeDeclHandler)(void *userData); |
|||
|
|||
/* This is called for entity declarations. The is_parameter_entity |
|||
argument will be non-zero if the entity is a parameter entity, zero |
|||
otherwise. |
|||
|
|||
For internal entities (<!ENTITY foo "bar">), value will |
|||
be non-NULL and systemId, publicID, and notationName will be NULL. |
|||
The value string is NOT nul-terminated; the length is provided in |
|||
the value_length argument. Since it is legal to have zero-length |
|||
values, do not use this argument to test for internal entities. |
|||
|
|||
For external entities, value will be NULL and systemId will be |
|||
non-NULL. The publicId argument will be NULL unless a public |
|||
identifier was provided. The notationName argument will have a |
|||
non-NULL value only for unparsed entity declarations. |
|||
|
|||
Note that is_parameter_entity can't be changed to XML_Bool, since |
|||
that would break binary compatibility. |
|||
*/ |
|||
typedef void (*XML_EntityDeclHandler) (void *userData, |
|||
const XML_Char *entityName, |
|||
int is_parameter_entity, |
|||
const XML_Char *value, |
|||
int value_length, |
|||
const XML_Char *base, |
|||
const XML_Char *systemId, |
|||
const XML_Char *publicId, |
|||
const XML_Char *notationName); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetEntityDeclHandler(XML_Parser parser, |
|||
XML_EntityDeclHandler handler); |
|||
|
|||
/* OBSOLETE -- OBSOLETE -- OBSOLETE |
|||
This handler has been superceded by the EntityDeclHandler above. |
|||
It is provided here for backward compatibility. |
|||
|
|||
This is called for a declaration of an unparsed (NDATA) entity. |
|||
The base argument is whatever was set by XML_SetBase. The |
|||
entityName, systemId and notationName arguments will never be |
|||
NULL. The other arguments may be. |
|||
*/ |
|||
typedef void (*XML_UnparsedEntityDeclHandler)(void *userData, |
|||
const XML_Char *entityName, |
|||
const XML_Char *base, |
|||
const XML_Char *systemId, |
|||
const XML_Char *publicId, |
|||
const XML_Char *notationName); |
|||
|
|||
/* This is called for a declaration of notation. The base argument is |
|||
whatever was set by XML_SetBase. The notationName will never be |
|||
NULL. The other arguments can be. |
|||
*/ |
|||
typedef void (*XML_NotationDeclHandler)(void *userData, |
|||
const XML_Char *notationName, |
|||
const XML_Char *base, |
|||
const XML_Char *systemId, |
|||
const XML_Char *publicId); |
|||
|
|||
/* When namespace processing is enabled, these are called once for |
|||
each namespace declaration. The call to the start and end element |
|||
handlers occur between the calls to the start and end namespace |
|||
declaration handlers. For an xmlns attribute, prefix will be |
|||
NULL. For an xmlns="" attribute, uri will be NULL. |
|||
*/ |
|||
typedef void (*XML_StartNamespaceDeclHandler)(void *userData, |
|||
const XML_Char *prefix, |
|||
const XML_Char *uri); |
|||
|
|||
typedef void (*XML_EndNamespaceDeclHandler)(void *userData, |
|||
const XML_Char *prefix); |
|||
|
|||
/* This is called if the document is not standalone, that is, it has an |
|||
external subset or a reference to a parameter entity, but does not |
|||
have standalone="yes". If this handler returns 0, then processing |
|||
will not continue, and the parser will return a |
|||
XML_ERROR_NOT_STANDALONE error. |
|||
If parameter entity parsing is enabled, then in addition to the |
|||
conditions above this handler will only be called if the referenced |
|||
entity was actually read. |
|||
*/ |
|||
typedef int (*XML_NotStandaloneHandler)(void *userData); |
|||
|
|||
/* This is called for a reference to an external parsed general |
|||
entity. The referenced entity is not automatically parsed. The |
|||
application can parse it immediately or later using |
|||
XML_ExternalEntityParserCreate. |
|||
|
|||
The parser argument is the parser parsing the entity containing the |
|||
reference; it can be passed as the parser argument to |
|||
XML_ExternalEntityParserCreate. The systemId argument is the |
|||
system identifier as specified in the entity declaration; it will |
|||
not be NULL. |
|||
|
|||
The base argument is the system identifier that should be used as |
|||
the base for resolving systemId if systemId was relative; this is |
|||
set by XML_SetBase; it may be NULL. |
|||
|
|||
The publicId argument is the public identifier as specified in the |
|||
entity declaration, or NULL if none was specified; the whitespace |
|||
in the public identifier will have been normalized as required by |
|||
the XML spec. |
|||
|
|||
The context argument specifies the parsing context in the format |
|||
expected by the context argument to XML_ExternalEntityParserCreate; |
|||
context is valid only until the handler returns, so if the |
|||
referenced entity is to be parsed later, it must be copied. |
|||
|
|||
The handler should return 0 if processing should not continue |
|||
because of a fatal error in the handling of the external entity. |
|||
In this case the calling parser will return an |
|||
XML_ERROR_EXTERNAL_ENTITY_HANDLING error. |
|||
|
|||
Note that unlike other handlers the first argument is the parser, |
|||
not userData. |
|||
*/ |
|||
typedef int (*XML_ExternalEntityRefHandler)(XML_Parser parser, |
|||
const XML_Char *context, |
|||
const XML_Char *base, |
|||
const XML_Char *systemId, |
|||
const XML_Char *publicId); |
|||
|
|||
/* This is called in two situations: |
|||
1) An entity reference is encountered for which no declaration |
|||
has been read *and* this is not an error. |
|||
2) An internal entity reference is read, but not expanded, because |
|||
XML_SetDefaultHandler has been called. |
|||
Note: skipped parameter entities in declarations and skipped general |
|||
entities in attribute values cannot be reported, because |
|||
the event would be out of sync with the reporting of the |
|||
declarations or attribute values |
|||
*/ |
|||
typedef void (*XML_SkippedEntityHandler)(void *userData, |
|||
const XML_Char *entityName, |
|||
int is_parameter_entity); |
|||
|
|||
/* This structure is filled in by the XML_UnknownEncodingHandler to |
|||
provide information to the parser about encodings that are unknown |
|||
to the parser. |
|||
|
|||
The map[b] member gives information about byte sequences whose |
|||
first byte is b. |
|||
|
|||
If map[b] is c where c is >= 0, then b by itself encodes the |
|||
Unicode scalar value c. |
|||
|
|||
If map[b] is -1, then the byte sequence is malformed. |
|||
|
|||
If map[b] is -n, where n >= 2, then b is the first byte of an |
|||
n-byte sequence that encodes a single Unicode scalar value. |
|||
|
|||
The data member will be passed as the first argument to the convert |
|||
function. |
|||
|
|||
The convert function is used to convert multibyte sequences; s will |
|||
point to a n-byte sequence where map[(unsigned char)*s] == -n. The |
|||
convert function must return the Unicode scalar value represented |
|||
by this byte sequence or -1 if the byte sequence is malformed. |
|||
|
|||
The convert function may be NULL if the encoding is a single-byte |
|||
encoding, that is if map[b] >= -1 for all bytes b. |
|||
|
|||
When the parser is finished with the encoding, then if release is |
|||
not NULL, it will call release passing it the data member; once |
|||
release has been called, the convert function will not be called |
|||
again. |
|||
|
|||
Expat places certain restrictions on the encodings that are supported |
|||
using this mechanism. |
|||
|
|||
1. Every ASCII character that can appear in a well-formed XML document, |
|||
other than the characters |
|||
|
|||
$@\^`{}~ |
|||
|
|||
must be represented by a single byte, and that byte must be the |
|||
same byte that represents that character in ASCII. |
|||
|
|||
2. No character may require more than 4 bytes to encode. |
|||
|
|||
3. All characters encoded must have Unicode scalar values <= |
|||
0xFFFF, (i.e., characters that would be encoded by surrogates in |
|||
UTF-16 are not allowed). Note that this restriction doesn't |
|||
apply to the built-in support for UTF-8 and UTF-16. |
|||
|
|||
4. No Unicode character may be encoded by more than one distinct |
|||
sequence of bytes. |
|||
*/ |
|||
typedef struct { |
|||
int map[256]; |
|||
void *data; |
|||
int (*convert)(void *data, const char *s); |
|||
void (*release)(void *data); |
|||
} XML_Encoding; |
|||
|
|||
/* This is called for an encoding that is unknown to the parser. |
|||
|
|||
The encodingHandlerData argument is that which was passed as the |
|||
second argument to XML_SetUnknownEncodingHandler. |
|||
|
|||
The name argument gives the name of the encoding as specified in |
|||
the encoding declaration. |
|||
|
|||
If the callback can provide information about the encoding, it must |
|||
fill in the XML_Encoding structure, and return 1. Otherwise it |
|||
must return 0. |
|||
|
|||
If info does not describe a suitable encoding, then the parser will |
|||
return an XML_UNKNOWN_ENCODING error. |
|||
*/ |
|||
typedef int (*XML_UnknownEncodingHandler)(void *encodingHandlerData, |
|||
const XML_Char *name, |
|||
XML_Encoding *info); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetElementHandler(XML_Parser parser, |
|||
XML_StartElementHandler start, |
|||
XML_EndElementHandler end); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetStartElementHandler(XML_Parser, XML_StartElementHandler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetEndElementHandler(XML_Parser, XML_EndElementHandler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetCharacterDataHandler(XML_Parser parser, |
|||
XML_CharacterDataHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetProcessingInstructionHandler(XML_Parser parser, |
|||
XML_ProcessingInstructionHandler handler); |
|||
XMLPARSEAPI(void) |
|||
XML_SetCommentHandler(XML_Parser parser, |
|||
XML_CommentHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetCdataSectionHandler(XML_Parser parser, |
|||
XML_StartCdataSectionHandler start, |
|||
XML_EndCdataSectionHandler end); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetStartCdataSectionHandler(XML_Parser parser, |
|||
XML_StartCdataSectionHandler start); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetEndCdataSectionHandler(XML_Parser parser, |
|||
XML_EndCdataSectionHandler end); |
|||
|
|||
/* This sets the default handler and also inhibits expansion of |
|||
internal entities. These entity references will be passed to the |
|||
default handler, or to the skipped entity handler, if one is set. |
|||
*/ |
|||
XMLPARSEAPI(void) |
|||
XML_SetDefaultHandler(XML_Parser parser, |
|||
XML_DefaultHandler handler); |
|||
|
|||
/* This sets the default handler but does not inhibit expansion of |
|||
internal entities. The entity reference will not be passed to the |
|||
default handler. |
|||
*/ |
|||
XMLPARSEAPI(void) |
|||
XML_SetDefaultHandlerExpand(XML_Parser parser, |
|||
XML_DefaultHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetDoctypeDeclHandler(XML_Parser parser, |
|||
XML_StartDoctypeDeclHandler start, |
|||
XML_EndDoctypeDeclHandler end); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetStartDoctypeDeclHandler(XML_Parser parser, |
|||
XML_StartDoctypeDeclHandler start); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetEndDoctypeDeclHandler(XML_Parser parser, |
|||
XML_EndDoctypeDeclHandler end); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetUnparsedEntityDeclHandler(XML_Parser parser, |
|||
XML_UnparsedEntityDeclHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetNotationDeclHandler(XML_Parser parser, |
|||
XML_NotationDeclHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetNamespaceDeclHandler(XML_Parser parser, |
|||
XML_StartNamespaceDeclHandler start, |
|||
XML_EndNamespaceDeclHandler end); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetStartNamespaceDeclHandler(XML_Parser parser, |
|||
XML_StartNamespaceDeclHandler start); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetEndNamespaceDeclHandler(XML_Parser parser, |
|||
XML_EndNamespaceDeclHandler end); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetNotStandaloneHandler(XML_Parser parser, |
|||
XML_NotStandaloneHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetExternalEntityRefHandler(XML_Parser parser, |
|||
XML_ExternalEntityRefHandler handler); |
|||
|
|||
/* If a non-NULL value for arg is specified here, then it will be |
|||
passed as the first argument to the external entity ref handler |
|||
instead of the parser object. |
|||
*/ |
|||
XMLPARSEAPI(void) |
|||
XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetSkippedEntityHandler(XML_Parser parser, |
|||
XML_SkippedEntityHandler handler); |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetUnknownEncodingHandler(XML_Parser parser, |
|||
XML_UnknownEncodingHandler handler, |
|||
void *encodingHandlerData); |
|||
|
|||
/* This can be called within a handler for a start element, end |
|||
element, processing instruction or character data. It causes the |
|||
corresponding markup to be passed to the default handler. |
|||
*/ |
|||
XMLPARSEAPI(void) |
|||
XML_DefaultCurrent(XML_Parser parser); |
|||
|
|||
/* If do_nst is non-zero, and namespace processing is in effect, and |
|||
a name has a prefix (i.e. an explicit namespace qualifier) then |
|||
that name is returned as a triplet in a single string separated by |
|||
the separator character specified when the parser was created: URI |
|||
+ sep + local_name + sep + prefix. |
|||
|
|||
If do_nst is zero, then namespace information is returned in the |
|||
default manner (URI + sep + local_name) whether or not the name |
|||
has a prefix. |
|||
|
|||
Note: Calling XML_SetReturnNSTriplet after XML_Parse or |
|||
XML_ParseBuffer has no effect. |
|||
*/ |
|||
|
|||
XMLPARSEAPI(void) |
|||
XML_SetReturnNSTriplet(XML_Parser parser, int do_nst); |
|||
|
|||
/* This value is passed as the userData argument to callbacks. */ |
|||
XMLPARSEAPI(void) |
|||
XML_SetUserData(XML_Parser parser, void *userData); |
|||
|
|||
/* Returns the last value set by XML_SetUserData or NULL. */ |
|||
#define XML_GetUserData(parser) (*(void **)(parser)) |
|||
|
|||
/* This is equivalent to supplying an encoding argument to |
|||
XML_ParserCreate. On success XML_SetEncoding returns non-zero, |
|||
zero otherwise. |
|||
Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer |
|||
has no effect and returns zero. |
|||
*/ |
|||
XMLPARSEAPI(int) |
|||
XML_SetEncoding(XML_Parser parser, const XML_Char *encoding); |
|||
|
|||
/* If this function is called, then the parser will be passed as the |
|||
first argument to callbacks instead of userData. The userData will |
|||
still be accessible using XML_GetUserData. |
|||
*/ |
|||
XMLPARSEAPI(void) |
|||
XML_UseParserAsHandlerArg(XML_Parser parser); |
|||
|
|||
/* If useDTD == XML_TRUE is passed to this function, then the parser |
|||
will assume that there is an external subset, even if none is |
|||
specified in the document. In such a case the parser will call the |
|||
externalEntityRefHandler with a value of NULL for the systemId |
|||
argument (the publicId and context arguments will be NULL as well). |
|||
Note: If this function is called, then this must be done before |
|||
the first call to XML_Parse or XML_ParseBuffer, since it will |
|||
have no effect after that. Returns |
|||
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. |
|||
Note: If the document does not have a DOCTYPE declaration at all, |
|||
then startDoctypeDeclHandler and endDoctypeDeclHandler will not |
|||
be called, despite an external subset being parsed. |
|||
Note: If XML_DTD is not defined when Expat is compiled, returns |
|||
XML_ERROR_FEATURE_REQUIRES_XML_DTD. |
|||
*/ |
|||
XMLPARSEAPI(enum XML_Error) |
|||
XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); |
|||
|
|||
|
|||
/* Sets the base to be used for resolving relative URIs in system |
|||
identifiers in declarations. Resolving relative identifiers is |
|||
left to the application: this value will be passed through as the |
|||
base argument to the XML_ExternalEntityRefHandler, |
|||
XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base |
|||
argument will be copied. Returns zero if out of memory, non-zero |
|||
otherwise. |
|||
*/ |
|||
XMLPARSEAPI(int) |
|||
XML_SetBase(XML_Parser parser, const XML_Char *base); |
|||
|
|||
XMLPARSEAPI(const XML_Char *) |
|||
XML_GetBase(XML_Parser parser); |
|||
|
|||
/* Returns the number of the attribute/value pairs passed in last call |
|||
to the XML_StartElementHandler that were specified in the start-tag |
|||
rather than defaulted. Each attribute/value pair counts as 2; thus |
|||
this correspondds to an index into the atts array passed to the |
|||
XML_StartElementHandler. |
|||
*/ |
|||
XMLPARSEAPI(int) |
|||
XML_GetSpecifiedAttributeCount(XML_Parser parser); |
|||
|
|||
/* Returns the index of the ID attribute passed in the last call to |
|||
XML_StartElementHandler, or -1 if there is no ID attribute. Each |
|||
attribute/value pair counts as 2; thus this correspondds to an |
|||
index into the atts array passed to the XML_StartElementHandler. |
|||
*/ |
|||
XMLPARSEAPI(int) |
|||
XML_GetIdAttributeIndex(XML_Parser parser); |
|||
|
|||
/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is |
|||
detected. The last call to XML_Parse must have isFinal true; len |
|||
may be zero for this call (or any other). |
|||
|
|||
The XML_Status enum gives the possible return values for the |
|||
XML_Parse and XML_ParseBuffer functions. Though the return values |
|||
for these functions has always been described as a Boolean value, |
|||
the implementation, at least for the 1.95.x series, has always |
|||
returned exactly one of these values. The preprocessor #defines |
|||
are included so this stanza can be added to code that still needs |
|||
to support older versions of Expat 1.95.x: |
|||
|
|||
#ifndef XML_STATUS_OK |
|||
#define XML_STATUS_OK 1 |
|||
#define XML_STATUS_ERROR 0 |
|||
#endif |
|||
|
|||
Otherwise, the #define hackery is quite ugly and would have been dropped. |
|||
*/ |
|||
enum XML_Status { |
|||
XML_STATUS_ERROR = 0, |
|||
#define XML_STATUS_ERROR XML_STATUS_ERROR |
|||
XML_STATUS_OK = 1 |
|||
#define XML_STATUS_OK XML_STATUS_OK |
|||
}; |
|||
|
|||
XMLPARSEAPI(enum XML_Status) |
|||
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal); |
|||
|
|||
XMLPARSEAPI(void *) |
|||
XML_GetBuffer(XML_Parser parser, int len); |
|||
|
|||
XMLPARSEAPI(enum XML_Status) |
|||
XML_ParseBuffer(XML_Parser parser, int len, int isFinal); |
|||
|
|||
/* Creates an XML_Parser object that can parse an external general |
|||
entity; context is a '\0'-terminated string specifying the parse |
|||
context; encoding is a '\0'-terminated string giving the name of |
|||
the externally specified encoding, or NULL if there is no |
|||
externally specified encoding. The context string consists of a |
|||
sequence of tokens separated by formfeeds (\f); a token consisting |
|||
of a name specifies that the general entity of the name is open; a |
|||
token of the form prefix=uri specifies the namespace for a |
|||
particular prefix; a token of the form =uri specifies the default |
|||
namespace. This can be called at any point after the first call to |
|||
an ExternalEntityRefHandler so longer as the parser has not yet |
|||
been freed. The new parser is completely independent and may |
|||
safely be used in a separate thread. The handlers and userData are |
|||
initialized from the parser argument. Returns 0 if out of memory. |
|||
Otherwise returns a new XML_Parser object. |
|||
*/ |
|||
XMLPARSEAPI(XML_Parser) |
|||
XML_ExternalEntityParserCreate(XML_Parser parser, |
|||
const XML_Char *context, |
|||
const XML_Char *encoding); |
|||
|
|||
enum XML_ParamEntityParsing { |
|||
XML_PARAM_ENTITY_PARSING_NEVER, |
|||
XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE, |
|||
XML_PARAM_ENTITY_PARSING_ALWAYS |
|||
}; |
|||
|
|||
/* Controls parsing of parameter entities (including the external DTD |
|||
subset). If parsing of parameter entities is enabled, then |
|||
references to external parameter entities (including the external |
|||
DTD subset) will be passed to the handler set with |
|||
XML_SetExternalEntityRefHandler. The context passed will be 0. |
|||
|
|||
Unlike external general entities, external parameter entities can |
|||
only be parsed synchronously. If the external parameter entity is |
|||
to be parsed, it must be parsed during the call to the external |
|||
entity ref handler: the complete sequence of |
|||
XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and |
|||
XML_ParserFree calls must be made during this call. After |
|||
XML_ExternalEntityParserCreate has been called to create the parser |
|||
for the external parameter entity (context must be 0 for this |
|||
call), it is illegal to make any calls on the old parser until |
|||
XML_ParserFree has been called on the newly created parser. |
|||
If the library has been compiled without support for parameter |
|||
entity parsing (ie without XML_DTD being defined), then |
|||
XML_SetParamEntityParsing will return 0 if parsing of parameter |
|||
entities is requested; otherwise it will return non-zero. |
|||
Note: If XML_SetParamEntityParsing is called after XML_Parse or |
|||
XML_ParseBuffer, then it has no effect and will always return 0. |
|||
*/ |
|||
XMLPARSEAPI(int) |
|||
XML_SetParamEntityParsing(XML_Parser parser, |
|||
enum XML_ParamEntityParsing parsing); |
|||
|
|||
/* If XML_Parse or XML_ParseBuffer have returned 0, then |
|||
XML_GetErrorCode returns information about the error. |
|||
*/ |
|||
XMLPARSEAPI(enum XML_Error) |
|||
XML_GetErrorCode(XML_Parser parser); |
|||
|
|||
/* These functions return information about the current parse |
|||
location. They may be called when XML_Parse or XML_ParseBuffer |
|||
return 0; in this case the location is the location of the |
|||
character at which the error was detected. |
|||
|
|||
They may also be called from any other callback called to report |
|||
some parse event; in this the location is the location of the first |
|||
of the sequence of characters that generated the event. |
|||
*/ |
|||
XMLPARSEAPI(int) XML_GetCurrentLineNumber(XML_Parser parser); |
|||
XMLPARSEAPI(int) XML_GetCurrentColumnNumber(XML_Parser parser); |
|||
XMLPARSEAPI(long) XML_GetCurrentByteIndex(XML_Parser parser); |
|||
|
|||
/* Return the number of bytes in the current event. |
|||
Returns 0 if the event is in an internal entity. |
|||
*/ |
|||
XMLPARSEAPI(int) |
|||
XML_GetCurrentByteCount(XML_Parser parser); |
|||
|
|||
/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets |
|||
the integer pointed to by offset to the offset within this buffer |
|||
of the current parse position, and sets the integer pointed to by size |
|||
to the size of this buffer (the number of input bytes). Otherwise |
|||
returns a NULL pointer. Also returns a NULL pointer if a parse isn't |
|||
active. |
|||
|
|||
NOTE: The character pointer returned should not be used outside |
|||
the handler that makes the call. |
|||
*/ |
|||
XMLPARSEAPI(const char *) |
|||
XML_GetInputContext(XML_Parser parser, |
|||
int *offset, |
|||
int *size); |
|||
|
|||
/* For backwards compatibility with previous versions. */ |
|||
#define XML_GetErrorLineNumber XML_GetCurrentLineNumber |
|||
#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber |
|||
#define XML_GetErrorByteIndex XML_GetCurrentByteIndex |
|||
|
|||
/* Frees memory used by the parser. */ |
|||
XMLPARSEAPI(void) |
|||
XML_ParserFree(XML_Parser parser); |
|||
|
|||
/* Returns a string describing the error. */ |
|||
XMLPARSEAPI(const XML_LChar *) |
|||
XML_ErrorString(enum XML_Error code); |
|||
|
|||
/* Return a string containing the version number of this expat */ |
|||
XMLPARSEAPI(const XML_LChar *) |
|||
XML_ExpatVersion(void); |
|||
|
|||
typedef struct { |
|||
int major; |
|||
int minor; |
|||
int micro; |
|||
} XML_Expat_Version; |
|||
|
|||
/* Return an XML_Expat_Version structure containing numeric version |
|||
number information for this version of expat. |
|||
*/ |
|||
XMLPARSEAPI(XML_Expat_Version) |
|||
XML_ExpatVersionInfo(void); |
|||
|
|||
/* Added in Expat 1.95.5. */ |
|||
enum XML_FeatureEnum { |
|||
XML_FEATURE_END = 0, |
|||
XML_FEATURE_UNICODE, |
|||
XML_FEATURE_UNICODE_WCHAR_T, |
|||
XML_FEATURE_DTD, |
|||
XML_FEATURE_CONTEXT_BYTES, |
|||
XML_FEATURE_MIN_SIZE, |
|||
XML_FEATURE_SIZEOF_XML_CHAR, |
|||
XML_FEATURE_SIZEOF_XML_LCHAR |
|||
/* Additional features must be added to the end of this enum. */ |
|||
}; |
|||
|
|||
typedef struct { |
|||
enum XML_FeatureEnum feature; |
|||
XML_LChar *name; |
|||
long int value; |
|||
} XML_Feature; |
|||
|
|||
XMLPARSEAPI(const XML_Feature *) |
|||
XML_GetFeatureList(void); |
|||
|
|||
|
|||
/* Expat follows the GNU/Linux convention of odd number minor version for |
|||
beta/development releases and even number minor version for stable |
|||
releases. Micro is bumped with each release, and set to 0 with each |
|||
change to major or minor version. |
|||
*/ |
|||
#define XML_MAJOR_VERSION 1 |
|||
#define XML_MINOR_VERSION 95 |
|||
#define XML_MICRO_VERSION 5 |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* not XmlParse_INCLUDED */ |
|||
@ -1,37 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
/* Like asciitab.h, except that 0xD has code BT_S rather than BT_CR */ |
|||
/* 0x00 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x04 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x08 */ BT_NONXML, BT_S, BT_LF, BT_NONXML, |
|||
/* 0x0C */ BT_NONXML, BT_S, BT_NONXML, BT_NONXML, |
|||
/* 0x10 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x14 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x18 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x1C */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0x20 */ BT_S, BT_EXCL, BT_QUOT, BT_NUM, |
|||
/* 0x24 */ BT_OTHER, BT_PERCNT, BT_AMP, BT_APOS, |
|||
/* 0x28 */ BT_LPAR, BT_RPAR, BT_AST, BT_PLUS, |
|||
/* 0x2C */ BT_COMMA, BT_MINUS, BT_NAME, BT_SOL, |
|||
/* 0x30 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, |
|||
/* 0x34 */ BT_DIGIT, BT_DIGIT, BT_DIGIT, BT_DIGIT, |
|||
/* 0x38 */ BT_DIGIT, BT_DIGIT, BT_COLON, BT_SEMI, |
|||
/* 0x3C */ BT_LT, BT_EQUALS, BT_GT, BT_QUEST, |
|||
/* 0x40 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, |
|||
/* 0x44 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, |
|||
/* 0x48 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x4C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x50 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x54 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x58 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_LSQB, |
|||
/* 0x5C */ BT_OTHER, BT_RSQB, BT_OTHER, BT_NMSTRT, |
|||
/* 0x60 */ BT_OTHER, BT_HEX, BT_HEX, BT_HEX, |
|||
/* 0x64 */ BT_HEX, BT_HEX, BT_HEX, BT_NMSTRT, |
|||
/* 0x68 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x6C */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x70 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x74 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0x78 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, |
|||
/* 0x7C */ BT_VERBAR, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
@ -1,46 +0,0 @@ |
|||
/* internal.h |
|||
|
|||
Internal definitions used by Expat. This is not needed to compile |
|||
client code. |
|||
|
|||
The following definitions are made: |
|||
|
|||
FASTCALL -- Used for most internal functions to specify that the |
|||
fastest possible calling convention be used. |
|||
|
|||
inline -- Used for selected internal functions for which inlining |
|||
may improve performance on some platforms. |
|||
*/ |
|||
|
|||
#if defined(__GNUC__) |
|||
/* Last minute instability reported with egcs on a RedHat Linux 7.3 |
|||
box; argh! |
|||
*/ |
|||
/* #define FASTCALL __attribute__((stdcall, regparm(3))) */ |
|||
#elif defined(WIN32) |
|||
/* XXX This seems to have an unexpected negative effect on Windows so |
|||
we'll disable it for now on that platform. It may be reconsidered |
|||
for a future release if it can be made more effective. |
|||
*/ |
|||
/* #define FASTCALL __fastcall */ |
|||
#endif |
|||
|
|||
#ifndef FASTCALL |
|||
#define FASTCALL |
|||
#endif |
|||
|
|||
#ifndef XML_MIN_SIZE |
|||
#if !defined(__cplusplus) && !defined(inline) |
|||
#ifdef __GNUC__ |
|||
#define inline __inline |
|||
#endif /* __GNUC__ */ |
|||
#endif |
|||
#endif /* XML_MIN_SIZE */ |
|||
|
|||
#ifdef __cplusplus |
|||
#define inline inline |
|||
#else |
|||
#ifndef inline |
|||
#define inline |
|||
#endif |
|||
#endif |
|||
@ -1,36 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
/* 0x80 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x84 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x88 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x8C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x90 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x94 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x98 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0x9C */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0xA0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0xA4 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0xA8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, |
|||
/* 0xAC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0xB0 */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0xB4 */ BT_OTHER, BT_NMSTRT, BT_OTHER, BT_NAME, |
|||
/* 0xB8 */ BT_OTHER, BT_OTHER, BT_NMSTRT, BT_OTHER, |
|||
/* 0xBC */ BT_OTHER, BT_OTHER, BT_OTHER, BT_OTHER, |
|||
/* 0xC0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xC4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xC8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xCC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xD0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xD4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, |
|||
/* 0xD8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xDC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xE0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xE4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xE8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xEC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xF0 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xF4 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_OTHER, |
|||
/* 0xF8 */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
/* 0xFC */ BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, BT_NMSTRT, |
|||
@ -1,150 +0,0 @@ |
|||
static const unsigned namingBitmap[] = { |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
|||
0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE, |
|||
0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF, |
|||
0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF, |
|||
0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, |
|||
0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, |
|||
0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, |
|||
0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, |
|||
0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, |
|||
0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF, |
|||
0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000, |
|||
0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060, |
|||
0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003, |
|||
0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003, |
|||
0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000, |
|||
0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001, |
|||
0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003, |
|||
0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000, |
|||
0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003, |
|||
0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003, |
|||
0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000, |
|||
0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000, |
|||
0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF, |
|||
0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB, |
|||
0x40000000, 0xF580C900, 0x00000007, 0x02010800, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
|||
0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, |
|||
0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF, |
|||
0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF, |
|||
0x00000000, 0x00004C40, 0x00000000, 0x00000000, |
|||
0x00000007, 0x00000000, 0x00000000, 0x00000000, |
|||
0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF, |
|||
0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF, |
|||
0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
|||
0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
|||
0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000, |
|||
0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE, |
|||
0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF, |
|||
0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF, |
|||
0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000, |
|||
0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003, |
|||
0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD, |
|||
0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF, |
|||
0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF, |
|||
0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE, |
|||
0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF, |
|||
0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF, |
|||
0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF, |
|||
0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF, |
|||
0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF, |
|||
0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0, |
|||
0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1, |
|||
0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3, |
|||
0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80, |
|||
0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3, |
|||
0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3, |
|||
0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000, |
|||
0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000, |
|||
0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF, |
|||
0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000, |
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, |
|||
0x00000000, 0x00000000, 0x1FFF0000, 0x00000002, |
|||
0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF, |
|||
0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF, |
|||
}; |
|||
static const unsigned char nmstrtPages[] = { |
|||
0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, |
|||
0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, |
|||
0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, |
|||
0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
}; |
|||
static const unsigned char namePages[] = { |
|||
0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00, |
|||
0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, |
|||
0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13, |
|||
0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
|||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
|||
}; |
|||
@ -1,37 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
|
|||
/* 0x80 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x84 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x88 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x8C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x90 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x94 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x98 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0x9C */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xA0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xA4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xA8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xAC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xB0 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xB4 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xB8 */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xBC */ BT_TRAIL, BT_TRAIL, BT_TRAIL, BT_TRAIL, |
|||
/* 0xC0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xC4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xC8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xCC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xD0 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xD4 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xD8 */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xDC */ BT_LEAD2, BT_LEAD2, BT_LEAD2, BT_LEAD2, |
|||
/* 0xE0 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, |
|||
/* 0xE4 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, |
|||
/* 0xE8 */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, |
|||
/* 0xEC */ BT_LEAD3, BT_LEAD3, BT_LEAD3, BT_LEAD3, |
|||
/* 0xF0 */ BT_LEAD4, BT_LEAD4, BT_LEAD4, BT_LEAD4, |
|||
/* 0xF4 */ BT_LEAD4, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0xF8 */ BT_NONXML, BT_NONXML, BT_NONXML, BT_NONXML, |
|||
/* 0xFC */ BT_NONXML, BT_NONXML, BT_MALFORM, BT_MALFORM, |
|||
@ -1,30 +0,0 @@ |
|||
/*================================================================ |
|||
** Copyright 2000, Clark Cooper |
|||
** All rights reserved. |
|||
** |
|||
** This is free software. You are permitted to copy, distribute, or modify |
|||
** it under the terms of the MIT/X license (contained in the COPYING file |
|||
** with this distribution.) |
|||
*/ |
|||
|
|||
#ifndef WINCONFIG_H |
|||
#define WINCONFIG_H |
|||
|
|||
#define WIN32_LEAN_AND_MEAN |
|||
#include <windows.h> |
|||
#undef WIN32_LEAN_AND_MEAN |
|||
|
|||
#include <memory.h> |
|||
#include <string.h> |
|||
|
|||
#define XML_NS 1 |
|||
#define XML_DTD 1 |
|||
#define XML_CONTEXT_BYTES 1024 |
|||
|
|||
/* we will assume all Windows platforms are little endian */ |
|||
#define BYTEORDER 1234 |
|||
|
|||
/* Windows has memmove() available. */ |
|||
/* #define HAVE_MEMMOVE */ |
|||
|
|||
#endif /* ndef WINCONFIG_H */ |
|||
5592
ext/xml/expat/xmlparse.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
1330
ext/xml/expat/xmlrole.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,114 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
#ifndef XmlRole_INCLUDED |
|||
#define XmlRole_INCLUDED 1 |
|||
|
|||
#ifdef __VMS |
|||
/* 0 1 2 3 0 1 2 3 |
|||
1234567890123456789012345678901 1234567890123456789012345678901 */ |
|||
#define XmlPrologStateInitExternalEntity XmlPrologStateInitExternalEnt |
|||
#endif |
|||
|
|||
#include "xmltok.h" |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
enum { |
|||
XML_ROLE_ERROR = -1, |
|||
XML_ROLE_NONE = 0, |
|||
XML_ROLE_XML_DECL, |
|||
XML_ROLE_INSTANCE_START, |
|||
XML_ROLE_DOCTYPE_NONE, |
|||
XML_ROLE_DOCTYPE_NAME, |
|||
XML_ROLE_DOCTYPE_SYSTEM_ID, |
|||
XML_ROLE_DOCTYPE_PUBLIC_ID, |
|||
XML_ROLE_DOCTYPE_INTERNAL_SUBSET, |
|||
XML_ROLE_DOCTYPE_CLOSE, |
|||
XML_ROLE_GENERAL_ENTITY_NAME, |
|||
XML_ROLE_PARAM_ENTITY_NAME, |
|||
XML_ROLE_ENTITY_NONE, |
|||
XML_ROLE_ENTITY_VALUE, |
|||
XML_ROLE_ENTITY_SYSTEM_ID, |
|||
XML_ROLE_ENTITY_PUBLIC_ID, |
|||
XML_ROLE_ENTITY_COMPLETE, |
|||
XML_ROLE_ENTITY_NOTATION_NAME, |
|||
XML_ROLE_NOTATION_NONE, |
|||
XML_ROLE_NOTATION_NAME, |
|||
XML_ROLE_NOTATION_SYSTEM_ID, |
|||
XML_ROLE_NOTATION_NO_SYSTEM_ID, |
|||
XML_ROLE_NOTATION_PUBLIC_ID, |
|||
XML_ROLE_ATTRIBUTE_NAME, |
|||
XML_ROLE_ATTRIBUTE_TYPE_CDATA, |
|||
XML_ROLE_ATTRIBUTE_TYPE_ID, |
|||
XML_ROLE_ATTRIBUTE_TYPE_IDREF, |
|||
XML_ROLE_ATTRIBUTE_TYPE_IDREFS, |
|||
XML_ROLE_ATTRIBUTE_TYPE_ENTITY, |
|||
XML_ROLE_ATTRIBUTE_TYPE_ENTITIES, |
|||
XML_ROLE_ATTRIBUTE_TYPE_NMTOKEN, |
|||
XML_ROLE_ATTRIBUTE_TYPE_NMTOKENS, |
|||
XML_ROLE_ATTRIBUTE_ENUM_VALUE, |
|||
XML_ROLE_ATTRIBUTE_NOTATION_VALUE, |
|||
XML_ROLE_ATTLIST_NONE, |
|||
XML_ROLE_ATTLIST_ELEMENT_NAME, |
|||
XML_ROLE_IMPLIED_ATTRIBUTE_VALUE, |
|||
XML_ROLE_REQUIRED_ATTRIBUTE_VALUE, |
|||
XML_ROLE_DEFAULT_ATTRIBUTE_VALUE, |
|||
XML_ROLE_FIXED_ATTRIBUTE_VALUE, |
|||
XML_ROLE_ELEMENT_NONE, |
|||
XML_ROLE_ELEMENT_NAME, |
|||
XML_ROLE_CONTENT_ANY, |
|||
XML_ROLE_CONTENT_EMPTY, |
|||
XML_ROLE_CONTENT_PCDATA, |
|||
XML_ROLE_GROUP_OPEN, |
|||
XML_ROLE_GROUP_CLOSE, |
|||
XML_ROLE_GROUP_CLOSE_REP, |
|||
XML_ROLE_GROUP_CLOSE_OPT, |
|||
XML_ROLE_GROUP_CLOSE_PLUS, |
|||
XML_ROLE_GROUP_CHOICE, |
|||
XML_ROLE_GROUP_SEQUENCE, |
|||
XML_ROLE_CONTENT_ELEMENT, |
|||
XML_ROLE_CONTENT_ELEMENT_REP, |
|||
XML_ROLE_CONTENT_ELEMENT_OPT, |
|||
XML_ROLE_CONTENT_ELEMENT_PLUS, |
|||
XML_ROLE_PI, |
|||
XML_ROLE_COMMENT, |
|||
#ifdef XML_DTD |
|||
XML_ROLE_TEXT_DECL, |
|||
XML_ROLE_IGNORE_SECT, |
|||
XML_ROLE_INNER_PARAM_ENTITY_REF, |
|||
#endif /* XML_DTD */ |
|||
XML_ROLE_PARAM_ENTITY_REF |
|||
}; |
|||
|
|||
typedef struct prolog_state { |
|||
int (FASTCALL *handler) (struct prolog_state *state, |
|||
int tok, |
|||
const char *ptr, |
|||
const char *end, |
|||
const ENCODING *enc); |
|||
unsigned level; |
|||
int role_none; |
|||
#ifdef XML_DTD |
|||
unsigned includeLevel; |
|||
int documentEntity; |
|||
int inEntityValue; |
|||
#endif /* XML_DTD */ |
|||
} PROLOG_STATE; |
|||
|
|||
void XmlPrologStateInit(PROLOG_STATE *); |
|||
#ifdef XML_DTD |
|||
void XmlPrologStateInitExternalEntity(PROLOG_STATE *); |
|||
#endif /* XML_DTD */ |
|||
|
|||
#define XmlTokenRole(state, tok, ptr, end, enc) \ |
|||
(((state)->handler)(state, tok, ptr, end, enc)) |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* not XmlRole_INCLUDED */ |
|||
1641
ext/xml/expat/xmltok.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,312 +0,0 @@ |
|||
/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
#ifndef XmlTok_INCLUDED |
|||
#define XmlTok_INCLUDED 1 |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* The following token may be returned by XmlContentTok */ |
|||
#define XML_TOK_TRAILING_RSQB -5 /* ] or ]] at the end of the scan; might be |
|||
start of illegal ]]> sequence */ |
|||
/* The following tokens may be returned by both XmlPrologTok and |
|||
XmlContentTok. |
|||
*/ |
|||
#define XML_TOK_NONE -4 /* The string to be scanned is empty */ |
|||
#define XML_TOK_TRAILING_CR -3 /* A CR at the end of the scan; |
|||
might be part of CRLF sequence */ |
|||
#define XML_TOK_PARTIAL_CHAR -2 /* only part of a multibyte sequence */ |
|||
#define XML_TOK_PARTIAL -1 /* only part of a token */ |
|||
#define XML_TOK_INVALID 0 |
|||
|
|||
/* The following tokens are returned by XmlContentTok; some are also |
|||
returned by XmlAttributeValueTok, XmlEntityTok, XmlCdataSectionTok. |
|||
*/ |
|||
#define XML_TOK_START_TAG_WITH_ATTS 1 |
|||
#define XML_TOK_START_TAG_NO_ATTS 2 |
|||
#define XML_TOK_EMPTY_ELEMENT_WITH_ATTS 3 /* empty element tag <e/> */ |
|||
#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 /* numeric character reference */ |
|||
|
|||
/* The following tokens may be returned by both XmlPrologTok and |
|||
XmlContentTok. |
|||
*/ |
|||
#define XML_TOK_PI 11 /* processing instruction */ |
|||
#define XML_TOK_XML_DECL 12 /* XML decl or text decl */ |
|||
#define XML_TOK_COMMENT 13 |
|||
#define XML_TOK_BOM 14 /* Byte order mark */ |
|||
|
|||
/* The following tokens are returned only by XmlPrologTok */ |
|||
#define XML_TOK_PROLOG_S 15 |
|||
#define XML_TOK_DECL_OPEN 16 /* <!foo */ |
|||
#define XML_TOK_DECL_CLOSE 17 /* > */ |
|||
#define XML_TOK_NAME 18 |
|||
#define XML_TOK_NMTOKEN 19 |
|||
#define XML_TOK_POUND_NAME 20 /* #name */ |
|||
#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 |
|||
|
|||
/* The following occur only in element type declarations */ |
|||
#define XML_TOK_NAME_QUESTION 30 /* name? */ |
|||
#define XML_TOK_NAME_ASTERISK 31 /* name* */ |
|||
#define XML_TOK_NAME_PLUS 32 /* name+ */ |
|||
#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 |
|||
|
|||
/* The following token is returned only by XmlAttributeValueTok */ |
|||
#define XML_TOK_ATTRIBUTE_VALUE_S 39 |
|||
|
|||
/* The following token is returned only by XmlCdataSectionTok */ |
|||
#define XML_TOK_CDATA_SECT_CLOSE 40 |
|||
|
|||
/* With namespace processing this is returned by XmlPrologTok for a |
|||
name with a colon. |
|||
*/ |
|||
#define XML_TOK_PREFIXED_NAME 41 |
|||
|
|||
#ifdef XML_DTD |
|||
#define XML_TOK_IGNORE_SECT 42 |
|||
#endif /* XML_DTD */ |
|||
|
|||
#ifdef XML_DTD |
|||
#define XML_N_STATES 4 |
|||
#else /* not XML_DTD */ |
|||
#define XML_N_STATES 3 |
|||
#endif /* not XML_DTD */ |
|||
|
|||
#define XML_PROLOG_STATE 0 |
|||
#define XML_CONTENT_STATE 1 |
|||
#define XML_CDATA_SECTION_STATE 2 |
|||
#ifdef XML_DTD |
|||
#define XML_IGNORE_SECTION_STATE 3 |
|||
#endif /* XML_DTD */ |
|||
|
|||
#define XML_N_LITERAL_TYPES 2 |
|||
#define XML_ATTRIBUTE_VALUE_LITERAL 0 |
|||
#define XML_ENTITY_VALUE_LITERAL 1 |
|||
|
|||
/* The size of the buffer passed to XmlUtf8Encode must be at least this. */ |
|||
#define XML_UTF8_ENCODE_MAX 4 |
|||
/* The size of the buffer passed to XmlUtf16Encode must be at least this. */ |
|||
#define XML_UTF16_ENCODE_MAX 2 |
|||
|
|||
typedef struct position { |
|||
/* first line and first column are 0 not 1 */ |
|||
unsigned long lineNumber; |
|||
unsigned long columnNumber; |
|||
} POSITION; |
|||
|
|||
typedef struct { |
|||
const char *name; |
|||
const char *valuePtr; |
|||
const char *valueEnd; |
|||
char normalized; |
|||
} ATTRIBUTE; |
|||
|
|||
struct encoding; |
|||
typedef struct encoding ENCODING; |
|||
|
|||
typedef int (FASTCALL *SCANNER)(const ENCODING *, |
|||
const char *, |
|||
const char *, |
|||
const char **); |
|||
|
|||
struct encoding { |
|||
SCANNER scanners[XML_N_STATES]; |
|||
SCANNER literalScanners[XML_N_LITERAL_TYPES]; |
|||
int (FASTCALL *sameName)(const ENCODING *, |
|||
const char *, |
|||
const char *); |
|||
int (FASTCALL *nameMatchesAscii)(const ENCODING *, |
|||
const char *, |
|||
const char *, |
|||
const char *); |
|||
int (FASTCALL *nameLength)(const ENCODING *, const char *); |
|||
const char *(FASTCALL *skipS)(const ENCODING *, const char *); |
|||
int (FASTCALL *getAtts)(const ENCODING *enc, |
|||
const char *ptr, |
|||
int attsMax, |
|||
ATTRIBUTE *atts); |
|||
int (FASTCALL *charRefNumber)(const ENCODING *enc, const char *ptr); |
|||
int (FASTCALL *predefinedEntityName)(const ENCODING *, |
|||
const char *, |
|||
const char *); |
|||
void (FASTCALL *updatePosition)(const ENCODING *, |
|||
const char *ptr, |
|||
const char *end, |
|||
POSITION *); |
|||
int (FASTCALL *isPublicId)(const ENCODING *enc, |
|||
const char *ptr, |
|||
const char *end, |
|||
const char **badPtr); |
|||
void (FASTCALL *utf8Convert)(const ENCODING *enc, |
|||
const char **fromP, |
|||
const char *fromLim, |
|||
char **toP, |
|||
const char *toLim); |
|||
void (FASTCALL *utf16Convert)(const ENCODING *enc, |
|||
const char **fromP, |
|||
const char *fromLim, |
|||
unsigned short **toP, |
|||
const unsigned short *toLim); |
|||
int minBytesPerChar; |
|||
char isUtf8; |
|||
char isUtf16; |
|||
}; |
|||
|
|||
/* Scan the string starting at ptr until the end of the next complete |
|||
token, but do not scan past eptr. Return an integer giving the |
|||
type of token. |
|||
|
|||
Return XML_TOK_NONE when ptr == eptr; nextTokPtr will not be set. |
|||
|
|||
Return XML_TOK_PARTIAL when the string does not contain a complete |
|||
token; nextTokPtr will not be set. |
|||
|
|||
Return XML_TOK_INVALID when the string does not start a valid |
|||
token; nextTokPtr will be set to point to the character which made |
|||
the token invalid. |
|||
|
|||
Otherwise the string starts with a valid token; nextTokPtr will be |
|||
set to point to the character following the end of that token. |
|||
|
|||
Each data character counts as a single token, but adjacent data |
|||
characters may be returned together. Similarly for characters in |
|||
the prolog outside literals, comments and processing instructions. |
|||
*/ |
|||
|
|||
|
|||
#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) |
|||
|
|||
#ifdef XML_DTD |
|||
|
|||
#define XmlIgnoreSectionTok(enc, ptr, end, nextTokPtr) \ |
|||
XmlTok(enc, XML_IGNORE_SECTION_STATE, ptr, end, nextTokPtr) |
|||
|
|||
#endif /* XML_DTD */ |
|||
|
|||
/* This is used for performing a 2nd-level tokenization on the content |
|||
of a literal that has already been returned by XmlTok. |
|||
*/ |
|||
#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)) |
|||
|
|||
typedef struct { |
|||
ENCODING initEnc; |
|||
const ENCODING **encPtr; |
|||
} INIT_ENCODING; |
|||
|
|||
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); |
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* not XmlTok_INCLUDED */ |
|||
1778
ext/xml/expat/xmltok_impl.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,46 +0,0 @@ |
|||
/* |
|||
Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd |
|||
See the file COPYING for copying permission. |
|||
*/ |
|||
|
|||
enum { |
|||
BT_NONXML, |
|||
BT_MALFORM, |
|||
BT_LT, |
|||
BT_AMP, |
|||
BT_RSQB, |
|||
BT_LEAD2, |
|||
BT_LEAD3, |
|||
BT_LEAD4, |
|||
BT_TRAIL, |
|||
BT_CR, |
|||
BT_LF, |
|||
BT_GT, |
|||
BT_QUOT, |
|||
BT_APOS, |
|||
BT_EQUALS, |
|||
BT_QUEST, |
|||
BT_EXCL, |
|||
BT_SOL, |
|||
BT_SEMI, |
|||
BT_NUM, |
|||
BT_LSQB, |
|||
BT_S, |
|||
BT_NMSTRT, |
|||
BT_COLON, |
|||
BT_HEX, |
|||
BT_DIGIT, |
|||
BT_NAME, |
|||
BT_MINUS, |
|||
BT_OTHER, /* known not to be a name or name start character */ |
|||
BT_NONASCII, /* might be a name or name start character */ |
|||
BT_PERCNT, |
|||
BT_LPAR, |
|||
BT_RPAR, |
|||
BT_AST, |
|||
BT_PLUS, |
|||
BT_COMMA, |
|||
BT_VERBAR |
|||
}; |
|||
|
|||
#include <stddef.h> |
|||
@ -1,106 +0,0 @@ |
|||
const ENCODING * |
|||
NS(XmlGetUtf8InternalEncoding)(void) |
|||
{ |
|||
return &ns(internal_utf8_encoding).enc; |
|||
} |
|||
|
|||
const ENCODING * |
|||
NS(XmlGetUtf16InternalEncoding)(void) |
|||
{ |
|||
#if BYTEORDER == 1234 |
|||
return &ns(internal_little2_encoding).enc; |
|||
#elif BYTEORDER == 4321 |
|||
return &ns(internal_big2_encoding).enc; |
|||
#else |
|||
const short n = 1; |
|||
return (*(const char *)&n |
|||
? &ns(internal_little2_encoding).enc |
|||
: &ns(internal_big2_encoding).enc); |
|||
#endif |
|||
} |
|||
|
|||
static const ENCODING *NS(encodings)[] = { |
|||
&ns(latin1_encoding).enc, |
|||
&ns(ascii_encoding).enc, |
|||
&ns(utf8_encoding).enc, |
|||
&ns(big2_encoding).enc, |
|||
&ns(big2_encoding).enc, |
|||
&ns(little2_encoding).enc, |
|||
&ns(utf8_encoding).enc /* NO_ENC */ |
|||
}; |
|||
|
|||
static int FASTCALL |
|||
NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end, |
|||
const char **nextTokPtr) |
|||
{ |
|||
return initScan(NS(encodings), (const INIT_ENCODING *)enc, |
|||
XML_PROLOG_STATE, ptr, end, nextTokPtr); |
|||
} |
|||
|
|||
static int FASTCALL |
|||
NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end, |
|||
const char **nextTokPtr) |
|||
{ |
|||
return initScan(NS(encodings), (const INIT_ENCODING *)enc, |
|||
XML_CONTENT_STATE, ptr, end, nextTokPtr); |
|||
} |
|||
|
|||
int |
|||
NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, |
|||
const char *name) |
|||
{ |
|||
int i = getEncodingIndex(name); |
|||
if (i == UNKNOWN_ENC) |
|||
return 0; |
|||
SET_INIT_ENC_INDEX(p, i); |
|||
p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog); |
|||
p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent); |
|||
p->initEnc.updatePosition = initUpdatePosition; |
|||
p->encPtr = encPtr; |
|||
*encPtr = &(p->initEnc); |
|||
return 1; |
|||
} |
|||
|
|||
static const ENCODING * |
|||
NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end) |
|||
{ |
|||
#define ENCODING_MAX 128 |
|||
char buf[ENCODING_MAX]; |
|||
char *p = buf; |
|||
int i; |
|||
XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1); |
|||
if (ptr != end) |
|||
return 0; |
|||
*p = 0; |
|||
if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2) |
|||
return enc; |
|||
i = getEncodingIndex(buf); |
|||
if (i == UNKNOWN_ENC) |
|||
return 0; |
|||
return NS(encodings)[i]; |
|||
} |
|||
|
|||
int |
|||
NS(XmlParseXmlDecl)(int isGeneralTextEntity, |
|||
const ENCODING *enc, |
|||
const char *ptr, |
|||
const char *end, |
|||
const char **badPtr, |
|||
const char **versionPtr, |
|||
const char **versionEndPtr, |
|||
const char **encodingName, |
|||
const ENCODING **encoding, |
|||
int *standalone) |
|||
{ |
|||
return doParseXmlDecl(NS(findEncoding), |
|||
isGeneralTextEntity, |
|||
enc, |
|||
ptr, |
|||
end, |
|||
badPtr, |
|||
versionPtr, |
|||
versionEndPtr, |
|||
encodingName, |
|||
encoding, |
|||
standalone); |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue