| * Summary: XML Path Language implementation | |
| * Description: API for the XML Path Language implementation | |
| * | |
| * XML Path Language implementation | |
| * XPath is a language for addressing parts of an XML document, | |
| * designed to be used by both XSLT and XPointer | |
| * http://www.w3.org/TR/xpath | |
| * | |
| * Implements | |
| * W3C Recommendation 16 November 1999 | |
| * http://www.w3.org/TR/1999/REC-xpath-19991116 | |
| * | |
| * Copy: See Copyright for the status of this software. | |
| * | |
| * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. | |
| /if not defined(XML_XPATH_H__) | |
| /define XML_XPATH_H__ | |
| /include "libxmlrpg/xmlversion" | |
| /if defined(LIBXML_XPATH_ENABLED) | |
| /include "libxmlrpg/xmlTypesC" | |
| /include "libxmlrpg/xmlerror" | |
| /include "libxmlrpg/tree" | |
| /include "libxmlrpg/hash" | |
| /endif LIBXML_XPATH_ENABLED | |
| /if defined(LIBXML_XPATH_ENABLED) | |
| d xmlXPathContextPtr... | |
| d s * based(######typedef######) | |
| d xmlXPathParserContextPtr... | |
| d s * based(######typedef######) | |
| * The set of XPath error codes. | |
| d xmlXPathError s based(######typedef######) | |
| d like(xmlCenum) | |
| d XPATH_EXPRESSION_OK... | |
| d c 0 | |
| d XPATH_NUMBER_ERROR... | |
| d c 1 | |
| d XPATH_UNFINISHED_LITERAL_ERROR... | |
| d c 2 | |
| d XPATH_START_LITERAL_ERROR... | |
| d c 3 | |
| d XPATH_VARIABLE_REF_ERROR... | |
| d c 4 | |
| d XPATH_UNDEF_VARIABLE_ERROR... | |
| d c 5 | |
| d XPATH_INVALID_PREDICATE_ERROR... | |
| d c 6 | |
| d XPATH_EXPR_ERROR... | |
| d c 7 | |
| d XPATH_UNCLOSED_ERROR... | |
| d c 8 | |
| d XPATH_UNKNOWN_FUNC_ERROR... | |
| d c 9 | |
| d XPATH_INVALID_OPERAND... | |
| d c 10 | |
| d XPATH_INVALID_TYPE... | |
| d c 11 | |
| d XPATH_INVALID_ARITY... | |
| d c 12 | |
| d XPATH_INVALID_CTXT_SIZE... | |
| d c 13 | |
| d XPATH_INVALID_CTXT_POSITION... | |
| d c 14 | |
| d XPATH_MEMORY_ERROR... | |
| d c 15 | |
| d XPTR_SYNTAX_ERROR... | |
| d c 16 | |
| d XPTR_RESOURCE_ERROR... | |
| d c 17 | |
| d XPTR_SUB_RESOURCE_ERROR... | |
| d c 18 | |
| d XPATH_UNDEF_PREFIX_ERROR... | |
| d c 19 | |
| d XPATH_ENCODING_ERROR... | |
| d c 20 | |
| d XPATH_INVALID_CHAR_ERROR... | |
| d c 21 | |
| d XPATH_INVALID_CTXT... | |
| d c 22 | |
| d XPATH_STACK_ERROR... | |
| d c 23 | |
| d XPATH_FORBID_VARIABLE_ERROR... | |
| d c 24 | |
| * A node-set (an unordered collection of nodes without duplicates). | |
| d xmlNodeSetPtr s * based(######typedef######) | |
| d xmlNodeSet ds based(xmlNodeSetPtr) | |
| d align qualified | |
| d nodeNr like(xmlCint) Set node count | |
| d nodeMax like(xmlCint) Max # nodes in set | |
| d nodeTab * xmlNodePtr * | |
| * An expression is evaluated to yield an object, which | |
| * has one of the following four basic types: | |
| * - node-set | |
| * - boolean | |
| * - number | |
| * - string | |
| * | |
| * @@ XPointer will add more types ! | |
| d xmlXPathObjectType... | |
| d s based(######typedef######) | |
| d like(xmlCenum) | |
| d XPATH_UNDEFINED... | |
| d c 0 | |
| d XPATH_NODESET c 1 | |
| d XPATH_BOOLEAN c 2 | |
| d XPATH_NUMBER c 3 | |
| d XPATH_STRING c 4 | |
| d XPATH_POINT c 5 | |
| d XPATH_RANGE c 6 | |
| d XPATH_LOCATIONSET... | |
| d c 7 | |
| d XPATH_USERS c 8 | |
| d XPATH_XSLT_TREE... R/O XSLT value tree | |
| d c 9 | |
| d xmlXPathObjectPtr... | |
| d s * based(######typedef######) | |
| d xmlXPathObject ds based(xmlXPathObjectPtr) | |
| d align qualified | |
| d type like(xmlXPathObjectType) | |
| d nodesetval like(xmlNodeSetPtr) | |
| d boolval like(xmlCint) | |
| d floatval like(xmlCdouble) | |
| d stringval * xmlChar * | |
| d user * void * | |
| d index like(xmlCint) | |
| d user2 * void * | |
| d index2 like(xmlCint) | |
| * xmlXPathConvertFunc: | |
| * @obj: an XPath object | |
| * @type: the number of the target type | |
| * | |
| * A conversion function is associated to a type and used to cast | |
| * the new type to primitive values. | |
| * | |
| * Returns -1 in case of error, 0 otherwise | |
| d xmlXPathConvertFunc... | |
| d s * based(######typedef######) | |
| d procptr | |
| * Extra type: a name and a conversion function. | |
| d xmlXPathTypePtr... | |
| d s * based(######typedef######) | |
| d xmlXPathType ds based(xmlXPathTypePtr) | |
| d align qualified | |
| d name * The type name | |
| d func like(xmlXPathConvertFunc) Conversion function | |
| * Extra variable: a name and a value. | |
| d xmlXPathVariablePtr... | |
| d s * based(######typedef######) | |
| d xmlXPathVariable... | |
| d ds based(xmlXPathVariablePtr) | |
| d align qualified | |
| d name * The variable name | |
| d value like(xmlXPathObjectPtr) The value | |
| * xmlXPathEvalFunc: | |
| * @ctxt: an XPath parser context | |
| * @nargs: the number of arguments passed to the function | |
| * | |
| * An XPath evaluation function, the parameters are on the XPath | |
| * context stack. | |
| d xmlXPathEvalFunc... | |
| d s * based(######typedef######) | |
| d procptr | |
| * Extra function: a name and an evaluation function. | |
| d xmlXPathFuncPtr... | |
| d s * based(######typedef######) | |
| d xmlXPathFunct ds based(xmlXPathFuncPtr) | |
| d align qualified | |
| d name * The function name | |
| d func like(xmlXPathEvalFunc) Evaluation function | |
| * xmlXPathAxisFunc: | |
| * @ctxt: the XPath interpreter context | |
| * @cur: the previous node being explored on that axis | |
| * | |
| * An axis traversal function. To traverse an axis, the engine calls | |
| * the first time with cur == NULL and repeat until the function returns | |
| * NULL indicating the end of the axis traversal. | |
| * | |
| * Returns the next node in that axis or NULL if at the end of the axis. | |
| d xmlXPathAxisFunc... | |
| d s * based(######typedef######) | |
| d procptr | |
| * Extra axis: a name and an axis function. | |
| d xmlXPathAxisPtr... | |
| d s * based(######typedef######) | |
| d xmlXPathAxis ds based(xmlXPathAxisPtr) | |
| d align qualified | |
| d name * The axis name | |
| d func like(xmlXPathAxisFunc) The search function | |
| * xmlXPathFunction: | |
| * @ctxt: the XPath interprestation context | |
| * @nargs: the number of arguments | |
| * | |
| * An XPath function. | |
| * The arguments (if any) are popped out from the context stack | |
| * and the result is pushed on the stack. | |
| d xmlXPathFunction... | |
| d s * based(######typedef######) | |
| d procptr | |
| * Function and Variable Lookup. | |
| * xmlXPathVariableLookupFunc: | |
| * @ctxt: an XPath context | |
| * @name: name of the variable | |
| * @ns_uri: the namespace name hosting this variable | |
| * | |
| * Prototype for callbacks used to plug variable lookup in the XPath | |
| * engine. | |
| * | |
| * Returns the XPath object value or NULL if not found. | |
| d xmlXPathVariableLookupFunc... | |
| d s * based(######typedef######) | |
| d procptr | |
| * xmlXPathFuncLookupFunc: | |
| * @ctxt: an XPath context | |
| * @name: name of the function | |
| * @ns_uri: the namespace name hosting this function | |
| * | |
| * Prototype for callbacks used to plug function lookup in the XPath | |
| * engine. | |
| * | |
| * Returns the XPath function or NULL if not found. | |
| d xmlXPathFuncLookupFunc... | |
| d s * based(######typedef######) | |
| d procptr | |
| * xmlXPathFlags: | |
| * Flags for XPath engine compilation and runtime | |
| * XML_XPATH_CHECKNS: | |
| * | |
| * check namespaces at compilation | |
| d XML_XPATH_CHECKNS... | |
| d c X'0001' | |
| * XML_XPATH_NOVAR: | |
| * | |
| * forbid variables in expression | |
| d XML_XPATH_NOVAR... | |
| d c X'0002' | |
| * xmlXPathContext: | |
| * | |
| * Expression evaluation occurs with respect to a context. | |
| * he context consists of: | |
| * - a node (the context node) | |
| * - a node list (the context node list) | |
| * - a set of variable bindings | |
| * - a function library | |
| * - the set of namespace declarations in scope for the expression | |
| * Following the switch to hash tables, this need to be trimmed up at | |
| * the next binary incompatible release. | |
| * The node may be modified when the context is passed to libxml2 | |
| * for an XPath evaluation so you may need to initialize it again | |
| * before the next call. | |
| d xmlXPathContext... | |
| d ds based(xmlXPathContextPtr) | |
| d align qualified | |
| d doc like(xmlDocPtr) Current document | |
| d node like(xmlNodePtr) Current node | |
| * | |
| d nb_variables_unused... Unused (hash table) | |
| d like(xmlCint) | |
| d max_variables_unused... Unused (hash table) | |
| d like(xmlCint) | |
| d varHash like(xmlHashTablePtr) Defined variables | |
| * | |
| d nb_types like(xmlCint) # of defined types | |
| d max_types like(xmlCint) Max number of types | |
| d types like(xmlXPathTypePtr) Defined types array | |
| * | |
| d nb_funcs_unused... Unused (hash table) | |
| d like(xmlCint) | |
| d max_funcs_unused... Unused (hash table) | |
| d like(xmlCint) | |
| d funcHash like(xmlHashTablePtr) Defined functions | |
| * | |
| d nb_axis like(xmlCint) # of defined axis | |
| d max_axis like(xmlCint) Max number of axis | |
| d axis like(xmlXPathAxisPtr) Defined axis array | |
| * | |
| * the namespace nodes of the context node | |
| * | |
| d namespaces * xmlNsPtr * | |
| d nsNr like(xmlCint) # scope namespaces | |
| d user * procptr Function to free | |
| * | |
| * extra variables | |
| * | |
| d contextSize like(xmlCint) The context size | |
| d proximityPosition... | |
| d like(xmlCint) | |
| * | |
| * extra stuff for XPointer | |
| * | |
| d xptr like(xmlCint) XPointer context ? | |
| d here like(xmlNodePtr) For here() | |
| d origin like(xmlNodePtr) For origin() | |
| * | |
| * the set of namespace declarations in scope for the expression | |
| * | |
| d nsHash like(xmlHashTablePtr) Namespace hashtable | |
| d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function | |
| d varLookupData * void * | |
| * | |
| * Possibility to link in an extra item | |
| * | |
| d extra * void * | |
| * | |
| * The function name and URI when calling a function | |
| * | |
| d function * const xmlChar * | |
| d functionURI * const xmlChar * | |
| * | |
| * function lookup function and data | |
| * | |
| d funcLookupFunc... Func lookup func | |
| d like(xmlXPathVariableLookupFunc) | |
| d funcLookupData... void * | |
| d * | |
| * | |
| * temporary namespace lists kept for walking the namespace axis | |
| * | |
| d tmpNsList * xmlNsPtr * | |
| d tmpNsNr like(xmlCint) # scope namespaces | |
| * | |
| * error reporting mechanism | |
| * | |
| d userData * void * | |
| d error like(xmlStructuredErrorFunc) Error callback | |
| d lastError likeds(xmlError) The last error | |
| d debugNode like(xmlNodePtr) XSLT source node | |
| * | |
| * dictionary | |
| * | |
| d dict like(xmlDictPtr) Dictionary if any | |
| * | |
| d flags like(xmlCint) Compilation control | |
| * | |
| * Cache for reusal of XPath objects | |
| * | |
| d cache * void * | |
| * The structure of a compiled expression form is not public. | |
| d xmlXPathCompExprPtr... | |
| d s * based(######typedef######) | |
| * xmlXPathParserContext: | |
| * | |
| * An XPath parser context. It contains pure parsing information, | |
| * an xmlXPathContext, and the stack of objects. | |
| d xmlXPathParserContext... | |
| d ds based(xmlXPathParserContextPtr) | |
| d align qualified | |
| d cur * const xmlChar * | |
| d base * const xmlChar * | |
| * | |
| d error like(xmlCint) Error code | |
| * | |
| d context like(xmlXPathContextPtr) Evaluation context | |
| d value like(xmlXPathObjectPtr) The current value | |
| d valueNr like(xmlCint) Value stack depth | |
| d valueMax like(xmlCint) Max stack depth | |
| d valueTab * xmlXPathObjectPtr * | |
| * | |
| d comp like(xmlXPathCompExprPtr) Precompiled expr. | |
| d xptr like(xmlCint) XPointer expression? | |
| d ancestor like(xmlNodePtr) To walk prec. axis | |
| * | |
| d valueFrame like(xmlCint) Limit stack pop | |
| ************************************************************************** | |
| * * | |
| * Public API * | |
| * * | |
| ************************************************************************** | |
| * Objects and Nodesets handling | |
| d xmlXPathNAN s import('xmlXPathNAN') | |
| d like(xmlCdouble) | |
| d xmlXPathPINF s import('xmlXPathPINF') | |
| d like(xmlCdouble) | |
| d xmlXPathNINF s import('xmlXPathNINF') | |
| d like(xmlCdouble) | |
| d xmlXPathFreeObject... | |
| d pr extproc('xmlXPathFreeObject') | |
| d obj value like(xmlXPathObjectPtr) | |
| d xmlXPathNodeSetCreate... | |
| d pr extproc('xmlXPathNodeSetCreate') | |
| d like(xmlNodeSetPtr) | |
| d val value like(xmlNodePtr) | |
| d xmlXPathFreeNodeSetList... | |
| d pr extproc('xmlXPathFreeNodeSetList') | |
| d obj value like(xmlXPathObjectPtr) | |
| d xmlXPathFreeNodeSet... | |
| d pr extproc('xmlXPathFreeNodeSet') | |
| d obj value like(xmlNodeSetPtr) | |
| d xmlXPathObjectCopy... | |
| d pr extproc('xmlXPathObjectCopy') | |
| d like(xmlXPathObjectPtr) | |
| d val value like(xmlXPathObjectPtr) | |
| d xmlXPathCmpNodes... | |
| d pr extproc('xmlXPathCmpNodes') | |
| d like(xmlCint) | |
| d node1 value like(xmlNodePtr) | |
| d node2 value like(xmlNodePtr) | |
| * Conversion functions to basic types. | |
| d xmlXPathCastNumberToBoolean... | |
| d pr extproc( | |
| d 'xmlXPathCastNumberToBoolean') | |
| d like(xmlCint) | |
| d val value like(xmlCdouble) | |
| d xmlXPathCastStringToBoolean... | |
| d pr extproc( | |
| d 'xmlXPathCastStringToBoolean') | |
| d like(xmlCint) | |
| d val * value options(*string) const xmlChar * | |
| d xmlXPathCastNodeSetToBoolean... | |
| d pr extproc( | |
| d 'xmlXPathCastNodeSetToBoolean') | |
| d like(xmlCint) | |
| d ns value like(xmlNodeSetPtr) | |
| d xmlXPathCastToBoolean... | |
| d pr extproc('xmlXPathCastToBoolean') | |
| d like(xmlCint) | |
| d val value like(xmlXPathObjectPtr) | |
| d xmlXPathCastBooleanToNumber... | |
| d pr extproc( | |
| d 'xmlXPathCastBooleanToNumber') | |
| d like(xmlCdouble) | |
| d val value like(xmlCint) | |
| d xmlXPathCastStringToNumber... | |
| d pr extproc('xmlXPathCastStringToNumber') | |
| d like(xmlCdouble) | |
| d val * value options(*string) const xmlChar * | |
| d xmlXPathCastNodeToNumber... | |
| d pr extproc('xmlXPathCastNodeToNumber') | |
| d like(xmlCdouble) | |
| d node value like(xmlNodePtr) | |
| d xmlXPathCastNodeSetToNumber... | |
| d pr extproc( | |
| d 'xmlXPathCastNodeSetToNumber') | |
| d like(xmlCdouble) | |
| d ns value like(xmlNodeSetPtr) | |
| d xmlXPathCastToNumber... | |
| d pr extproc('xmlXPathCastToNumber') | |
| d like(xmlCdouble) | |
| d val value like(xmlXPathObjectPtr) | |
| d xmlXPathCastBooleanToString... | |
| d pr * extproc( xmlChar * | |
| d 'xmlXPathCastBooleanToString') | |
| d val value like(xmlCint) | |
| d xmlXPathCastNumberToString... | |
| d pr * extproc('xmlXPathCastNumberToString')xmlChar * | |
| d val value like(xmlCdouble) | |
| d xmlXPathCastNodeToString... | |
| d pr * extproc('xmlXPathCastNodeToString') xmlChar * | |
| d node value like(xmlNodePtr) | |
| d xmlXPathCastNodeSetToString... | |
| d pr * extproc('xmlXPathCastNodeSetToString'xmlChar * | |
| d ) | |
| d ns value like(xmlNodeSetPtr) | |
| d xmlXPathCastToString... | |
| d pr * extproc('xmlXPathCastToString') xmlChar * | |
| d val value like(xmlXPathObjectPtr) | |
| d xmlXPathConvertBoolean... | |
| d pr extproc('xmlXPathConvertBoolean') | |
| d like(xmlXPathObjectPtr) | |
| d val value like(xmlXPathObjectPtr) | |
| d xmlXPathConvertNumber... | |
| d pr extproc('xmlXPathConvertNumber') | |
| d like(xmlXPathObjectPtr) | |
| d val value like(xmlXPathObjectPtr) | |
| d xmlXPathConvertString... | |
| d pr extproc('xmlXPathConvertString') | |
| d like(xmlXPathObjectPtr) | |
| d val value like(xmlXPathObjectPtr) | |
| * Context handling. | |
| d xmlXPathNewContext... | |
| d pr extproc('xmlXPathNewContext') | |
| d like(xmlXPathContextPtr) | |
| d doc value like(xmlDocPtr) | |
| d xmlXPathFreeContext... | |
| d pr extproc('xmlXPathFreeContext') | |
| d ctxt value like(xmlXPathContextPtr) | |
| d xmlXPathContextSetCache... | |
| d pr extproc('xmlXPathContextSetCache') | |
| d like(xmlCint) | |
| d ctxt value like(xmlXPathContextPtr) | |
| d active value like(xmlCint) | |
| d value value like(xmlCint) | |
| d options value like(xmlCint) | |
| * Evaluation functions. | |
| d xmlXPathOrderDocElems... | |
| d pr extproc('xmlXPathOrderDocElems') | |
| d like(xmlClong) | |
| d doc value like(xmlDocPtr) | |
| d xmlXPathSetContextNode... | |
| d pr extproc('xmlXPathSetContextNode') | |
| d like(xmlCint) | |
| d node value like(xmlNodePtr) | |
| d ctx value like(xmlXPathContextPtr) | |
| d xmlXPathNodeEval... | |
| d pr extproc('xmlXPathNodeEval') | |
| d like(xmlXPathObjectPtr) | |
| d node value like(xmlNodePtr) | |
| d str * value options(*string) const xmlChar * | |
| d ctx value like(xmlXPathContextPtr) | |
| d xmlXPathEval pr extproc('xmlXPathEval') | |
| d like(xmlXPathObjectPtr) | |
| d str * value options(*string) const xmlChar * | |
| d ctx value like(xmlXPathContextPtr) | |
| d xmlXPathEvalExpression... | |
| d pr extproc('xmlXPathEvalExpression') | |
| d like(xmlXPathObjectPtr) | |
| d str * value options(*string) const xmlChar * | |
| d ctxt value like(xmlXPathContextPtr) | |
| d xmlXPathEvalPredicate... | |
| d pr extproc('xmlXPathEvalPredicate') | |
| d like(xmlCint) | |
| d ctxt value like(xmlXPathContextPtr) | |
| d res value like(xmlXPathObjectPtr) | |
| * Separate compilation/evaluation entry points. | |
| d xmlXPathCompile... | |
| d pr extproc('xmlXPathCompile') | |
| d like(xmlXPathCompExprPtr) | |
| d str * value options(*string) const xmlChar * | |
| d xmlXPathCtxtCompile... | |
| d pr extproc('xmlXPathCtxtCompile') | |
| d like(xmlXPathCompExprPtr) | |
| d ctxt value like(xmlXPathContextPtr) | |
| d str * value options(*string) const xmlChar * | |
| d xmlXPathCompiledEval... | |
| d pr extproc('xmlXPathCompiledEval') | |
| d like(xmlXPathObjectPtr) | |
| d comp value like(xmlXPathCompExprPtr) | |
| d ctx value like(xmlXPathContextPtr) | |
| d xmlXPathCompiledEvalToBoolean... | |
| d pr extproc( | |
| d 'xmlXPathCompiledEvalToBoolean') | |
| d like(xmlCint) | |
| d comp value like(xmlXPathCompExprPtr) | |
| d ctxt value like(xmlXPathContextPtr) | |
| d xmlXPathFreeCompExpr... | |
| d pr extproc('xmlXPathFreeCompExpr') | |
| d comp value like(xmlXPathCompExprPtr) | |
| /endif LIBXML_XPATH_ENABLED | |
| /undefine XML_TESTVAL | |
| /if defined(LIBXML_XPATH_ENABLED) | |
| /define XML_TESTVAL | |
| /elseif defined(LIBXML_SCHEMAS_ENABLED) | |
| /define XML_TESTVAL | |
| /endif | |
| /if defined(XML_TESTVAL) | |
| d xmlXPathInit pr extproc('xmlXPathInit') | |
| d xmlXPathIsNaN pr extproc('xmlXPathIsNaN') | |
| d like(xmlCint) | |
| d val value like(xmlCdouble) | |
| d xmlXPathIsInf pr extproc('xmlXPathIsInf') | |
| d like(xmlCint) | |
| d val value like(xmlCdouble) | |
| /undefine XML_TESTVAL | |
| /endif | |
| * C macros implemented as procedures for ILE/RPG support. | |
| /if defined(LIBXML_XPATH_ENABLED) | |
| d xmlXPathNodeSetGetLength... | |
| d pr extproc('__xmlXPathNodeSetGetLength') | |
| d like(xmlCint) | |
| d ns value like(xmlNodeSetPtr) | |
| d xmlXPathNodeSetItem... | |
| d pr extproc('__xmlXPathNodeSetItem') | |
| d like(xmlNodePtr) | |
| d ns value like(xmlNodeSetPtr) | |
| d index value like(xmlCint) | |
| d xmlXPathNodeSetIsEmpty... | |
| d pr extproc('__xmlXPathNodeSetIsEmpty') | |
| d like(xmlCint) | |
| d ns value like(xmlNodeSetPtr) | |
| /endif LIBXML_XPATH_ENABLED | |
| /endif XML_XPATH_H__ |