### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 41 of 44
 the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateDocumentFinal' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Does the final step for the document validation once all the incremental validation steps have been completed  basically it does the following checks described by the XML Rec  Check all the IDREF/IDREFS attributes definition for validity</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateDtd' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate the document against the dtd instance  Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='dtd' type='xmlDtdPtr' info='a dtd instance'/>
    </function>
    <function name='xmlValidateDtdFinal' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Does the final step for the dtds validation once all the subsets have been parsed  basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</info>
      <return type='int' info='1 if valid or 0 if invalid and -1 if not well-formed'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate the subtree under an element</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlValidateElementDecl' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlElementPtr' info='an element definition'/>
    </function>
    <function name='xmlValidateNCName' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of NCName</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateNMToken' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of NMToken</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateName' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of Name</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateNameValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Name production</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Name value'/>
    </function>
    <function name='xmlValidateNamesValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Names production</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Names value'/>
    </function>
    <function name='xmlValidateNmtokenValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Nmtoken production  [ VC: Name Token ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Nmtoken value'/>
    </function>
    <function name='xmlValidateNmtokensValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Nmtokens production  [ VC: Name Token ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Nmtokens value'/>
    </function>
    <function name='xmlValidateNotationDecl' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='nota' type='xmlNotationPtr' info='a notation definition'/>
    </function>
    <function name='xmlValidateNotationUse' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='notationName' type='const xmlChar *' info='the notation name to check'/>
    </function>
    <function name='xmlValidateOneAttribute' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single attribute for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='attr' type='xmlAttrPtr' info='an attribute instance'/>
      <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
    </function>
    <function name='xmlValidateOneElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single element and it&apos;s attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each attribute present.  The ID/IDREF checkings are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlValidateOneNamespace' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
      <arg name='ns' type='xmlNsPtr' info='an namespace declaration instance'/>
      <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
    </function>
    <function name='xmlValidatePopElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Pop the element end from the validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
    </function>
    <function name='xmlValidatePushCData' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>check the CData parsed for validation in the current stack</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='data' type='const xmlChar *' info='some character data read'/>
      <arg name='len' type='int' info='the length of the data'/>
    </function>
    <function name='xmlValidatePushElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Push a new element start on the validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
    </function>
    <function name='xmlValidateQName' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of QName</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateRoot' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn&apos;t try to recurse or apply other check to the element</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <functype name='xmlValidityErrorFunc' file='valid' module='valid'>
      <info>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
      <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
      <arg name='...' type='...' info='remaining arguments to the format'/>
    </functype>
    <functype name='xmlValidityWarningFunc' file='valid' module='valid'>
      <info>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
      <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
      <arg name='...' type='...' info='remaining arguments to the format'/>
    </functype>
    <function name='xmlXIncludeFreeContext' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Free an XInclude context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='the XInclude context'/>
    </function>
    <function name='xmlXIncludeNewContext' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Creates a new XInclude context</info>
      <return type='xmlXIncludeCtxtPtr' info='the new set'/>
      <arg name='doc' type='xmlDocPtr' info='an XML Document'/>
    </function>
    <function name='xmlXIncludeProcess' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
    </function>
    <function name='xmlXIncludeProcessFlags' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXIncludeProcessFlagsData' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
      <arg name='data' type='void *' info='application data that will be passed to the parser context in the _private field of the parser context(s)'/>
    </function>
    <function name='xmlXIncludeProcessNode' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an existing XInclude context'/>
      <arg name='node' type='xmlNodePtr' info='a node in an XML document'/>
    </function>
    <function name='xmlXIncludeProcessTree' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution for the given subtree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
    </function>
    <function name='xmlXIncludeProcessTreeFlags' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution for the given subtree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXIncludeProcessTreeFlagsData' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML node @tree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='an XML node'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
      <arg name='data' type='void *' info='application data that will be passed to the parser context in the _private field of the parser context(s)'/>
    </function>
    <function name='xmlXIncludeSetFlags' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Set the flags used for further processing of XML resources.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an XInclude processing context'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXPathAddValues' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the add operation on XPath objects: 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>
    <functype name='xmlXPathAxisFunc' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>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.</info>
      <return type='xmlXPathObjectPtr' info='the next node in that axis or NULL if at the end of the axis.'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interpreter context'/>
      <arg name='cur' type='xmlXPathObjectPtr' info='the previous node being explored on that axis'/>
    </functype>
    <function name='xmlXPathBooleanFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</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='xmlXPathCastBooleanToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a boolean to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='int' info='a boolean'/>
    </function>
    <function name='xmlXPathCastBooleanToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a boolean to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='val' type='int' info='a boolean'/>
    </function>
    <function name='xmlXPathCastNodeSetToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node-set to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeSetToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node-set to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeSetToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node-set to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathCastNodeToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathCastNumberToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a number to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='double' info='a number'/>
    </function>
    <function name='xmlXPathCastNumberToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a number to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='val' type='double' info='a number'/>
    </function>
    <function name='xmlXPathCastStringToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a string to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='const xmlChar *' info='a string'/>
    </function>
    <function name='xmlXPathCastStringToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a string to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='const xmlChar *' info='a string'/>
    </function>
    <function name='xmlXPathCastToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts an XPath object to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCastToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts an XPath object to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCastToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts an existing object to its string() equivalent</info>
      <return type='xmlChar *' info='the allocated string value of the object, NULL in case of error. It&apos;s up to the caller to free the string memory with xmlFree().'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCeilingFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</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='xmlXPathCmpNodes' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Compare two nodes w.r.t document order</info>
      <return type='int' info='-2 in case of error 1 if first point &lt; second point, 0 if it&apos;s the same node, -1 otherwise'/>
      <arg name='node1' type='xmlNodePtr' info='the first node'/>
      <arg name='node2' type='xmlNodePtr' info='the second node'/>
    </function>
    <function name='xmlXPathCompareValues' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the compare operation on XPath objects: @arg1 &lt; @arg2    (1, 1, ... @arg1 &lt;= @arg2   (1, 0, ... @arg1 &gt; @arg2    (0, 1, ... @arg1 &gt;= @arg2   (0, 0, ...  When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</info>
      <return type='int' info='1 if the comparison succeeded, 0 if it failed'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='inf' type='int' info='less than (1) or greater than (0)'/>
      <arg name='strict' type='int' info='is the comparison strict'/>
    </function>
    <function name='xmlXPathCompile' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Compile an XPath expression</info>
      <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
    </function>
    <function name='xmlXPathCompiledEval' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Evaluate the Precompiled XPath expression 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='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathCompiledEvalToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Applies the XPath boolean() function on the result of the given compiled expression.</info>
      <return type='int' info='1 if the expression evaluated to true, 0 if to false and -1 in API and internal errors.'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathConcatFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</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='xmlXPathContainsFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</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='xmlXPathContextSetCache' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Creates/frees an object cache on the XPath context. If activates XPath objects (xmlXPathObject) will be cached internally to be reused. @options: 0: This will set the XPath object caching: @value: This will set the maximum number of XPath objects to be cached per slot There are 5 slots for: node-set, string, number, boolean, and misc objects. Use &lt;0 for the default number (100). Other values for @options have currently no effect.</info>
      <return type='int' info='0 if the setting succeeded, and -1 on API or internal errors.'/>
     