Return to xlink.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
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__ */