| /** | |
| * @file | |
| * | |
| * @brief unfinished XLink detection module | |
| * | |
| * This module is deprecated, don't use. | |
| * | |
| * @copyright See Copyright for the status of this software. | |
| * | |
| * @author Daniel Veillard | |
| */ | |
| #ifndef __XML_XLINK_H__ | |
| #define __XML_XLINK_H__ | |
| #include <libxml/xmlversion.h> | |
| #include <libxml/tree.h> | |
| #ifdef LIBXML_XPTR_ENABLED | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /** @cond ignore */ | |
| /** | |
| * Various defines for the various Link properties. | |
| * | |
| * NOTE: the link detection layer will try to resolve QName expansion | |
| * of namespaces. If "foo" is the prefix for "http://foo.com/" | |
| * then the link detection layer will expand role="foo:myrole" | |
| * to "http://foo.com/:myrole". | |
| * NOTE: the link detection layer will expand URI-References found on | |
| * href attributes by using the base mechanism if found. | |
| */ | |
| typedef xmlChar *xlinkHRef; | |
| typedef xmlChar *xlinkRole; | |
| typedef xmlChar *xlinkTitle; | |
| typedef enum { | |
| XLINK_TYPE_NONE = 0, | |
| XLINK_TYPE_SIMPLE, | |
| XLINK_TYPE_EXTENDED, | |
| XLINK_TYPE_EXTENDED_SET | |
| } xlinkType; | |
| typedef enum { | |
| XLINK_SHOW_NONE = 0, | |
| XLINK_SHOW_NEW, | |
| XLINK_SHOW_EMBED, | |
| XLINK_SHOW_REPLACE | |
| } xlinkShow; | |
| typedef enum { | |
| XLINK_ACTUATE_NONE = 0, | |
| XLINK_ACTUATE_AUTO, | |
| XLINK_ACTUATE_ONREQUEST | |
| } xlinkActuate; | |
| /** @endcond */ | |
| /** | |
| * This is the prototype for the link detection routine. | |
| * It calls the default link detection callbacks upon link detection. | |
| * | |
| * @param ctx user data pointer | |
| * @param node the node to check | |
| */ | |
| typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNode *node); | |
| /* | |
| * The link detection module interact with the upper layers using | |
| * a set of callback registered at parsing time. | |
| */ | |
| /** | |
| * This is the prototype for a simple link detection callback. | |
| * | |
| * @param ctx user data pointer | |
| * @param node the node carrying the link | |
| * @param href the target of the link | |
| * @param role the role string | |
| * @param title the link title | |
| */ | |
| typedef void | |
| (*xlinkSimpleLinkFunk) (void *ctx, | |
| xmlNode *node, | |
| const xlinkHRef href, | |
| const xlinkRole role, | |
| const xlinkTitle title); | |
| /** | |
| * This is the prototype for a extended link detection callback. | |
| * | |
| * @param ctx user data pointer | |
| * @param node the node carrying the link | |
| * @param nbLocators the number of locators detected on the link | |
| * @param hrefs pointer to the array of locator hrefs | |
| * @param roles pointer to the array of locator roles | |
| * @param nbArcs the number of arcs detected on the link | |
| * @param from pointer to the array of source roles found on the arcs | |
| * @param to pointer to the array of target roles found on the arcs | |
| * @param show array of values for the show attributes found on the arcs | |
| * @param actuate array of values for the actuate attributes found on the arcs | |
| * @param nbTitles the number of titles detected on the link | |
| * @param titles array of titles detected on the link | |
| * @param langs array of xml:lang values for the titles | |
| */ | |
| typedef void | |
| (*xlinkExtendedLinkFunk)(void *ctx, | |
| xmlNode *node, | |
| int nbLocators, | |
| const xlinkHRef *hrefs, | |
| const xlinkRole *roles, | |
| int nbArcs, | |
| const xlinkRole *from, | |
| const xlinkRole *to, | |
| xlinkShow *show, | |
| xlinkActuate *actuate, | |
| int nbTitles, | |
| const xlinkTitle *titles, | |
| const xmlChar **langs); | |
| /** | |
| * This is the prototype for a extended link set detection callback. | |
| * | |
| * @param ctx user data pointer | |
| * @param node the node carrying the link | |
| * @param nbLocators the number of locators detected on the link | |
| * @param hrefs pointer to the array of locator hrefs | |
| * @param roles pointer to the array of locator roles | |
| * @param nbTitles the number of titles detected on the link | |
| * @param titles array of titles detected on the link | |
| * @param langs array of xml:lang values for the titles | |
| */ | |
| typedef void | |
| (*xlinkExtendedLinkSetFunk) (void *ctx, | |
| xmlNode *node, | |
| int nbLocators, | |
| const xlinkHRef *hrefs, | |
| const xlinkRole *roles, | |
| int nbTitles, | |
| const xlinkTitle *titles, | |
| const xmlChar **langs); | |
| typedef struct _xlinkHandler xlinkHandler; | |
| typedef xlinkHandler *xlinkHandlerPtr; | |
| /** | |
| * This is the structure containing a set of Links detection callbacks. | |
| * | |
| * There is no default xlink callbacks, if one want to get link | |
| * recognition activated, those call backs must be provided before parsing. | |
| */ | |
| struct _xlinkHandler { | |
| xlinkSimpleLinkFunk simple; | |
| xlinkExtendedLinkFunk extended; | |
| xlinkExtendedLinkSetFunk set; | |
| }; | |
| /* | |
| * The default detection routine, can be overridden, they call the default | |
| * detection callbacks. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xlinkNodeDetectFunc | |
| xlinkGetDefaultDetect (void); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xlinkSetDefaultDetect (xlinkNodeDetectFunc func); | |
| /* | |
| * Routines to set/get the default handlers. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xlinkHandler * | |
| xlinkGetDefaultHandler (void); | |
| XML_DEPRECATED | |
| XMLPUBFUN void | |
| xlinkSetDefaultHandler (xlinkHandler *handler); | |
| /* | |
| * Link detection module itself. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xlinkType | |
| xlinkIsLink (xmlDoc *doc, | |
| xmlNode *node); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* LIBXML_XPTR_ENABLED */ | |
| #endif /* __XML_XLINK_H__ */ |