VirtualBox

source: vbox/trunk/src/libs/libxml2-2.13.2/include/libxml/xpathInternals.h@ 107935

Last change on this file since 107935 was 105420, checked in by vboxsync, 7 months ago

libxml2-2.12.6: Applied and adjusted our libxml2 changes to 2.12.6. bugref:10730

  • Property svn:eol-style set to native
File size: 18.0 KB
Line 
1/*
2 * Summary: internal interfaces for XML Path Language implementation
3 * Description: internal interfaces for XML Path Language implementation
4 * used to build new modules on top of XPath like XPointer and
5 * XSLT
6 *
7 * Copy: See Copyright for the status of this software.
8 *
9 * Author: Daniel Veillard
10 */
11
12#ifndef __XML_XPATH_INTERNALS_H__
13#define __XML_XPATH_INTERNALS_H__
14
15#include <stdio.h>
16#include <libxml/xmlversion.h>
17#include <libxml/xpath.h>
18
19#ifdef LIBXML_XPATH_ENABLED
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/************************************************************************
26 * *
27 * Helpers *
28 * *
29 ************************************************************************/
30
31/*
32 * Many of these macros may later turn into functions. They
33 * shouldn't be used in #ifdef's preprocessor instructions.
34 */
35/**
36 * xmlXPathSetError:
37 * @ctxt: an XPath parser context
38 * @err: an xmlXPathError code
39 *
40 * Raises an error.
41 */
42#define xmlXPathSetError(ctxt, err) \
43 { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
44 if ((ctxt) != NULL) (ctxt)->error = (err); }
45
46/**
47 * xmlXPathSetArityError:
48 * @ctxt: an XPath parser context
49 *
50 * Raises an XPATH_INVALID_ARITY error.
51 */
52#define xmlXPathSetArityError(ctxt) \
53 xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
54
55/**
56 * xmlXPathSetTypeError:
57 * @ctxt: an XPath parser context
58 *
59 * Raises an XPATH_INVALID_TYPE error.
60 */
61#define xmlXPathSetTypeError(ctxt) \
62 xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
63
64/**
65 * xmlXPathGetError:
66 * @ctxt: an XPath parser context
67 *
68 * Get the error code of an XPath context.
69 *
70 * Returns the context error.
71 */
72#define xmlXPathGetError(ctxt) ((ctxt)->error)
73
74/**
75 * xmlXPathCheckError:
76 * @ctxt: an XPath parser context
77 *
78 * Check if an XPath error was raised.
79 *
80 * Returns true if an error has been raised, false otherwise.
81 */
82#define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
83
84/**
85 * xmlXPathGetDocument:
86 * @ctxt: an XPath parser context
87 *
88 * Get the document of an XPath context.
89 *
90 * Returns the context document.
91 */
92#define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
93
94/**
95 * xmlXPathGetContextNode:
96 * @ctxt: an XPath parser context
97 *
98 * Get the context node of an XPath context.
99 *
100 * Returns the context node.
101 */
102#define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
103
104XMLPUBFUN int
105 xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
106XMLPUBFUN double
107 xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
108XMLPUBFUN xmlChar *
109 xmlXPathPopString (xmlXPathParserContextPtr ctxt);
110XMLPUBFUN xmlNodeSetPtr
111 xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
112XMLPUBFUN void *
113 xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
114
115/**
116 * xmlXPathReturnBoolean:
117 * @ctxt: an XPath parser context
118 * @val: a boolean
119 *
120 * Pushes the boolean @val on the context stack.
121 */
122#define xmlXPathReturnBoolean(ctxt, val) \
123 valuePush((ctxt), xmlXPathNewBoolean(val))
124
125/**
126 * xmlXPathReturnTrue:
127 * @ctxt: an XPath parser context
128 *
129 * Pushes true on the context stack.
130 */
131#define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
132
133/**
134 * xmlXPathReturnFalse:
135 * @ctxt: an XPath parser context
136 *
137 * Pushes false on the context stack.
138 */
139#define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
140
141/**
142 * xmlXPathReturnNumber:
143 * @ctxt: an XPath parser context
144 * @val: a double
145 *
146 * Pushes the double @val on the context stack.
147 */
148#define xmlXPathReturnNumber(ctxt, val) \
149 valuePush((ctxt), xmlXPathNewFloat(val))
150
151/**
152 * xmlXPathReturnString:
153 * @ctxt: an XPath parser context
154 * @str: a string
155 *
156 * Pushes the string @str on the context stack.
157 */
158#define xmlXPathReturnString(ctxt, str) \
159 valuePush((ctxt), xmlXPathWrapString(str))
160
161/**
162 * xmlXPathReturnEmptyString:
163 * @ctxt: an XPath parser context
164 *
165 * Pushes an empty string on the stack.
166 */
167#define xmlXPathReturnEmptyString(ctxt) \
168 valuePush((ctxt), xmlXPathNewCString(""))
169
170/**
171 * xmlXPathReturnNodeSet:
172 * @ctxt: an XPath parser context
173 * @ns: a node-set
174 *
175 * Pushes the node-set @ns on the context stack.
176 */
177#define xmlXPathReturnNodeSet(ctxt, ns) \
178 valuePush((ctxt), xmlXPathWrapNodeSet(ns))
179
180/**
181 * xmlXPathReturnEmptyNodeSet:
182 * @ctxt: an XPath parser context
183 *
184 * Pushes an empty node-set on the context stack.
185 */
186#define xmlXPathReturnEmptyNodeSet(ctxt) \
187 valuePush((ctxt), xmlXPathNewNodeSet(NULL))
188
189/**
190 * xmlXPathReturnExternal:
191 * @ctxt: an XPath parser context
192 * @val: user data
193 *
194 * Pushes user data on the context stack.
195 */
196#define xmlXPathReturnExternal(ctxt, val) \
197 valuePush((ctxt), xmlXPathWrapExternal(val))
198
199/**
200 * xmlXPathStackIsNodeSet:
201 * @ctxt: an XPath parser context
202 *
203 * Check if the current value on the XPath stack is a node set or
204 * an XSLT value tree.
205 *
206 * Returns true if the current object on the stack is a node-set.
207 */
208#define xmlXPathStackIsNodeSet(ctxt) \
209 (((ctxt)->value != NULL) \
210 && (((ctxt)->value->type == XPATH_NODESET) \
211 || ((ctxt)->value->type == XPATH_XSLT_TREE)))
212
213/**
214 * xmlXPathStackIsExternal:
215 * @ctxt: an XPath parser context
216 *
217 * Checks if the current value on the XPath stack is an external
218 * object.
219 *
220 * Returns true if the current object on the stack is an external
221 * object.
222 */
223#define xmlXPathStackIsExternal(ctxt) \
224 ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
225
226/**
227 * xmlXPathEmptyNodeSet:
228 * @ns: a node-set
229 *
230 * Empties a node-set.
231 */
232#define xmlXPathEmptyNodeSet(ns) \
233 { while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }
234
235/**
236 * CHECK_ERROR:
237 *
238 * Macro to return from the function if an XPath error was detected.
239 */
240#define CHECK_ERROR \
241 if (ctxt->error != XPATH_EXPRESSION_OK) return
242
243/**
244 * CHECK_ERROR0:
245 *
246 * Macro to return 0 from the function if an XPath error was detected.
247 */
248#define CHECK_ERROR0 \
249 if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
250
251/**
252 * XP_ERROR:
253 * @X: the error code
254 *
255 * Macro to raise an XPath error and return.
256 */
257#define XP_ERROR(X) \
258 { xmlXPathErr(ctxt, X); return; }
259
260/**
261 * XP_ERROR0:
262 * @X: the error code
263 *
264 * Macro to raise an XPath error and return 0.
265 */
266#define XP_ERROR0(X) \
267 { xmlXPathErr(ctxt, X); return(0); }
268
269/**
270 * CHECK_TYPE:
271 * @typeval: the XPath type
272 *
273 * Macro to check that the value on top of the XPath stack is of a given
274 * type.
275 */
276#define CHECK_TYPE(typeval) \
277 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
278 XP_ERROR(XPATH_INVALID_TYPE)
279
280/**
281 * CHECK_TYPE0:
282 * @typeval: the XPath type
283 *
284 * Macro to check that the value on top of the XPath stack is of a given
285 * type. Return(0) in case of failure
286 */
287#define CHECK_TYPE0(typeval) \
288 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
289 XP_ERROR0(XPATH_INVALID_TYPE)
290
291/**
292 * CHECK_ARITY:
293 * @x: the number of expected args
294 *
295 * Macro to check that the number of args passed to an XPath function matches.
296 */
297#define CHECK_ARITY(x) \
298 if (ctxt == NULL) return; \
299 if (nargs != (x)) \
300 XP_ERROR(XPATH_INVALID_ARITY); \
301 if (ctxt->valueNr < (x)) \
302 XP_ERROR(XPATH_STACK_ERROR);
303
304/**
305 * CAST_TO_STRING:
306 *
307 * Macro to try to cast the value on the top of the XPath stack to a string.
308 */
309#define CAST_TO_STRING \
310 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
311 xmlXPathStringFunction(ctxt, 1);
312
313/**
314 * CAST_TO_NUMBER:
315 *
316 * Macro to try to cast the value on the top of the XPath stack to a number.
317 */
318#define CAST_TO_NUMBER \
319 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
320 xmlXPathNumberFunction(ctxt, 1);
321
322/**
323 * CAST_TO_BOOLEAN:
324 *
325 * Macro to try to cast the value on the top of the XPath stack to a boolean.
326 */
327#define CAST_TO_BOOLEAN \
328 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
329 xmlXPathBooleanFunction(ctxt, 1);
330
331/*
332 * Variable Lookup forwarding.
333 */
334
335XMLPUBFUN void
336 xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
337 xmlXPathVariableLookupFunc f,
338 void *data);
339
340/*
341 * Function Lookup forwarding.
342 */
343
344XMLPUBFUN void
345 xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
346 xmlXPathFuncLookupFunc f,
347 void *funcCtxt);
348
349/*
350 * Error reporting.
351 */
352XMLPUBFUN void
353 xmlXPatherror (xmlXPathParserContextPtr ctxt,
354 const char *file,
355 int line,
356 int no);
357
358XMLPUBFUN void
359 xmlXPathErr (xmlXPathParserContextPtr ctxt,
360 int error);
361
362#ifdef LIBXML_DEBUG_ENABLED
363XMLPUBFUN void
364 xmlXPathDebugDumpObject (FILE *output,
365 xmlXPathObjectPtr cur,
366 int depth);
367XMLPUBFUN void
368 xmlXPathDebugDumpCompExpr(FILE *output,
369 xmlXPathCompExprPtr comp,
370 int depth);
371#endif
372/**
373 * NodeSet handling.
374 */
375XMLPUBFUN int
376 xmlXPathNodeSetContains (xmlNodeSetPtr cur,
377 xmlNodePtr val);
378XMLPUBFUN xmlNodeSetPtr
379 xmlXPathDifference (xmlNodeSetPtr nodes1,
380 xmlNodeSetPtr nodes2);
381XMLPUBFUN xmlNodeSetPtr
382 xmlXPathIntersection (xmlNodeSetPtr nodes1,
383 xmlNodeSetPtr nodes2);
384
385XMLPUBFUN xmlNodeSetPtr
386 xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
387XMLPUBFUN xmlNodeSetPtr
388 xmlXPathDistinct (xmlNodeSetPtr nodes);
389
390XMLPUBFUN int
391 xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
392 xmlNodeSetPtr nodes2);
393
394XMLPUBFUN xmlNodeSetPtr
395 xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
396 xmlNodePtr node);
397XMLPUBFUN xmlNodeSetPtr
398 xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
399 xmlNodeSetPtr nodes2);
400XMLPUBFUN xmlNodeSetPtr
401 xmlXPathNodeLeading (xmlNodeSetPtr nodes,
402 xmlNodePtr node);
403XMLPUBFUN xmlNodeSetPtr
404 xmlXPathLeading (xmlNodeSetPtr nodes1,
405 xmlNodeSetPtr nodes2);
406
407XMLPUBFUN xmlNodeSetPtr
408 xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
409 xmlNodePtr node);
410XMLPUBFUN xmlNodeSetPtr
411 xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
412 xmlNodeSetPtr nodes2);
413XMLPUBFUN xmlNodeSetPtr
414 xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
415 xmlNodePtr node);
416XMLPUBFUN xmlNodeSetPtr
417 xmlXPathTrailing (xmlNodeSetPtr nodes1,
418 xmlNodeSetPtr nodes2);
419
420
421/**
422 * Extending a context.
423 */
424
425XMLPUBFUN int
426 xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
427 const xmlChar *prefix,
428 const xmlChar *ns_uri);
429XMLPUBFUN const xmlChar *
430 xmlXPathNsLookup (xmlXPathContextPtr ctxt,
431 const xmlChar *prefix);
432XMLPUBFUN void
433 xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
434
435XMLPUBFUN int
436 xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
437 const xmlChar *name,
438 xmlXPathFunction f);
439XMLPUBFUN int
440 xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
441 const xmlChar *name,
442 const xmlChar *ns_uri,
443 xmlXPathFunction f);
444XMLPUBFUN int
445 xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
446 const xmlChar *name,
447 xmlXPathObjectPtr value);
448XMLPUBFUN int
449 xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
450 const xmlChar *name,
451 const xmlChar *ns_uri,
452 xmlXPathObjectPtr value);
453XMLPUBFUN xmlXPathFunction
454 xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
455 const xmlChar *name);
456XMLPUBFUN xmlXPathFunction
457 xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
458 const xmlChar *name,
459 const xmlChar *ns_uri);
460XMLPUBFUN void
461 xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
462XMLPUBFUN xmlXPathObjectPtr
463 xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
464 const xmlChar *name);
465XMLPUBFUN xmlXPathObjectPtr
466 xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
467 const xmlChar *name,
468 const xmlChar *ns_uri);
469XMLPUBFUN void
470 xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
471
472/**
473 * Utilities to extend XPath.
474 */
475XMLPUBFUN xmlXPathParserContextPtr
476 xmlXPathNewParserContext (const xmlChar *str,
477 xmlXPathContextPtr ctxt);
478XMLPUBFUN void
479 xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
480
481/* TODO: remap to xmlXPathValuePop and Push. */
482XMLPUBFUN xmlXPathObjectPtr
483 valuePop (xmlXPathParserContextPtr ctxt);
484XMLPUBFUN int
485 valuePush (xmlXPathParserContextPtr ctxt,
486 xmlXPathObjectPtr value);
487
488XMLPUBFUN xmlXPathObjectPtr
489 xmlXPathNewString (const xmlChar *val);
490XMLPUBFUN xmlXPathObjectPtr
491 xmlXPathNewCString (const char *val);
492XMLPUBFUN xmlXPathObjectPtr
493 xmlXPathWrapString (xmlChar *val);
494XMLPUBFUN xmlXPathObjectPtr
495 xmlXPathWrapCString (char * val);
496XMLPUBFUN xmlXPathObjectPtr
497 xmlXPathNewFloat (double val);
498XMLPUBFUN xmlXPathObjectPtr
499 xmlXPathNewBoolean (int val);
500XMLPUBFUN xmlXPathObjectPtr
501 xmlXPathNewNodeSet (xmlNodePtr val);
502XMLPUBFUN xmlXPathObjectPtr
503 xmlXPathNewValueTree (xmlNodePtr val);
504XMLPUBFUN int
505 xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
506 xmlNodePtr val);
507XMLPUBFUN int
508 xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
509 xmlNodePtr val);
510XMLPUBFUN int
511 xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
512 xmlNodePtr node,
513 xmlNsPtr ns);
514XMLPUBFUN void
515 xmlXPathNodeSetSort (xmlNodeSetPtr set);
516
517XMLPUBFUN void
518 xmlXPathRoot (xmlXPathParserContextPtr ctxt);
519XMLPUBFUN void
520 xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
521XMLPUBFUN xmlChar *
522 xmlXPathParseName (xmlXPathParserContextPtr ctxt);
523XMLPUBFUN xmlChar *
524 xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
525
526/*
527 * Existing functions.
528 */
529XMLPUBFUN double
530 xmlXPathStringEvalNumber (const xmlChar *str);
531XMLPUBFUN int
532 xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
533 xmlXPathObjectPtr res);
534XMLPUBFUN void
535 xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
536XMLPUBFUN xmlNodeSetPtr
537 xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
538 xmlNodeSetPtr val2);
539XMLPUBFUN void
540 xmlXPathNodeSetDel (xmlNodeSetPtr cur,
541 xmlNodePtr val);
542XMLPUBFUN void
543 xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
544 int val);
545XMLPUBFUN xmlXPathObjectPtr
546 xmlXPathNewNodeSetList (xmlNodeSetPtr val);
547XMLPUBFUN xmlXPathObjectPtr
548 xmlXPathWrapNodeSet (xmlNodeSetPtr val);
549XMLPUBFUN xmlXPathObjectPtr
550 xmlXPathWrapExternal (void *val);
551
552XMLPUBFUN int xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
553XMLPUBFUN int xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
554XMLPUBFUN int xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
555XMLPUBFUN void xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
556XMLPUBFUN void xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
557XMLPUBFUN void xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
558XMLPUBFUN void xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
559XMLPUBFUN void xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
560XMLPUBFUN void xmlXPathModValues(xmlXPathParserContextPtr ctxt);
561
562XMLPUBFUN int xmlXPathIsNodeType(const xmlChar *name);
563
564/*
565 * Some of the axis navigation routines.
566 */
567XMLPUBFUN xmlNodePtr xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
568 xmlNodePtr cur);
569XMLPUBFUN xmlNodePtr xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
570 xmlNodePtr cur);
571XMLPUBFUN xmlNodePtr xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
572 xmlNodePtr cur);
573XMLPUBFUN xmlNodePtr xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
574 xmlNodePtr cur);
575XMLPUBFUN xmlNodePtr xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
576 xmlNodePtr cur);
577XMLPUBFUN xmlNodePtr xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
578 xmlNodePtr cur);
579XMLPUBFUN xmlNodePtr xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
580 xmlNodePtr cur);
581XMLPUBFUN xmlNodePtr xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
582 xmlNodePtr cur);
583XMLPUBFUN xmlNodePtr xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
584 xmlNodePtr cur);
585XMLPUBFUN xmlNodePtr xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
586 xmlNodePtr cur);
587XMLPUBFUN xmlNodePtr xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
588 xmlNodePtr cur);
589XMLPUBFUN xmlNodePtr xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
590 xmlNodePtr cur);
591XMLPUBFUN xmlNodePtr xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
592 xmlNodePtr cur);
593/*
594 * The official core of XPath functions.
595 */
596XMLPUBFUN void xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
597XMLPUBFUN void xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
598XMLPUBFUN void xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
599XMLPUBFUN void xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
600XMLPUBFUN void xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
601XMLPUBFUN void xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
602XMLPUBFUN void xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
603XMLPUBFUN void xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
604XMLPUBFUN void xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
605XMLPUBFUN void xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
606XMLPUBFUN void xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
607XMLPUBFUN void xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
608XMLPUBFUN void xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
609XMLPUBFUN void xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
610XMLPUBFUN void xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
611XMLPUBFUN void xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
612XMLPUBFUN void xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
613XMLPUBFUN void xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
614XMLPUBFUN void xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
615XMLPUBFUN void xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
616XMLPUBFUN void xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
617XMLPUBFUN void xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
618XMLPUBFUN void xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
619XMLPUBFUN void xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
620XMLPUBFUN void xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
621XMLPUBFUN void xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
622
623/**
624 * Really internal functions
625 */
626XMLPUBFUN void xmlXPathNodeSetFreeNs(xmlNsPtr ns);
627
628#ifdef __cplusplus
629}
630#endif
631
632#endif /* LIBXML_XPATH_ENABLED */
633#endif /* ! __XML_XPATH_INTERNALS_H__ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette