00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00031 #ifndef _RTEXI2SAX_H_
00032 #define _RTEXI2SAX_H_
00033
00034 #include "rtxsrc/rtxStack.h"
00035 #include "rtxsrc/rtxXmlQName.h"
00036 #include "rtexisrc/rtEXIExternDefs.h"
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00050 typedef int (*StartElementHandler)
00051 (void *userData, const OSUTF8CHAR *localname, const OSUTF8CHAR *qname,
00052 const OSUTF8CHAR* const* attrs);
00053
00062 typedef int (*EndElementHandler)
00063 (void *userData, const OSUTF8CHAR *localname, const OSUTF8CHAR *qname);
00064
00074
00075 typedef int (*CharacterDataHandler)
00076 (void *userData, const OSUTF8CHAR* value, int len);
00077
00078 typedef struct EXI2SAXReader {
00079 OSCTXT* pctxt;
00080 void* userData;
00081 OSRTStack elemQNameStack;
00082 StartElementHandler pStartElementFunc;
00083 EndElementHandler pEndElementFunc;
00084 CharacterDataHandler pCharactersFunc;
00085 } EXI2SAXReader;
00086
00087 typedef struct EXI2SAXAttribute {
00088 OSXMLFullQName* pqname;
00089 const OSUTF8CHAR* value;
00090 } EXI2SAXAttribute;
00091
00104 EXTERNEXI EXI2SAXReader* rtEXI2SAXCreateReader
00105 (OSCTXT* pctxt, void* pUserData,
00106 StartElementHandler startElemFunc,
00107 EndElementHandler endElemFunc,
00108 CharacterDataHandler charactersFunc);
00109
00118 EXTERNEXI int rtEXI2SAXParse (EXI2SAXReader* pReader);
00119
00120 #ifdef __cplusplus
00121 }
00122 #endif
00123
00126 #endif