00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __XML_XLINK_H__
00020
00021 #define __XML_XLINK_H__
00022
00023
00024
00025 #include <libxml/xmlversion.h>
00026
00027 #include <libxml/tree.h>
00028
00029
00030
00031 #ifdef LIBXML_XPTR_ENABLED
00032
00033
00034
00035 #ifdef __cplusplus
00036
00037 extern "C" {
00038
00039 #endif
00040
00041
00042
00063 typedef xmlChar *xlinkHRef;
00064
00065 typedef xmlChar *xlinkRole;
00066
00067 typedef xmlChar *xlinkTitle;
00068
00069
00070
00071 typedef enum {
00072
00073 XLINK_TYPE_NONE = 0,
00074
00075 XLINK_TYPE_SIMPLE,
00076
00077 XLINK_TYPE_EXTENDED,
00078
00079 XLINK_TYPE_EXTENDED_SET
00080
00081 } xlinkType;
00082
00083
00084
00085 typedef enum {
00086
00087 XLINK_SHOW_NONE = 0,
00088
00089 XLINK_SHOW_NEW,
00090
00091 XLINK_SHOW_EMBED,
00092
00093 XLINK_SHOW_REPLACE
00094
00095 } xlinkShow;
00096
00097
00098
00099 typedef enum {
00100
00101 XLINK_ACTUATE_NONE = 0,
00102
00103 XLINK_ACTUATE_AUTO,
00104
00105 XLINK_ACTUATE_ONREQUEST
00106
00107 } xlinkActuate;
00108
00109
00110
00127 typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00161 typedef void
00162
00163 (*xlinkSimpleLinkFunk) (void *ctx,
00164
00165 xmlNodePtr node,
00166
00167 const xlinkHRef href,
00168
00169 const xlinkRole role,
00170
00171 const xlinkTitle title);
00172
00173
00174
00211 typedef void
00212
00213 (*xlinkExtendedLinkFunk)(void *ctx,
00214
00215 xmlNodePtr node,
00216
00217 int nbLocators,
00218
00219 const xlinkHRef *hrefs,
00220
00221 const xlinkRole *roles,
00222
00223 int nbArcs,
00224
00225 const xlinkRole *from,
00226
00227 const xlinkRole *to,
00228
00229 xlinkShow *show,
00230
00231 xlinkActuate *actuate,
00232
00233 int nbTitles,
00234
00235 const xlinkTitle *titles,
00236
00237 const xmlChar **langs);
00238
00239
00240
00267 typedef void
00268
00269 (*xlinkExtendedLinkSetFunk) (void *ctx,
00270
00271 xmlNodePtr node,
00272
00273 int nbLocators,
00274
00275 const xlinkHRef *hrefs,
00276
00277 const xlinkRole *roles,
00278
00279 int nbTitles,
00280
00281 const xlinkTitle *titles,
00282
00283 const xmlChar **langs);
00284
00285
00286
00299 typedef struct _xlinkHandler xlinkHandler;
00300
00301 typedef xlinkHandler *xlinkHandlerPtr;
00302
00303 struct _xlinkHandler {
00304
00305 xlinkSimpleLinkFunk simple;
00306
00307 xlinkExtendedLinkFunk extended;
00308
00309 xlinkExtendedLinkSetFunk set;
00310
00311 };
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325 XMLPUBFUN xlinkNodeDetectFunc XMLCALL
00326
00327 xlinkGetDefaultDetect (void);
00328
00329 XMLPUBFUN void XMLCALL
00330
00331 xlinkSetDefaultDetect (xlinkNodeDetectFunc func);
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341 XMLPUBFUN xlinkHandlerPtr XMLCALL
00342
00343 xlinkGetDefaultHandler (void);
00344
00345 XMLPUBFUN void XMLCALL
00346
00347 xlinkSetDefaultHandler (xlinkHandlerPtr handler);
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357 XMLPUBFUN xlinkType XMLCALL
00358
00359 xlinkIsLink (xmlDocPtr doc,
00360
00361 xmlNodePtr node);
00362
00363
00364
00365 #ifdef __cplusplus
00366
00367 }
00368
00369 #endif
00370
00371
00372
00373 #endif
00374
00375
00376
00377 #endif
00378