xpathInternals.h

00001 /*
00002 
00003  * Summary: internal interfaces for XML Path Language implementation
00004 
00005  * Description: internal interfaces for XML Path Language implementation
00006 
00007  *              used to build new modules on top of XPath like XPointer and
00008 
00009  *              XSLT
00010 
00011  *
00012 
00013  * Copy: See Copyright for the status of this software.
00014 
00015  *
00016 
00017  * Author: Daniel Veillard
00018 
00019  */
00020 
00021 
00022 
00023 #ifndef __XML_XPATH_INTERNALS_H__
00024 
00025 #define __XML_XPATH_INTERNALS_H__
00026 
00027 
00028 
00029 #include <libxml/xmlversion.h>
00030 
00031 #include <libxml/xpath.h>
00032 
00033 
00034 
00035 #ifdef LIBXML_XPATH_ENABLED
00036 
00037 
00038 
00039 #ifdef __cplusplus
00040 
00041 extern "C" {
00042 
00043 #endif
00044 
00045 
00046 
00047 /************************************************************************
00048 
00049  *                                                                      *
00050 
00051  *                      Helpers                                         *
00052 
00053  *                                                                      *
00054 
00055  ************************************************************************/
00056 
00057 
00058 
00059 /*
00060 
00061  * Many of these macros may later turn into functions. They
00062 
00063  * shouldn't be used in #ifdef's preprocessor instructions.
00064 
00065  */
00066 
00081 #define xmlXPathSetError(ctxt, err)                                     \
00082 
00083     { xmlXPatherror((ctxt), __FILE__, __LINE__, (err));                 \
00084 
00085       if ((ctxt) != NULL) (ctxt)->error = (err); }
00086 
00087 
00088 
00101 #define xmlXPathSetArityError(ctxt)                                     \
00102 
00103     xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
00104 
00105 
00106 
00107 
00119 #define xmlXPathSetTypeError(ctxt)                                      \
00120 
00121     xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
00122 
00123 
00124 
00125 
00141 #define xmlXPathGetError(ctxt)    ((ctxt)->error)
00142 
00143 
00144 
00161 #define xmlXPathCheckError(ctxt)  ((ctxt)->error != XPATH_EXPRESSION_OK)
00162 
00163 
00164 
00181 #define xmlXPathGetDocument(ctxt)       ((ctxt)->context->doc)
00182 
00183 
00184 
00201 #define xmlXPathGetContextNode(ctxt)    ((ctxt)->context->node)
00202 
00203 
00204 
00205 XMLPUBFUN int XMLCALL           
00206 
00207                 xmlXPathPopBoolean      (xmlXPathParserContextPtr ctxt);
00208 
00209 XMLPUBFUN double XMLCALL                
00210 
00211                 xmlXPathPopNumber       (xmlXPathParserContextPtr ctxt);
00212 
00213 XMLPUBFUN xmlChar * XMLCALL     
00214 
00215                 xmlXPathPopString       (xmlXPathParserContextPtr ctxt);
00216 
00217 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00218 
00219                 xmlXPathPopNodeSet      (xmlXPathParserContextPtr ctxt);
00220 
00221 XMLPUBFUN void * XMLCALL                
00222 
00223                 xmlXPathPopExternal     (xmlXPathParserContextPtr ctxt);
00224 
00225 
00226 
00241 #define xmlXPathReturnBoolean(ctxt, val)                                \
00242 
00243     valuePush((ctxt), xmlXPathNewBoolean(val))
00244 
00245 
00246 
00247 
00259 #define xmlXPathReturnTrue(ctxt)   xmlXPathReturnBoolean((ctxt), 1)
00260 
00261 
00262 
00275 #define xmlXPathReturnFalse(ctxt)  xmlXPathReturnBoolean((ctxt), 0)
00276 
00277 
00278 
00293 #define xmlXPathReturnNumber(ctxt, val)                                 \
00294 
00295     valuePush((ctxt), xmlXPathNewFloat(val))
00296 
00297 
00298 
00313 #define xmlXPathReturnString(ctxt, str)                                 \
00314 
00315     valuePush((ctxt), xmlXPathWrapString(str))
00316 
00317 
00318 
00331 #define xmlXPathReturnEmptyString(ctxt)                                 \
00332 
00333     valuePush((ctxt), xmlXPathNewCString(""))
00334 
00335 
00336 
00351 #define xmlXPathReturnNodeSet(ctxt, ns)                                 \
00352 
00353     valuePush((ctxt), xmlXPathWrapNodeSet(ns))
00354 
00355 
00356 
00369 #define xmlXPathReturnEmptyNodeSet(ctxt)                                \
00370 
00371     valuePush((ctxt), xmlXPathNewNodeSet(NULL))
00372 
00373 
00374 
00389 #define xmlXPathReturnExternal(ctxt, val)                               \
00390 
00391     valuePush((ctxt), xmlXPathWrapExternal(val))
00392 
00393 
00394 
00413 #define xmlXPathStackIsNodeSet(ctxt)                                    \
00414 
00415     (((ctxt)->value != NULL)                                            \
00416 
00417      && (((ctxt)->value->type == XPATH_NODESET)                         \
00418 
00419          || ((ctxt)->value->type == XPATH_XSLT_TREE)))
00420 
00421 
00422 
00443 #define xmlXPathStackIsExternal(ctxt)                                   \
00444 
00445         ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
00446 
00447 
00448 
00461 #define xmlXPathEmptyNodeSet(ns)                                        \
00462 
00463     { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
00464 
00465 
00466 
00477 #define CHECK_ERROR                                                     \
00478 
00479     if (ctxt->error != XPATH_EXPRESSION_OK) return
00480 
00481 
00482 
00493 #define CHECK_ERROR0                                                    \
00494 
00495     if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
00496 
00497 
00498 
00511 #define XP_ERROR(X)                                                     \
00512 
00513     { xmlXPathErr(ctxt, X); return; }
00514 
00515 
00516 
00529 #define XP_ERROR0(X)                                                    \
00530 
00531     { xmlXPathErr(ctxt, X); return(0); }
00532 
00533 
00534 
00549 #define CHECK_TYPE(typeval)                                             \
00550 
00551     if ((ctxt->value == NULL) || (ctxt->value->type != typeval))        \
00552 
00553         XP_ERROR(XPATH_INVALID_TYPE)
00554 
00555 
00556 
00557 
00571 #define CHECK_TYPE0(typeval)                                            \
00572 
00573     if ((ctxt->value == NULL) || (ctxt->value->type != typeval))        \
00574 
00575         XP_ERROR0(XPATH_INVALID_TYPE)
00576 
00577 
00578 
00579 
00591 #define CHECK_ARITY(x)                                                  \
00592 
00593     if (ctxt == NULL) return;                                           \
00594 
00595     if (nargs != (x))                                                   \
00596 
00597         XP_ERROR(XPATH_INVALID_ARITY);
00598 
00599 
00600 
00611 #define CAST_TO_STRING                                                  \
00612 
00613     if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING))   \
00614 
00615         xmlXPathStringFunction(ctxt, 1);
00616 
00617 
00618 
00629 #define CAST_TO_NUMBER                                                  \
00630 
00631     if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER))   \
00632 
00633         xmlXPathNumberFunction(ctxt, 1);
00634 
00635 
00636 
00647 #define CAST_TO_BOOLEAN                                                 \
00648 
00649     if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN))  \
00650 
00651         xmlXPathBooleanFunction(ctxt, 1);
00652 
00653 
00654 
00655 /*
00656 
00657  * Variable Lookup forwarding.
00658 
00659  */
00660 
00661 
00662 
00663 XMLPUBFUN void XMLCALL  
00664 
00665         xmlXPathRegisterVariableLookup  (xmlXPathContextPtr ctxt,
00666 
00667                                          xmlXPathVariableLookupFunc f,
00668 
00669                                          void *data);
00670 
00671 
00672 
00673 /*
00674 
00675  * Function Lookup forwarding.
00676 
00677  */
00678 
00679 
00680 
00681 XMLPUBFUN void XMLCALL  
00682 
00683             xmlXPathRegisterFuncLookup  (xmlXPathContextPtr ctxt,
00684 
00685                                          xmlXPathFuncLookupFunc f,
00686 
00687                                          void *funcCtxt);
00688 
00689 
00690 
00691 /*
00692 
00693  * Error reporting.
00694 
00695  */
00696 
00697 XMLPUBFUN void XMLCALL          
00698 
00699                 xmlXPatherror   (xmlXPathParserContextPtr ctxt,
00700 
00701                                  const char *file,
00702 
00703                                  int line,
00704 
00705                                  int no);
00706 
00707 
00708 
00709 XMLPUBFUN void XMLCALL
00710 
00711                 xmlXPathErr     (xmlXPathParserContextPtr ctxt,
00712 
00713                                  int error);
00714 
00715 
00716 
00717 #ifdef LIBXML_DEBUG_ENABLED
00718 
00719 XMLPUBFUN void XMLCALL          
00720 
00721                 xmlXPathDebugDumpObject (FILE *output,
00722 
00723                                          xmlXPathObjectPtr cur,
00724 
00725                                          int depth);
00726 
00727 XMLPUBFUN void XMLCALL          
00728 
00729             xmlXPathDebugDumpCompExpr(FILE *output,
00730 
00731                                          xmlXPathCompExprPtr comp,
00732 
00733                                          int depth);
00734 
00735 #endif
00736 
00743 XMLPUBFUN int XMLCALL           
00744 
00745                 xmlXPathNodeSetContains         (xmlNodeSetPtr cur,
00746 
00747                                                  xmlNodePtr val);
00748 
00749 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00750 
00751                 xmlXPathDifference              (xmlNodeSetPtr nodes1,
00752 
00753                                                  xmlNodeSetPtr nodes2);
00754 
00755 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00756 
00757                 xmlXPathIntersection            (xmlNodeSetPtr nodes1,
00758 
00759                                                  xmlNodeSetPtr nodes2);
00760 
00761 
00762 
00763 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00764 
00765                 xmlXPathDistinctSorted          (xmlNodeSetPtr nodes);
00766 
00767 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00768 
00769                 xmlXPathDistinct                (xmlNodeSetPtr nodes);
00770 
00771 
00772 
00773 XMLPUBFUN int XMLCALL           
00774 
00775                 xmlXPathHasSameNodes            (xmlNodeSetPtr nodes1,
00776 
00777                                                  xmlNodeSetPtr nodes2);
00778 
00779 
00780 
00781 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00782 
00783                 xmlXPathNodeLeadingSorted       (xmlNodeSetPtr nodes,
00784 
00785                                                  xmlNodePtr node);
00786 
00787 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00788 
00789                 xmlXPathLeadingSorted           (xmlNodeSetPtr nodes1,
00790 
00791                                                  xmlNodeSetPtr nodes2);
00792 
00793 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00794 
00795                 xmlXPathNodeLeading             (xmlNodeSetPtr nodes,
00796 
00797                                                  xmlNodePtr node);
00798 
00799 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00800 
00801                 xmlXPathLeading                 (xmlNodeSetPtr nodes1,
00802 
00803                                                  xmlNodeSetPtr nodes2);
00804 
00805 
00806 
00807 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00808 
00809                 xmlXPathNodeTrailingSorted      (xmlNodeSetPtr nodes,
00810 
00811                                                  xmlNodePtr node);
00812 
00813 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00814 
00815                 xmlXPathTrailingSorted          (xmlNodeSetPtr nodes1,
00816 
00817                                                  xmlNodeSetPtr nodes2);
00818 
00819 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00820 
00821                 xmlXPathNodeTrailing            (xmlNodeSetPtr nodes,
00822 
00823                                                  xmlNodePtr node);
00824 
00825 XMLPUBFUN xmlNodeSetPtr XMLCALL 
00826 
00827                 xmlXPathTrailing                (xmlNodeSetPtr nodes1,
00828 
00829                                                  xmlNodeSetPtr nodes2);
00830 
00831 
00832 
00833 
00834 
00843 XMLPUBFUN int XMLCALL              
00844 
00845                 xmlXPathRegisterNs              (xmlXPathContextPtr ctxt,
00846 
00847                                                  const xmlChar *prefix,
00848 
00849                                                  const xmlChar *ns_uri);
00850 
00851 XMLPUBFUN const xmlChar * XMLCALL          
00852 
00853                 xmlXPathNsLookup                (xmlXPathContextPtr ctxt,
00854 
00855                                                  const xmlChar *prefix);
00856 
00857 XMLPUBFUN void XMLCALL             
00858 
00859                 xmlXPathRegisteredNsCleanup     (xmlXPathContextPtr ctxt);
00860 
00861 
00862 
00863 XMLPUBFUN int XMLCALL              
00864 
00865                 xmlXPathRegisterFunc            (xmlXPathContextPtr ctxt,
00866 
00867                                                  const xmlChar *name,
00868 
00869                                                  xmlXPathFunction f);
00870 
00871 XMLPUBFUN int XMLCALL              
00872 
00873                 xmlXPathRegisterFuncNS          (xmlXPathContextPtr ctxt,
00874 
00875                                                  const xmlChar *name,
00876 
00877                                                  const xmlChar *ns_uri,
00878 
00879                                                  xmlXPathFunction f);
00880 
00881 XMLPUBFUN int XMLCALL              
00882 
00883                 xmlXPathRegisterVariable        (xmlXPathContextPtr ctxt,
00884 
00885                                                  const xmlChar *name,
00886 
00887                                                  xmlXPathObjectPtr value);
00888 
00889 XMLPUBFUN int XMLCALL              
00890 
00891                 xmlXPathRegisterVariableNS      (xmlXPathContextPtr ctxt,
00892 
00893                                                  const xmlChar *name,
00894 
00895                                                  const xmlChar *ns_uri,
00896 
00897                                                  xmlXPathObjectPtr value);
00898 
00899 XMLPUBFUN xmlXPathFunction XMLCALL   
00900 
00901                 xmlXPathFunctionLookup          (xmlXPathContextPtr ctxt,
00902 
00903                                                  const xmlChar *name);
00904 
00905 XMLPUBFUN xmlXPathFunction XMLCALL   
00906 
00907                 xmlXPathFunctionLookupNS        (xmlXPathContextPtr ctxt,
00908 
00909                                                  const xmlChar *name,
00910 
00911                                                  const xmlChar *ns_uri);
00912 
00913 XMLPUBFUN void XMLCALL             
00914 
00915                 xmlXPathRegisteredFuncsCleanup  (xmlXPathContextPtr ctxt);
00916 
00917 XMLPUBFUN xmlXPathObjectPtr XMLCALL  
00918 
00919                 xmlXPathVariableLookup          (xmlXPathContextPtr ctxt,
00920 
00921                                                  const xmlChar *name);
00922 
00923 XMLPUBFUN xmlXPathObjectPtr XMLCALL  
00924 
00925                 xmlXPathVariableLookupNS        (xmlXPathContextPtr ctxt,
00926 
00927                                                  const xmlChar *name,
00928 
00929                                                  const xmlChar *ns_uri);
00930 
00931 XMLPUBFUN void XMLCALL             
00932 
00933                 xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
00934 
00935 
00936 
00943 XMLPUBFUN xmlXPathParserContextPtr XMLCALL
00944 
00945                   xmlXPathNewParserContext      (const xmlChar *str,
00946 
00947                                                  xmlXPathContextPtr ctxt);
00948 
00949 XMLPUBFUN void XMLCALL            
00950 
00951                 xmlXPathFreeParserContext       (xmlXPathParserContextPtr ctxt);
00952 
00953 
00954 
00955 /* TODO: remap to xmlXPathValuePop and Push. */
00956 
00957 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00958 
00959                 valuePop                        (xmlXPathParserContextPtr ctxt);
00960 
00961 XMLPUBFUN int XMLCALL             
00962 
00963                 valuePush                       (xmlXPathParserContextPtr ctxt,
00964 
00965                                                  xmlXPathObjectPtr value);
00966 
00967 
00968 
00969 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00970 
00971                 xmlXPathNewString               (const xmlChar *val);
00972 
00973 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00974 
00975                 xmlXPathNewCString              (const char *val);
00976 
00977 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00978 
00979                 xmlXPathWrapString              (xmlChar *val);
00980 
00981 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00982 
00983                 xmlXPathWrapCString             (char * val);
00984 
00985 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00986 
00987                 xmlXPathNewFloat                (double val);
00988 
00989 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00990 
00991                 xmlXPathNewBoolean              (int val);
00992 
00993 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00994 
00995                 xmlXPathNewNodeSet              (xmlNodePtr val);
00996 
00997 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
00998 
00999                 xmlXPathNewValueTree            (xmlNodePtr val);
01000 
01001 XMLPUBFUN void XMLCALL            
01002 
01003                 xmlXPathNodeSetAdd              (xmlNodeSetPtr cur,
01004 
01005                                                  xmlNodePtr val);
01006 
01007 XMLPUBFUN void XMLCALL              
01008 
01009                 xmlXPathNodeSetAddUnique        (xmlNodeSetPtr cur,
01010 
01011                                                  xmlNodePtr val);
01012 
01013 XMLPUBFUN void XMLCALL            
01014 
01015                 xmlXPathNodeSetAddNs            (xmlNodeSetPtr cur, 
01016 
01017                                                  xmlNodePtr node, 
01018 
01019                                                  xmlNsPtr ns);
01020 
01021 XMLPUBFUN void XMLCALL              
01022 
01023                 xmlXPathNodeSetSort             (xmlNodeSetPtr set);
01024 
01025 
01026 
01027 XMLPUBFUN void XMLCALL            
01028 
01029                 xmlXPathRoot                    (xmlXPathParserContextPtr ctxt);
01030 
01031 XMLPUBFUN void XMLCALL            
01032 
01033                 xmlXPathEvalExpr                (xmlXPathParserContextPtr ctxt);
01034 
01035 XMLPUBFUN xmlChar * XMLCALL       
01036 
01037                 xmlXPathParseName               (xmlXPathParserContextPtr ctxt);
01038 
01039 XMLPUBFUN xmlChar * XMLCALL       
01040 
01041                 xmlXPathParseNCName             (xmlXPathParserContextPtr ctxt);
01042 
01043 
01044 
01045 /*
01046 
01047  * Existing functions.
01048 
01049  */
01050 
01051 XMLPUBFUN double XMLCALL 
01052 
01053                 xmlXPathStringEvalNumber        (const xmlChar *str);
01054 
01055 XMLPUBFUN int XMLCALL 
01056 
01057                 xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, 
01058 
01059                                                  xmlXPathObjectPtr res);
01060 
01061 XMLPUBFUN void XMLCALL 
01062 
01063                 xmlXPathRegisterAllFunctions    (xmlXPathContextPtr ctxt);
01064 
01065 XMLPUBFUN xmlNodeSetPtr XMLCALL 
01066 
01067                 xmlXPathNodeSetMerge            (xmlNodeSetPtr val1, 
01068 
01069                                                  xmlNodeSetPtr val2);
01070 
01071 XMLPUBFUN void XMLCALL 
01072 
01073                 xmlXPathNodeSetDel              (xmlNodeSetPtr cur, 
01074 
01075                                                  xmlNodePtr val);
01076 
01077 XMLPUBFUN void XMLCALL 
01078 
01079                 xmlXPathNodeSetRemove           (xmlNodeSetPtr cur, 
01080 
01081                                                  int val);
01082 
01083 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
01084 
01085                 xmlXPathNewNodeSetList          (xmlNodeSetPtr val);
01086 
01087 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
01088 
01089                 xmlXPathWrapNodeSet             (xmlNodeSetPtr val);
01090 
01091 XMLPUBFUN xmlXPathObjectPtr XMLCALL 
01092 
01093                 xmlXPathWrapExternal            (void *val);
01094 
01095 
01096 
01097 XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
01098 
01099 XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
01100 
01101 XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
01102 
01103 XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
01104 
01105 XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
01106 
01107 XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
01108 
01109 XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
01110 
01111 XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
01112 
01113 XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
01114 
01115 
01116 
01117 XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
01118 
01119 
01120 
01121 /*
01122 
01123  * Some of the axis navigation routines.
01124 
01125  */
01126 
01127 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
01128 
01129                         xmlNodePtr cur);
01130 
01131 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
01132 
01133                         xmlNodePtr cur);
01134 
01135 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
01136 
01137                         xmlNodePtr cur);
01138 
01139 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
01140 
01141                         xmlNodePtr cur);
01142 
01143 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
01144 
01145                         xmlNodePtr cur);
01146 
01147 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
01148 
01149                         xmlNodePtr cur);
01150 
01151 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
01152 
01153                         xmlNodePtr cur);
01154 
01155 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
01156 
01157                         xmlNodePtr cur);
01158 
01159 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
01160 
01161                         xmlNodePtr cur);
01162 
01163 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
01164 
01165                         xmlNodePtr cur);
01166 
01167 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
01168 
01169                         xmlNodePtr cur);
01170 
01171 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
01172 
01173                         xmlNodePtr cur);
01174 
01175 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
01176 
01177                         xmlNodePtr cur);
01178 
01179 /*
01180 
01181  * The official core of XPath functions.
01182 
01183  */
01184 
01185 XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
01186 
01187 XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
01188 
01189 XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
01190 
01191 XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
01192 
01193 XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
01194 
01195 XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
01196 
01197 XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
01198 
01199 XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
01200 
01201 XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
01202 
01203 XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
01204 
01205 XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
01206 
01207 XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
01208 
01209 XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
01210 
01211 XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
01212 
01213 XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
01214 
01215 XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
01216 
01217 XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
01218 
01219 XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
01220 
01221 XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
01222 
01223 XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
01224 
01225 XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
01226 
01227 XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
01228 
01229 XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
01230 
01231 XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
01232 
01233 XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
01234 
01235 XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
01236 
01237 
01238 
01245 XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
01246 
01247  
01248 
01249 #ifdef __cplusplus
01250 
01251 }
01252 
01253 #endif
01254 
01255 
01256 
01257 #endif /* LIBXML_XPATH_ENABLED */
01258 
01259 #endif /* ! __XML_XPATH_INTERNALS_H__ */
01260 

Generated on Wed Jul 26 13:30:47 2006 for XSB by  doxygen 1.4.5