Annotation of embedaddon/libxml2/include/libxml/xlink.h, revision 1.1.1.2

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
1.1.1.2 ! misho      60:  *
1.1       misho      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
1.1.1.2 ! misho     160:  * detection callbacks.
1.1       misho     161:  */
                    162: 
1.1.1.2 ! misho     163: XMLPUBFUN xlinkNodeDetectFunc XMLCALL
1.1       misho     164:                xlinkGetDefaultDetect   (void);
1.1.1.2 ! misho     165: XMLPUBFUN void XMLCALL
1.1       misho     166:                xlinkSetDefaultDetect   (xlinkNodeDetectFunc func);
                    167: 
                    168: /*
                    169:  * Routines to set/get the default handlers.
                    170:  */
1.1.1.2 ! misho     171: XMLPUBFUN xlinkHandlerPtr XMLCALL
1.1       misho     172:                xlinkGetDefaultHandler  (void);
1.1.1.2 ! misho     173: XMLPUBFUN void XMLCALL
1.1       misho     174:                xlinkSetDefaultHandler  (xlinkHandlerPtr handler);
                    175: 
                    176: /*
                    177:  * Link detection module itself.
                    178:  */
1.1.1.2 ! misho     179: XMLPUBFUN xlinkType XMLCALL
1.1       misho     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>