### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 44 of 44
Ptr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathSumFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathTrailing' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathTrailingSorted' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
    </function>
    <function name='xmlXPathTranslateFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of characters in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate(&quot;bar&quot;,&quot;abc&quot;,&quot;ABC&quot;) returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate(&quot;--aaa--&quot;,&quot;abc-&quot;,&quot;ABC&quot;)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathTrueFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the true() XPath function boolean true()</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathValueFlipSign' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathVariableLookup' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Search in the Variable array of the context for the given variable value.</info>
      <return type='xmlXPathObjectPtr' info='a copy of the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
    </function>
    <functype name='xmlXPathVariableLookupFunc' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Prototype for callbacks used to plug variable lookup in the XPath engine.</info>
      <return type='xmlXPathObjectPtr' info='the XPath object value or NULL if not found.'/>
      <arg name='ctxt' type='void *' info='an XPath context'/>
      <arg name='name' type='const xmlChar *' info='name of the variable'/>
      <arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this variable'/>
    </functype>
    <function name='xmlXPathVariableLookupNS' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Search in the Variable array of the context for the given variable value.</info>
      <return type='xmlXPathObjectPtr' info='the a copy of the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
      <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
    </function>
    <function name='xmlXPathWrapCString' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wraps a string into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='char *' info='the char * value'/>
    </function>
    <function name='xmlXPathWrapExternal' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wraps the @val data into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='void *' info='the user data'/>
    </function>
    <function name='xmlXPathWrapNodeSet' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wrap the Nodeset @val in a new xmlXPathObjectPtr</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodeSetPtr' info='the NodePtr value'/>
    </function>
    <function name='xmlXPathWrapString' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wraps the @val string into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlChar *' info='the xmlChar * value'/>
    </function>
    <function name='xmlXPatherror' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Formats an error message.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='file' type='const char *' info='the file name'/>
      <arg name='line' type='int' info='the line number'/>
      <arg name='no' type='int' info='the error number'/>
    </function>
    <function name='xmlXPtrBuildNodeList' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</info>
      <return type='xmlNodePtr' info='an xmlNodePtr list or NULL. the caller has to free the node tree.'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='the XPointer result from the evaluation.'/>
    </function>
    <function name='xmlXPtrEval' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Evaluate the XPath Location Path in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPointer expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPointer context'/>
    </function>
    <function name='xmlXPtrEvalRangePredicate' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>[8]   Predicate ::=   &apos;[&apos; PredicateExpr &apos;]&apos; [9]   PredicateExpr ::=   Expr  Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
    </function>
    <function name='xmlXPtrFreeLocationSet' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Free the LocationSet compound (not the actual ranges !).</info>
      <return type='void'/>
      <arg name='obj' type='xmlLocationSetPtr' info='the xmlLocationSetPtr to free'/>
    </function>
    <function name='xmlXPtrLocationSetAdd' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='xmlXPathObjectPtr' info='a new xmlXPathObjectPtr'/>
    </function>
    <function name='xmlXPtrLocationSetCreate' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlLocationSetPtr of type double and of value @val</info>
      <return type='xmlLocationSetPtr' info='the newly created object.'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an initial xmlXPathObjectPtr, or NULL'/>
    </function>
    <function name='xmlXPtrLocationSetDel' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Removes an xmlXPathObjectPtr from an existing LocationSet</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an xmlXPathObjectPtr'/>
    </function>
    <function name='xmlXPtrLocationSetMerge' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Merges two rangesets, all ranges from @val2 are added to @val1</info>
      <return type='xmlLocationSetPtr' info='val1 once extended or NULL in case of error.'/>
      <arg name='val1' type='xmlLocationSetPtr' info='the first LocationSet'/>
      <arg name='val2' type='xmlLocationSetPtr' info='the second LocationSet'/>
    </function>
    <function name='xmlXPtrLocationSetRemove' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Removes an entry from an existing LocationSet list.</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='int' info='the index to remove'/>
    </function>
    <function name='xmlXPtrNewCollapsedRange' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range using a single nodes</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting and ending node'/>
    </function>
    <function name='xmlXPtrNewContext' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new XPointer context</info>
      <return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated.'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document'/>
      <arg name='here' type='xmlNodePtr' info='the node that directly contains the XPointer being evaluated or NULL'/>
      <arg name='origin' type='xmlNodePtr' info='the element from which a user or program initiated traversal of the link, or NULL.'/>
    </function>
    <function name='xmlXPtrNewLocationSetNodeSet' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from @set</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='set' type='xmlNodeSetPtr' info='a node set'/>
    </function>
    <function name='xmlXPtrNewLocationSetNodes' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes @start and @end</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the start NodePtr value'/>
      <arg name='end' type='xmlNodePtr' info='the end NodePtr value or NULL'/>
    </function>
    <function name='xmlXPtrNewRange' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='startindex' type='int' info='the start index'/>
      <arg name='end' type='xmlNodePtr' info='the ending point'/>
      <arg name='endindex' type='int' info='the ending index'/>
    </function>
    <function name='xmlXPtrNewRangeNodeObject' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a not to an object</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending object'/>
    </function>
    <function name='xmlXPtrNewRangeNodePoint' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a node to a point</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
    </function>
    <function name='xmlXPtrNewRangeNodes' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range using 2 nodes</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlNodePtr' info='the ending node'/>
    </function>
    <function name='xmlXPtrNewRangePointNode' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a point to a node</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
      <arg name='end' type='xmlNodePtr' info='the ending node'/>
    </function>
    <function name='xmlXPtrNewRangePoints' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range using 2 Points</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
    </function>
    <function name='xmlXPtrRangeToFunction' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Implement the range-to() XPointer function  Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
      <arg name='nargs' type='int' info='the number of args'/>
    </function>
    <function name='xmlXPtrWrapLocationSet' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Wrap the LocationSet @val in a new xmlXPathObjectPtr</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlLocationSetPtr' info='the LocationSet value'/>
    </function>
  </symbols>
</api>


