32 #include "gnc-xml-helper.h"
35 #include "sixtp-utils.h"
36 #include "sixtp-parsers.h"
37 #include "sixtp-utils.h"
38 #include "sixtp-dom-parsers.h"
39 #include "sixtp-dom-generators.h"
42 #include "io-gncxml-gen.h"
44 #include "sixtp-dom-parsers.h"
46 #include "gnc-lot-p.h"
50 const gchar *lot_version_string =
"2.0.0";
53 #define gnc_lot_string "gnc:lot"
54 #define lot_id_string "lot:id"
55 #define lot_slots_string "lot:slots"
60 gnc_lot_dom_tree_create(
GNCLot *lot)
65 ENTER(
"(lot=%p)", lot);
66 ret = xmlNewNode(NULL, BAD_CAST gnc_lot_string);
67 xmlSetProp(ret, BAD_CAST
"version", BAD_CAST lot_version_string);
69 xmlAddChild(ret, guid_to_dom_tree(lot_id_string, gnc_lot_get_guid(lot)));
71 kf = qof_instance_get_slots (QOF_INSTANCE (lot));
74 xmlNodePtr kvpnode = kvp_frame_to_dom_tree(lot_slots_string, kf);
77 xmlAddChild(ret, kvpnode);
94 lot_id_handler (xmlNodePtr node, gpointer p)
99 ENTER(
"(lot=%p)", pdata->lot);
100 guid = dom_tree_to_guid(node);
101 gnc_lot_set_guid(pdata->lot, *guid);
110 lot_slots_handler (xmlNodePtr node, gpointer p)
115 ENTER(
"(lot=%p)", pdata->lot);
116 success = dom_tree_to_kvp_frame_given
117 (node, qof_instance_get_slots (QOF_INSTANCE (pdata->lot)));
120 g_return_val_if_fail(success, FALSE);
127 { lot_id_string, lot_id_handler, 1, 0 },
128 { lot_slots_string, lot_slots_handler, 0, 0 },
133 gnc_lot_end_handler(gpointer data_for_children,
134 GSList* data_from_children, GSList* sibling_data,
135 gpointer parent_data, gpointer global_data,
136 gpointer *result,
const gchar *tag)
139 xmlNodePtr tree = (xmlNodePtr)data_for_children;
141 QofBook *book = gdata->bookdata;
155 g_return_val_if_fail(tree, FALSE);
157 lot = dom_tree_to_lot(tree, book);
158 ENTER(
"(lot=%p)", lot);
161 gdata->cb(tag, gdata->parsedata, lot);
171 dom_tree_to_lot (xmlNodePtr node,
QofBook *book)
177 lot = gnc_lot_new(book);
178 ENTER(
"(lot=%p)", lot);
183 successful = dom_tree_generic_parse (node, lot_handlers_v2,
187 PERR (
"failed to parse lot");
188 gnc_lot_destroy (lot);
197 gnc_lot_sixtp_parser_create(
void)
199 return sixtp_dom_parser_new(gnc_lot_end_handler, NULL, NULL);
#define PERR(format, args...)
#define ENTER(format, args...)
api for GnuCash version 2 XML-based file format
struct KvpFrameImpl KvpFrame
#define LEAVE(format, args...)
const gchar * QofLogModule