00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __XML_XLINK_H__
00011 #define __XML_XLINK_H__
00012
00013 #include <libxml/xmlversion.h>
00014 #include <libxml/tree.h>
00015
00016 #ifdef LIBXML_XPTR_ENABLED
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00032 typedef xmlChar *xlinkHRef;
00033 typedef xmlChar *xlinkRole;
00034 typedef xmlChar *xlinkTitle;
00035
00036 typedef enum {
00037 XLINK_TYPE_NONE = 0,
00038 XLINK_TYPE_SIMPLE,
00039 XLINK_TYPE_EXTENDED,
00040 XLINK_TYPE_EXTENDED_SET
00041 } xlinkType;
00042
00043 typedef enum {
00044 XLINK_SHOW_NONE = 0,
00045 XLINK_SHOW_NEW,
00046 XLINK_SHOW_EMBED,
00047 XLINK_SHOW_REPLACE
00048 } xlinkShow;
00049
00050 typedef enum {
00051 XLINK_ACTUATE_NONE = 0,
00052 XLINK_ACTUATE_AUTO,
00053 XLINK_ACTUATE_ONREQUEST
00054 } xlinkActuate;
00055
00064 typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
00065
00066
00067
00068
00069
00070
00081 typedef void
00082 (*xlinkSimpleLinkFunk) (void *ctx,
00083 xmlNodePtr node,
00084 const xlinkHRef href,
00085 const xlinkRole role,
00086 const xlinkTitle title);
00087
00106 typedef void
00107 (*xlinkExtendedLinkFunk)(void *ctx,
00108 xmlNodePtr node,
00109 int nbLocators,
00110 const xlinkHRef *hrefs,
00111 const xlinkRole *roles,
00112 int nbArcs,
00113 const xlinkRole *from,
00114 const xlinkRole *to,
00115 xlinkShow *show,
00116 xlinkActuate *actuate,
00117 int nbTitles,
00118 const xlinkTitle *titles,
00119 const xmlChar **langs);
00120
00134 typedef void
00135 (*xlinkExtendedLinkSetFunk) (void *ctx,
00136 xmlNodePtr node,
00137 int nbLocators,
00138 const xlinkHRef *hrefs,
00139 const xlinkRole *roles,
00140 int nbTitles,
00141 const xlinkTitle *titles,
00142 const xmlChar **langs);
00143
00150 typedef struct _xlinkHandler xlinkHandler;
00151 typedef xlinkHandler *xlinkHandlerPtr;
00152 struct _xlinkHandler {
00153 xlinkSimpleLinkFunk simple;
00154 xlinkExtendedLinkFunk extended;
00155 xlinkExtendedLinkSetFunk set;
00156 };
00157
00158
00159
00160
00161
00162
00163 XMLPUBFUN xlinkNodeDetectFunc XMLCALL
00164 xlinkGetDefaultDetect (void);
00165 XMLPUBFUN void XMLCALL
00166 xlinkSetDefaultDetect (xlinkNodeDetectFunc func);
00167
00168
00169
00170
00171 XMLPUBFUN xlinkHandlerPtr XMLCALL
00172 xlinkGetDefaultHandler (void);
00173 XMLPUBFUN void XMLCALL
00174 xlinkSetDefaultHandler (xlinkHandlerPtr handler);
00175
00176
00177
00178
00179 XMLPUBFUN xlinkType XMLCALL
00180 xlinkIsLink (xmlDocPtr doc,
00181 xmlNodePtr node);
00182
00183 #ifdef __cplusplus
00184 }
00185 #endif
00186
00187 #endif
00188
00189 #endif