ReactOS 0.4.16-dev-2279-gc890759
xsltutils.h
Go to the documentation of this file.
1/*
2 * Summary: set of utilities for the XSLT engine
3 * Description: interfaces for the utilities module of the XSLT engine.
4 * things like message handling, profiling, and other
5 * generally useful routines.
6 *
7 * Copy: See Copyright for the status of this software.
8 *
9 * Author: Daniel Veillard
10 */
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 __cplusplus
23extern "C" {
24#endif
25
31#define XSLT_TODO \
32 xsltGenericError(xsltGenericErrorContext, \
33 "Unimplemented block at %s:%d\n", \
34 __FILE__, __LINE__);
35
41#define XSLT_STRANGE \
42 xsltGenericError(xsltGenericErrorContext, \
43 "Internal error at %s:%d\n", \
44 __FILE__, __LINE__);
45
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
60#define IS_XSLT_NAME(n, val) \
61 (xmlStrEqual((n)->name, (const xmlChar *) (val)))
62
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 */
83 xsltGetNsProp (xmlNodePtr node,
84 const xmlChar *name,
85 const xmlChar *nameSpace);
88 xmlNodePtr node,
89 const xmlChar *name,
90 const xmlChar *nameSpace);
92 xsltGetUTF8Char (const unsigned char *utf,
93 int *len);
94#ifdef IN_LIBXSLT
97 xsltGetUTF8CharZ (const unsigned char *utf,
98 int *len);
100#endif
101
102/*
103 * XSLT Debug Tracing Tracing Types
104 */
105typedef enum {
126
132#define XSLT_TRACE(ctxt,code,call) \
133 if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \
134 call
135
140
141/*
142 * XSLT specific error and debug reporting functions.
143 */
148
152 xmlNodePtr node);
155 xmlNodePtr node,
156 xmlNodePtr inst);
165 void *ctx,
170 xmlNodePtr node,
171 const char *msg,
172 ...) LIBXSLT_ATTR_FORMAT(4,5);
173
176 int options);
177/*
178 * Sorting.
179 */
180
182 xsltDocumentSortFunction (xmlNodeSetPtr list);
190 xsltNewLocaleFunc newLocale,
191 xsltFreeLocaleFunc freeLocale,
192 xsltGenSortKeyFunc genSortKey);
195 xmlNodePtr *sorts,
196 int nbsorts);
199 xmlNodePtr * sorts,
200 int nbsorts);
201XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL
203 xmlNodePtr sort);
204
205/*
206 * QNames handling.
207 */
208
214 xsltGetQNameURI (xmlNodePtr node,
215 xmlChar **name);
216
219 xmlNodePtr node,
220 const xmlChar **name);
221
222/*
223 * Output, reuse libxml I/O buffers.
224 */
226 xsltSaveResultTo (xmlOutputBufferPtr buf,
227 xmlDocPtr result,
231 xmlDocPtr result,
233 int compression);
236 xmlDocPtr result,
240 xmlDocPtr result,
243 xsltSaveResultToString (xmlChar **doc_txt_ptr,
244 int * doc_txt_len,
245 xmlDocPtr result,
247
248/*
249 * XPath interface
250 */
251XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
253 const xmlChar *str);
254XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
257 int flags);
258
259#ifdef IN_LIBXSLT
261#define XSLT_SOURCE_NODE_MASK 15u
262#define XSLT_SOURCE_NODE_HAS_KEY 1u
263#define XSLT_SOURCE_NODE_HAS_ID 2u
264int
265xsltGetSourceNodeFlags(xmlNodePtr node);
266int
268 int flags);
269int
270xsltClearSourceNodeFlags(xmlNodePtr node, int flags);
271void **
272xsltGetPSVIPtr(xmlNodePtr cur);
274#endif
275
276#ifdef WITH_PROFILER
277/*
278 * Profiling.
279 */
281 xsltSaveProfiling (xsltTransformContextPtr ctxt,
282 FILE *output);
283XSLTPUBFUN xmlDocPtr XSLTCALL
284 xsltGetProfileInformation (xsltTransformContextPtr ctxt);
285
287 xsltTimestamp (void);
289 xsltCalibrateAdjust (long delta);
290#endif
291
297#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
298
299/*
300 * Hooks for the debugger.
301 */
302
303typedef enum {
304 XSLT_DEBUG_NONE = 0, /* no debugging allowed */
315
317
318typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,
320typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);
322
325#ifdef WITH_DEBUGGER
327 xsltSetDebuggerStatus (int value);
329 xsltSetDebuggerCallbacks (int no, void *block);
331 xslAddCall (xsltTemplatePtr templ,
332 xmlNodePtr source);
334 xslDropCall (void);
335#endif
336
337#ifdef __cplusplus
338}
339#endif
340
341#endif /* __XML_XSLTUTILS_H__ */
Arabic default style
Definition: afstyles.h:94
#define msg(x)
Definition: auth_time.c:54
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY _In_ uint8_t compression
Definition: btrfs_drv.h:1365
Definition: list.h:37
static WCHAR no[MAX_STRING_RESOURCE_LEN]
Definition: object.c:2340
static struct @457 sort
UINT(* handler)(MSIPACKAGE *)
Definition: action.c:7512
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
FxCollectionEntry * cur
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLbitfield flags
Definition: glext.h:7161
GLuint GLfloat * val
Definition: glext.h:7180
GLuint64EXT * result
Definition: glext.h:11304
GLenum GLsizei len
Definition: glext.h:6722
const WCHAR * str
static int fd
Definition: io.c:51
Definition: dict.c:59
Definition: fci.c:127
Definition: name.c:39
Character const *const prefix
Definition: tempnam.cpp:195
Definition: dlist.c:348
Definition: pdh_main.c:96
void(* xmlGenericErrorFunc)(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
Definition: xmlerror.h:848
static unsigned int block
Definition: xmlmemory.c:101
unsigned char xmlChar
Definition: xmlstring.h:28
xmlChar *(* xsltGenSortKeyFunc)(void *locale, const xmlChar *lang)
void(* xsltSortFunc)(xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts)
void *(* xsltNewLocaleFunc)(const xmlChar *lang, int lowerFirst)
void(* xsltFreeLocaleFunc)(void *locale)
#define LIBXSLT_ATTR_FORMAT(fmt, args)
Definition: xsltconfig.h:159
#define XSLTCALL
Definition: xsltexports.h:39
#define XSLTPUBVAR
Definition: xsltexports.h:55
#define XSLTPUBFUN
Definition: xsltexports.h:48
int xsltSetSourceNodeFlags(xsltTransformContextPtr ctxt, xmlNodePtr node, int flags)
Definition: xsltutils.c:1961
int xsltClearSourceNodeFlags(xmlNodePtr node, int flags)
Definition: xsltutils.c:1999
int xsltGetSourceNodeFlags(xmlNodePtr node)
Definition: xsltutils.c:1923
void ** xsltGetPSVIPtr(xmlNodePtr cur)
Definition: xsltutils.c:2030
int xsltGetUTF8CharZ(const unsigned char *utf, int *len)
Definition: xsltutils.c:319
XSLTPUBFUN void XSLTCALL xsltTransformError(xsltTransformContextPtr ctxt, xsltStylesheetPtr style, xmlNodePtr node, const char *msg,...) LIBXSLT_ATTR_FORMAT(4
xsltDebugStatusCodes
Definition: xsltutils.h:303
@ XSLT_DEBUG_STEP
Definition: xsltutils.h:306
@ XSLT_DEBUG_CONT
Definition: xsltutils.h:310
@ XSLT_DEBUG_STEPOUT
Definition: xsltutils.h:307
@ XSLT_DEBUG_INIT
Definition: xsltutils.h:305
@ XSLT_DEBUG_QUIT
Definition: xsltutils.h:313
@ XSLT_DEBUG_NEXT
Definition: xsltutils.h:308
@ XSLT_DEBUG_NONE
Definition: xsltutils.h:304
@ XSLT_DEBUG_RUN_RESTART
Definition: xsltutils.h:312
@ XSLT_DEBUG_STOP
Definition: xsltutils.h:309
@ XSLT_DEBUG_RUN
Definition: xsltutils.h:311
XSLTPUBFUN int XSLTCALL xsltGetDebuggerStatus(void)
Definition: xsltutils.c:2613
XSLTPUBVAR void * xsltGenericErrorContext
Definition: xsltutils.h:145
XSLTPUBFUN void XSLTCALL xsltDocumentSortFunction(xmlNodeSetPtr list)
Definition: xsltutils.c:987
int(* xsltAddCallCallback)(xsltTemplatePtr templ, xmlNodePtr source)
Definition: xsltutils.h:320
XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug
Definition: xsltutils.h:146
void(* xsltHandleDebuggerCallback)(xmlNodePtr cur, xmlNodePtr node, xsltTemplatePtr templ, xsltTransformContextPtr ctxt)
Definition: xsltutils.h:318
XSLTPUBFUN void XSLTCALL xsltMessage(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst)
Definition: xsltutils.c:492
XSLTPUBVAR void * xsltGenericDebugContext
Definition: xsltutils.h:147
XSLTPUBVAR xmlGenericErrorFunc xsltGenericError
Definition: xsltutils.h:144
XSLTPUBFUN void XSLTCALL xsltSetCtxtLocaleHandlers(xsltTransformContextPtr ctxt, xsltNewLocaleFunc newLocale, xsltFreeLocaleFunc freeLocale, xsltGenSortKeyFunc genSortKey)
Definition: xsltutils.c:1500
XSLTPUBFUN int XSLTCALL xsltSaveResultToFilename(const char *URI, xmlDocPtr result, xsltStylesheetPtr style, int compression)
Definition: xsltutils.c:1740
XSLTPUBVAR int xslDebugStatus
Definition: xsltutils.h:316
XSLTPUBFUN int XSLTCALL xsltSaveResultToFd(int fd, xmlDocPtr result, xsltStylesheetPtr style)
Definition: xsltutils.c:1826
XSLTPUBFUN int XSLTCALL xsltGetUTF8Char(const unsigned char *utf, int *len)
Definition: xsltutils.c:251
xsltDebugTraceCodes
Definition: xsltutils.h:105
@ XSLT_TRACE_VALUE_OF
Definition: xsltutils.h:115
@ XSLT_TRACE_FOR_EACH
Definition: xsltutils.h:120
@ XSLT_TRACE_COPY_OF
Definition: xsltutils.h:114
@ XSLT_TRACE_ALL
Definition: xsltutils.h:106
@ XSLT_TRACE_TEMPLATES
Definition: xsltutils.h:122
@ XSLT_TRACE_APPLY_TEMPLATE
Definition: xsltutils.h:110
@ XSLT_TRACE_COPY_TEXT
Definition: xsltutils.h:108
@ XSLT_TRACE_NONE
Definition: xsltutils.h:107
@ XSLT_TRACE_COPY
Definition: xsltutils.h:111
@ XSLT_TRACE_PROCESS_NODE
Definition: xsltutils.h:109
@ XSLT_TRACE_CHOOSE
Definition: xsltutils.h:118
@ XSLT_TRACE_COMMENT
Definition: xsltutils.h:112
@ XSLT_TRACE_PI
Definition: xsltutils.h:113
@ XSLT_TRACE_KEYS
Definition: xsltutils.h:123
@ XSLT_TRACE_CALL_TEMPLATE
Definition: xsltutils.h:116
@ XSLT_TRACE_STRIP_SPACES
Definition: xsltutils.h:121
@ XSLT_TRACE_APPLY_TEMPLATES
Definition: xsltutils.h:117
@ XSLT_TRACE_VARIABLES
Definition: xsltutils.h:124
@ XSLT_TRACE_IF
Definition: xsltutils.h:119
XSLTPUBFUN xsltDebugTraceCodes XSLTCALL xsltDebugGetDefaultTrace(void)
Definition: transform.c:488
XSLTPUBFUN void XSLTCALL xsltSetGenericDebugFunc(void *ctx, xmlGenericErrorFunc handler)
Definition: xsltutils.c:650
XSLTPUBFUN const xmlChar *XSLTCALL xsltGetQNameURI(xmlNodePtr node, xmlChar **name)
Definition: xsltutils.c:837
XSLTPUBFUN int XSLTCALL xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result, xsltStylesheetPtr style)
Definition: xsltutils.c:1564
XSLTPUBFUN void XSLTCALL xsltPrintErrorContext(xsltTransformContextPtr ctxt, xsltStylesheetPtr style, xmlNodePtr node)
Definition: xsltutils.c:667
void(* xsltDropCallCallback)(void)
Definition: xsltutils.h:321
XSLTPUBFUN const xmlChar *XSLTCALL xsltSplitQName(xmlDictPtr dict, const xmlChar *name, const xmlChar **prefix)
Definition: xsltutils.c:804
XSLTPUBFUN void XSLTCALL xsltDoSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts)
Definition: xsltutils.c:1447
XSLTPUBFUN int XSLTCALL xsltSaveResultToFile(FILE *file, xmlDocPtr result, xsltStylesheetPtr style)
Definition: xsltutils.c:1783
XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL xsltXPathCompile(xsltStylesheetPtr style, const xmlChar *str)
Definition: xsltutils.c:2593
XSLTPUBFUN void XSLTCALL xsltSetTransformErrorFunc(xsltTransformContextPtr ctxt, void *ctx, xmlGenericErrorFunc handler)
Definition: xsltutils.c:743
XSLTPUBFUN void XSLTCALL xsltSetSortFunc(xsltSortFunc handler)
Definition: xsltutils.c:1466
XSLTPUBFUN void XSLTCALL xsltSetCtxtSortFunc(xsltTransformContextPtr ctxt, xsltSortFunc handler)
Definition: xsltutils.c:1486
XSLTPUBFUN void XSLTCALL xsltDefaultSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts)
Definition: xsltutils.c:1181
XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL xsltXPathCompileFlags(xsltStylesheetPtr style, const xmlChar *str, int flags)
Definition: xsltutils.c:2550
XSLTPUBFUN void XSLTCALL xsltDebugSetDefaultTrace(xsltDebugTraceCodes val)
Definition: transform.c:477
XSLTPUBFUN xmlXPathObjectPtr *XSLTCALL xsltComputeSortResult(xsltTransformContextPtr ctxt, xmlNodePtr sort)
Definition: xsltutils.c:1161
XSLTPUBFUN int XSLTCALL xsltSaveResultToString(xmlChar **doc_txt_ptr, int *doc_txt_len, xmlDocPtr result, xsltStylesheetPtr style)
Definition: xsltutils.c:1868
XSLTPUBFUN void XSLTCALL xsltSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler)
Definition: xsltutils.c:604
XSLTPUBFUN const xmlChar *XSLTCALL xsltGetCNsProp(xsltStylesheetPtr style, xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace)
Definition: xsltutils.c:76
XSLTPUBFUN const xmlChar *XSLTCALL xsltGetQNameURI2(xsltStylesheetPtr style, xmlNodePtr node, const xmlChar **name)
Definition: xsltutils.c:911
XSLTPUBFUN void XSLTCALL XSLTPUBFUN int XSLTCALL xsltSetCtxtParseOptions(xsltTransformContextPtr ctxt, int options)
Definition: xsltutils.c:1529
XSLTPUBFUN xmlChar *XSLTCALL xsltGetNsProp(xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace)
Definition: xsltutils.c:166
#define const
Definition: zconf.h:233