Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
xsltutils.h344 linesDownload Raw Back to libxslt
1/*2 * Summary: set of utilities for the XSLT engine3 * Description: interfaces for the utilities module of the XSLT engine.4 *              things like message handling, profiling, and other5 *              generally useful routines.6 *7 * Copy: See Copyright for the status of this software.8 *9 * Author: Daniel Veillard10 */11 12#ifndef __XML_XSLTUTILS_H__13#define __XML_XSLTUTILS_H__14 15#include <libxslt/xsltconfig.h>16#include <libxml/xpath.h>17#include <libxml/dict.h>18#include <libxml/xmlerror.h>19#include "xsltexports.h"20#include "xsltInternals.h"21 22#ifdef __cplusplus23extern "C" {24#endif25 26/**27 * XSLT_TODO:28 *29 * Macro to flag unimplemented blocks.30 */31#define XSLT_TODO							\32    xsltGenericError(xsltGenericErrorContext,				\33	    "Unimplemented block at %s:%d\n",				\34            __FILE__, __LINE__);35 36/**37 * XSLT_STRANGE:38 *39 * Macro to flag that a problem was detected internally.40 */41#define XSLT_STRANGE							\42    xsltGenericError(xsltGenericErrorContext,				\43	    "Internal error at %s:%d\n",				\44            __FILE__, __LINE__);45 46/**47 * IS_XSLT_ELEM:48 *49 * Checks that the element pertains to XSLT namespace.50 */51#define IS_XSLT_ELEM(n)							\52    (((n) != NULL) && ((n)->type == XML_ELEMENT_NODE) &&                \53     ((n)->ns != NULL) && (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))54 55/**56 * IS_XSLT_NAME:57 *58 * Checks the value of an element in XSLT namespace.59 */60#define IS_XSLT_NAME(n, val)						\61    (xmlStrEqual((n)->name, (const xmlChar *) (val)))62 63/**64 * IS_XSLT_REAL_NODE:65 *66 * Check that a node is a 'real' one: document, element, text or attribute.67 */68#define IS_XSLT_REAL_NODE(n)						\69    (((n) != NULL) &&							\70     (((n)->type == XML_ELEMENT_NODE) ||				\71      ((n)->type == XML_TEXT_NODE) ||					\72      ((n)->type == XML_CDATA_SECTION_NODE) ||				\73      ((n)->type == XML_ATTRIBUTE_NODE) ||				\74      ((n)->type == XML_DOCUMENT_NODE) ||				\75      ((n)->type == XML_HTML_DOCUMENT_NODE) ||				\76      ((n)->type == XML_COMMENT_NODE) ||				\77      ((n)->type == XML_PI_NODE)))78 79/*80 * Our own version of namespaced attributes lookup.81 */82XSLTPUBFUN xmlChar * XSLTCALL83		xsltGetNsProp	(xmlNodePtr node,84				 const xmlChar *name,85				 const xmlChar *nameSpace);86XSLTPUBFUN const xmlChar * XSLTCALL87		xsltGetCNsProp	(xsltStylesheetPtr style,88				 xmlNodePtr node,89				 const xmlChar *name,90				 const xmlChar *nameSpace);91XSLTPUBFUN int XSLTCALL92		xsltGetUTF8Char	(const unsigned char *utf,93				 int *len);94#ifdef IN_LIBXSLT95/** DOC_DISABLE */96XSLTPUBFUN int XSLTCALL97		xsltGetUTF8CharZ (const unsigned char *utf,98				  int *len);99/** DOC_ENABLE */100#endif101 102/*103 * XSLT Debug Tracing Tracing Types104 */105typedef enum {106	XSLT_TRACE_ALL =		-1,107	XSLT_TRACE_NONE =		0,108	XSLT_TRACE_COPY_TEXT =		1<<0,109	XSLT_TRACE_PROCESS_NODE =	1<<1,110	XSLT_TRACE_APPLY_TEMPLATE =	1<<2,111	XSLT_TRACE_COPY =		1<<3,112	XSLT_TRACE_COMMENT =		1<<4,113	XSLT_TRACE_PI =			1<<5,114	XSLT_TRACE_COPY_OF =		1<<6,115	XSLT_TRACE_VALUE_OF =		1<<7,116	XSLT_TRACE_CALL_TEMPLATE =	1<<8,117	XSLT_TRACE_APPLY_TEMPLATES =	1<<9,118	XSLT_TRACE_CHOOSE =		1<<10,119	XSLT_TRACE_IF =			1<<11,120	XSLT_TRACE_FOR_EACH =		1<<12,121	XSLT_TRACE_STRIP_SPACES =	1<<13,122	XSLT_TRACE_TEMPLATES =		1<<14,123	XSLT_TRACE_KEYS =		1<<15,124	XSLT_TRACE_VARIABLES =		1<<16125} xsltDebugTraceCodes;126 127/**128 * XSLT_TRACE:129 *130 * Control the type of xsl debugtrace messages emitted.131 */132#define XSLT_TRACE(ctxt,code,call)	\133	if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \134	    call135 136XSLTPUBFUN void XSLTCALL137		xsltDebugSetDefaultTrace(xsltDebugTraceCodes val);138XSLTPUBFUN xsltDebugTraceCodes XSLTCALL139		xsltDebugGetDefaultTrace(void);140 141/*142 * XSLT specific error and debug reporting functions.143 */144XSLTPUBVAR xmlGenericErrorFunc xsltGenericError;145XSLTPUBVAR void *xsltGenericErrorContext;146XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug;147XSLTPUBVAR void *xsltGenericDebugContext;148 149XSLTPUBFUN void XSLTCALL150		xsltPrintErrorContext		(xsltTransformContextPtr ctxt,151	                                         xsltStylesheetPtr style,152						 xmlNodePtr node);153XSLTPUBFUN void XSLTCALL154		xsltMessage			(xsltTransformContextPtr ctxt,155						 xmlNodePtr node,156						 xmlNodePtr inst);157XSLTPUBFUN void XSLTCALL158		xsltSetGenericErrorFunc		(void *ctx,159						 xmlGenericErrorFunc handler);160XSLTPUBFUN void XSLTCALL161		xsltSetGenericDebugFunc		(void *ctx,162						 xmlGenericErrorFunc handler);163XSLTPUBFUN void XSLTCALL164		xsltSetTransformErrorFunc	(xsltTransformContextPtr ctxt,165						 void *ctx,166						 xmlGenericErrorFunc handler);167XSLTPUBFUN void XSLTCALL168		xsltTransformError		(xsltTransformContextPtr ctxt,169						 xsltStylesheetPtr style,170						 xmlNodePtr node,171						 const char *msg,172						 ...) LIBXSLT_ATTR_FORMAT(4,5);173 174XSLTPUBFUN int XSLTCALL175		xsltSetCtxtParseOptions		(xsltTransformContextPtr ctxt,176						 int options);177/*178 * Sorting.179 */180 181XSLTPUBFUN void XSLTCALL182		xsltDocumentSortFunction	(xmlNodeSetPtr list);183XSLTPUBFUN void XSLTCALL184		xsltSetSortFunc			(xsltSortFunc handler);185XSLTPUBFUN void XSLTCALL186		xsltSetCtxtSortFunc		(xsltTransformContextPtr ctxt,187						 xsltSortFunc handler);188XSLTPUBFUN void XSLTCALL189		xsltSetCtxtLocaleHandlers	(xsltTransformContextPtr ctxt,190						 xsltNewLocaleFunc newLocale,191						 xsltFreeLocaleFunc freeLocale,192						 xsltGenSortKeyFunc genSortKey);193XSLTPUBFUN void XSLTCALL194		xsltDefaultSortFunction		(xsltTransformContextPtr ctxt,195						 xmlNodePtr *sorts,196						 int nbsorts);197XSLTPUBFUN void XSLTCALL198		xsltDoSortFunction		(xsltTransformContextPtr ctxt,199						 xmlNodePtr * sorts,200						 int nbsorts);201XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL202		xsltComputeSortResult		(xsltTransformContextPtr ctxt,203						 xmlNodePtr sort);204 205/*206 * QNames handling.207 */208 209XSLTPUBFUN const xmlChar * XSLTCALL210		xsltSplitQName			(xmlDictPtr dict,211						 const xmlChar *name,212						 const xmlChar **prefix);213XSLTPUBFUN const xmlChar * XSLTCALL214		xsltGetQNameURI			(xmlNodePtr node,215						 xmlChar **name);216 217XSLTPUBFUN const xmlChar * XSLTCALL218		xsltGetQNameURI2		(xsltStylesheetPtr style,219						 xmlNodePtr node,220						 const xmlChar **name);221 222/*223 * Output, reuse libxml I/O buffers.224 */225XSLTPUBFUN int XSLTCALL226		xsltSaveResultTo		(xmlOutputBufferPtr buf,227						 xmlDocPtr result,228						 xsltStylesheetPtr style);229XSLTPUBFUN int XSLTCALL230		xsltSaveResultToFilename	(const char *URI,231						 xmlDocPtr result,232						 xsltStylesheetPtr style,233						 int compression);234XSLTPUBFUN int XSLTCALL235		xsltSaveResultToFile		(FILE *file,236						 xmlDocPtr result,237						 xsltStylesheetPtr style);238XSLTPUBFUN int XSLTCALL239		xsltSaveResultToFd		(int fd,240						 xmlDocPtr result,241						 xsltStylesheetPtr style);242XSLTPUBFUN int XSLTCALL243		xsltSaveResultToString          (xmlChar **doc_txt_ptr,244                                                 int * doc_txt_len,245                                                 xmlDocPtr result,246                                                 xsltStylesheetPtr style);247 248/*249 * XPath interface250 */251XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL252		xsltXPathCompile		(xsltStylesheetPtr style,253						 const xmlChar *str);254XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL255		xsltXPathCompileFlags		(xsltStylesheetPtr style,256						 const xmlChar *str,257						 int flags);258 259#ifdef IN_LIBXSLT260/** DOC_DISABLE */261#define XSLT_SOURCE_NODE_MASK       15u262#define XSLT_SOURCE_NODE_HAS_KEY    1u263#define XSLT_SOURCE_NODE_HAS_ID     2u264int265xsltGetSourceNodeFlags(xmlNodePtr node);266int267xsltSetSourceNodeFlags(xsltTransformContextPtr ctxt, xmlNodePtr node,268                       int flags);269int270xsltClearSourceNodeFlags(xmlNodePtr node, int flags);271void **272xsltGetPSVIPtr(xmlNodePtr cur);273/** DOC_ENABLE */274#endif275 276#ifdef WITH_PROFILER277/*278 * Profiling.279 */280XSLTPUBFUN void XSLTCALL281		xsltSaveProfiling		(xsltTransformContextPtr ctxt,282						 FILE *output);283XSLTPUBFUN xmlDocPtr XSLTCALL284		xsltGetProfileInformation	(xsltTransformContextPtr ctxt);285 286XSLTPUBFUN long XSLTCALL287		xsltTimestamp			(void);288XSLTPUBFUN void XSLTCALL289		xsltCalibrateAdjust		(long delta);290#endif291 292/**293 * XSLT_TIMESTAMP_TICS_PER_SEC:294 *295 * Sampling precision for profiling296 */297#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l298 299/*300 * Hooks for the debugger.301 */302 303typedef enum {304    XSLT_DEBUG_NONE = 0, /* no debugging allowed */305    XSLT_DEBUG_INIT,306    XSLT_DEBUG_STEP,307    XSLT_DEBUG_STEPOUT,308    XSLT_DEBUG_NEXT,309    XSLT_DEBUG_STOP,310    XSLT_DEBUG_CONT,311    XSLT_DEBUG_RUN,312    XSLT_DEBUG_RUN_RESTART,313    XSLT_DEBUG_QUIT314} xsltDebugStatusCodes;315 316XSLTPUBVAR int xslDebugStatus;317 318typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,319			xsltTemplatePtr templ, xsltTransformContextPtr ctxt);320typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);321typedef void (*xsltDropCallCallback) (void);322 323XSLTPUBFUN int XSLTCALL324		xsltGetDebuggerStatus		(void);325#ifdef WITH_DEBUGGER326XSLTPUBFUN void XSLTCALL327		xsltSetDebuggerStatus		(int value);328XSLTPUBFUN int XSLTCALL329		xsltSetDebuggerCallbacks	(int no, void *block);330XSLTPUBFUN int XSLTCALL331		xslAddCall			(xsltTemplatePtr templ,332						 xmlNodePtr source);333XSLTPUBFUN void XSLTCALL334		xslDropCall			(void);335#endif336 337#ifdef __cplusplus338}339#endif340 341#endif /* __XML_XSLTUTILS_H__ */342 343 344 
codekingpro/portable-devtools · Team Ai