00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00035
00036 #ifndef _SML_XML_PARSE_INTERNALS_H_
00037 #define _SML_XML_PARSE_INTERNALS_H_
00038
00039 #include <libxml/xmlreader.h>
00040 #include <libxml/xmlwriter.h>
00041
00042 #define XML_NODE_START 1
00043 #define XML_NODE_TEXT 3
00044 #define XML_NODE_CLOSE 15
00045 #define XML_NODE_CDATA 4
00046
00047 struct SmlXmlParser {
00049 SmlProtocolVersion version;
00050 xmlTextReader *reader;
00051 char *data;
00052 unsigned int size;
00053 SmlTransport *tsp;
00054 SmlMimeType type;
00055 SmlBool got_command;
00056 SmlBool gotMoreData;
00057 };
00058
00059 SmlBool smlParserStep(SmlParser *parser);
00060 SmlBool smlParserExpectNode(SmlParser *parser, int type, SmlBool empty, const char *name, SmlError **error);
00061 SmlBool smlParserGetID(SmlParser *parser, unsigned int *id, const char *name, SmlError **error);
00062 SmlBool smlParserGetString(SmlParser *parser, char **string, const char *name, SmlError **error);
00063 SmlBool smlParserGetData(SmlParser *parser, char **string, unsigned int *size, const char *name, SmlError **error);
00064
00065 #endif //_SML_XML_PARSE_INTERNALS_H_
00066