Viewing file:      xsltutils.h (8.1 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
/*  * Summary: set of utilities for the XSLT engine  * Description: interfaces for the utilities module of the XSLT engine.  *              things like message handling, profiling, and other  *              generally useful routines.  *  * Copy: See Copyright for the status of this software.  *  * Author: Daniel Veillard  */
  #ifndef __XML_XSLTUTILS_H__ #define __XML_XSLTUTILS_H__
  #include <libxslt/xsltconfig.h> #ifdef HAVE_STDARG_H #include <stdarg.h> #endif #include <libxml/xpath.h> #include <libxml/dict.h> #include <libxml/xmlerror.h> #include "xsltexports.h" #include "xsltInternals.h"
  #ifdef __cplusplus extern "C" { #endif
  /**  * XSLT_TODO:  *  * Macro to flag unimplemented blocks.  */ #define XSLT_TODO                            \     xsltGenericError(xsltGenericErrorContext,                \         "Unimplemented block at %s:%d\n",                \             __FILE__, __LINE__);
  /**  * XSLT_STRANGE:  *  * Macro to flag that a problem was detected internally.  */ #define XSLT_STRANGE                            \     xsltGenericError(xsltGenericErrorContext,                \         "Internal error at %s:%d\n",                \             __FILE__, __LINE__);
  /**  * IS_XSLT_ELEM:  *  * Checks that the element pertains to XSLT namespace.  */ #define IS_XSLT_ELEM(n)                            \     (((n) != NULL) && ((n)->type == XML_ELEMENT_NODE) &&                \      ((n)->ns != NULL) && (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
  /**  * IS_XSLT_NAME:  *  * Checks the value of an element in XSLT namespace.  */ #define IS_XSLT_NAME(n, val)                        \     (xmlStrEqual((n)->name, (const xmlChar *) (val)))
  /**  * IS_XSLT_REAL_NODE:  *  * Check that a node is a 'real' one: document, element, text or attribute.  */ #define IS_XSLT_REAL_NODE(n)                        \     (((n) != NULL) &&                            \      (((n)->type == XML_ELEMENT_NODE) ||                \       ((n)->type == XML_TEXT_NODE) ||                    \       ((n)->type == XML_CDATA_SECTION_NODE) ||                \       ((n)->type == XML_ATTRIBUTE_NODE) ||                \       ((n)->type == XML_DOCUMENT_NODE) ||                \       ((n)->type == XML_HTML_DOCUMENT_NODE) ||                \       ((n)->type == XML_COMMENT_NODE) ||                \       ((n)->type == XML_PI_NODE)))
  /*  * Our own version of namespaced atributes lookup.  */ XSLTPUBFUN xmlChar * XSLTCALL         xsltGetNsProp    (xmlNodePtr node,                  const xmlChar *name,                  const xmlChar *nameSpace); XSLTPUBFUN const xmlChar * XSLTCALL         xsltGetCNsProp    (xsltStylesheetPtr style,                  xmlNodePtr node,                  const xmlChar *name,                  const xmlChar *nameSpace); XSLTPUBFUN int XSLTCALL         xsltGetUTF8Char    (const unsigned char *utf,                  int *len);
  /*  * XSLT Debug Tracing Tracing Types  */ typedef enum {     XSLT_TRACE_ALL =        -1,     XSLT_TRACE_NONE =        0,     XSLT_TRACE_COPY_TEXT =        1<<0,     XSLT_TRACE_PROCESS_NODE =    1<<1,     XSLT_TRACE_APPLY_TEMPLATE =    1<<2,     XSLT_TRACE_COPY =        1<<3,     XSLT_TRACE_COMMENT =        1<<4,     XSLT_TRACE_PI =            1<<5,     XSLT_TRACE_COPY_OF =        1<<6,     XSLT_TRACE_VALUE_OF =        1<<7,     XSLT_TRACE_CALL_TEMPLATE =    1<<8,     XSLT_TRACE_APPLY_TEMPLATES =    1<<9,     XSLT_TRACE_CHOOSE =        1<<10,     XSLT_TRACE_IF =            1<<11,     XSLT_TRACE_FOR_EACH =        1<<12,     XSLT_TRACE_STRIP_SPACES =    1<<13,     XSLT_TRACE_TEMPLATES =        1<<14,     XSLT_TRACE_KEYS =        1<<15,     XSLT_TRACE_VARIABLES =        1<<16 } xsltDebugTraceCodes;
  /**  * XSLT_TRACE:  *  * Control the type of xsl debugtrace messages emitted.  */ #define XSLT_TRACE(ctxt,code,call)    \     if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \         call
  XSLTPUBFUN void XSLTCALL         xsltDebugSetDefaultTrace(xsltDebugTraceCodes val); XSLTPUBFUN xsltDebugTraceCodes XSLTCALL         xsltDebugGetDefaultTrace(void);
  /*  * XSLT specific error and debug reporting functions.  */ XSLTPUBVAR xmlGenericErrorFunc xsltGenericError; XSLTPUBVAR void *xsltGenericErrorContext; XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug; XSLTPUBVAR void *xsltGenericDebugContext;
  XSLTPUBFUN void XSLTCALL         xsltPrintErrorContext        (xsltTransformContextPtr ctxt,                                              xsltStylesheetPtr style,                          xmlNodePtr node); XSLTPUBFUN void XSLTCALL         xsltMessage            (xsltTransformContextPtr ctxt,                          xmlNodePtr node,                          xmlNodePtr inst); XSLTPUBFUN void XSLTCALL         xsltSetGenericErrorFunc        (void *ctx,                          xmlGenericErrorFunc handler); XSLTPUBFUN void XSLTCALL         xsltSetGenericDebugFunc        (void *ctx,                          xmlGenericErrorFunc handler); XSLTPUBFUN void XSLTCALL         xsltSetTransformErrorFunc    (xsltTransformContextPtr ctxt,                          void *ctx,                          xmlGenericErrorFunc handler); XSLTPUBFUN void XSLTCALL         xsltTransformError        (xsltTransformContextPtr ctxt,                          xsltStylesheetPtr style,                          xmlNodePtr node,                          const char *msg,                          ...) LIBXSLT_ATTR_FORMAT(4,5);
  XSLTPUBFUN int XSLTCALL         xsltSetCtxtParseOptions        (xsltTransformContextPtr ctxt,                          int options); /*  * Sorting.  */
  XSLTPUBFUN void XSLTCALL         xsltDocumentSortFunction    (xmlNodeSetPtr list); XSLTPUBFUN void XSLTCALL         xsltSetSortFunc            (xsltSortFunc handler); XSLTPUBFUN void XSLTCALL         xsltSetCtxtSortFunc        (xsltTransformContextPtr ctxt,                          xsltSortFunc handler); XSLTPUBFUN void XSLTCALL         xsltDefaultSortFunction        (xsltTransformContextPtr ctxt,                          xmlNodePtr *sorts,                          int nbsorts); XSLTPUBFUN void XSLTCALL         xsltDoSortFunction        (xsltTransformContextPtr ctxt,                          xmlNodePtr * sorts,                          int nbsorts); XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL         xsltComputeSortResult        (xsltTransformContextPtr ctxt,                          xmlNodePtr sort);
  /*  * QNames handling.  */
  XSLTPUBFUN const xmlChar * XSLTCALL         xsltSplitQName            (xmlDictPtr dict,                          const xmlChar *name,                          const xmlChar **prefix); XSLTPUBFUN const xmlChar * XSLTCALL         xsltGetQNameURI            (xmlNodePtr node,                          xmlChar **name);
  XSLTPUBFUN const xmlChar * XSLTCALL         xsltGetQNameURI2        (xsltStylesheetPtr style,                          xmlNodePtr node,                          const xmlChar **name);
  /*  * Output, reuse libxml I/O buffers.  */ XSLTPUBFUN int XSLTCALL         xsltSaveResultTo        (xmlOutputBufferPtr buf,                          xmlDocPtr result,                          xsltStylesheetPtr style); XSLTPUBFUN int XSLTCALL         xsltSaveResultToFilename    (const char *URI,                          xmlDocPtr result,                          xsltStylesheetPtr style,                          int compression); XSLTPUBFUN int XSLTCALL         xsltSaveResultToFile        (FILE *file,                          xmlDocPtr result,                          xsltStylesheetPtr style); XSLTPUBFUN int XSLTCALL         xsltSaveResultToFd        (int fd,                          xmlDocPtr result,                          xsltStylesheetPtr style); XSLTPUBFUN int XSLTCALL         xsltSaveResultToString          (xmlChar **doc_txt_ptr,                                                  int * doc_txt_len,                                                  xmlDocPtr result,                                                  xsltStylesheetPtr style);
  /*  * XPath interface  */ XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL         xsltXPathCompile        (xsltStylesheetPtr style,                          const xmlChar *str); XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL         xsltXPathCompileFlags        (xsltStylesheetPtr style,                          const xmlChar *str,                          int flags);
  /*  * Profiling.  */ XSLTPUBFUN void XSLTCALL         xsltSaveProfiling        (xsltTransformContextPtr ctxt,                          FILE *output); XSLTPUBFUN xmlDocPtr XSLTCALL         xsltGetProfileInformation    (xsltTransformContextPtr ctxt);
  XSLTPUBFUN long XSLTCALL         xsltTimestamp            (void); XSLTPUBFUN void XSLTCALL         xsltCalibrateAdjust        (long delta);
  /**  * XSLT_TIMESTAMP_TICS_PER_SEC:  *  * Sampling precision for profiling  */ #define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
  /*  * Hooks for the debugger.  */
  typedef enum {     XSLT_DEBUG_NONE = 0, /* no debugging allowed */     XSLT_DEBUG_INIT,     XSLT_DEBUG_STEP,     XSLT_DEBUG_STEPOUT,     XSLT_DEBUG_NEXT,     XSLT_DEBUG_STOP,     XSLT_DEBUG_CONT,     XSLT_DEBUG_RUN,     XSLT_DEBUG_RUN_RESTART,     XSLT_DEBUG_QUIT } xsltDebugStatusCodes;
  XSLTPUBVAR int xslDebugStatus;
  typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,             xsltTemplatePtr templ, xsltTransformContextPtr ctxt); typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source); typedef void (*xsltDropCallCallback) (void);
  XSLTPUBFUN void XSLTCALL         xsltSetDebuggerStatus        (int value); XSLTPUBFUN int XSLTCALL         xsltGetDebuggerStatus        (void); XSLTPUBFUN int XSLTCALL         xsltSetDebuggerCallbacks    (int no, void *block); XSLTPUBFUN int XSLTCALL         xslAddCall            (xsltTemplatePtr templ,                          xmlNodePtr source); XSLTPUBFUN void XSLTCALL         xslDropCall            (void);
  #ifdef __cplusplus } #endif
  #endif /* __XML_XSLTUTILS_H__ */
 
  
  |