ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

xsltutils.h
Go to the documentation of this file.
00001 /*
00002  * Summary: set of utilities for the XSLT engine
00003  * Description: interfaces for the utilities module of the XSLT engine.
00004  *              things like message handling, profiling, and other
00005  *              generally useful routines.
00006  *
00007  * Copy: See Copyright for the status of this software.
00008  *
00009  * Author: Daniel Veillard
00010  */
00011 
00012 #ifndef __XML_XSLTUTILS_H__
00013 #define __XML_XSLTUTILS_H__
00014 
00015 #include <libxslt/xsltconfig.h>
00016 #ifdef HAVE_STDARG_H
00017 #include <stdarg.h>
00018 #endif
00019 #include <libxml/xpath.h>
00020 #include <libxml/dict.h>
00021 #include <libxml/xmlerror.h>
00022 #include "xsltexports.h"
00023 #include "xsltInternals.h"
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00034 #define XSLT_TODO                           \
00035     xsltGenericError(xsltGenericErrorContext,               \
00036         "Unimplemented block at %s:%d\n",               \
00037             __FILE__, __LINE__);
00038 
00044 #define XSLT_STRANGE                            \
00045     xsltGenericError(xsltGenericErrorContext,               \
00046         "Internal error at %s:%d\n",                \
00047             __FILE__, __LINE__);
00048 
00054 #define IS_XSLT_ELEM(n)                         \
00055     (((n) != NULL) && ((n)->ns != NULL) &&              \
00056      (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
00057 
00063 #define IS_XSLT_NAME(n, val)                        \
00064     (xmlStrEqual((n)->name, (const xmlChar *) (val)))
00065 
00071 #define IS_XSLT_REAL_NODE(n)                        \
00072     (((n) != NULL) &&                           \
00073      (((n)->type == XML_ELEMENT_NODE) ||                \
00074       ((n)->type == XML_TEXT_NODE) ||                   \
00075       ((n)->type == XML_CDATA_SECTION_NODE) ||              \
00076       ((n)->type == XML_ATTRIBUTE_NODE) ||              \
00077       ((n)->type == XML_DOCUMENT_NODE) ||               \
00078       ((n)->type == XML_HTML_DOCUMENT_NODE) ||              \
00079       ((n)->type == XML_COMMENT_NODE) ||                \
00080       ((n)->type == XML_PI_NODE)))      
00081 
00082 /*
00083  * Our own version of namespaced atributes lookup.
00084  */
00085 XSLTPUBFUN xmlChar * XSLTCALL
00086         xsltGetNsProp   (xmlNodePtr node,
00087                  const xmlChar *name,
00088                  const xmlChar *nameSpace);
00089 XSLTPUBFUN const xmlChar * XSLTCALL
00090         xsltGetCNsProp  (xsltStylesheetPtr style,
00091                  xmlNodePtr node,
00092                  const xmlChar *name,
00093                  const xmlChar *nameSpace);
00094 XSLTPUBFUN int XSLTCALL
00095         xsltGetUTF8Char (const unsigned char *utf,
00096                  int *len);
00097 
00098 /*
00099  * XSLT Debug Tracing Tracing Types
00100  */
00101 typedef enum {
00102     XSLT_TRACE_ALL =        -1,
00103     XSLT_TRACE_NONE =       0,
00104     XSLT_TRACE_COPY_TEXT =      1<<0,
00105     XSLT_TRACE_PROCESS_NODE =   1<<1,
00106     XSLT_TRACE_APPLY_TEMPLATE =     1<<2,
00107     XSLT_TRACE_COPY =       1<<3,
00108     XSLT_TRACE_COMMENT =        1<<4,
00109     XSLT_TRACE_PI =         1<<5,
00110     XSLT_TRACE_COPY_OF =        1<<6,
00111     XSLT_TRACE_VALUE_OF =       1<<7,
00112     XSLT_TRACE_CALL_TEMPLATE =  1<<8,
00113     XSLT_TRACE_APPLY_TEMPLATES =    1<<9,
00114     XSLT_TRACE_CHOOSE =         1<<10,
00115     XSLT_TRACE_IF =         1<<11,
00116     XSLT_TRACE_FOR_EACH =       1<<12,
00117     XSLT_TRACE_STRIP_SPACES =   1<<13,
00118     XSLT_TRACE_TEMPLATES =      1<<14,
00119     XSLT_TRACE_KEYS =       1<<15,
00120     XSLT_TRACE_VARIABLES =      1<<16
00121 } xsltDebugTraceCodes;
00122 
00128 #define XSLT_TRACE(ctxt,code,call)  \
00129     if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \
00130         call
00131 
00132 XSLTPUBFUN void XSLTCALL
00133         xsltDebugSetDefaultTrace(xsltDebugTraceCodes val);
00134 XSLTPUBFUN xsltDebugTraceCodes XSLTCALL
00135         xsltDebugGetDefaultTrace(void);
00136 
00137 /*
00138  * XSLT specific error and debug reporting functions.
00139  */
00140 XSLTPUBVAR xmlGenericErrorFunc xsltGenericError;
00141 XSLTPUBVAR void *xsltGenericErrorContext;
00142 XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug;
00143 XSLTPUBVAR void *xsltGenericDebugContext;
00144 
00145 XSLTPUBFUN void XSLTCALL        
00146         xsltPrintErrorContext       (xsltTransformContextPtr ctxt,
00147                                              xsltStylesheetPtr style,
00148                          xmlNodePtr node);
00149 XSLTPUBFUN void XSLTCALL        
00150             xsltMessage         (xsltTransformContextPtr ctxt,
00151                          xmlNodePtr node,
00152                          xmlNodePtr inst);
00153 XSLTPUBFUN void XSLTCALL        
00154             xsltSetGenericErrorFunc     (void *ctx,
00155                          xmlGenericErrorFunc handler);
00156 XSLTPUBFUN void XSLTCALL        
00157             xsltSetGenericDebugFunc     (void *ctx,
00158                          xmlGenericErrorFunc handler);
00159 XSLTPUBFUN void XSLTCALL        
00160             xsltSetTransformErrorFunc   (xsltTransformContextPtr ctxt,
00161                          void *ctx,
00162                          xmlGenericErrorFunc handler);
00163 XSLTPUBFUN void XSLTCALL        
00164             xsltTransformError      (xsltTransformContextPtr ctxt,
00165                          xsltStylesheetPtr style,
00166                          xmlNodePtr node,
00167                          const char *msg,
00168                          ...);
00169 
00170 XSLTPUBFUN int XSLTCALL
00171         xsltSetCtxtParseOptions     (xsltTransformContextPtr ctxt,
00172                          int options);
00173 /*
00174  * Sorting.
00175  */
00176 
00177 XSLTPUBFUN void XSLTCALL        
00178             xsltDocumentSortFunction    (xmlNodeSetPtr list);
00179 XSLTPUBFUN void XSLTCALL        
00180             xsltSetSortFunc         (xsltSortFunc handler);
00181 XSLTPUBFUN void XSLTCALL        
00182             xsltSetCtxtSortFunc     (xsltTransformContextPtr ctxt,
00183                          xsltSortFunc handler);
00184 XSLTPUBFUN void XSLTCALL        
00185             xsltDefaultSortFunction     (xsltTransformContextPtr ctxt,
00186                          xmlNodePtr *sorts,
00187                          int nbsorts);
00188 XSLTPUBFUN void XSLTCALL        
00189             xsltDoSortFunction      (xsltTransformContextPtr ctxt,
00190                          xmlNodePtr * sorts,
00191                          int nbsorts);
00192 XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL 
00193             xsltComputeSortResult       (xsltTransformContextPtr ctxt,
00194                          xmlNodePtr sort);
00195 
00196 /*
00197  * QNames handling.
00198  */
00199 
00200 XSLTPUBFUN const xmlChar * XSLTCALL
00201         xsltSplitQName          (xmlDictPtr dict,
00202                          const xmlChar *name,
00203                          const xmlChar **prefix);
00204 XSLTPUBFUN const xmlChar * XSLTCALL 
00205             xsltGetQNameURI         (xmlNodePtr node,
00206                          xmlChar **name);
00207 
00208 XSLTPUBFUN const xmlChar * XSLTCALL
00209         xsltGetQNameURI2        (xsltStylesheetPtr style,
00210                          xmlNodePtr node,
00211                          const xmlChar **name);
00212 
00213 /*
00214  * Output, reuse libxml I/O buffers.
00215  */
00216 XSLTPUBFUN int XSLTCALL     
00217             xsltSaveResultTo        (xmlOutputBufferPtr buf,
00218                          xmlDocPtr result,
00219                          xsltStylesheetPtr style);
00220 XSLTPUBFUN int XSLTCALL     
00221             xsltSaveResultToFilename    (const char *URI,
00222                          xmlDocPtr result,
00223                          xsltStylesheetPtr style,
00224                          int compression);
00225 XSLTPUBFUN int XSLTCALL     
00226             xsltSaveResultToFile        (FILE *file,
00227                          xmlDocPtr result,
00228                          xsltStylesheetPtr style);
00229 XSLTPUBFUN int XSLTCALL     
00230             xsltSaveResultToFd      (int fd,
00231                          xmlDocPtr result,
00232                          xsltStylesheetPtr style);
00233 XSLTPUBFUN int XSLTCALL             
00234             xsltSaveResultToString          (xmlChar **doc_txt_ptr, 
00235                                                  int * doc_txt_len, 
00236                                                  xmlDocPtr result, 
00237                                                  xsltStylesheetPtr style);
00238 
00239 /*
00240  * XPath interface
00241  */
00242 XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
00243         xsltXPathCompile        (xsltStylesheetPtr style,
00244                          const xmlChar *str);
00245 
00246 /*
00247  * Profiling.
00248  */
00249 XSLTPUBFUN void XSLTCALL        
00250             xsltSaveProfiling       (xsltTransformContextPtr ctxt,
00251                          FILE *output);
00252 XSLTPUBFUN xmlDocPtr XSLTCALL   
00253             xsltGetProfileInformation   (xsltTransformContextPtr ctxt);
00254 
00255 XSLTPUBFUN long XSLTCALL        
00256             xsltTimestamp           (void);
00257 XSLTPUBFUN void XSLTCALL        
00258             xsltCalibrateAdjust     (long delta);
00259 
00265 #define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
00266 
00267 /*
00268  * Hooks for the debugger.
00269  */
00270 
00271 typedef enum {
00272     XSLT_DEBUG_NONE = 0, /* no debugging allowed */
00273     XSLT_DEBUG_INIT,
00274     XSLT_DEBUG_STEP,
00275     XSLT_DEBUG_STEPOUT,
00276     XSLT_DEBUG_NEXT,
00277     XSLT_DEBUG_STOP,
00278     XSLT_DEBUG_CONT,
00279     XSLT_DEBUG_RUN,
00280     XSLT_DEBUG_RUN_RESTART,
00281     XSLT_DEBUG_QUIT
00282 } xsltDebugStatusCodes;
00283 
00284 XSLTPUBVAR int xslDebugStatus;
00285 
00286 typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,
00287             xsltTemplatePtr templ, xsltTransformContextPtr ctxt);
00288 typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);
00289 typedef void (*xsltDropCallCallback) (void);
00290 
00291 XSLTPUBFUN void XSLTCALL
00292         xsltSetDebuggerStatus       (int value);
00293 XSLTPUBFUN int XSLTCALL
00294         xsltGetDebuggerStatus       (void);
00295 XSLTPUBFUN int XSLTCALL     
00296         xsltSetDebuggerCallbacks    (int no, void *block);
00297 XSLTPUBFUN int XSLTCALL     
00298         xslAddCall          (xsltTemplatePtr templ,
00299                          xmlNodePtr source);
00300 XSLTPUBFUN void XSLTCALL        
00301         xslDropCall         (void);
00302 
00303 #ifdef __cplusplus
00304 }
00305 #endif
00306 
00307 #endif /* __XML_XSLTUTILS_H__ */
00308 
00309 

Generated on Sun May 27 2012 04:19:43 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.