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>