OpenSync  0.22
opensync_xml.h
1 #ifndef _OPENSYNC_XML_H
2 #define _OPENSYNC_XML_H
3 
4 #include <libxml/xmlmemory.h>
5 #include <libxml/parser.h>
6 #include <libxml/xpath.h>
7 
8 #ifdef __cplusplus
9 extern "C"
10 {
11 #endif
12 
13 typedef enum osxmlEncoding {
14  OSXML_8BIT = 0,
15  OSXML_QUOTED_PRINTABLE = 1,
16  OSXML_BASE64 = 2
17 } osxmlEncoding;
18 
19 typedef enum osxmlCharset {
20  OSXML_ASCII = 0,
21  OSXML_UTF8 = 1
22 } osxmlCharset;
23 
24 typedef struct OSyncXMLEncoding OSyncXMLEncoding;
26  osxmlEncoding encoding;
27  osxmlCharset charset;
28 };
29 
30 xmlNode *osxml_node_add_root(xmlDoc *doc, const char *name);
31 xmlNode *osxml_node_get_root(xmlDoc *doc, const char *name, OSyncError **error);
32 xmlNode *osxml_get_node(xmlNode *parent, const char *name);
33 
34 xmlNode *osxml_node_add(xmlNode *parent, const char *name, const char *data);
35 //void osxml_format_dump(OSyncXML *xml, char **data, int *size);
36 xmlNode *osxml_format_parse(const char *input, int size, const char *rootname, OSyncError **error);
37 char *osxml_find_node(xmlNode *parent, const char *name);
38 void osxml_node_add_property(xmlNode *parent, const char *name, const char *data);
39 char *osxml_find_property(xmlNode *parent, const char *name);
40 osync_bool osxml_has_property(xmlNode *parent, const char *name);
41 osync_bool osxml_has_property_full(xmlNode *parent, const char *name, const char *data);
42 
43 void osxml_node_mark_unknown(xmlNode *parent);
44 void osxml_node_remove_unknown_mark(xmlNode *node);
45 void osxml_map_unknown_param(xmlNode *node, const char *paramname, const char *newname);
46 
47 void osxml_node_set(xmlNode *node, const char *name, const char *data, OSyncXMLEncoding encoding);
48 xmlXPathObject *osxml_get_nodeset(xmlDoc *doc, const char *expression);
49 xmlXPathObject *osxml_get_unknown_nodes(xmlDoc *doc);
50 xmlChar *osxml_write_to_string(xmlDoc *doc);
51 osync_bool osxml_copy(const char *input, int inpsize, char **output, int *outpsize);
52 
53 osync_bool osxml_marshall(const char *input, int inpsize, char **output, int *outpsize, OSyncError **error);
54 osync_bool osxml_demarshall(const char *input, int inpsize, char **output, int *outpsize, OSyncError **error);
55 
56 #ifdef __cplusplus
57 }
58 #endif
59 
60 #endif // _OPENSYNC_XML_H