<html><head><link rel=StyleSheet href='api-content.css' TYPE='text/css' MEDIA='screen'><title>SXP</title></head> <script> function navToEntry(entry) { window.location.hash=entry; } function navToGroup(group) { var f = parent.frames['toc-container']; if (!f) window.open ('complete-toc.html#' + group, 'toc_container'); else { if (f.location.href.search('abc') != -1) f.location.href = 'complete-toc.html#' + group; else f.location.hash = group; } } </script> <body bgcolor='white'> <!-- -- HEADS UP! This page was *GENERATED* by APIDOC, -- DO NOT EDIT THIS FILE BY HAND! -- See http://www.mozilla.org/projects/apidoc for information on APIDOC -- The original source file was sxp.xml --> <h1 class='title'>SXP Reference</h1> <a name='.Building'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>Building</font></td> <td class='entry-type' align='center' width='25%'>General</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> All declarations described in this document, if not specified otherwise, are to be found in the Sablotron header file <code>sxpath.h</code>. When building an executable using the SXP, include <code>sxpath.h</code> and link the Sablotron library (<code>-lsablot</code>). </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_General")'>General</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='.Errors'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>Errors</font></td> <td class='entry-type' align='center' width='25%'>General</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> On error, most SXP interface functions output a Sablotron error message and return an error code which can be passed to functions like <code>SablotGetErrorMsg</code> (declared in <code>sablot.h</code>). <P>In the callbacks, in contrast, error handling has been kept to a minimum. Typically, in case of an error, a callback just returns a special value such as NULL. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_General")'>General</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='.Introduction'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>Introduction</font></td> <td class='entry-type' align='center' width='25%'>General</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> The <b>Sablotron XPath processor</b> (SXP) enables the user to evaluate an XPath query on a DOM document accessed via callback functions provided by the user. The interface to SXP is written in C. SXP is a part of Sablotron, an XSLT processor by Ginger Alliance. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_General")'>General</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("%2eBuilding");'>.Building</a> | <a href='javascript:navToEntry("%2eErrors");'>.Errors</a> | <a href='javascript:navToEntry("%2eUsage");'>.Usage</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='.Usage'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>Usage</font></td> <td class='entry-type' align='center' width='25%'>General</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> To work with SXP, the user needs to instantiate a <code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code>, register a DOM handler (a set of DOM-like callback functions) using <code><a href='javascript:navToEntry("SXP_registerDOMHandler");'>SXP_registerDOMHandler</a></code>, and create a query context using <code><a href='javascript:navToEntry("SXP_createQueryContext");'>SXP_createQueryContext</a></code>. </td></tr> <tr><td class='entry-example'> <h4 class='entry-subhead'>Example</h4> <pre> SablotSituation S; SXP_QueryContext Q; DOMHandler my_domhandler= { &getNodeType, /* ... more callbacks follow ... */ }; /* let us say the root is 123 */ SXP_Node root = (SXP_Node) 123; SXP_char *result; SablotCreateSituation(&S); SXP_registerDOMHandler(S, &my_domhandler); SXP_createQueryContext(S, &Q); /* perform the query with the root as the context node */ SXP_query(Q, "//*", root, 1, 1); SXP_getResultString(Q, &result); puts(result); SXP_destroyQueryContext(Q); SablotDestroySituation(S); </pre></td></tr> <tr><td class='entry-notes'> <h4 class='entry-subhead'>Notes</h4> For clarity, error checking has been omitted from the above excerpt. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_General")'>General</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_createQueryContext");'>SXP_createQueryContext</a> | <a href='javascript:navToEntry("SXP_registerDOMHandler");'>SXP_registerDOMHandler</a> | <a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='DOMHandler'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>DOMHandler</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> A structure holding the addresses of all the callback functions that reveal the DOM document to the SXP. It contains the following callbacks (in the given order): <ul> <li> <code><a href='javascript:navToEntry("getNodeType");'>getNodeType</a></code>, <li> <code><a href='javascript:navToEntry("getNodeName");'>getNodeName</a></code>, <li> <code><a href='javascript:navToEntry("getNodeNameURI");'>getNodeNameURI</a></code>, <li> <code><a href='javascript:navToEntry("getNodeNameLocal");'>getNodeNameLocal</a></code>, <li> <code><a href='javascript:navToEntry("getNodeValue");'>getNodeValue</a></code>, <li> <code><a href='javascript:navToEntry("getNextSibling");'>getNextSibling</a></code>, <li> <code><a href='javascript:navToEntry("getPreviousSibling");'>getPreviousSibling</a></code>, <li> <code><a href='javascript:navToEntry("getNextAttrNS");'>getNextAttrNS</a></code>, <li> <code><a href='javascript:navToEntry("getPreviousAttrNS");'>getPreviousAttrNS</a></code>, <li> <code><a href='javascript:navToEntry("getChildCount");'>getChildCount</a></code>, <li> <code><a href='javascript:navToEntry("getAttributeCount");'>getAttributeCount</a></code>, <li> <code><a href='javascript:navToEntry("getNamespaceCount");'>getNamespaceCount</a></code>, <li> <code><a href='javascript:navToEntry("getChildNo");'>getChildNo</a></code>, <li> <code><a href='javascript:navToEntry("getAttributeNo");'>getAttributeNo</a></code>, <li> <code><a href='javascript:navToEntry("getNamespaceNo");'>getNamespaceNo</a></code>, <li> <code><a href='javascript:navToEntry("getParent");'>getParent</a></code>, <li> <code><a href='javascript:navToEntry("getOwnerDocument");'>getOwnerDocument</a></code>, <li> <code><a href='javascript:navToEntry("compareNodes");'>compareNodes</a></code>, <li> <code><a href='javascript:navToEntry("retrieveDocument");'>retrieveDocument</a></code>. </ul> </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("compareNodes");'>compareNodes</a> | <a href='javascript:navToEntry("getAttributeCount");'>getAttributeCount</a> | <a href='javascript:navToEntry("getAttributeNo");'>getAttributeNo</a> | <a href='javascript:navToEntry("getChildCount");'>getChildCount</a> | <a href='javascript:navToEntry("getChildNo");'>getChildNo</a> | <a href='javascript:navToEntry("getNamespaceCount");'>getNamespaceCount</a> | <a href='javascript:navToEntry("getNamespaceNo");'>getNamespaceNo</a> | <a href='javascript:navToEntry("getNextAttrNS");'>getNextAttrNS</a> | <a href='javascript:navToEntry("getNextSibling");'>getNextSibling</a> | <a href='javascript:navToEntry("getNodeName");'>getNodeName</a> | <a href='javascript:navToEntry("getNodeNameLocal");'>getNodeNameLocal</a> | <a href='javascript:navToEntry("getNodeNameURI");'>getNodeNameURI</a> | <a href='javascript:navToEntry("getNodeType");'>getNodeType</a> | <a href='javascript:navToEntry("getNodeValue");'>getNodeValue</a> | <a href='javascript:navToEntry("getOwnerDocument");'>getOwnerDocument</a> | <a href='javascript:navToEntry("getParent");'>getParent</a> | <a href='javascript:navToEntry("getPreviousAttrNS");'>getPreviousAttrNS</a> | <a href='javascript:navToEntry("getPreviousSibling");'>getPreviousSibling</a> | <a href='javascript:navToEntry("retrieveDocument");'>retrieveDocument</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='QueryContext'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>QueryContext</font></td> <td class='entry-type' align='center' width='25%'>Types</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> A type representing the context of a query, which can hold (1) namespace declarations for the next call to <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>, (2) variable bindings for the same, (3) the result of a <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>. An object of this type is created using <code><a href='javascript:navToEntry("SXP_createQueryContext");'>SXP_createQueryContext</a></code> and freed using <code><a href='javascript:navToEntry("SXP_destroyQueryContext");'>SXP_destroyQueryContext</a></code>. The evaluation result may be retrieved using functions like <code><a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Types")'>Types</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_addNamespaceDeclaration");'>SXP_addNamespaceDeclaration</a> | <a href='javascript:navToEntry("SXP_addVariableBinding");'>SXP_addVariableBinding</a> | <a href='javascript:navToEntry("SXP_addVariableString");'>SXP_addVariableString</a> | <a href='javascript:navToEntry("SXP_createQueryContext");'>SXP_createQueryContext</a> | <a href='javascript:navToEntry("SXP_destroyQueryContext");'>SXP_destroyQueryContext</a> | <a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_Document'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_Document</font></td> <td class='entry-type' align='center' width='25%'>Types</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> A document type. <code>SXP_Document</code> can be used in place of any <code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code>, in which case it represents the document root node. A synonym for <code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code> is <code>NodeHandle</code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Types")'>Types</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_ExpressionType'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_ExpressionType</font></td> <td class='entry-type' align='center' width='25%'>Enums</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> The type for expressions in the SXP. Possible values include <code>SXP_NONE</code> (unknown type), <code>SXP_NUMBER</code>, <code>SXP_STRING</code>, <code>SXP_BOOLEAN</code> and <code>SXP_NODESET</code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Enums")'>Enums</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_getResultType");'>SXP_getResultType</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_Node'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_Node</font></td> <td class='entry-type' align='center' width='25%'>Types</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> A generic node type. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Types")'>Types</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_NodeList'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_NodeList</font></td> <td class='entry-type' align='center' width='25%'>Types</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> A node list type. Node lists are returned by <code><a href='javascript:navToEntry("SXP_getResultNodeset");'>SXP_getResultNodeset</a></code> and are manipulated using <code><a href='javascript:navToEntry("SXP_getNodeListLength");'>SXP_getNodeListLength</a></code> and <code><a href='javascript:navToEntry("SXP_getNodeListItem");'>SXP_getNodeListItem</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Types")'>Types</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_getNodeListItem");'>SXP_getNodeListItem</a> | <a href='javascript:navToEntry("SXP_getNodeListLength");'>SXP_getNodeListLength</a> | <a href='javascript:navToEntry("SXP_getResultNodeset");'>SXP_getResultNodeset</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_NodeType'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_NodeType</font></td> <td class='entry-type' align='center' width='25%'>Enums</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> The type for nodes in the SXP. Possible values include: <ul> <li> ELEMENT_NODE, <li> ATTRIBUTE_NODE, <li> TEXT_NODE, <li> PROCESSING_INSTRUCTION_NODE, <li> COMMENT_NODE, <li> DOCUMENT_NODE, <li> NAMESPACE_NODE. </ul> </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Enums")'>Enums</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_addNamespaceDeclaration'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_addNamespaceDeclaration</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_addNamespaceDeclaration(Q, prefix, uri) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>prefix</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The namespace prefix. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>uri</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The namespace URI. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Declares a new namespace with the given prefix and URI. The declaration will only be in effect for the next <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_addVariableBinding");'>SXP_addVariableBinding</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_addVariableBinding'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_addVariableBinding</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_addVariableBinding(Q, name, source) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>name</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The name of the variable. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>source</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>Another <code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code> which has been evaluated already. The variable will be bound to its result expression. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Binds a variable to the result expression of another <code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code>. The binding will only be in effect for the next <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>. <code>SXP_addVariableBinding</code> provides the only way to bind the variable to a node set. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_addVariableBoolean");'>SXP_addVariableBoolean</a> | <a href='javascript:navToEntry("SXP_addVariableNumber");'>SXP_addVariableNumber</a> | <a href='javascript:navToEntry("SXP_addVariableString");'>SXP_addVariableString</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_addVariableBoolean'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_addVariableBoolean</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_addVariableBoolean(Q, name, value) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>name</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The name of the variable. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>value</code></td><td param-type'><code>int</code></td><td class='param-desc'>The boolean value to bind the variable to. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Binds a variable to a boolean. The binding will only be in effect for the next <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_addVariableBinding");'>SXP_addVariableBinding</a> | <a href='javascript:navToEntry("SXP_addVariableNumber");'>SXP_addVariableNumber</a> | <a href='javascript:navToEntry("SXP_addVariableString");'>SXP_addVariableString</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_addVariableNumber'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_addVariableNumber</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_addVariableNumber(Q, name, value) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>name</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The name of the variable. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>value</code></td><td param-type'><code>double</code></td><td class='param-desc'>The number to bind the variable to. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Binds a variable to a number. The binding will only be in effect for the next <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_addVariableBinding");'>SXP_addVariableBinding</a> | <a href='javascript:navToEntry("SXP_addVariableBoolean");'>SXP_addVariableBoolean</a> | <a href='javascript:navToEntry("SXP_addVariableString");'>SXP_addVariableString</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_addVariableString'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_addVariableString</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_addVariableString(Q, name, value) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>name</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The name of the variable. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>value</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The string to bind the variable to. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Binds a variable to a string. The binding will only be in effect for the next <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_addVariableBinding");'>SXP_addVariableBinding</a> | <a href='javascript:navToEntry("SXP_addVariableBoolean");'>SXP_addVariableBoolean</a> | <a href='javascript:navToEntry("SXP_addVariableNumber");'>SXP_addVariableNumber</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_char'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_char</font></td> <td class='entry-type' align='center' width='25%'>Types</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> SXP character type. Currently just UTF-8 encoded <code>char</code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Types")'>Types</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_createQueryContext'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_createQueryContext</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_createQueryContext(S, Qptr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>S</code></td><td param-type'><code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code></td><td class='param-desc'>The current situation. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>Qptr</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a> *</code></td><td class='param-desc'>Pointer to where to store the query context. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Creates a <code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_destroyQueryContext'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_destroyQueryContext</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_destroyQueryContext(Q) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The query context to be deleted. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Destroys a <code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code>, freeing all the memory it used, including any <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code> result and the pending variable bindings and namespace declaration lists. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getNodeListItem'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getNodeListItem</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getNodeListItem(list, index) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>list</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_NodeList");'>SXP_NodeList</a></code></td><td class='param-desc'>A node list. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>index</code></td><td param-type'><code>int</code></td><td class='param-desc'>A zero-based index into the list. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the item at the given (zero-based) position in the node list. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_NodeList");'>SXP_NodeList</a> | <a href='javascript:navToEntry("SXP_getNodeListLength");'>SXP_getNodeListLength</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getNodeListLength'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getNodeListLength</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getNodeListLength(list) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>list</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_NodeList");'>SXP_NodeList</a></code></td><td class='param-desc'>A node list. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the number of items in a node list. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_NodeList");'>SXP_NodeList</a> | <a href='javascript:navToEntry("SXP_getNodeListItem");'>SXP_getNodeListItem</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getResultBool'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getResultBool</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getResultBool(Q, resultPtr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>resultPtr</code></td><td param-type'><code>int*</code></td><td class='param-desc'>The pointer to store the result at. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Retrieves the result of a <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code> as a boolean, performing a type conversion if necessary. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_getResultNodeset");'>SXP_getResultNodeset</a> | <a href='javascript:navToEntry("SXP_getResultNumber");'>SXP_getResultNumber</a> | <a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a> | <a href='javascript:navToEntry("SXP_getResultType");'>SXP_getResultType</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getResultNodeset'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getResultNodeset</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getResultNodeset(Q, resultPtr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>resultPtr</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_NodeList");'>SXP_NodeList</a>*</code></td><td class='param-desc'>The pointer to store the result at. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Retrieves the result of a <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code> as a nodeset. This can be subsequently manipulated using <code><a href='javascript:navToEntry("SXP_getNodeListItem");'>SXP_getNodeListItem</a></code> and <code><a href='javascript:navToEntry("SXP_getNodeListLength");'>SXP_getNodeListLength</a></code>. If the result is not of type nodeset, then XPath does not allow its conversion to a nodeset, and <code>SXP_ getResultNodeset</code> returns NULL in *resultPtr. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_NodeList");'>SXP_NodeList</a> | <a href='javascript:navToEntry("SXP_getNodeListItem");'>SXP_getNodeListItem</a> | <a href='javascript:navToEntry("SXP_getNodeListLength");'>SXP_getNodeListLength</a> | <a href='javascript:navToEntry("SXP_getResultBool");'>SXP_getResultBool</a> | <a href='javascript:navToEntry("SXP_getResultNumber");'>SXP_getResultNumber</a> | <a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a> | <a href='javascript:navToEntry("SXP_getResultType");'>SXP_getResultType</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getResultNumber'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getResultNumber</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getResultNumber(Q, resultPtr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>resultPtr</code></td><td param-type'><code>double*</code></td><td class='param-desc'>The pointer to store the result at. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Retrieves the result of a <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code> as a double, performing a type conversion if necessary. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_getResultBool");'>SXP_getResultBool</a> | <a href='javascript:navToEntry("SXP_getResultNodeset");'>SXP_getResultNodeset</a> | <a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a> | <a href='javascript:navToEntry("SXP_getResultType");'>SXP_getResultType</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getResultString'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getResultString</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getResultString(Q, resultPtr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>resultPtr</code></td><td param-type'><code>const char**</code></td><td class='param-desc'>The pointer to store the result at. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Retrieves the result of a <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code> as a string, performing a type conversion if necessary. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_getResultBool");'>SXP_getResultBool</a> | <a href='javascript:navToEntry("SXP_getResultNodeset");'>SXP_getResultNodeset</a> | <a href='javascript:navToEntry("SXP_getResultNumber");'>SXP_getResultNumber</a> | <a href='javascript:navToEntry("SXP_getResultType");'>SXP_getResultType</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_getResultType'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_getResultType</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_getResultType(Q, typePtr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>typePtr</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_ExpressionType");'>SXP_ExpressionType</a>*</code></td><td class='param-desc'>The pointer to store the result type at. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Retrieves the type of a result expression (<code><a href='javascript:navToEntry("SXP_ExpressionType");'>SXP_ExpressionType</a></code>) held in <code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code> after <code><a href='javascript:navToEntry("SXP_query");'>SXP_query</a></code> has been called. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_ExpressionType");'>SXP_ExpressionType</a> | <a href='javascript:navToEntry("SXP_getResultBool");'>SXP_getResultBool</a> | <a href='javascript:navToEntry("SXP_getResultNodeset");'>SXP_getResultNodeset</a> | <a href='javascript:navToEntry("SXP_getResultNumber");'>SXP_getResultNumber</a> | <a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a> | <a href='javascript:navToEntry("SXP_query");'>SXP_query</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_query'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_query</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_query(Q, query, node, position, size) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>Q</code></td><td param-type'><code><a href='javascript:navToEntry("QueryContext");'>QueryContext</a></code></td><td class='param-desc'>The current query context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>query</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The text of the query. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The current node for the query. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>position</code></td><td param-type'><code>int</code></td><td class='param-desc'>The position of the current node in the evaluation context. As SXP is a C interface, the position is zero-based (unlike one-based XPath nodesets). Thus, you must set this parameter to 0 if you want the "position()" query to return 1. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>size</code></td><td param-type'><code>int</code></td><td class='param-desc'>The size of the evaluation context. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Evaluates a query (given as text) based on the current node, the context position (zero-based) and the context size. Any namespaces declared using <code><a href='javascript:navToEntry("SXP_addNamespaceDeclaration");'>SXP_addNamespaceDeclaration</a></code> are used for the evaluation, as are the variable bindings made using functions like <code><a href='javascript:navToEntry("SXP_addVariableString");'>SXP_addVariableString</a></code>. Upon completion of the query, the pending namespace declarations and variable bindings are <b>cleared</b>. </td></tr> <tr><td class='entry-example'> <h4 class='entry-subhead'>Example</h4> <pre> SXP_query(Q, "node[1]/@att", root, 0, 1); </pre></td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("QueryContext");'>QueryContext</a> | <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> | <a href='javascript:navToEntry("SXP_addNamespaceDeclaration");'>SXP_addNamespaceDeclaration</a> | <a href='javascript:navToEntry("SXP_addVariableString");'>SXP_addVariableString</a> | <a href='javascript:navToEntry("SXP_getResultString");'>SXP_getResultString</a> | <a href='javascript:navToEntry("SXP_getResultType");'>SXP_getResultType</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_registerDOMHandler'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_registerDOMHandler</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_registerDOMHandler(S, domh); </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>S</code></td><td param-type'><code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code></td><td class='param-desc'>The current situation. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>domh</code></td><td param-type'><code><a href='javascript:navToEntry("DOMHandler");'>DOMHandler</a> *</code></td><td class='param-desc'>Pointer to the new DOM handler. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Registers a new <code><a href='javascript:navToEntry("DOMHandler");'>DOMHandler</a></code> with the given <code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code>. There may only be one DOM handler per situation. The DOM handler will receive all DOM requests made during evaluation with the situation S. To unregister the handler, use <code><a href='javascript:navToEntry("SXP_unregisterDOMHandler");'>SXP_unregisterDOMHandler</a></code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("DOMHandler");'>DOMHandler</a> | <a href='javascript:navToEntry("SXP_unregisterDOMHandler");'>SXP_unregisterDOMHandler</a> | <a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SXP_unregisterDOMHandler'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SXP_unregisterDOMHandler</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SXP_unregisterDOMHandler(S) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>S</code></td><td param-type'><code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code></td><td class='param-desc'>The current situation. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Unregisters the <code><a href='javascript:navToEntry("DOMHandler");'>DOMHandler</a></code> registered with the given <code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code>. All DOM requests will be processed in the default way. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("DOMHandler");'>DOMHandler</a> | <a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SablotCreateSituation'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SablotCreateSituation</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SablotCreateSituation(sPtr) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>sPtr</code></td><td param-type'><code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> *</code></td><td class='param-desc'>Pointer to where the result is to be stored. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Creates a <code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code> which is passed to many Sablotron functions and can be later destroyed by a call to <code><a href='javascript:navToEntry("SablotDestroySituation");'>SablotDestroySituation</a></code>. </td></tr> <tr><td class='entry-notes'> <h4 class='entry-subhead'>Notes</h4> <code>SablotCreateSituation</code> is declared in <code>sablot.h</code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SablotDestroySituation");'>SablotDestroySituation</a> | <a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SablotDestroySituation'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SablotDestroySituation</font></td> <td class='entry-type' align='center' width='25%'>Functions</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> SablotDestroySituation(S) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>S</code></td><td param-type'><code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code></td><td class='param-desc'>The situation to be freed. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The error code. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Frees a <code><a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a></code>. </td></tr> <tr><td class='entry-notes'> <h4 class='entry-subhead'>Notes</h4> <code>SablotDestroySituation</code> is declared in <code>sablot.h</code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Functions")'>Functions</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SablotSituation");'>SablotSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='SablotSituation'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>SablotSituation</font></td> <td class='entry-type' align='center' width='25%'>Types</td> </tr></table> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> The type representing a general "context" for Sablotron. Mainly used for error reporting. An object of this type can be created using <code><a href='javascript:navToEntry("SablotCreateSituation");'>SablotCreateSituation</a></code>. </td></tr> <tr><td class='entry-notes'> <h4 class='entry-subhead'>Notes</h4> <code>SablotSituation</code> is declared in <code>sablot.h</code>. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Types")'>Types</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SablotCreateSituation");'>SablotCreateSituation</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='compareNodes'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>compareNodes</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> compareNodes(node1,node2) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node1</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The first node to be compared. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>node2</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The second node to be compared. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The result of the comparison. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Compares two nodes based on the document order. Returns -1 if node1 < node2 in this order, +1 if node1 > node2, and 0 if the nodes are identical. Any other value signifies an error. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getAttributeCount'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getAttributeCount</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getAttributeCount(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The number of attributes of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the number of attributes of the node. In particular, if the node is not an element, 0 is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getAttributeNo'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getAttributeNo</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getAttributeNo(node, index) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>index</code></td><td param-type'><code>int</code></td><td class='param-desc'>Index of an attribute. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node's attribute with the given index. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the node's attribute at the given index. If the index is out of bounds, or if the node has no attributes, NULL is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getChildCount'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getChildCount</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getChildCount(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The number of children of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the number of children of the node. In particular, if the node is neither an element nor a document node, 0 is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getChildNo'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getChildNo</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getChildNo(node, index) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>index</code></td><td param-type'><code>int</code></td><td class='param-desc'>Index of a child. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node's child with the given index. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the node's child at the given index. If the index is out of bounds, or if the node has no children, NULL is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNamespaceCount'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNamespaceCount</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNamespaceCount(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>int</code></td><td class='param-desc'>The number of namespace declarations belonging to the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the number of namespace declarations belonging to the node. In particular, if the node is not an element, 0 is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNamespaceNo'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNamespaceNo</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNamespaceNo(node, index) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>index</code></td><td param-type'><code>int</code></td><td class='param-desc'>Index of a namespace node. </td> </tr> <tr class='param-row-even'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The namespace node with the given index among those belonging to the given node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the namespace node which appears at the given position among those belonging to the given node. If the index is out of bounds, or if the node has no namespace nodes, NULL is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNextAttrNS'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNextAttrNS</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNextAttrNS(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The attribute/namespace node after the given one. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> If the given node is an attribute, the following attribute is returned; if it is a namespace node, the following namespace node is returned. If the node is not of these two types, or if there is no following node of the same type, the callback returns NULL. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNextSibling'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNextSibling</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNextSibling(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The next sibling of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the following sibling of the node, in document order. If there is no such sibling, returns NULL. If the node is an attribute or a namespace node, NULL is returned. </td></tr> <tr><td class='entry-notes'> <h4 class='entry-subhead'>Notes</h4> In the early versions of the SXP, <code>getNextSibling</code> acted like <code><a href='javascript:navToEntry("getNextAttrNS");'>getNextAttrNS</a></code> when used on attributes and namespace nodes. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> | <a href='javascript:navToEntry("getNextAttrNS");'>getNextAttrNS</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNodeName'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNodeName</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNodeName(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The name of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the qualified name of the given node (prefix:local-part). On error, returns NULL. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNodeNameLocal'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNodeNameLocal</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNodeNameLocal(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The local name of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the local part of the given node's name. On error, returns NULL. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNodeNameURI'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNodeNameURI</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNodeNameURI(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The URI of the node's namespace. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the namespace URI of the given node. On error, returns NULL. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNodeType'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNodeType</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNodeType(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_NodeType");'>SXP_NodeType</a></code></td><td class='param-desc'>The type of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the type of the given node, or SXP_NONE on error. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> | <a href='javascript:navToEntry("SXP_NodeType");'>SXP_NodeType</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getNodeValue'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getNodeValue</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getNodeValue(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The value of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the value of the given node, or NULL on error. The node values are as specified in the DOM Level 1 Core specification, with the addition that the value of a namespace node is the namespace URI. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getOwnerDocument'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getOwnerDocument</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getOwnerDocument(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Document");'>SXP_Document</a></code></td><td class='param-desc'>The owner document. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the given node's owner document. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Document");'>SXP_Document</a> | <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getParent'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getParent</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getParent(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node's parent. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the given node's parent. If the node has no parent (i.e. is a SXP_Document), NULL is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getPreviousAttrNS'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getPreviousAttrNS</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getPreviousAttrNS(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The attribute/namespace node preceding the given one. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> If the given node is an attribute, the preceding attribute is returned; if it is a namespace node, the preceding namespace node is returned. If the node is not of these two types, or if there is no preceding node of the same type, the callback returns NULL. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='getPreviousSibling'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>getPreviousSibling</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> getPreviousSibling(node) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>node</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The node to operate on. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a></code></td><td class='param-desc'>The preceding sibling of the node. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the preceding sibling of the node, in document order. If there is no such sibling, returns NULL. If the node is an attribute or a namespace node, NULL is returned. </td></tr> <tr><td class='entry-notes'> <h4 class='entry-subhead'>Notes</h4> In the early versions of the SXP, <code>getPreviousSibling</code> acted like <code><a href='javascript:navToEntry("getPreviousAttrNS");'>getPreviousAttrNS</a></code> when used on attributes and namespace nodes. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Node");'>SXP_Node</a> | <a href='javascript:navToEntry("getPreviousAttrNS");'>getPreviousAttrNS</a> ]</td></tr> </table> </td></tr> </table></center><br> <a name='retrieveDocument'></a> <center><table class='api-entry' width='100%' cellspacing='0'border='1' cellpadding='10'> <tr><td class='entry-heading'> <table class='entry-heading-table' width='100%' cellpadding='5'cellspacing='0'><tr> <td class='entry-title' valign='center'><font size='+5'>retrieveDocument</font></td> <td class='entry-type' align='center' width='25%'>Callbacks</td> </tr></table> </td></tr> <tr><td class='entry-syntax'> <h4 class='entry-subhead'>Syntax</h4><pre> retrieveDocument(uri) </pre> <center><table class='param-list' border='1' cellpadding='3' cellspacing='1'><tr class='param-list-head'><th>Name</th><th>Type</th><th>Description</th></tr> <tr class='param-row-even'><td class='param-name'><code>uri</code></td><td param-type'><code>const SXP_char*</code></td><td class='param-desc'>The URI of the document to be retrieved. </td> </tr> <tr class='param-row-odd'><td class='param-name'><code>(RET)</code></td><td param-type'><code><a href='javascript:navToEntry("SXP_Document");'>SXP_Document</a></code></td><td class='param-desc'>The retrieved document. </td> </tr> </table></center> </td></tr> <tr><td class='entry-description'> <h4 class='entry-subhead'>Description</h4> Returns the document found at the given URI. If the document could not be retrieved, NULL is returned. </td></tr> <tr><td class='entry-seealso'> <h4 class='entry-subhead'>See Also</h4> <table class='seealso-table'> <tr class='seealso-groups'><td>Groups</td> <td>[ <a href='javascript:navToGroup("GROUP_Callbacks")'>Callbacks</a> ]</td></tr> <tr class='seealso-internals'><td>Entries</td> <td>[ <a href='javascript:navToEntry("SXP_Document");'>SXP_Document</a> ]</td></tr> </table> </td></tr> </table></center><br> © 2001-2003 Ginger Alliance<BR><i>revision 03-01-31</i><BR> <center>This page was generated by <a href='http://www.mozilla.org/projects/apidoc' target='other_window'><b>APIDOC</b></a></center> </body></html>