### ----------------------------------------------------
### -- LibXML
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxml2-api.xml
### ----------------------------------------------------
### -- Chunk 17 of 44
='xmlSchematronParserCtxtPtr' file='schematron' type='xmlSchematronParserCtxt *'/>
    <typedef name='xmlSchematronPtr' file='schematron' type='xmlSchematron *'/>
    <struct name='xmlSchematronValidCtxt' file='schematron' type='struct _xmlSchematronValidCtxt'/>
    <typedef name='xmlSchematronValidCtxtPtr' file='schematron' type='xmlSchematronValidCtxt *'/>
    <typedef name='xmlSchematronValidOptions' file='schematron' type='enum'/>
    <struct name='xmlShellCtxt' file='debugXML' type='struct _xmlShellCtxt'>
      <field name='filename' type='char *' info=''/>
      <field name='doc' type='xmlDocPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='pctxt' type='xmlXPathContextPtr' info=''/>
      <field name='loaded' type='int' info=''/>
      <field name='output' type='FILE *' info=''/>
      <field name='input' type='xmlShellReadlineFunc' info=''/>
    </struct>
    <typedef name='xmlShellCtxtPtr' file='debugXML' type='xmlShellCtxt *'/>
    <struct name='xmlStreamCtxt' file='pattern' type='struct _xmlStreamCtxt'/>
    <typedef name='xmlStreamCtxtPtr' file='pattern' type='xmlStreamCtxt *'/>
    <struct name='xmlTextReader' file='xmlreader' type='struct _xmlTextReader'/>
    <typedef name='xmlTextReaderLocatorPtr' file='xmlreader' type='void *'/>
    <typedef name='xmlTextReaderMode' file='xmlreader' type='enum'/>
    <typedef name='xmlTextReaderPtr' file='xmlreader' type='xmlTextReader *'>
      <info>Pointer to an xmlReader context.</info>
    </typedef>
    <struct name='xmlTextWriter' file='xmlwriter' type='struct _xmlTextWriter'/>
    <typedef name='xmlTextWriterPtr' file='xmlwriter' type='xmlTextWriter *'/>
    <struct name='xmlURI' file='uri' type='struct _xmlURI'>
      <field name='scheme' type='char *' info=' the URI scheme'/>
      <field name='opaque' type='char *' info=' opaque part'/>
      <field name='authority' type='char *' info=' the authority part'/>
      <field name='server' type='char *' info=' the server part'/>
      <field name='user' type='char *' info=' the user part'/>
      <field name='port' type='int' info=' the port number'/>
      <field name='path' type='char *' info=' the path string'/>
      <field name='query' type='char *' info=' the query string (deprecated - use with caution)'/>
      <field name='fragment' type='char *' info=' the fragment identifier'/>
      <field name='cleanup' type='int' info=' parsing potentially unclean URI'/>
      <field name='query_raw' type='char *' info=' the query string (as it appears in the URI)'/>
    </struct>
    <typedef name='xmlURIPtr' file='uri' type='xmlURI *'/>
    <struct name='xmlValidCtxt' file='valid' type='struct _xmlValidCtxt'>
      <field name='userData' type='void *' info=' user specific data block'/>
      <field name='error' type='xmlValidityErrorFunc' info=' the callback in case of errors'/>
      <field name='warning' type='xmlValidityWarningFunc' info=' the callback in case of warning Node analysis stack used when validating within entities'/>
      <field name='node' type='xmlNodePtr' info=' Current parsed Node'/>
      <field name='nodeNr' type='int' info=' Depth of the parsing stack'/>
      <field name='nodeMax' type='int' info=' Max depth of the parsing stack'/>
      <field name='nodeTab' type='xmlNodePtr *' info=' array of nodes'/>
      <field name='finishDtd' type='unsigned int' info=' finished validating the Dtd ?'/>
      <field name='doc' type='xmlDocPtr' info=' the document'/>
      <field name='valid' type='int' info=' temporary validity check result state state used for non-determinist content validation'/>
      <field name='vstate' type='xmlValidState *' info=' current state'/>
      <field name='vstateNr' type='int' info=' Depth of the validation stack'/>
      <field name='vstateMax' type='int' info=' Max depth of the validation stack'/>
      <field name='vstateTab' type='xmlValidState *' info=' array of validation states'/>
      <field name='am' type='xmlAutomataPtr' info=' the automata'/>
      <field name='state' type='xmlAutomataStatePtr' info=' used to build the automata'/>
      <field name='am' type='void *' info=''/>
      <field name='state' type='void *' info=''/>
    </struct>
    <typedef name='xmlValidCtxtPtr' file='valid' type='xmlValidCtxt *'/>
    <struct name='xmlValidState' file='valid' type='struct _xmlValidState'/>
    <typedef name='xmlValidStatePtr' file='valid' type='xmlValidState *'/>
    <struct name='xmlXIncludeCtxt' file='xinclude' type='struct _xmlXIncludeCtxt'/>
    <typedef name='xmlXIncludeCtxtPtr' file='xinclude' type='xmlXIncludeCtxt *'/>
    <struct name='xmlXPathAxis' file='xpath' type='struct _xmlXPathAxis'>
      <field name='name' type='const xmlChar *' info=' the axis name'/>
      <field name='func' type='xmlXPathAxisFunc' info=' the search function'/>
    </struct>
    <typedef name='xmlXPathAxisPtr' file='xpath' type='xmlXPathAxis *'/>
    <struct name='xmlXPathCompExpr' file='xpath' type='struct _xmlXPathCompExpr'/>
    <typedef name='xmlXPathCompExprPtr' file='xpath' type='xmlXPathCompExpr *'/>
    <struct name='xmlXPathContext' file='xpath' type='struct _xmlXPathContext'>
      <field name='doc' type='xmlDocPtr' info=' The current document'/>
      <field name='node' type='xmlNodePtr' info=' The current node'/>
      <field name='nb_variables_unused' type='int' info=' unused (hash table)'/>
      <field name='max_variables_unused' type='int' info=' unused (hash table)'/>
      <field name='varHash' type='xmlHashTablePtr' info=' Hash table of defined variables'/>
      <field name='nb_types' type='int' info=' number of defined types'/>
      <field name='max_types' type='int' info=' max number of types'/>
      <field name='types' type='xmlXPathTypePtr' info=' Array of defined types'/>
      <field name='nb_funcs_unused' type='int' info=' unused (hash table)'/>
      <field name='max_funcs_unused' type='int' info=' unused (hash table)'/>
      <field name='funcHash' type='xmlHashTablePtr' info=' Hash table of defined funcs'/>
      <field name='nb_axis' type='int' info=' number of defined axis'/>
      <field name='max_axis' type='int' info=' max number of axis'/>
      <field name='axis' type='xmlXPathAxisPtr' info=' Array of defined axis the namespace nodes of the context node'/>
      <field name='namespaces' type='xmlNsPtr *' info=' Array of namespaces'/>
      <field name='nsNr' type='int' info=' number of namespace in scope'/>
      <field name='user' type='void *' info=' function to free extra variables'/>
      <field name='contextSize' type='int' info=' the context size'/>
      <field name='proximityPosition' type='int' info=' the proximity position extra stuff for XPointer'/>
      <field name='xptr' type='int' info=' is this an XPointer context?'/>
      <field name='here' type='xmlNodePtr' info=' for here()'/>
      <field name='origin' type='xmlNodePtr' info=' for origin() the set of namespace declarations in scope for the expression'/>
      <field name='nsHash' type='xmlHashTablePtr' info=' The namespaces hash table'/>
      <field name='varLookupFunc' type='xmlXPathVariableLookupFunc' info=' variable lookup func'/>
      <field name='varLookupData' type='void *' info=' variable lookup data Possibility to link in an extra item'/>
      <field name='extra' type='void *' info=' needed for XSLT The function name and URI when calling a function'/>
      <field name='function' type='const xmlChar *' info=''/>
      <field name='functionURI' type='const xmlChar *' info=' function lookup function and data'/>
      <field name='funcLookupFunc' type='xmlXPathFuncLookupFunc' info=' function lookup func'/>
      <field name='funcLookupData' type='void *' info=' function lookup data temporary namespace lists kept for walking the namespace axis'/>
      <field name='tmpNsList' type='xmlNsPtr *' info=' Array of namespaces'/>
      <field name='tmpNsNr' type='int' info=' number of namespaces in scope error reporting mechanism'/>
      <field name='userData' type='void *' info=' user specific data block'/>
      <field name='error' type='xmlStructuredErrorFunc' info=' the callback in case of errors'/>
      <field name='lastError' type='xmlError' info=' the last error'/>
      <field name='debugNode' type='xmlNodePtr' info=' the source node XSLT dictionary'/>
      <field name='dict' type='xmlDictPtr' info=' dictionary if any'/>
      <field name='flags' type='int' info=' flags to control compilation Cache for reusal of XPath objects'/>
      <field name='cache' type='void *' info=''/>
    </struct>
    <typedef name='xmlXPathContextPtr' file='xpath' type='xmlXPathContext *'/>
    <typedef name='xmlXPathError' file='xpath' type='enum'/>
    <typedef name='xmlXPathFuncPtr' file='xpath' type='xmlXPathFunct *'/>
    <struct name='xmlXPathFunct' file='xpath' type='struct _xmlXPathFunct'>
      <field name='name' type='const xmlChar *' info=' the function name'/>
      <field name='func' type='xmlXPathEvalFunc' info=' the evaluation function'/>
    </struct>
    <struct name='xmlXPathObject' file='xpath' type='struct _xmlXPathObject'>
      <field name='type' type='xmlXPathObjectType' info=''/>
      <field name='nodesetval' type='xmlNodeSetPtr' info=''/>
      <field name='boolval' type='int' info=''/>
      <field name='floatval' type='double' info=''/>
      <field name='stringval' type='xmlChar *' info=''/>
      <field name='user' type='void *' info=''/>
      <field name='index' type='int' info=''/>
      <field name='user2' type='void *' info=''/>
      <field name='index2' type='int' info=''/>
    </struct>
    <typedef name='xmlXPathObjectPtr' file='xpath' type='xmlXPathObject *'/>
    <typedef name='xmlXPathObjectType' file='xpath' type='enum'/>
    <struct name='xmlXPathParserContext' file='xpath' type='struct _xmlXPathParserContext'>
      <field name='cur' type='const xmlChar *' info=' the current char being parsed'/>
      <field name='base' type='const xmlChar *' info=' the full expression'/>
      <field name='error' type='int' info=' error code'/>
      <field name='context' type='xmlXPathContextPtr' info=' the evaluation context'/>
      <field name='value' type='xmlXPathObjectPtr' info=' the current value'/>
      <field name='valueNr' type='int' info=' number of values stacked'/>
      <field name='valueMax' type='int' info=' max number of values stacked'/>
      <field name='valueTab' type='xmlXPathObjectPtr *' info=' stack of values'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' the precompiled expression'/>
      <field name='xptr' type='int' info=' it this an XPointer expression'/>
      <field name='ancestor' type='xmlNodePtr' info=' used for walking preceding axis'/>
      <field name='valueFrame' type='int' info=' used to limit Pop on the stack'/>
    </struct>
    <typedef name='xmlXPathParserContextPtr' file='xpath' type='xmlXPathParserContext *'/>
    <struct name='xmlXPathType' file='xpath' type='struct _xmlXPathType'>
      <field name='name' type='const xmlChar *' info=' the type name'/>
      <field name='func' type='xmlXPathConvertFunc' info=' the conversion function'/>
    </struct>
    <typedef name='xmlXPathTypePtr' file='xpath' type='xmlXPathType *'/>
    <struct name='xmlXPathVariable' file='xpath' type='struct _xmlXPathVariable'>
      <field name='name' type='const xmlChar *' info=' the variable name'/>
      <field name='value' type='xmlXPathObjectPtr' info=' the value'/>
    </struct>
    <typedef name='xmlXPathVariablePtr' file='xpath' type='xmlXPathVariable *'/>
    <variable name='docbDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
    <variable name='emptyExp' file='xmlregexp' type='xmlExpNodePtr'/>
    <variable name='forbiddenExp' file='xmlregexp' type='xmlExpNodePtr'/>
    <variable name='htmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
    <variable name='oldXMLWDcompatibility' file='globals' type='int'/>
    <variable name='xmlBufferAllocScheme' file='globals' type='xmlBufferAllocationScheme'/>
    <variable name='xmlDefaultBufferSize' file='globals' type='int'/>
    <variable name='xmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
    <variable name='xmlDefaultSAXLocator' file='globals' type='xmlSAXLocator'/>
    <variable name='xmlDeregisterNodeDefaultValue' file='globals' type='xmlDeregisterNodeFunc'/>
    <variable name='xmlDoValidityCheckingDefaultValue' file='globals' type='int'/>
    <variable name='xmlFree' file='globals' type='xmlFreeFunc'/>
    <variable name='xmlGenericError' file='globals' type='xmlGenericErrorFunc'/>
    <variable name='xmlGenericErrorContext' file='globals' type='void *'/>
    <variable name='xmlGetWarningsDefaultValue' file='globals' type='int'/>
    <variable name='xmlIndentTreeOutput' file='globals' type='int'/>
    <variable name='xmlIsBaseCharGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsCharGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsCombiningGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsDigitGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsExtenderGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsIdeographicGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsPubidChar_tab' file='chvalid' type='const unsigned charxmlIsPubidChar_tab[256]'/>
    <variable name='xmlKeepBlanksDefaultValue' file='globals' type='int'/>
    <variable name='xmlLastError' file='globals' type='xmlError'/>
    <variable name='xmlLineNumbersDefaultValue' file='globals' type='int'/>
    <variable name='xmlLoadExtDtdDefaultValue' file='globals' type='int'/>
    <variable name='xmlMalloc' file='globals' type='xmlMallocFunc'/>
    <variable name='xmlMallocAtomic' file='globals' type='xmlMallocFunc'/>
    <variable name='xmlMemStrdup' file='globals' type='xmlStrdupFunc'/>
    <variable name='xmlOutputBufferCreateFilenameValue' file='globals' type='xmlOutputBufferCreateFilenameFunc'/>
    <variable name='xmlParserDebugEntities' file='globals' type='int'/>
    <variable name='xmlParserInputBufferCreateFilenameValue' file='globals' type='xmlParserInputBufferCreateFilenameFunc'/>
    <variable name='xmlParserMaxDepth' file='parserInternals' type='unsigned int'/>
    <variable name='xmlParserVersion' file='globals' type='const char *'/>
    <variable name='xmlPedanticParserDefaultValue' file='globals' type='int'/>
    <variable name='xmlRealloc' file='globals' type='xmlReallocFunc'/>
    <variable name='xmlRegisterNodeDefaultValue' file='globals' type='xmlRegisterNodeFunc'/>
    <variable name='xmlSaveNoEmptyTags' file='globals' type='int'/>
    <variable name='xmlStringComment' file='parserInternals' type='const xmlCharxmlStringComment[]'/>
    <variable name='xmlStringText' file='parserInternals' type='const xmlCharxmlStringText[]'/>
    <variable name='xmlStringTextNoenc' file='parserInternals' type='const xmlCharxmlStringTextNoenc[]'/>
    <variable name='xmlStructuredError' file='globals' type='xmlStructuredErrorFunc'/>
    <variable name='xmlStructuredErrorContext' file='globals' type='void *'/>
    <variable name='xmlSubstituteEntitiesDefaultValue' file='globals' type='int'/>
    <variable name='xmlTreeIndentString' file='globals' type='const char *'/>
    <variable name='xmlXPathNAN' file='xpath' type='double'/>
    <variable name='xmlXPathNINF' file='xpath' type='double'/>
    <variable name='xmlXPathPINF' file='xpath' type='double'/>
    <function name='UTF8ToHtml' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
      <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </function>
    <function name='UTF8Toisolat1' file='encoding' module='encoding'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</info>
      <return type='int' info='the number of bytes written if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </function>
    <function name='attribute' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element. DEPRECATED: use xmlSAX2Attribute()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='fullname' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
      <arg name='value' type='const xmlChar *' info='The attribute value'/>
    </function>
    <function name='attributeDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>An attribute definition has been parsed DEPRECATED: use xmlSAX2AttributeDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='elem' type='const xmlChar *' info='the name of the element'/>
      <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
      <arg name='type' type='int' info='the attribute type'/>
      <arg name='def' type='int' info='the type of default value'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
    </function>
    <functype name='attributeDeclSAXFunc' file='parser' module='parser'>
      <info>An attribute definition has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='elem' type='const xmlChar *' info='the name of the element'/>
      <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
      <arg name='type' type='int' info='the attribute type'/>
      <arg name='def' type='int' info='the type of default value'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
    </functype>
    <functype name='attributeSAXFunc' file='parser' module='parser'>
      <info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
      <arg name='value' type='const xmlChar *' info='The attribute value'/>
    </functype>
    <function name='cdataBlock' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when a pcdata block has been parsed DEPRECATED: use xmlSAX2CDataBlock()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='The pcdata content'/>
      <arg name='len' type='int' info='the block length'/>
    </function>
    <functype name='cdataBlockSAXFunc' file='parser' module='parser'>
      <info>Called when a pcdata block has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='The pcdata content'/>
      <arg name='len' type='int' info='the block length'/>
    </functype>
    <function name='characters' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>receiving some chars from the parser. DEPRECATED: use xmlSAX2Characters()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
      <arg name='len' type='int' info='the number of xmlChar'/>
    </function>
    <functype name='charactersSAXFunc' file='parser' module='parser'>
      <info>Receiving some chars from the parser.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
      <arg name='len' type='int' info='the number of xmlChar'/>
    </functype>
    <function name='checkNamespace' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Check that the current element namespace is the same as the one read upon parsing. DEPRECATED</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='namespace' type='xmlChar *' info='the namespace to check against'/>
    </function>
    <function name='comment' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>A comment has been parsed. DEPRECATED: use xmlSAX2Comment()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='the comment content'/>
    </function>
    <functype name='commentSAXFunc' file='parser' module='parser'>
      <info>A comment has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='the comment content'/>
    </functype>
    <function name='docbCreateFileParserCtxt' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='the SGML document encoding, or NULL'/>
    </function>
    <function name='docbCreatePushParserCtxt' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Create a parser context for using the DocBook SGML parser in push mode To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</info>
      <return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='sax' type='docbSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
      <arg name='size' type='int' info='number of chars in the array'/>
      <arg name='filename' type='const char *' info='an optional file name or URI'/>
      <arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
    </function>
    <function name='docbDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Initialize the default SAX handler</info>
      <return type='void'/>
    </function>
    <function name='docbEncodeEntities' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus SGML entities block of chars out.</info>
      <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
      <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
    </function>
    <function name='docbFreeParserCtxt' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
      <return type='void'/>
      <arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
    </function>
    <function name='docbParseChunk' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Parse a Chunk of memory</info>
      <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
      <arg name='ctxt' type='docbParserCtxtPtr' info='an XML parser context'/>
      <arg name='chunk' type='const char *' info='an char array'/>
      <arg name='size' type='int' info='the size in byte of the chunk'/>
      <arg name='terminate' type='int' info='last chunk indicator'/>
    </function>
    <function name='docbParseDoc' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML in-memory document and build a tree.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
    </function>
    <function name='docbParseDocument' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML document (and build a tree if using the standard SAX interface).</info>
      <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
      <arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
    </function>
    <function name='docbParseFile' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse a Docbook SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing document encoding, or NULL'/>
    </function>
    <function name='docbSAXParseDoc' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
      <arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='docbSAXParseFile' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
      <arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='elementDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>An element definition has been parsed DEPRECATED: use xmlSAX2ElementDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='type' type='int' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
    </function>
    <functype name='elementDeclSAXFunc' file='parser' module='parser'>
      <info>An element definition has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='type' type='int' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
    </functype>
    <function name='endDocument' file='SAX' module='legacy'>
      <cond