Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hhhrrrttt222111
GitHub Repository: hhhrrrttt222111/Dorkify
Path: blob/master/venv/Lib/site-packages/lxml/includes/libxslt/xsltutils.h
811 views
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
#ifdef HAVE_STDARG_H
17
#include <stdarg.h>
18
#endif
19
#include <libxml/xpath.h>
20
#include <libxml/dict.h>
21
#include <libxml/xmlerror.h>
22
#include "xsltexports.h"
23
#include "xsltInternals.h"
24
25
#ifdef __cplusplus
26
extern "C" {
27
#endif
28
29
/**
30
* XSLT_TODO:
31
*
32
* Macro to flag unimplemented blocks.
33
*/
34
#define XSLT_TODO \
35
xsltGenericError(xsltGenericErrorContext, \
36
"Unimplemented block at %s:%d\n", \
37
__FILE__, __LINE__);
38
39
/**
40
* XSLT_STRANGE:
41
*
42
* Macro to flag that a problem was detected internally.
43
*/
44
#define XSLT_STRANGE \
45
xsltGenericError(xsltGenericErrorContext, \
46
"Internal error at %s:%d\n", \
47
__FILE__, __LINE__);
48
49
/**
50
* IS_XSLT_ELEM:
51
*
52
* Checks that the element pertains to XSLT namespace.
53
*/
54
#define IS_XSLT_ELEM(n) \
55
(((n) != NULL) && ((n)->type == XML_ELEMENT_NODE) && \
56
((n)->ns != NULL) && (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
57
58
/**
59
* IS_XSLT_NAME:
60
*
61
* Checks the value of an element in XSLT namespace.
62
*/
63
#define IS_XSLT_NAME(n, val) \
64
(xmlStrEqual((n)->name, (const xmlChar *) (val)))
65
66
/**
67
* IS_XSLT_REAL_NODE:
68
*
69
* Check that a node is a 'real' one: document, element, text or attribute.
70
*/
71
#define IS_XSLT_REAL_NODE(n) \
72
(((n) != NULL) && \
73
(((n)->type == XML_ELEMENT_NODE) || \
74
((n)->type == XML_TEXT_NODE) || \
75
((n)->type == XML_CDATA_SECTION_NODE) || \
76
((n)->type == XML_ATTRIBUTE_NODE) || \
77
((n)->type == XML_DOCUMENT_NODE) || \
78
((n)->type == XML_HTML_DOCUMENT_NODE) || \
79
((n)->type == XML_COMMENT_NODE) || \
80
((n)->type == XML_PI_NODE)))
81
82
/*
83
* Our own version of namespaced atributes lookup.
84
*/
85
XSLTPUBFUN xmlChar * XSLTCALL
86
xsltGetNsProp (xmlNodePtr node,
87
const xmlChar *name,
88
const xmlChar *nameSpace);
89
XSLTPUBFUN const xmlChar * XSLTCALL
90
xsltGetCNsProp (xsltStylesheetPtr style,
91
xmlNodePtr node,
92
const xmlChar *name,
93
const xmlChar *nameSpace);
94
XSLTPUBFUN int XSLTCALL
95
xsltGetUTF8Char (const unsigned char *utf,
96
int *len);
97
98
/*
99
* XSLT Debug Tracing Tracing Types
100
*/
101
typedef enum {
102
XSLT_TRACE_ALL = -1,
103
XSLT_TRACE_NONE = 0,
104
XSLT_TRACE_COPY_TEXT = 1<<0,
105
XSLT_TRACE_PROCESS_NODE = 1<<1,
106
XSLT_TRACE_APPLY_TEMPLATE = 1<<2,
107
XSLT_TRACE_COPY = 1<<3,
108
XSLT_TRACE_COMMENT = 1<<4,
109
XSLT_TRACE_PI = 1<<5,
110
XSLT_TRACE_COPY_OF = 1<<6,
111
XSLT_TRACE_VALUE_OF = 1<<7,
112
XSLT_TRACE_CALL_TEMPLATE = 1<<8,
113
XSLT_TRACE_APPLY_TEMPLATES = 1<<9,
114
XSLT_TRACE_CHOOSE = 1<<10,
115
XSLT_TRACE_IF = 1<<11,
116
XSLT_TRACE_FOR_EACH = 1<<12,
117
XSLT_TRACE_STRIP_SPACES = 1<<13,
118
XSLT_TRACE_TEMPLATES = 1<<14,
119
XSLT_TRACE_KEYS = 1<<15,
120
XSLT_TRACE_VARIABLES = 1<<16
121
} xsltDebugTraceCodes;
122
123
/**
124
* XSLT_TRACE:
125
*
126
* Control the type of xsl debugtrace messages emitted.
127
*/
128
#define XSLT_TRACE(ctxt,code,call) \
129
if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \
130
call
131
132
XSLTPUBFUN void XSLTCALL
133
xsltDebugSetDefaultTrace(xsltDebugTraceCodes val);
134
XSLTPUBFUN xsltDebugTraceCodes XSLTCALL
135
xsltDebugGetDefaultTrace(void);
136
137
/*
138
* XSLT specific error and debug reporting functions.
139
*/
140
XSLTPUBVAR xmlGenericErrorFunc xsltGenericError;
141
XSLTPUBVAR void *xsltGenericErrorContext;
142
XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug;
143
XSLTPUBVAR void *xsltGenericDebugContext;
144
145
XSLTPUBFUN void XSLTCALL
146
xsltPrintErrorContext (xsltTransformContextPtr ctxt,
147
xsltStylesheetPtr style,
148
xmlNodePtr node);
149
XSLTPUBFUN void XSLTCALL
150
xsltMessage (xsltTransformContextPtr ctxt,
151
xmlNodePtr node,
152
xmlNodePtr inst);
153
XSLTPUBFUN void XSLTCALL
154
xsltSetGenericErrorFunc (void *ctx,
155
xmlGenericErrorFunc handler);
156
XSLTPUBFUN void XSLTCALL
157
xsltSetGenericDebugFunc (void *ctx,
158
xmlGenericErrorFunc handler);
159
XSLTPUBFUN void XSLTCALL
160
xsltSetTransformErrorFunc (xsltTransformContextPtr ctxt,
161
void *ctx,
162
xmlGenericErrorFunc handler);
163
XSLTPUBFUN void XSLTCALL
164
xsltTransformError (xsltTransformContextPtr ctxt,
165
xsltStylesheetPtr style,
166
xmlNodePtr node,
167
const char *msg,
168
...) LIBXSLT_ATTR_FORMAT(4,5);
169
170
XSLTPUBFUN int XSLTCALL
171
xsltSetCtxtParseOptions (xsltTransformContextPtr ctxt,
172
int options);
173
/*
174
* Sorting.
175
*/
176
177
XSLTPUBFUN void XSLTCALL
178
xsltDocumentSortFunction (xmlNodeSetPtr list);
179
XSLTPUBFUN void XSLTCALL
180
xsltSetSortFunc (xsltSortFunc handler);
181
XSLTPUBFUN void XSLTCALL
182
xsltSetCtxtSortFunc (xsltTransformContextPtr ctxt,
183
xsltSortFunc handler);
184
XSLTPUBFUN void XSLTCALL
185
xsltDefaultSortFunction (xsltTransformContextPtr ctxt,
186
xmlNodePtr *sorts,
187
int nbsorts);
188
XSLTPUBFUN void XSLTCALL
189
xsltDoSortFunction (xsltTransformContextPtr ctxt,
190
xmlNodePtr * sorts,
191
int nbsorts);
192
XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL
193
xsltComputeSortResult (xsltTransformContextPtr ctxt,
194
xmlNodePtr sort);
195
196
/*
197
* QNames handling.
198
*/
199
200
XSLTPUBFUN const xmlChar * XSLTCALL
201
xsltSplitQName (xmlDictPtr dict,
202
const xmlChar *name,
203
const xmlChar **prefix);
204
XSLTPUBFUN const xmlChar * XSLTCALL
205
xsltGetQNameURI (xmlNodePtr node,
206
xmlChar **name);
207
208
XSLTPUBFUN const xmlChar * XSLTCALL
209
xsltGetQNameURI2 (xsltStylesheetPtr style,
210
xmlNodePtr node,
211
const xmlChar **name);
212
213
/*
214
* Output, reuse libxml I/O buffers.
215
*/
216
XSLTPUBFUN int XSLTCALL
217
xsltSaveResultTo (xmlOutputBufferPtr buf,
218
xmlDocPtr result,
219
xsltStylesheetPtr style);
220
XSLTPUBFUN int XSLTCALL
221
xsltSaveResultToFilename (const char *URI,
222
xmlDocPtr result,
223
xsltStylesheetPtr style,
224
int compression);
225
XSLTPUBFUN int XSLTCALL
226
xsltSaveResultToFile (FILE *file,
227
xmlDocPtr result,
228
xsltStylesheetPtr style);
229
XSLTPUBFUN int XSLTCALL
230
xsltSaveResultToFd (int fd,
231
xmlDocPtr result,
232
xsltStylesheetPtr style);
233
XSLTPUBFUN int XSLTCALL
234
xsltSaveResultToString (xmlChar **doc_txt_ptr,
235
int * doc_txt_len,
236
xmlDocPtr result,
237
xsltStylesheetPtr style);
238
239
/*
240
* XPath interface
241
*/
242
XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
243
xsltXPathCompile (xsltStylesheetPtr style,
244
const xmlChar *str);
245
XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
246
xsltXPathCompileFlags (xsltStylesheetPtr style,
247
const xmlChar *str,
248
int flags);
249
250
/*
251
* Profiling.
252
*/
253
XSLTPUBFUN void XSLTCALL
254
xsltSaveProfiling (xsltTransformContextPtr ctxt,
255
FILE *output);
256
XSLTPUBFUN xmlDocPtr XSLTCALL
257
xsltGetProfileInformation (xsltTransformContextPtr ctxt);
258
259
XSLTPUBFUN long XSLTCALL
260
xsltTimestamp (void);
261
XSLTPUBFUN void XSLTCALL
262
xsltCalibrateAdjust (long delta);
263
264
/**
265
* XSLT_TIMESTAMP_TICS_PER_SEC:
266
*
267
* Sampling precision for profiling
268
*/
269
#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
270
271
/*
272
* Hooks for the debugger.
273
*/
274
275
typedef enum {
276
XSLT_DEBUG_NONE = 0, /* no debugging allowed */
277
XSLT_DEBUG_INIT,
278
XSLT_DEBUG_STEP,
279
XSLT_DEBUG_STEPOUT,
280
XSLT_DEBUG_NEXT,
281
XSLT_DEBUG_STOP,
282
XSLT_DEBUG_CONT,
283
XSLT_DEBUG_RUN,
284
XSLT_DEBUG_RUN_RESTART,
285
XSLT_DEBUG_QUIT
286
} xsltDebugStatusCodes;
287
288
XSLTPUBVAR int xslDebugStatus;
289
290
typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,
291
xsltTemplatePtr templ, xsltTransformContextPtr ctxt);
292
typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);
293
typedef void (*xsltDropCallCallback) (void);
294
295
XSLTPUBFUN void XSLTCALL
296
xsltSetDebuggerStatus (int value);
297
XSLTPUBFUN int XSLTCALL
298
xsltGetDebuggerStatus (void);
299
XSLTPUBFUN int XSLTCALL
300
xsltSetDebuggerCallbacks (int no, void *block);
301
XSLTPUBFUN int XSLTCALL
302
xslAddCall (xsltTemplatePtr templ,
303
xmlNodePtr source);
304
XSLTPUBFUN void XSLTCALL
305
xslDropCall (void);
306
307
#ifdef __cplusplus
308
}
309
#endif
310
311
#endif /* __XML_XSLTUTILS_H__ */
312
313
314
315