Annotation of win32/gnome/gnome-xml/include/libxml/xlink.h, revision 1.1
1.1 ! paf 1: /*
! 2: * xlink.h : interfaces to the hyperlinks detection module
! 3: *
! 4: * See Copyright for the status of this software.
! 5: *
! 6: * Related specification: http://www.w3.org/TR/xlink
! 7: * http://www.w3.org/HTML/
! 8: * and XBase
! 9: *
! 10: * daniel@veillard.com
! 11: */
! 12:
! 13: #ifndef __XML_XLINK_H__
! 14: #define __XML_XLINK_H__
! 15:
! 16: #include <libxml/tree.h>
! 17:
! 18: #ifdef __cplusplus
! 19: extern "C" {
! 20: #endif
! 21: /**
! 22: * Various defines for the various Link properties.
! 23: *
! 24: * NOTE: the link detection layer will try to resolve QName expansion
! 25: * of namespaces. If "foo" is the prefix for "http://foo.com/"
! 26: * then the link detection layer will expand role="foo:myrole"
! 27: * to "http://foo.com/:myrole".
! 28: * NOTE: the link detection layer will expand URI-Refences found on
! 29: * href attributes by using the base mechanism if found.
! 30: */
! 31: typedef xmlChar *xlinkHRef;
! 32: typedef xmlChar *xlinkRole;
! 33: typedef xmlChar *xlinkTitle;
! 34:
! 35: typedef enum {
! 36: XLINK_TYPE_NONE = 0,
! 37: XLINK_TYPE_SIMPLE,
! 38: XLINK_TYPE_EXTENDED,
! 39: XLINK_TYPE_EXTENDED_SET
! 40: } xlinkType;
! 41:
! 42: typedef enum {
! 43: XLINK_SHOW_NONE = 0,
! 44: XLINK_SHOW_NEW,
! 45: XLINK_SHOW_EMBED,
! 46: XLINK_SHOW_REPLACE
! 47: } xlinkShow;
! 48:
! 49: typedef enum {
! 50: XLINK_ACTUATE_NONE = 0,
! 51: XLINK_ACTUATE_AUTO,
! 52: XLINK_ACTUATE_ONREQUEST
! 53: } xlinkActuate;
! 54:
! 55: /**
! 56: * xlinkNodeDetectFunc:
! 57: * @ctx: user data pointer
! 58: * @node: the node to check
! 59: *
! 60: * This is the prototype for the link detection routine.
! 61: * It calls the default link detection callbacks upon link detection.
! 62: */
! 63: typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
! 64:
! 65: /**
! 66: * The link detection module interact with the upper layers using
! 67: * a set of callback registered at parsing time.
! 68: */
! 69:
! 70: /**
! 71: * xlinkSimpleLinkFunk:
! 72: * @ctx: user data pointer
! 73: * @node: the node carrying the link
! 74: * @href: the target of the link
! 75: * @role: the role string
! 76: * @title: the link title
! 77: *
! 78: * This is the prototype for a simple link detection callback.
! 79: */
! 80: typedef void
! 81: (*xlinkSimpleLinkFunk) (void *ctx,
! 82: xmlNodePtr node,
! 83: const xlinkHRef href,
! 84: const xlinkRole role,
! 85: const xlinkTitle title);
! 86:
! 87: /**
! 88: * xlinkExtendedLinkFunk:
! 89: * @ctx: user data pointer
! 90: * @node: the node carrying the link
! 91: * @nbLocators: the number of locators detected on the link
! 92: * @hrefs: pointer to the array of locator hrefs
! 93: * @roles: pointer to the array of locator roles
! 94: * @nbArcs: the number of arcs detected on the link
! 95: * @from: pointer to the array of source roles found on the arcs
! 96: * @to: pointer to the array of target roles found on the arcs
! 97: * @show: array of values for the show attributes found on the arcs
! 98: * @actuate: array of values for the actuate attributes found on the arcs
! 99: * @nbTitles: the number of titles detected on the link
! 100: * @title: array of titles detected on the link
! 101: * @langs: array of xml:lang values for the titles
! 102: *
! 103: * This is the prototype for a extended link detection callback.
! 104: */
! 105: typedef void
! 106: (*xlinkExtendedLinkFunk)(void *ctx,
! 107: xmlNodePtr node,
! 108: int nbLocators,
! 109: const xlinkHRef *hrefs,
! 110: const xlinkRole *roles,
! 111: int nbArcs,
! 112: const xlinkRole *from,
! 113: const xlinkRole *to,
! 114: xlinkShow *show,
! 115: xlinkActuate *actuate,
! 116: int nbTitles,
! 117: const xlinkTitle *titles,
! 118: const xmlChar **langs);
! 119:
! 120: /**
! 121: * xlinkExtendedLinkSetFunk:
! 122: * @ctx: user data pointer
! 123: * @node: the node carrying the link
! 124: * @nbLocators: the number of locators detected on the link
! 125: * @hrefs: pointer to the array of locator hrefs
! 126: * @roles: pointer to the array of locator roles
! 127: * @nbTitles: the number of titles detected on the link
! 128: * @title: array of titles detected on the link
! 129: * @langs: array of xml:lang values for the titles
! 130: *
! 131: * This is the prototype for a extended link set detection callback.
! 132: */
! 133: typedef void
! 134: (*xlinkExtendedLinkSetFunk) (void *ctx,
! 135: xmlNodePtr node,
! 136: int nbLocators,
! 137: const xlinkHRef *hrefs,
! 138: const xlinkRole *roles,
! 139: int nbTitles,
! 140: const xlinkTitle *titles,
! 141: const xmlChar **langs);
! 142:
! 143: /**
! 144: * This is the structure containing a set of Links detection callbacks.
! 145: *
! 146: * There is no default xlink callbacks, if one want to get link
! 147: * recognition activated, those call backs must be provided before parsing.
! 148: */
! 149: typedef struct _xlinkHandler xlinkHandler;
! 150: typedef xlinkHandler *xlinkHandlerPtr;
! 151: struct _xlinkHandler {
! 152: xlinkSimpleLinkFunk simple;
! 153: xlinkExtendedLinkFunk extended;
! 154: xlinkExtendedLinkSetFunk set;
! 155: };
! 156:
! 157: /*
! 158: * The default detection routine, can be overridden, they call the default
! 159: * detection callbacks.
! 160: */
! 161:
! 162: xlinkNodeDetectFunc xlinkGetDefaultDetect (void);
! 163: void xlinkSetDefaultDetect (xlinkNodeDetectFunc func);
! 164:
! 165: /*
! 166: * Routines to set/get the default handlers.
! 167: */
! 168: xlinkHandlerPtr xlinkGetDefaultHandler (void);
! 169: void xlinkSetDefaultHandler (xlinkHandlerPtr handler);
! 170:
! 171: /*
! 172: * Link detection module itself.
! 173: */
! 174: xlinkType xlinkIsLink (xmlDocPtr doc,
! 175: xmlNodePtr node);
! 176:
! 177: #ifdef __cplusplus
! 178: }
! 179: #endif
! 180: #endif /* __XML_XLINK_H__ */
E-mail: