1 #ifndef __CR_NODE_IFACE_H__
2 #define __CR_NODE_IFACE_H__
4 #include <glib/gmacros.h>
5 #include <glib/gtypes.h>
7 G_BEGIN_DECLS
9 typedef gconstpointer CRXMLNodePtr ;
10 typedef struct _CRNodeIface CRNodeIface ;
12 struct _CRNodeIface {
13 /* Names based on DOM. */
14 CRXMLNodePtr (*getParentNode)(CRXMLNodePtr);
15 CRXMLNodePtr (*getFirstChild)(CRXMLNodePtr);
16 CRXMLNodePtr (*getNextSibling)(CRXMLNodePtr);
17 CRXMLNodePtr (*getPrevSibling)(CRXMLNodePtr);
18 char const *(*getLocalName)(CRXMLNodePtr);
19 char *(*getProp)(CRXMLNodePtr, char const *);
21 /* Others. */
22 void (*freePropVal)(void *);
23 gboolean (*isElementNode)(CRXMLNodePtr);
25 #if 0
26 char const *getLang(CRXMLNodePtr);
27 /* todo: Make it easy to have the default xml rules for lang. Maybe interpret NULL
28 like this. Or provide a cr_get_xml_lang(CRNodeIface const *, CRXMLNodePtr) function. */
29 #endif
30 };
32 G_END_DECLS
35 #endif/*__CR_NODE_IFACE_H__*/