Spaces:
Sleeping
Sleeping
/* | |
* Summary: internal interfaces for XML Path Language implementation | |
* Description: internal interfaces for XML Path Language implementation | |
* used to build new modules on top of XPath like XPointer and | |
* XSLT | |
* | |
* Copy: See Copyright for the status of this software. | |
* | |
* Author: Daniel Veillard | |
*/ | |
extern "C" { | |
/************************************************************************ | |
* * | |
* Helpers * | |
* * | |
************************************************************************/ | |
/* | |
* Many of these macros may later turn into functions. They | |
* shouldn't be used in #ifdef's preprocessor instructions. | |
*/ | |
/** | |
* xmlXPathSetError: | |
* @ctxt: an XPath parser context | |
* @err: an xmlXPathError code | |
* | |
* Raises an error. | |
*/ | |
/** | |
* xmlXPathSetArityError: | |
* @ctxt: an XPath parser context | |
* | |
* Raises an XPATH_INVALID_ARITY error. | |
*/ | |
/** | |
* xmlXPathSetTypeError: | |
* @ctxt: an XPath parser context | |
* | |
* Raises an XPATH_INVALID_TYPE error. | |
*/ | |
/** | |
* xmlXPathGetError: | |
* @ctxt: an XPath parser context | |
* | |
* Get the error code of an XPath context. | |
* | |
* Returns the context error. | |
*/ | |
/** | |
* xmlXPathCheckError: | |
* @ctxt: an XPath parser context | |
* | |
* Check if an XPath error was raised. | |
* | |
* Returns true if an error has been raised, false otherwise. | |
*/ | |
/** | |
* xmlXPathGetDocument: | |
* @ctxt: an XPath parser context | |
* | |
* Get the document of an XPath context. | |
* | |
* Returns the context document. | |
*/ | |
/** | |
* xmlXPathGetContextNode: | |
* @ctxt: an XPath parser context | |
* | |
* Get the context node of an XPath context. | |
* | |
* Returns the context node. | |
*/ | |
XMLPUBFUN int XMLCALL | |
xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN double XMLCALL | |
xmlXPathPopNumber (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN xmlChar * XMLCALL | |
xmlXPathPopString (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void * XMLCALL | |
xmlXPathPopExternal (xmlXPathParserContextPtr ctxt); | |
/** | |
* xmlXPathReturnBoolean: | |
* @ctxt: an XPath parser context | |
* @val: a boolean | |
* | |
* Pushes the boolean @val on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnTrue: | |
* @ctxt: an XPath parser context | |
* | |
* Pushes true on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnFalse: | |
* @ctxt: an XPath parser context | |
* | |
* Pushes false on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnNumber: | |
* @ctxt: an XPath parser context | |
* @val: a double | |
* | |
* Pushes the double @val on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnString: | |
* @ctxt: an XPath parser context | |
* @str: a string | |
* | |
* Pushes the string @str on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnEmptyString: | |
* @ctxt: an XPath parser context | |
* | |
* Pushes an empty string on the stack. | |
*/ | |
/** | |
* xmlXPathReturnNodeSet: | |
* @ctxt: an XPath parser context | |
* @ns: a node-set | |
* | |
* Pushes the node-set @ns on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnEmptyNodeSet: | |
* @ctxt: an XPath parser context | |
* | |
* Pushes an empty node-set on the context stack. | |
*/ | |
/** | |
* xmlXPathReturnExternal: | |
* @ctxt: an XPath parser context | |
* @val: user data | |
* | |
* Pushes user data on the context stack. | |
*/ | |
/** | |
* xmlXPathStackIsNodeSet: | |
* @ctxt: an XPath parser context | |
* | |
* Check if the current value on the XPath stack is a node set or | |
* an XSLT value tree. | |
* | |
* Returns true if the current object on the stack is a node-set. | |
*/ | |
/** | |
* xmlXPathStackIsExternal: | |
* @ctxt: an XPath parser context | |
* | |
* Checks if the current value on the XPath stack is an external | |
* object. | |
* | |
* Returns true if the current object on the stack is an external | |
* object. | |
*/ | |
/** | |
* xmlXPathEmptyNodeSet: | |
* @ns: a node-set | |
* | |
* Empties a node-set. | |
*/ | |
/** | |
* CHECK_ERROR: | |
* | |
* Macro to return from the function if an XPath error was detected. | |
*/ | |
/** | |
* CHECK_ERROR0: | |
* | |
* Macro to return 0 from the function if an XPath error was detected. | |
*/ | |
/** | |
* XP_ERROR: | |
* @X: the error code | |
* | |
* Macro to raise an XPath error and return. | |
*/ | |
/** | |
* XP_ERROR0: | |
* @X: the error code | |
* | |
* Macro to raise an XPath error and return 0. | |
*/ | |
/** | |
* CHECK_TYPE: | |
* @typeval: the XPath type | |
* | |
* Macro to check that the value on top of the XPath stack is of a given | |
* type. | |
*/ | |
/** | |
* CHECK_TYPE0: | |
* @typeval: the XPath type | |
* | |
* Macro to check that the value on top of the XPath stack is of a given | |
* type. Return(0) in case of failure | |
*/ | |
/** | |
* CHECK_ARITY: | |
* @x: the number of expected args | |
* | |
* Macro to check that the number of args passed to an XPath function matches. | |
*/ | |
/** | |
* CAST_TO_STRING: | |
* | |
* Macro to try to cast the value on the top of the XPath stack to a string. | |
*/ | |
/** | |
* CAST_TO_NUMBER: | |
* | |
* Macro to try to cast the value on the top of the XPath stack to a number. | |
*/ | |
/** | |
* CAST_TO_BOOLEAN: | |
* | |
* Macro to try to cast the value on the top of the XPath stack to a boolean. | |
*/ | |
/* | |
* Variable Lookup forwarding. | |
*/ | |
XMLPUBFUN void XMLCALL | |
xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt, | |
xmlXPathVariableLookupFunc f, | |
void *data); | |
/* | |
* Function Lookup forwarding. | |
*/ | |
XMLPUBFUN void XMLCALL | |
xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt, | |
xmlXPathFuncLookupFunc f, | |
void *funcCtxt); | |
/* | |
* Error reporting. | |
*/ | |
XMLPUBFUN void XMLCALL | |
xmlXPatherror (xmlXPathParserContextPtr ctxt, | |
const char *file, | |
int line, | |
int no); | |
XMLPUBFUN void XMLCALL | |
xmlXPathErr (xmlXPathParserContextPtr ctxt, | |
int error); | |
XMLPUBFUN void XMLCALL | |
xmlXPathDebugDumpObject (FILE *output, | |
xmlXPathObjectPtr cur, | |
int depth); | |
XMLPUBFUN void XMLCALL | |
xmlXPathDebugDumpCompExpr(FILE *output, | |
xmlXPathCompExprPtr comp, | |
int depth); | |
/** | |
* NodeSet handling. | |
*/ | |
XMLPUBFUN int XMLCALL | |
xmlXPathNodeSetContains (xmlNodeSetPtr cur, | |
xmlNodePtr val); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathDifference (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathIntersection (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathDistinctSorted (xmlNodeSetPtr nodes); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathDistinct (xmlNodeSetPtr nodes); | |
XMLPUBFUN int XMLCALL | |
xmlXPathHasSameNodes (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes, | |
xmlNodePtr node); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathLeadingSorted (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathNodeLeading (xmlNodeSetPtr nodes, | |
xmlNodePtr node); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathLeading (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes, | |
xmlNodePtr node); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathTrailingSorted (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathNodeTrailing (xmlNodeSetPtr nodes, | |
xmlNodePtr node); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathTrailing (xmlNodeSetPtr nodes1, | |
xmlNodeSetPtr nodes2); | |
/** | |
* Extending a context. | |
*/ | |
XMLPUBFUN int XMLCALL | |
xmlXPathRegisterNs (xmlXPathContextPtr ctxt, | |
const xmlChar *prefix, | |
const xmlChar *ns_uri); | |
XMLPUBFUN const xmlChar * XMLCALL | |
xmlXPathNsLookup (xmlXPathContextPtr ctxt, | |
const xmlChar *prefix); | |
XMLPUBFUN void XMLCALL | |
xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt); | |
XMLPUBFUN int XMLCALL | |
xmlXPathRegisterFunc (xmlXPathContextPtr ctxt, | |
const xmlChar *name, | |
xmlXPathFunction f); | |
XMLPUBFUN int XMLCALL | |
xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt, | |
const xmlChar *name, | |
const xmlChar *ns_uri, | |
xmlXPathFunction f); | |
XMLPUBFUN int XMLCALL | |
xmlXPathRegisterVariable (xmlXPathContextPtr ctxt, | |
const xmlChar *name, | |
xmlXPathObjectPtr value); | |
XMLPUBFUN int XMLCALL | |
xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt, | |
const xmlChar *name, | |
const xmlChar *ns_uri, | |
xmlXPathObjectPtr value); | |
XMLPUBFUN xmlXPathFunction XMLCALL | |
xmlXPathFunctionLookup (xmlXPathContextPtr ctxt, | |
const xmlChar *name); | |
XMLPUBFUN xmlXPathFunction XMLCALL | |
xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt, | |
const xmlChar *name, | |
const xmlChar *ns_uri); | |
XMLPUBFUN void XMLCALL | |
xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathVariableLookup (xmlXPathContextPtr ctxt, | |
const xmlChar *name); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt, | |
const xmlChar *name, | |
const xmlChar *ns_uri); | |
XMLPUBFUN void XMLCALL | |
xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt); | |
/** | |
* Utilities to extend XPath. | |
*/ | |
XMLPUBFUN xmlXPathParserContextPtr XMLCALL | |
xmlXPathNewParserContext (const xmlChar *str, | |
xmlXPathContextPtr ctxt); | |
XMLPUBFUN void XMLCALL | |
xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt); | |
/* TODO: remap to xmlXPathValuePop and Push. */ | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
valuePop (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN int XMLCALL | |
valuePush (xmlXPathParserContextPtr ctxt, | |
xmlXPathObjectPtr value); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewString (const xmlChar *val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewCString (const char *val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathWrapString (xmlChar *val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathWrapCString (char * val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewFloat (double val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewBoolean (int val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewNodeSet (xmlNodePtr val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewValueTree (xmlNodePtr val); | |
XMLPUBFUN int XMLCALL | |
xmlXPathNodeSetAdd (xmlNodeSetPtr cur, | |
xmlNodePtr val); | |
XMLPUBFUN int XMLCALL | |
xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur, | |
xmlNodePtr val); | |
XMLPUBFUN int XMLCALL | |
xmlXPathNodeSetAddNs (xmlNodeSetPtr cur, | |
xmlNodePtr node, | |
xmlNsPtr ns); | |
XMLPUBFUN void XMLCALL | |
xmlXPathNodeSetSort (xmlNodeSetPtr set); | |
XMLPUBFUN void XMLCALL | |
xmlXPathRoot (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void XMLCALL | |
xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN xmlChar * XMLCALL | |
xmlXPathParseName (xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN xmlChar * XMLCALL | |
xmlXPathParseNCName (xmlXPathParserContextPtr ctxt); | |
/* | |
* Existing functions. | |
*/ | |
XMLPUBFUN double XMLCALL | |
xmlXPathStringEvalNumber (const xmlChar *str); | |
XMLPUBFUN int XMLCALL | |
xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, | |
xmlXPathObjectPtr res); | |
XMLPUBFUN void XMLCALL | |
xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt); | |
XMLPUBFUN xmlNodeSetPtr XMLCALL | |
xmlXPathNodeSetMerge (xmlNodeSetPtr val1, | |
xmlNodeSetPtr val2); | |
XMLPUBFUN void XMLCALL | |
xmlXPathNodeSetDel (xmlNodeSetPtr cur, | |
xmlNodePtr val); | |
XMLPUBFUN void XMLCALL | |
xmlXPathNodeSetRemove (xmlNodeSetPtr cur, | |
int val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathNewNodeSetList (xmlNodeSetPtr val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathWrapNodeSet (xmlNodeSetPtr val); | |
XMLPUBFUN xmlXPathObjectPtr XMLCALL | |
xmlXPathWrapExternal (void *val); | |
XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict); | |
XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt); | |
XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name); | |
/* | |
* Some of the axis navigation routines. | |
*/ | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt, | |
xmlNodePtr cur); | |
/* | |
* The official core of XPath functions. | |
*/ | |
XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs); | |
/** | |
* Really internal functions | |
*/ | |
XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns); | |
} | |