Max 5 API Reference
00001 #ifndef _XMLTREE_H_ 00002 #define _XMLTREE_H_ 00003 00004 #ifdef __cplusplus 00005 extern "C" { 00006 #endif 00007 00008 typedef struct _xmltree_node { 00009 long opaque; 00010 } t_xmltree_node; 00011 00012 typedef struct _xmltree_charnode { 00013 long opaque; 00014 } t_xmltree_charnode ; 00015 00016 typedef struct _xmltree_text { 00017 long opaque; 00018 } t_xmltree_text; 00019 00020 typedef struct _xmltree_comment { 00021 long opaque; 00022 } t_xmltree_comment; 00023 00024 typedef struct _xmltree_cdata { 00025 long opaque; 00026 } t_xmltree_cdata; 00027 00028 typedef struct _xmltree_attribute { 00029 long opaque; 00030 } t_xmltree_attribute; 00031 00032 typedef struct _xmltree_element { 00033 long opaque; 00034 } t_xmltree_element; 00035 00036 typedef struct _xmltree_document { 00037 long opaque; 00038 } t_xmltree_document; 00039 00040 // prototypes 00041 00042 // xmltree_node 00043 t_max_err xmltree_node_addinterface(t_class *c); 00044 t_max_err xmltree_node_insertbefore(t_xmltree_node *x, t_xmltree_node *newchild, t_xmltree_node *refchild); 00045 t_max_err xmltree_node_replacechild(t_xmltree_node *x, t_xmltree_node *newchild, t_xmltree_node *refchild); 00046 t_max_err xmltree_node_removechild(t_xmltree_node *x, t_xmltree_node *refchild); 00047 t_max_err xmltree_node_appendchild(t_xmltree_node *x, t_xmltree_node *newchild); 00048 long xmltree_node_haschildnodes(t_xmltree_node *x); 00049 t_xmltree_node *xmltree_node_clonenode(t_xmltree_node *x, long deep); 00050 t_max_err xmltree_node_removeallchildren(t_xmltree_node *x); 00051 t_max_err xmltree_node_nodevalue(t_xmltree_node *x, void *attr, long ac, t_atom *av); 00052 t_max_err xmltree_node_getnodevalue(t_xmltree_node *x, void *attr, long *ac, t_atom **av); 00053 t_max_err xmltree_node_setnodevalasstring(t_xmltree_node *x, char *s); 00054 t_max_err xmltree_node_getnodevalasstring(t_xmltree_node *x, long *len, char **s); 00055 t_max_err xmltree_node_new(t_xmltree_node *x, t_symbol *nodetype); 00056 t_max_err xmltree_node_free(t_xmltree_node *x); 00057 // utils 00058 t_symbol *xmltree_node_getnodevalue_sym(t_xmltree_node *x); 00059 t_max_err xmltree_node_nodevalue_sym(t_xmltree_node *x, t_symbol *s); 00060 long xmltree_node_getnodevalue_long(t_xmltree_node *x); 00061 t_max_err xmltree_node_nodevalue_long(t_xmltree_node *x, long c); 00062 float xmltree_node_getnodevalue_float(t_xmltree_node *x); 00063 t_max_err xmltree_node_nodevalue_float(t_xmltree_node *x, float f); 00064 long xmltree_node_getnodevalue_sym_array(t_xmltree_node *x, long max, t_symbol **vals); 00065 t_max_err xmltree_node_nodevalue_sym_array(void *x, long count, t_symbol **vals); 00066 long xmltree_node_getnodevalue_long_array(t_xmltree_node *x, long max, long *vals); 00067 t_max_err xmltree_node_nodevalue_long_array(void *x, long count, long *vals); 00068 long xmltree_node_getnodevalue_float_array(t_xmltree_node *x, long max, float *vals); 00069 t_max_err xmltree_node_nodevalue_float_array(void *x, long count, float *vals); 00070 00071 00072 // xmltree_charnode 00073 t_max_err xmltree_charnode_addinterface(t_class *c); 00074 char *xmltree_charnode_substringdata(t_xmltree_charnode *x, long offset, long count); 00075 t_max_err xmltree_charnode_appenddata(t_xmltree_charnode *x, char *data); 00076 t_max_err xmltree_charnode_insertdata(t_xmltree_charnode *x, long offset, char *data); 00077 t_max_err xmltree_charnode_deletedata(t_xmltree_charnode *x, long offset, long count); 00078 t_max_err xmltree_charnode_replacedata(t_xmltree_charnode *x, long offset, long count, char *data); 00079 t_max_err xmltree_charnode_new(t_xmltree_charnode *x, t_symbol *nodetype); 00080 t_max_err xmltree_charnode_free(t_xmltree_charnode *x); 00081 00082 // xmltree_document 00083 t_max_err xmltree_init(void); 00084 void xmltree_document_filename(t_xmltree_document *x, t_object *attr, long argc, t_atom *argv); 00085 t_max_err xmltree_document_read(t_xmltree_document *x, t_symbol *s, long ac, t_atom *av); 00086 t_max_err xmltree_document_write(t_xmltree_document *x, t_symbol *s, long ac, t_atom *av); 00087 void xmltree_node_write(t_xmltree_node *x, t_filehandle fh, long depth); 00088 void xmltree_document_print(t_xmltree_document *x); 00089 t_xmltree_element *xmltree_document_createelement(t_xmltree_document *x, t_symbol *tagname); 00090 t_xmltree_text *xmltree_document_createtextnode(t_xmltree_document *x, char *data); 00091 t_xmltree_comment *xmltree_document_createcomment(t_xmltree_document *x, char *data); 00092 t_xmltree_cdata *xmltree_document_createcdatasection(t_xmltree_document *x, char *data); 00093 t_xmltree_attribute *xmltree_document_createattribute(t_xmltree_document *x, t_symbol *name); 00094 t_linklist *xmltree_document_getelementsbytagname(t_xmltree_document *x, t_symbol *tagname); 00095 void xmltree_document_xmlparse_element_start(t_xmltree_document *x, const char *el, const char **attr); 00096 void xmltree_document_xmlparse_element_end(t_xmltree_document *x, const char *el); 00097 void xmltree_document_xmlparse_default(t_xmltree_document *x, const char *s, int len); 00098 void xmltree_document_xmlparse_characterdata(t_xmltree_document *x, const char *s, int len); 00099 void xmltree_document_xmlparse_cdata_start(t_xmltree_document *x); 00100 void xmltree_document_xmlparse_cdata_end(t_xmltree_document *x); 00101 void xmltree_document_xmlparse_comment(t_xmltree_document *x, const char *s); 00102 void xmltree_document_xmlparse_doctype_start(t_xmltree_document *x, const char *s); 00103 void xmltree_document_xmlparse_doctype_end(t_xmltree_document *x); 00104 void xmltree_document_createheader(t_xmltree_document *x, t_symbol *encoding); 00105 void xmltree_document_createprocessinginstruction(t_xmltree_document *x, t_symbol *target, t_symbol *data); 00106 void *xmltree_document_new(t_symbol *s, long argc, t_atom *argv); 00107 void xmltree_document_free(t_xmltree_document *x); 00108 00109 // xmltree_element 00110 t_max_err xmltree_element_getattribute(t_xmltree_element *x, t_symbol *attrname, long *ac, t_atom **av); 00111 t_max_err xmltree_element_setattribute(t_xmltree_element *x, t_symbol *attrname, long ac, t_atom *av); 00112 t_max_err xmltree_element_removeattribute(t_xmltree_element *x, t_symbol *attrname); 00113 t_xmltree_attribute *xmltree_element_getattributenode(t_xmltree_element *x, t_symbol *attrname); 00114 t_xmltree_attribute *xmltree_element_setattributenode(t_xmltree_element *x, t_xmltree_attribute *attr); 00115 t_xmltree_attribute * xmltree_element_removeattributenode(t_xmltree_element *x, t_xmltree_attribute *attr); 00116 t_linklist *xmltree_element_getelementsbytagname(t_xmltree_element *x, t_symbol *tagname); 00117 long xmltree_element_symcompare(t_xmltree_attribute *x,t_symbol *name); 00118 void *xmltree_element_new(t_symbol *s, long argc, t_atom *argv); 00119 void xmltree_element_free(t_xmltree_element *x); 00120 // utils 00121 t_symbol *xmltree_element_getattribute_sym(t_xmltree_element *x, t_symbol *attrname); 00122 t_max_err xmltree_element_setattribute_sym(t_xmltree_element *x, t_symbol *attrname, t_symbol *s); 00123 long xmltree_element_getattribute_long(t_xmltree_element *x, t_symbol *attrname); 00124 t_max_err xmltree_element_setattribute_long(t_xmltree_element *x, t_symbol *attrname, long c); 00125 float xmltree_element_getattribute_float(t_xmltree_element *x, t_symbol *attrname); 00126 t_max_err xmltree_element_setattribute_float(t_xmltree_element *x, t_symbol *attrname, float f); 00127 long xmltree_element_getattribute_sym_array(t_xmltree_element *x, t_symbol *attrname, long max, t_symbol **vals); 00128 t_max_err xmltree_element_setattribute_sym_array(void *x, t_symbol *attrname, long count, t_symbol **vals); 00129 long xmltree_element_getattribute_long_array(t_xmltree_element *x, t_symbol *attrname, long max, long *vals); 00130 t_max_err xmltree_element_setattribute_long_array(void *x, t_symbol *attrname, long count, long *vals); 00131 long xmltree_element_getattribute_float_array(t_xmltree_element *x, t_symbol *attrname, long max, float *vals); 00132 t_max_err xmltree_element_setattribute_float_array(void *x, t_symbol *attrname, long count, float *vals); 00133 00134 // xmltree_attribute 00135 long xmltree_attr_symcompare(t_xmltree_attribute *x,t_symbol *name); 00136 void *xmltree_attribute_new(t_symbol *s, long argc, t_atom *argv); 00137 void xmltree_attribute_free(t_xmltree_attribute *x); 00138 00139 // xmltree_text 00140 void *xmltree_text_new(t_symbol *s, long argc, t_atom *argv); 00141 t_xmltree_text *xmltree_text_splittext(t_xmltree_text *x, long offset); 00142 void xmltree_text_free(t_xmltree_text *x); 00143 00144 // xmltree_comment 00145 void *xmltree_comment_new(t_symbol *s, long argc, t_atom *argv); 00146 void xmltree_comment_free(t_xmltree_comment *x); 00147 00148 // xmltree_cdata 00149 void *xmltree_cdata_new(t_symbol *s, long argc, t_atom *argv); 00150 t_xmltree_cdata *xmltree_cdata_splittext(t_xmltree_cdata *x, long offset); 00151 void xmltree_cdata_free(t_xmltree_cdata *x); 00152 00153 #ifdef __cplusplus 00154 } 00155 #endif 00156 00157 #endif //_XMLTREE_H_
Copyright © 2008, Cycling '74