File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / xlink.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:38 2014 UTC (10 years, 2 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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>