typedef struct xmlparams_s { char val[256]; //FIXME: make pointer struct xmlparams_s *next; char name[128]; //FIXME: make variable sized } xmlparams_t; typedef struct subtree_s { char name[64]; //FIXME: make pointer to tail of structure char xmlns[64]; //namespace of the element //FIXME: make pointer to tail of structure char xmlns_dflt[64]; //default namespace of children //FIXME: make pointer to tail of structure char *body;//[2048]; //FIXME: make pointer+variablesized xmlparams_t *params; struct subtree_s *child; struct subtree_s *sibling; } xmltree_t; const char *XML_GetParameter(xmltree_t *t, const char *paramname, const char *def); void XML_AddParameter(xmltree_t *t, const char *paramname, const char *value); void XML_AddParameteri(xmltree_t *t, const char *paramname, int value); xmltree_t *XML_CreateNode(xmltree_t *parent, const char *name, const char *xmlns, const char *body); char *XML_Markup(const char *s, char *d, int dlen); void XML_Unmark(char *s); char *XML_GenerateString(xmltree_t *root, qboolean readable); xmltree_t *XML_Parse(const char *buffer, int *startpos, int maxpos, qboolean headeronly, const char *defaultnamespace); void XML_Destroy(xmltree_t *t); xmltree_t *XML_ChildOfTree(xmltree_t *t, const char *name, int childnum); xmltree_t *XML_ChildOfTreeNS(xmltree_t *t, const char *xmlns, const char *name, int childnum); const char *XML_GetChildBody(xmltree_t *t, const char *paramname, const char *def); void XML_ConPrintTree(xmltree_t *t, const char *subconsole, int indent); xmltree_t *XML_FromJSON(xmltree_t *t, const char *name, const char *json, int *jsonpos, int jsonlen);