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