Eneboo - Documentación para desarrolladores
src/libdigidoc/libxml2/include/libxml/xlink.h
Ir a la documentación de este archivo.
00001 /*
00002  * Summary: unfinished XLink detection module
00003  * Description: unfinished XLink detection module
00004  *
00005  * Copy: See Copyright for the status of this software.
00006  *
00007  * Author: Daniel Veillard
00008  */
00009 
00010 #ifndef __XML_XLINK_H__
00011 #define __XML_XLINK_H__
00012 
00013 #include <libxml/xmlversion.h>
00014 #include <libxml/tree.h>
00015 
00016 #ifdef LIBXML_XPTR_ENABLED
00017 
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021 
00032 typedef xmlChar *xlinkHRef;
00033 typedef xmlChar *xlinkRole;
00034 typedef xmlChar *xlinkTitle;
00035 
00036 typedef enum {
00037     XLINK_TYPE_NONE = 0,
00038     XLINK_TYPE_SIMPLE,
00039     XLINK_TYPE_EXTENDED,
00040     XLINK_TYPE_EXTENDED_SET
00041 } xlinkType;
00042 
00043 typedef enum {
00044     XLINK_SHOW_NONE = 0,
00045     XLINK_SHOW_NEW,
00046     XLINK_SHOW_EMBED,
00047     XLINK_SHOW_REPLACE
00048 } xlinkShow;
00049 
00050 typedef enum {
00051     XLINK_ACTUATE_NONE = 0,
00052     XLINK_ACTUATE_AUTO,
00053     XLINK_ACTUATE_ONREQUEST
00054 } xlinkActuate;
00055 
00064 typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
00065 
00066 /*
00067  * The link detection module interact with the upper layers using
00068  * a set of callback registered at parsing time.
00069  */
00070 
00081 typedef void
00082 (*xlinkSimpleLinkFunk)  (void *ctx,
00083                          xmlNodePtr node,
00084                          const xlinkHRef href,
00085                          const xlinkRole role,
00086                          const xlinkTitle title);
00087 
00106 typedef void
00107 (*xlinkExtendedLinkFunk)(void *ctx,
00108                          xmlNodePtr node,
00109                          int nbLocators,
00110                          const xlinkHRef *hrefs,
00111                          const xlinkRole *roles,
00112                          int nbArcs,
00113                          const xlinkRole *from,
00114                          const xlinkRole *to,
00115                          xlinkShow *show,
00116                          xlinkActuate *actuate,
00117                          int nbTitles,
00118                          const xlinkTitle *titles,
00119                          const xmlChar **langs);
00120 
00134 typedef void
00135 (*xlinkExtendedLinkSetFunk)     (void *ctx,
00136                                  xmlNodePtr node,
00137                                  int nbLocators,
00138                                  const xlinkHRef *hrefs,
00139                                  const xlinkRole *roles,
00140                                  int nbTitles,
00141                                  const xlinkTitle *titles,
00142                                  const xmlChar **langs);
00143 
00150 typedef struct _xlinkHandler xlinkHandler;
00151 typedef xlinkHandler *xlinkHandlerPtr;
00152 struct _xlinkHandler {
00153     xlinkSimpleLinkFunk simple;
00154     xlinkExtendedLinkFunk extended;
00155     xlinkExtendedLinkSetFunk set;
00156 };
00157 
00158 /*
00159  * The default detection routine, can be overridden, they call the default
00160  * detection callbacks. 
00161  */
00162 
00163 XMLPUBFUN xlinkNodeDetectFunc XMLCALL   
00164                 xlinkGetDefaultDetect   (void);
00165 XMLPUBFUN void XMLCALL                  
00166                 xlinkSetDefaultDetect   (xlinkNodeDetectFunc func);
00167 
00168 /*
00169  * Routines to set/get the default handlers.
00170  */
00171 XMLPUBFUN xlinkHandlerPtr XMLCALL       
00172                 xlinkGetDefaultHandler  (void);
00173 XMLPUBFUN void XMLCALL          
00174                 xlinkSetDefaultHandler  (xlinkHandlerPtr handler);
00175 
00176 /*
00177  * Link detection module itself.
00178  */
00179 XMLPUBFUN xlinkType XMLCALL      
00180                 xlinkIsLink             (xmlDocPtr doc,
00181                                          xmlNodePtr node);
00182 
00183 #ifdef __cplusplus
00184 }
00185 #endif
00186 
00187 #endif /* LIBXML_XPTR_ENABLED */
00188 
00189 #endif /* __XML_XLINK_H__ */
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'