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>