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