OpenSync
0.22
|
00001 #ifndef _OPENSYNC_XML_H 00002 #define _OPENSYNC_XML_H 00003 00004 #include <libxml/xmlmemory.h> 00005 #include <libxml/parser.h> 00006 #include <libxml/xpath.h> 00007 00008 #ifdef __cplusplus 00009 extern "C" 00010 { 00011 #endif 00012 00013 typedef enum osxmlEncoding { 00014 OSXML_8BIT = 0, 00015 OSXML_QUOTED_PRINTABLE = 1, 00016 OSXML_BASE64 = 2 00017 } osxmlEncoding; 00018 00019 typedef enum osxmlCharset { 00020 OSXML_ASCII = 0, 00021 OSXML_UTF8 = 1 00022 } osxmlCharset; 00023 00024 typedef struct OSyncXMLEncoding OSyncXMLEncoding; 00025 struct OSyncXMLEncoding { 00026 osxmlEncoding encoding; 00027 osxmlCharset charset; 00028 }; 00029 00030 xmlNode *osxml_node_add_root(xmlDoc *doc, const char *name); 00031 xmlNode *osxml_node_get_root(xmlDoc *doc, const char *name, OSyncError **error); 00032 xmlNode *osxml_get_node(xmlNode *parent, const char *name); 00033 00034 xmlNode *osxml_node_add(xmlNode *parent, const char *name, const char *data); 00035 //void osxml_format_dump(OSyncXML *xml, char **data, int *size); 00036 xmlNode *osxml_format_parse(const char *input, int size, const char *rootname, OSyncError **error); 00037 char *osxml_find_node(xmlNode *parent, const char *name); 00038 void osxml_node_add_property(xmlNode *parent, const char *name, const char *data); 00039 char *osxml_find_property(xmlNode *parent, const char *name); 00040 osync_bool osxml_has_property(xmlNode *parent, const char *name); 00041 osync_bool osxml_has_property_full(xmlNode *parent, const char *name, const char *data); 00042 00043 void osxml_node_mark_unknown(xmlNode *parent); 00044 void osxml_node_remove_unknown_mark(xmlNode *node); 00045 void osxml_map_unknown_param(xmlNode *node, const char *paramname, const char *newname); 00046 00047 void osxml_node_set(xmlNode *node, const char *name, const char *data, OSyncXMLEncoding encoding); 00048 xmlXPathObject *osxml_get_nodeset(xmlDoc *doc, const char *expression); 00049 xmlXPathObject *osxml_get_unknown_nodes(xmlDoc *doc); 00050 xmlChar *osxml_write_to_string(xmlDoc *doc); 00051 osync_bool osxml_copy(const char *input, int inpsize, char **output, int *outpsize); 00052 00053 osync_bool osxml_marshall(const char *input, int inpsize, char **output, int *outpsize, OSyncError **error); 00054 osync_bool osxml_demarshall(const char *input, int inpsize, char **output, int *outpsize, OSyncError **error); 00055 00056 #ifdef __cplusplus 00057 } 00058 #endif 00059 00060 #endif // _OPENSYNC_XML_H