xpathInternals.h

Go to the documentation of this file.
00001 /*
00002  * Summary: internal interfaces for XML Path Language implementation
00003  * Description: internal interfaces for XML Path Language implementation
00004  *              used to build new modules on top of XPath like XPointer and
00005  *              XSLT
00006  *
00007  * Copy: See Copyright for the status of this software.
00008  *
00009  * Author: Daniel Veillard
00010  */
00011 
00012 #ifndef __XML_XPATH_INTERNALS_H__
00013 #define __XML_XPATH_INTERNALS_H__
00014 
00015 #include <libxml/xmlversion.h>
00016 #include <libxml/xpath.h>
00017 
00018 #ifdef LIBXML_XPATH_ENABLED
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00024 /************************************************************************
00025  *                                  *
00026  *          Helpers                     *
00027  *                                  *
00028  ************************************************************************/
00029 
00030 /*
00031  * Many of these macros may later turn into functions. They
00032  * shouldn't be used in #ifdef's preprocessor instructions.
00033  */
00041 #define xmlXPathSetError(ctxt, err)                 \
00042     { xmlXPatherror((ctxt), __FILE__, __LINE__, (err));         \
00043       if ((ctxt) != NULL) (ctxt)->error = (err); }
00044 
00051 #define xmlXPathSetArityError(ctxt)                 \
00052     xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
00053 
00060 #define xmlXPathSetTypeError(ctxt)                  \
00061     xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
00062 
00071 #define xmlXPathGetError(ctxt)    ((ctxt)->error)
00072 
00081 #define xmlXPathCheckError(ctxt)  ((ctxt)->error != XPATH_EXPRESSION_OK)
00082 
00091 #define xmlXPathGetDocument(ctxt)   ((ctxt)->context->doc)
00092 
00101 #define xmlXPathGetContextNode(ctxt)    ((ctxt)->context->node)
00102 
00103 XMLPUBFUN int XMLCALL       
00104         xmlXPathPopBoolean  (xmlXPathParserContextPtr ctxt);
00105 XMLPUBFUN double XMLCALL        
00106             xmlXPathPopNumber   (xmlXPathParserContextPtr ctxt);
00107 XMLPUBFUN xmlChar * XMLCALL 
00108             xmlXPathPopString   (xmlXPathParserContextPtr ctxt);
00109 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00110             xmlXPathPopNodeSet  (xmlXPathParserContextPtr ctxt);
00111 XMLPUBFUN void * XMLCALL        
00112             xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
00113 
00121 #define xmlXPathReturnBoolean(ctxt, val)                \
00122     valuePush((ctxt), xmlXPathNewBoolean(val))
00123 
00130 #define xmlXPathReturnTrue(ctxt)   xmlXPathReturnBoolean((ctxt), 1)
00131 
00138 #define xmlXPathReturnFalse(ctxt)  xmlXPathReturnBoolean((ctxt), 0)
00139 
00147 #define xmlXPathReturnNumber(ctxt, val)                 \
00148     valuePush((ctxt), xmlXPathNewFloat(val))
00149 
00157 #define xmlXPathReturnString(ctxt, str)                 \
00158     valuePush((ctxt), xmlXPathWrapString(str))
00159 
00166 #define xmlXPathReturnEmptyString(ctxt)                 \
00167     valuePush((ctxt), xmlXPathNewCString(""))
00168 
00176 #define xmlXPathReturnNodeSet(ctxt, ns)                 \
00177     valuePush((ctxt), xmlXPathWrapNodeSet(ns))
00178 
00185 #define xmlXPathReturnEmptyNodeSet(ctxt)                \
00186     valuePush((ctxt), xmlXPathNewNodeSet(NULL))
00187 
00195 #define xmlXPathReturnExternal(ctxt, val)               \
00196     valuePush((ctxt), xmlXPathWrapExternal(val))
00197 
00207 #define xmlXPathStackIsNodeSet(ctxt)                    \
00208     (((ctxt)->value != NULL)                        \
00209      && (((ctxt)->value->type == XPATH_NODESET)             \
00210          || ((ctxt)->value->type == XPATH_XSLT_TREE)))
00211 
00222 #define xmlXPathStackIsExternal(ctxt)                   \
00223     ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
00224 
00231 #define xmlXPathEmptyNodeSet(ns)                    \
00232     { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
00233 
00239 #define CHECK_ERROR                         \
00240     if (ctxt->error != XPATH_EXPRESSION_OK) return
00241 
00247 #define CHECK_ERROR0                            \
00248     if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
00249 
00256 #define XP_ERROR(X)                         \
00257     { xmlXPathErr(ctxt, X); return; }
00258 
00265 #define XP_ERROR0(X)                            \
00266     { xmlXPathErr(ctxt, X); return(0); }
00267 
00275 #define CHECK_TYPE(typeval)                     \
00276     if ((ctxt->value == NULL) || (ctxt->value->type != typeval))    \
00277         XP_ERROR(XPATH_INVALID_TYPE)
00278 
00286 #define CHECK_TYPE0(typeval)                        \
00287     if ((ctxt->value == NULL) || (ctxt->value->type != typeval))    \
00288         XP_ERROR0(XPATH_INVALID_TYPE)
00289 
00296 #define CHECK_ARITY(x)                          \
00297     if (ctxt == NULL) return;                       \
00298     if (nargs != (x))                           \
00299         XP_ERROR(XPATH_INVALID_ARITY);
00300 
00306 #define CAST_TO_STRING                          \
00307     if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING))   \
00308         xmlXPathStringFunction(ctxt, 1);
00309 
00315 #define CAST_TO_NUMBER                          \
00316     if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER))   \
00317         xmlXPathNumberFunction(ctxt, 1);
00318 
00324 #define CAST_TO_BOOLEAN                         \
00325     if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN))  \
00326         xmlXPathBooleanFunction(ctxt, 1);
00327 
00328 /*
00329  * Variable Lookup forwarding.
00330  */
00331 
00332 XMLPUBFUN void XMLCALL  
00333     xmlXPathRegisterVariableLookup  (xmlXPathContextPtr ctxt,
00334                      xmlXPathVariableLookupFunc f,
00335                      void *data);
00336 
00337 /*
00338  * Function Lookup forwarding.
00339  */
00340 
00341 XMLPUBFUN void XMLCALL  
00342         xmlXPathRegisterFuncLookup  (xmlXPathContextPtr ctxt,
00343                      xmlXPathFuncLookupFunc f,
00344                      void *funcCtxt);
00345 
00346 /*
00347  * Error reporting.
00348  */
00349 XMLPUBFUN void XMLCALL      
00350         xmlXPatherror   (xmlXPathParserContextPtr ctxt,
00351                  const char *file,
00352                  int line,
00353                  int no);
00354 
00355 XMLPUBFUN void XMLCALL
00356         xmlXPathErr (xmlXPathParserContextPtr ctxt,
00357                  int error);
00358 
00359 #ifdef LIBXML_DEBUG_ENABLED
00360 XMLPUBFUN void XMLCALL      
00361         xmlXPathDebugDumpObject (FILE *output,
00362                      xmlXPathObjectPtr cur,
00363                      int depth);
00364 XMLPUBFUN void XMLCALL      
00365         xmlXPathDebugDumpCompExpr(FILE *output,
00366                      xmlXPathCompExprPtr comp,
00367                      int depth);
00368 #endif
00369 
00372 XMLPUBFUN int XMLCALL       
00373         xmlXPathNodeSetContains     (xmlNodeSetPtr cur,
00374                          xmlNodePtr val);
00375 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00376         xmlXPathDifference      (xmlNodeSetPtr nodes1,
00377                          xmlNodeSetPtr nodes2);
00378 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00379         xmlXPathIntersection        (xmlNodeSetPtr nodes1,
00380                          xmlNodeSetPtr nodes2);
00381 
00382 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00383         xmlXPathDistinctSorted      (xmlNodeSetPtr nodes);
00384 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00385         xmlXPathDistinct        (xmlNodeSetPtr nodes);
00386 
00387 XMLPUBFUN int XMLCALL       
00388         xmlXPathHasSameNodes        (xmlNodeSetPtr nodes1,
00389                          xmlNodeSetPtr nodes2);
00390 
00391 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00392         xmlXPathNodeLeadingSorted   (xmlNodeSetPtr nodes,
00393                          xmlNodePtr node);
00394 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00395         xmlXPathLeadingSorted       (xmlNodeSetPtr nodes1,
00396                          xmlNodeSetPtr nodes2);
00397 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00398         xmlXPathNodeLeading     (xmlNodeSetPtr nodes,
00399                          xmlNodePtr node);
00400 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00401         xmlXPathLeading         (xmlNodeSetPtr nodes1,
00402                          xmlNodeSetPtr nodes2);
00403 
00404 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00405         xmlXPathNodeTrailingSorted  (xmlNodeSetPtr nodes,
00406                          xmlNodePtr node);
00407 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00408         xmlXPathTrailingSorted      (xmlNodeSetPtr nodes1,
00409                          xmlNodeSetPtr nodes2);
00410 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00411         xmlXPathNodeTrailing        (xmlNodeSetPtr nodes,
00412                          xmlNodePtr node);
00413 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00414         xmlXPathTrailing        (xmlNodeSetPtr nodes1,
00415                          xmlNodeSetPtr nodes2);
00416 
00417 
00422 XMLPUBFUN int XMLCALL          
00423         xmlXPathRegisterNs      (xmlXPathContextPtr ctxt,
00424                          const xmlChar *prefix,
00425                          const xmlChar *ns_uri);
00426 XMLPUBFUN const xmlChar * XMLCALL      
00427         xmlXPathNsLookup        (xmlXPathContextPtr ctxt,
00428                          const xmlChar *prefix);
00429 XMLPUBFUN void XMLCALL         
00430         xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
00431 
00432 XMLPUBFUN int XMLCALL          
00433         xmlXPathRegisterFunc        (xmlXPathContextPtr ctxt,
00434                          const xmlChar *name,
00435                          xmlXPathFunction f);
00436 XMLPUBFUN int XMLCALL          
00437         xmlXPathRegisterFuncNS      (xmlXPathContextPtr ctxt,
00438                          const xmlChar *name,
00439                          const xmlChar *ns_uri,
00440                          xmlXPathFunction f);
00441 XMLPUBFUN int XMLCALL          
00442         xmlXPathRegisterVariable    (xmlXPathContextPtr ctxt,
00443                          const xmlChar *name,
00444                          xmlXPathObjectPtr value);
00445 XMLPUBFUN int XMLCALL          
00446         xmlXPathRegisterVariableNS  (xmlXPathContextPtr ctxt,
00447                          const xmlChar *name,
00448                          const xmlChar *ns_uri,
00449                          xmlXPathObjectPtr value);
00450 XMLPUBFUN xmlXPathFunction XMLCALL   
00451         xmlXPathFunctionLookup      (xmlXPathContextPtr ctxt,
00452                          const xmlChar *name);
00453 XMLPUBFUN xmlXPathFunction XMLCALL   
00454         xmlXPathFunctionLookupNS    (xmlXPathContextPtr ctxt,
00455                          const xmlChar *name,
00456                          const xmlChar *ns_uri);
00457 XMLPUBFUN void XMLCALL         
00458         xmlXPathRegisteredFuncsCleanup  (xmlXPathContextPtr ctxt);
00459 XMLPUBFUN xmlXPathObjectPtr XMLCALL  
00460         xmlXPathVariableLookup      (xmlXPathContextPtr ctxt,
00461                          const xmlChar *name);
00462 XMLPUBFUN xmlXPathObjectPtr XMLCALL  
00463         xmlXPathVariableLookupNS    (xmlXPathContextPtr ctxt,
00464                          const xmlChar *name,
00465                          const xmlChar *ns_uri);
00466 XMLPUBFUN void XMLCALL         
00467         xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
00468 
00472 XMLPUBFUN xmlXPathParserContextPtr XMLCALL
00473           xmlXPathNewParserContext  (const xmlChar *str,
00474                          xmlXPathContextPtr ctxt);
00475 XMLPUBFUN void XMLCALL        
00476         xmlXPathFreeParserContext   (xmlXPathParserContextPtr ctxt);
00477 
00478 /* TODO: remap to xmlXPathValuePop and Push. */
00479 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00480         valuePop            (xmlXPathParserContextPtr ctxt);
00481 XMLPUBFUN int XMLCALL         
00482         valuePush           (xmlXPathParserContextPtr ctxt,
00483                          xmlXPathObjectPtr value);
00484 
00485 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00486         xmlXPathNewString       (const xmlChar *val);
00487 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00488         xmlXPathNewCString      (const char *val);
00489 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00490         xmlXPathWrapString      (xmlChar *val);
00491 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00492         xmlXPathWrapCString     (char * val);
00493 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00494         xmlXPathNewFloat        (double val);
00495 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00496         xmlXPathNewBoolean      (int val);
00497 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00498         xmlXPathNewNodeSet      (xmlNodePtr val);
00499 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00500         xmlXPathNewValueTree        (xmlNodePtr val);
00501 XMLPUBFUN void XMLCALL        
00502         xmlXPathNodeSetAdd      (xmlNodeSetPtr cur,
00503                          xmlNodePtr val);
00504 XMLPUBFUN void XMLCALL              
00505         xmlXPathNodeSetAddUnique    (xmlNodeSetPtr cur,
00506                          xmlNodePtr val);
00507 XMLPUBFUN void XMLCALL        
00508         xmlXPathNodeSetAddNs        (xmlNodeSetPtr cur, 
00509                          xmlNodePtr node, 
00510                          xmlNsPtr ns);
00511 XMLPUBFUN void XMLCALL              
00512         xmlXPathNodeSetSort     (xmlNodeSetPtr set);
00513 
00514 XMLPUBFUN void XMLCALL        
00515         xmlXPathRoot            (xmlXPathParserContextPtr ctxt);
00516 XMLPUBFUN void XMLCALL        
00517         xmlXPathEvalExpr        (xmlXPathParserContextPtr ctxt);
00518 XMLPUBFUN xmlChar * XMLCALL   
00519         xmlXPathParseName       (xmlXPathParserContextPtr ctxt);
00520 XMLPUBFUN xmlChar * XMLCALL   
00521         xmlXPathParseNCName     (xmlXPathParserContextPtr ctxt);
00522 
00523 /*
00524  * Existing functions.
00525  */
00526 XMLPUBFUN double XMLCALL 
00527         xmlXPathStringEvalNumber    (const xmlChar *str);
00528 XMLPUBFUN int XMLCALL 
00529         xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, 
00530                          xmlXPathObjectPtr res);
00531 XMLPUBFUN void XMLCALL 
00532         xmlXPathRegisterAllFunctions    (xmlXPathContextPtr ctxt);
00533 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00534         xmlXPathNodeSetMerge        (xmlNodeSetPtr val1, 
00535                          xmlNodeSetPtr val2);
00536 XMLPUBFUN void XMLCALL 
00537         xmlXPathNodeSetDel      (xmlNodeSetPtr cur, 
00538                          xmlNodePtr val);
00539 XMLPUBFUN void XMLCALL 
00540         xmlXPathNodeSetRemove       (xmlNodeSetPtr cur, 
00541                          int val);
00542 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00543         xmlXPathNewNodeSetList      (xmlNodeSetPtr val);
00544 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00545         xmlXPathWrapNodeSet     (xmlNodeSetPtr val);
00546 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00547         xmlXPathWrapExternal        (void *val);
00548 
00549 XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
00550 XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
00551 XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
00552 XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
00553 XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
00554 XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
00555 XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
00556 XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
00557 XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
00558 
00559 XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
00560 
00561 /*
00562  * Some of the axis navigation routines.
00563  */
00564 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
00565             xmlNodePtr cur);
00566 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
00567             xmlNodePtr cur);
00568 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
00569             xmlNodePtr cur);
00570 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
00571             xmlNodePtr cur);
00572 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
00573             xmlNodePtr cur);
00574 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
00575             xmlNodePtr cur);
00576 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
00577             xmlNodePtr cur);
00578 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
00579             xmlNodePtr cur);
00580 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
00581             xmlNodePtr cur);
00582 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
00583             xmlNodePtr cur);
00584 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
00585             xmlNodePtr cur);
00586 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
00587             xmlNodePtr cur);
00588 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
00589             xmlNodePtr cur);
00590 /*
00591  * The official core of XPath functions.
00592  */
00593 XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
00594 XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
00595 XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
00596 XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
00597 XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
00598 XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
00599 XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
00600 XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
00601 XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
00602 XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
00603 XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
00604 XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
00605 XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
00606 XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
00607 XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
00608 XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
00609 XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
00610 XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
00611 XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
00612 XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
00613 XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
00614 XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
00615 XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
00616 XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
00617 XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
00618 XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
00619 
00623 XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
00624  
00625 #ifdef __cplusplus
00626 }
00627 #endif
00628 
00629 #endif /* LIBXML_XPATH_ENABLED */
00630 #endif /* ! __XML_XPATH_INTERNALS_H__ */
footer
 SourceForge.net Logo