1230fdc108
Change-Id: Ieb49357166b392956df6554a06fcae83c8fd519d
566 lines
16 KiB
C
Executable file
566 lines
16 KiB
C
Executable file
#ifndef LIBRARIES_EXPAT_H
|
|
#define LIBRARIES_EXPAT_H
|
|
|
|
/*
|
|
** Copyright (c) 2001-2007 Expat maintainers.
|
|
**
|
|
** Permission is hereby granted, free of charge, to any person obtaining
|
|
** a copy of this software and associated documentation files (the
|
|
** "Software"), to deal in the Software without restriction, including
|
|
** without limitation the rights to use, copy, modify, merge, publish,
|
|
** distribute, sublicense, and/or sell copies of the Software, and to
|
|
** permit persons to whom the Software is furnished to do so, subject to
|
|
** the following conditions:
|
|
**
|
|
** The above copyright notice and this permission notice shall be included
|
|
** in all copies or substantial portions of the Software.
|
|
**
|
|
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef __GNUC__
|
|
#ifdef __PPC__
|
|
#pragma pack(2)
|
|
#endif
|
|
#elif defined(__VBCC__)
|
|
#pragma amiga-align
|
|
#endif
|
|
|
|
/****************************************************************************/
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#ifndef XMLCALL
|
|
#define XMLCALL
|
|
#endif
|
|
|
|
typedef char XML_Char;
|
|
typedef char XML_LChar;
|
|
typedef long XML_Index;
|
|
typedef unsigned long XML_Size;
|
|
|
|
struct XML_ParserStruct;
|
|
typedef struct XML_ParserStruct *XML_Parser;
|
|
|
|
typedef unsigned char XML_Bool;
|
|
#define XML_TRUE ((XML_Bool) 1)
|
|
#define XML_FALSE ((XML_Bool) 0)
|
|
|
|
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
|
|
XML_STATUS_SUSPENDED = 2,
|
|
#define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED
|
|
};
|
|
|
|
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,
|
|
XML_ERROR_UNBOUND_PREFIX,
|
|
XML_ERROR_UNDECLARING_PREFIX,
|
|
XML_ERROR_INCOMPLETE_PE,
|
|
XML_ERROR_XML_DECL,
|
|
XML_ERROR_TEXT_DECL,
|
|
XML_ERROR_PUBLICID,
|
|
XML_ERROR_SUSPENDED,
|
|
XML_ERROR_NOT_SUSPENDED,
|
|
XML_ERROR_ABORTED,
|
|
XML_ERROR_FINISHED,
|
|
XML_ERROR_SUSPEND_PE,
|
|
XML_ERROR_RESERVED_PREFIX_XML,
|
|
XML_ERROR_RESERVED_PREFIX_XMLNS,
|
|
XML_ERROR_RESERVED_NAMESPACE_URI
|
|
};
|
|
|
|
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
|
|
};
|
|
|
|
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;
|
|
};
|
|
|
|
|
|
typedef void (*XML_ElementDeclHandler) (void *userData,
|
|
const XML_Char *name,
|
|
XML_Content *model);
|
|
|
|
void
|
|
XML_SetElementDeclHandler(XML_Parser parser,
|
|
XML_ElementDeclHandler eldecl);
|
|
|
|
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);
|
|
|
|
void
|
|
XML_SetAttlistDeclHandler(XML_Parser parser,
|
|
XML_AttlistDeclHandler attdecl);
|
|
|
|
typedef void (*XML_XmlDeclHandler) (void *userData,
|
|
const XML_Char *version,
|
|
const XML_Char *encoding,
|
|
int standalone);
|
|
|
|
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;
|
|
|
|
XML_Parser
|
|
XML_ParserCreate(const XML_Char *encoding);
|
|
|
|
XML_Parser
|
|
XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);
|
|
|
|
|
|
XML_Parser
|
|
XML_ParserCreate_MM(const XML_Char *encoding,
|
|
const XML_Memory_Handling_Suite *memsuite,
|
|
const XML_Char *namespaceSeparator);
|
|
|
|
XML_Bool
|
|
XML_ParserReset(XML_Parser parser, const XML_Char *encoding);
|
|
|
|
typedef void (*XML_StartElementHandler) (void *userData,
|
|
const XML_Char *name,
|
|
const XML_Char **atts);
|
|
|
|
typedef void (*XML_EndElementHandler) (void *userData,
|
|
const XML_Char *name);
|
|
|
|
|
|
typedef void (*XML_CharacterDataHandler) (void *userData,
|
|
const XML_Char *s,
|
|
int len);
|
|
|
|
typedef void (*XML_ProcessingInstructionHandler) (
|
|
void *userData,
|
|
const XML_Char *target,
|
|
const XML_Char *data);
|
|
|
|
typedef void (*XML_CommentHandler) (void *userData,
|
|
const XML_Char *data);
|
|
|
|
typedef void (*XML_StartCdataSectionHandler) (void *userData);
|
|
typedef void (*XML_EndCdataSectionHandler) (void *userData);
|
|
|
|
typedef void (*XML_DefaultHandler) (void *userData,
|
|
const XML_Char *s,
|
|
int len);
|
|
|
|
typedef void (*XML_StartDoctypeDeclHandler) (
|
|
void *userData,
|
|
const XML_Char *doctypeName,
|
|
const XML_Char *sysid,
|
|
const XML_Char *pubid,
|
|
int has_internal_subset);
|
|
|
|
typedef void (*XML_EndDoctypeDeclHandler)(void *userData);
|
|
|
|
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);
|
|
|
|
void
|
|
XML_SetEntityDeclHandler(XML_Parser parser,
|
|
XML_EntityDeclHandler handler);
|
|
|
|
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);
|
|
|
|
typedef void (*XML_NotationDeclHandler) (
|
|
void *userData,
|
|
const XML_Char *notationName,
|
|
const XML_Char *base,
|
|
const XML_Char *systemId,
|
|
const XML_Char *publicId);
|
|
|
|
typedef void (*XML_StartNamespaceDeclHandler) (
|
|
void *userData,
|
|
const XML_Char *prefix,
|
|
const XML_Char *uri);
|
|
|
|
typedef void (*XML_EndNamespaceDeclHandler) (
|
|
void *userData,
|
|
const XML_Char *prefix);
|
|
|
|
typedef int (*XML_NotStandaloneHandler) (void *userData);
|
|
|
|
typedef int (*XML_ExternalEntityRefHandler) (
|
|
XML_Parser parser,
|
|
const XML_Char *context,
|
|
const XML_Char *base,
|
|
const XML_Char *systemId,
|
|
const XML_Char *publicId);
|
|
|
|
typedef void (*XML_SkippedEntityHandler) (
|
|
void *userData,
|
|
const XML_Char *entityName,
|
|
int is_parameter_entity);
|
|
|
|
typedef struct {
|
|
int map[256];
|
|
void *data;
|
|
int (*convert)(void *data, const char *s);
|
|
void (*release)(void *data);
|
|
} XML_Encoding;
|
|
|
|
typedef int (*XML_UnknownEncodingHandler) (
|
|
void *encodingHandlerData,
|
|
const XML_Char *name,
|
|
XML_Encoding *info);
|
|
|
|
void
|
|
XML_SetElementHandler(XML_Parser parser,
|
|
XML_StartElementHandler start,
|
|
XML_EndElementHandler end);
|
|
|
|
void
|
|
XML_SetStartElementHandler(XML_Parser parser,
|
|
XML_StartElementHandler handler);
|
|
|
|
void
|
|
XML_SetEndElementHandler(XML_Parser parser,
|
|
XML_EndElementHandler handler);
|
|
|
|
void
|
|
XML_SetCharacterDataHandler(XML_Parser parser,
|
|
XML_CharacterDataHandler handler);
|
|
|
|
void
|
|
XML_SetProcessingInstructionHandler(XML_Parser parser,
|
|
XML_ProcessingInstructionHandler handler);
|
|
void
|
|
XML_SetCommentHandler(XML_Parser parser,
|
|
XML_CommentHandler handler);
|
|
|
|
void
|
|
XML_SetCdataSectionHandler(XML_Parser parser,
|
|
XML_StartCdataSectionHandler start,
|
|
XML_EndCdataSectionHandler end);
|
|
|
|
void
|
|
XML_SetStartCdataSectionHandler(XML_Parser parser,
|
|
XML_StartCdataSectionHandler start);
|
|
|
|
void
|
|
XML_SetEndCdataSectionHandler(XML_Parser parser,
|
|
XML_EndCdataSectionHandler end);
|
|
|
|
void
|
|
XML_SetDefaultHandler(XML_Parser parser,
|
|
XML_DefaultHandler handler);
|
|
|
|
void
|
|
XML_SetDefaultHandlerExpand(XML_Parser parser,
|
|
XML_DefaultHandler handler);
|
|
|
|
void
|
|
XML_SetDoctypeDeclHandler(XML_Parser parser,
|
|
XML_StartDoctypeDeclHandler start,
|
|
XML_EndDoctypeDeclHandler end);
|
|
|
|
void
|
|
XML_SetStartDoctypeDeclHandler(XML_Parser parser,
|
|
XML_StartDoctypeDeclHandler start);
|
|
|
|
void
|
|
XML_SetEndDoctypeDeclHandler(XML_Parser parser,
|
|
XML_EndDoctypeDeclHandler end);
|
|
|
|
void
|
|
XML_SetUnparsedEntityDeclHandler(XML_Parser parser,
|
|
XML_UnparsedEntityDeclHandler handler);
|
|
|
|
void
|
|
XML_SetNotationDeclHandler(XML_Parser parser,
|
|
XML_NotationDeclHandler handler);
|
|
|
|
void
|
|
XML_SetNamespaceDeclHandler(XML_Parser parser,
|
|
XML_StartNamespaceDeclHandler start,
|
|
XML_EndNamespaceDeclHandler end);
|
|
|
|
void
|
|
XML_SetStartNamespaceDeclHandler(XML_Parser parser,
|
|
XML_StartNamespaceDeclHandler start);
|
|
|
|
void
|
|
XML_SetEndNamespaceDeclHandler(XML_Parser parser,
|
|
XML_EndNamespaceDeclHandler end);
|
|
|
|
void
|
|
XML_SetNotStandaloneHandler(XML_Parser parser,
|
|
XML_NotStandaloneHandler handler);
|
|
|
|
void
|
|
XML_SetExternalEntityRefHandler(XML_Parser parser,
|
|
XML_ExternalEntityRefHandler handler);
|
|
|
|
void
|
|
XML_SetExternalEntityRefHandlerArg(XML_Parser parser,
|
|
void *arg);
|
|
|
|
void
|
|
XML_SetSkippedEntityHandler(XML_Parser parser,
|
|
XML_SkippedEntityHandler handler);
|
|
|
|
void
|
|
XML_SetUnknownEncodingHandler(XML_Parser parser,
|
|
XML_UnknownEncodingHandler handler,
|
|
void *encodingHandlerData);
|
|
|
|
void
|
|
XML_DefaultCurrent(XML_Parser parser);
|
|
|
|
void
|
|
XML_SetReturnNSTriplet(XML_Parser parser, int do_nst);
|
|
|
|
void
|
|
XML_SetUserData(XML_Parser parser, void *userData);
|
|
|
|
#define XML_GetUserData(parser) (*(void **)(parser))
|
|
|
|
enum XML_Status
|
|
XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);
|
|
|
|
void
|
|
XML_UseParserAsHandlerArg(XML_Parser parser);
|
|
|
|
enum XML_Error
|
|
XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD);
|
|
|
|
|
|
enum XML_Status
|
|
XML_SetBase(XML_Parser parser, const XML_Char *base);
|
|
|
|
const XML_Char *
|
|
XML_GetBase(XML_Parser parser);
|
|
|
|
int
|
|
XML_GetSpecifiedAttributeCount(XML_Parser parser);
|
|
|
|
int
|
|
XML_GetIdAttributeIndex(XML_Parser parser);
|
|
|
|
enum XML_Status
|
|
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);
|
|
|
|
void *
|
|
XML_GetBuffer(XML_Parser parser, int len);
|
|
|
|
enum XML_Status
|
|
XML_ParseBuffer(XML_Parser parser, int len, int isFinal);
|
|
|
|
enum XML_Status
|
|
XML_StopParser(XML_Parser parser, XML_Bool resumable);
|
|
|
|
enum XML_Status
|
|
XML_ResumeParser(XML_Parser parser);
|
|
|
|
enum XML_Parsing {
|
|
XML_INITIALIZED,
|
|
XML_PARSING,
|
|
XML_FINISHED,
|
|
XML_SUSPENDED
|
|
};
|
|
|
|
typedef struct {
|
|
enum XML_Parsing parsing;
|
|
XML_Bool finalBuffer;
|
|
} XML_ParsingStatus;
|
|
|
|
void
|
|
XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status);
|
|
|
|
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
|
|
};
|
|
|
|
int
|
|
XML_SetParamEntityParsing(XML_Parser parser,
|
|
enum XML_ParamEntityParsing parsing);
|
|
|
|
enum XML_Error
|
|
XML_GetErrorCode(XML_Parser parser);
|
|
|
|
int XML_GetCurrentLineNumber(XML_Parser parser);
|
|
int XML_GetCurrentColumnNumber(XML_Parser parser);
|
|
long XML_GetCurrentByteIndex(XML_Parser parser);
|
|
|
|
int
|
|
XML_GetCurrentByteCount(XML_Parser parser);
|
|
|
|
const char *
|
|
XML_GetInputContext(XML_Parser parser,
|
|
int *offset,
|
|
int *size);
|
|
|
|
#define XML_GetErrorLineNumber XML_GetCurrentLineNumber
|
|
#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber
|
|
#define XML_GetErrorByteIndex XML_GetCurrentByteIndex
|
|
|
|
void
|
|
XML_FreeContentModel(XML_Parser parser, XML_Content *model);
|
|
|
|
void *
|
|
XML_MemMalloc(XML_Parser parser, size_t size);
|
|
|
|
void *
|
|
XML_MemRealloc(XML_Parser parser, void *ptr, size_t size);
|
|
|
|
void
|
|
XML_MemFree(XML_Parser parser, void *ptr);
|
|
|
|
void
|
|
XML_ParserFree(XML_Parser parser);
|
|
|
|
const XML_LChar *
|
|
XML_ErrorString(enum XML_Error code);
|
|
|
|
const XML_LChar *
|
|
XML_ExpatVersion(void);
|
|
|
|
typedef struct {
|
|
int major;
|
|
int minor;
|
|
int micro;
|
|
} XML_Expat_Version;
|
|
|
|
XML_Expat_Version
|
|
XML_ExpatVersionInfo(void);
|
|
|
|
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,
|
|
XML_FEATURE_NS,
|
|
XML_FEATURE_LARGE_SIZE
|
|
};
|
|
|
|
typedef struct {
|
|
enum XML_FeatureEnum feature;
|
|
const XML_LChar *name;
|
|
long int value;
|
|
} XML_Feature;
|
|
|
|
const XML_Feature *
|
|
XML_GetFeatureList(void);
|
|
|
|
|
|
#define XML_MAJOR_VERSION 2
|
|
#define XML_MINOR_VERSION 0
|
|
#define XML_MICRO_VERSION 1
|
|
|
|
|
|
/****************************************************************************/
|
|
|
|
#ifdef __GNUC__
|
|
#ifdef __PPC__
|
|
#pragma pack()
|
|
#endif
|
|
#elif defined(__VBCC__)
|
|
#pragma default-align
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/****************************************************************************/
|
|
|
|
#endif /* EXPAT_EXPAT_H */
|