<?xml version="1.0" encoding="ISO-8859-1"?>
<api name='libxml2'>
  <files>
    <file name='DOCBparser'>
     <summary>old DocBook SGML parser</summary>
     <description>interface for a DocBook SGML non-verifying parser This code is DEPRECATED, and should not be used anymore. </description>
     <author>Daniel Veillard </author>
     <deprecated/>
     <exports symbol='docbParserInput' type='typedef'/>
     <exports symbol='docbParserInputPtr' type='typedef'/>
     <exports symbol='docbParserCtxt' type='typedef'/>
     <exports symbol='docbParserCtxtPtr' type='typedef'/>
     <exports symbol='docbDocPtr' type='typedef'/>
     <exports symbol='docbSAXHandler' type='typedef'/>
     <exports symbol='docbSAXHandlerPtr' type='typedef'/>
     <exports symbol='docbCreatePushParserCtxt' type='function'/>
     <exports symbol='docbEncodeEntities' type='function'/>
     <exports symbol='docbParseFile' type='function'/>
     <exports symbol='docbParseDocument' type='function'/>
     <exports symbol='docbCreateFileParserCtxt' type='function'/>
     <exports symbol='docbParseDoc' type='function'/>
     <exports symbol='docbSAXParseDoc' type='function'/>
     <exports symbol='docbSAXParseFile' type='function'/>
     <exports symbol='docbParseChunk' type='function'/>
     <exports symbol='docbFreeParserCtxt' type='function'/>
    </file>
    <file name='HTMLparser'>
     <summary>interface for an HTML 4.0 non-verifying parser</summary>
     <description>this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse &quot;real world&quot; HTML, even if severely broken from a specification point of view. </description>
     <author>Daniel Veillard </author>
     <exports symbol='htmlDefaultSubelement' type='macro'/>
     <exports symbol='htmlElementAllowedHereDesc' type='macro'/>
     <exports symbol='htmlRequiredAttrs' type='macro'/>
     <exports symbol='HTML_REQUIRED' type='enum'/>
     <exports symbol='HTML_DEPRECATED' type='enum'/>
     <exports symbol='HTML_INVALID' type='enum'/>
     <exports symbol='HTML_PARSE_NONET' type='enum'/>
     <exports symbol='HTML_PARSE_PEDANTIC' type='enum'/>
     <exports symbol='HTML_NA' type='enum'/>
     <exports symbol='HTML_VALID' type='enum'/>
     <exports symbol='HTML_PARSE_NOWARNING' type='enum'/>
     <exports symbol='HTML_PARSE_NOBLANKS' type='enum'/>
     <exports symbol='HTML_PARSE_NOERROR' type='enum'/>
     <exports symbol='htmlParserNodeInfo' type='typedef'/>
     <exports symbol='htmlParserInput' type='typedef'/>
     <exports symbol='htmlParserCtxtPtr' type='typedef'/>
     <exports symbol='htmlEntityDesc' type='typedef'/>
     <exports symbol='htmlDocPtr' type='typedef'/>
     <exports symbol='htmlSAXHandlerPtr' type='typedef'/>
     <exports symbol='htmlStatus' type='typedef'/>
     <exports symbol='htmlNodePtr' type='typedef'/>
     <exports symbol='htmlElemDescPtr' type='typedef'/>
     <exports symbol='htmlElemDesc' type='typedef'/>
     <exports symbol='htmlSAXHandler' type='typedef'/>
     <exports symbol='htmlParserInputPtr' type='typedef'/>
     <exports symbol='htmlParserOption' type='typedef'/>
     <exports symbol='htmlEntityDescPtr' type='typedef'/>
     <exports symbol='htmlParserCtxt' type='typedef'/>
     <exports symbol='_htmlEntityDesc' type='struct'/>
     <exports symbol='_htmlElemDesc' type='struct'/>
     <exports symbol='htmlParseChunk' type='function'/>
     <exports symbol='htmlNodeStatus' type='function'/>
     <exports symbol='htmlAttrAllowed' type='function'/>
     <exports symbol='htmlIsScriptAttribute' type='function'/>
     <exports symbol='htmlHandleOmittedElem' type='function'/>
     <exports symbol='htmlReadFd' type='function'/>
     <exports symbol='htmlSAXParseFile' type='function'/>
     <exports symbol='htmlParseEntityRef' type='function'/>
     <exports symbol='htmlSAXParseDoc' type='function'/>
     <exports symbol='htmlParseFile' type='function'/>
     <exports symbol='htmlReadIO' type='function'/>
     <exports symbol='htmlCtxtReadDoc' type='function'/>
     <exports symbol='htmlElementStatusHere' type='function'/>
     <exports symbol='htmlEntityLookup' type='function'/>
     <exports symbol='htmlEntityValueLookup' type='function'/>
     <exports symbol='htmlParseElement' type='function'/>
     <exports symbol='htmlAutoCloseTag' type='function'/>
     <exports symbol='UTF8ToHtml' type='function'/>
     <exports symbol='htmlTagLookup' type='function'/>
     <exports symbol='htmlCreateMemoryParserCtxt' type='function'/>
     <exports symbol='htmlCtxtReset' type='function'/>
     <exports symbol='htmlFreeParserCtxt' type='function'/>
     <exports symbol='htmlCtxtReadMemory' type='function'/>
     <exports symbol='htmlCtxtReadFd' type='function'/>
     <exports symbol='htmlElementAllowedHere' type='function'/>
     <exports symbol='htmlCtxtReadIO' type='function'/>
     <exports symbol='htmlReadFile' type='function'/>
     <exports symbol='htmlCtxtReadFile' type='function'/>
     <exports symbol='htmlCreatePushParserCtxt' type='function'/>
     <exports symbol='htmlReadMemory' type='function'/>
     <exports symbol='htmlParseDocument' type='function'/>
     <exports symbol='htmlIsAutoClosed' type='function'/>
     <exports symbol='htmlParseCharRef' type='function'/>
     <exports symbol='htmlCtxtUseOptions' type='function'/>
     <exports symbol='htmlReadDoc' type='function'/>
     <exports symbol='htmlParseDoc' type='function'/>
     <exports symbol='htmlEncodeEntities' type='function'/>
    </file>
    <file name='HTMLtree'>
     <summary>specific APIs to process HTML tree, especially serialization</summary>
     <description>this module implements a few function needed to process tree in an HTML specific way. </description>
     <author>Daniel Veillard </author>
     <exports symbol='HTML_ENTITY_REF_NODE' type='macro'/>
     <exports symbol='HTML_COMMENT_NODE' type='macro'/>
     <exports symbol='HTML_PRESERVE_NODE' type='macro'/>
     <exports symbol='HTML_TEXT_NODE' type='macro'/>
     <exports symbol='HTML_PI_NODE' type='macro'/>
     <exports symbol='htmlDocDumpMemory' type='function'/>
     <exports symbol='htmlSaveFile' type='function'/>
     <exports symbol='htmlNewDocNoDtD' type='function'/>
     <exports symbol='htmlDocDump' type='function'/>
     <exports symbol='htmlNodeDump' type='function'/>
     <exports symbol='htmlDocContentDumpFormatOutput' type='function'/>
     <exports symbol='htmlSetMetaEncoding' type='function'/>
     <exports symbol='htmlSaveFileEnc' type='function'/>
     <exports symbol='htmlNodeDumpOutput' type='function'/>
     <exports symbol='htmlIsBooleanAttr' type='function'/>
     <exports symbol='htmlNodeDumpFormatOutput' type='function'/>
     <exports symbol='htmlNewDoc' type='function'/>
     <exports symbol='htmlGetMetaEncoding' type='function'/>
     <exports symbol='htmlNodeDumpFile' type='function'/>
     <exports symbol='htmlNodeDumpFileFormat' type='function'/>
     <exports symbol='htmlSaveFileFormat' type='function'/>
     <exports symbol='htmlDocContentDumpOutput' type='function'/>
    </file>
    <file name='SAX'>
     <summary>Old SAX version 1 handler, deprecated</summary>
     <description>DEPRECATED set of SAX version 1 interfaces used to build the DOM tree. </description>
     <author>Daniel Veillard </author>
     <deprecated/>
     <exports symbol='cdataBlock' type='function'/>
     <exports symbol='comment' type='function'/>
     <exports symbol='checkNamespace' type='function'/>
     <exports symbol='startElement' type='function'/>
     <exports symbol='inithtmlDefaultSAXHandler' type='function'/>
     <exports symbol='getColumnNumber' type='function'/>
     <exports symbol='endElement' type='function'/>
     <exports symbol='attribute' type='function'/>
     <exports symbol='namespaceDecl' type='function'/>
     <exports symbol='getNamespace' type='function'/>
     <exports symbol='initdocbDefaultSAXHandler' type='function'/>
     <exports symbol='setDocumentLocator' type='function'/>
     <exports symbol='getPublicId' type='function'/>
     <exports symbol='getEntity' type='function'/>
     <exports symbol='characters' type='function'/>
     <exports symbol='elementDecl' type='function'/>
     <exports symbol='ignorableWhitespace' type='function'/>
     <exports symbol='hasExternalSubset' type='function'/>
     <exports symbol='isStandalone' type='function'/>
     <exports symbol='unparsedEntityDecl' type='function'/>
     <exports symbol='reference' type='function'/>
     <exports symbol='globalNamespace' type='function'/>
     <exports symbol='initxmlDefaultSAXHandler' type='function'/>
     <exports symbol='hasInternalSubset' type='function'/>
     <exports symbol='processingInstruction' type='function'/>
     <exports symbol='getParameterEntity' type='function'/>
     <exports symbol='attributeDecl' type='function'/>
     <exports symbol='notationDecl' type='function'/>
     <exports symbol='entityDecl' type='function'/>
     <exports symbol='setNamespace' type='function'/>
     <exports symbol='externalSubset' type='function'/>
     <exports symbol='resolveEntity' type='function'/>
     <exports symbol='getSystemId' type='function'/>
     <exports symbol='startDocument' type='function'/>
     <exports symbol='internalSubset' type='function'/>
     <exports symbol='endDocument' type='function'/>
     <exports symbol='getLineNumber' type='function'/>
    </file>
    <file name='SAX2'>
     <summary>SAX2 parser interface used to build the DOM tree</summary>
     <description>those are the default SAX2 interfaces used by the library when building DOM tree. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlSAX2EndDocument' type='function'/>
     <exports symbol='xmlSAX2EndElementNs' type='function'/>
     <exports symbol='xmlSAX2ProcessingInstruction' type='function'/>
     <exports symbol='xmlSAX2InternalSubset' type='function'/>
     <exports symbol='xmlSAX2Reference' type='function'/>
     <exports symbol='xmlSAXDefaultVersion' type='function'/>
     <exports symbol='xmlSAX2Characters' type='function'/>
     <exports symbol='xmlSAX2ElementDecl' type='function'/>
     <exports symbol='xmlSAX2AttributeDecl' type='function'/>
     <exports symbol='xmlSAX2Comment' type='function'/>
     <exports symbol='xmlSAX2InitDocbDefaultSAXHandler' type='function'/>
     <exports symbol='xmlSAX2GetColumnNumber' type='function'/>
     <exports symbol='xmlSAX2SetDocumentLocator' type='function'/>
     <exports symbol='xmlSAX2CDataBlock' type='function'/>
     <exports symbol='xmlSAX2StartElementNs' type='function'/>
     <exports symbol='xmlSAX2HasExternalSubset' type='function'/>
     <exports symbol='xmlSAX2GetEntity' type='function'/>
     <exports symbol='xmlSAX2UnparsedEntityDecl' type='function'/>
     <exports symbol='htmlDefaultSAXHandlerInit' type='function'/>
     <exports symbol='xmlSAXVersion' type='function'/>
     <exports symbol='xmlSAX2IgnorableWhitespace' type='function'/>
     <exports symbol='xmlSAX2GetLineNumber' type='function'/>
     <exports symbol='xmlSAX2NotationDecl' type='function'/>
     <exports symbol='xmlSAX2HasInternalSubset' type='function'/>
     <exports symbol='xmlSAX2StartDocument' type='function'/>
     <exports symbol='xmlSAX2InitHtmlDefaultSAXHandler' type='function'/>
     <exports symbol='docbDefaultSAXHandlerInit' type='function'/>
     <exports symbol='xmlSAX2EndElement' type='function'/>
     <exports symbol='xmlSAX2ResolveEntity' type='function'/>
     <exports symbol='xmlSAX2ExternalSubset' type='function'/>
     <exports symbol='xmlDefaultSAXHandlerInit' type='function'/>
     <exports symbol='xmlSAX2GetPublicId' type='function'/>
     <exports symbol='xmlSAX2InitDefaultSAXHandler' type='function'/>
     <exports symbol='xmlSAX2IsStandalone' type='function'/>
     <exports symbol='xmlSAX2GetParameterEntity' type='function'/>
     <exports symbol='xmlSAX2GetSystemId' type='function'/>
     <exports symbol='xmlSAX2StartElement' type='function'/>
     <exports symbol='xmlSAX2EntityDecl' type='function'/>
    </file>
    <file name='c14n'>
     <summary>Provide Canonical XML and Exclusive XML Canonicalization</summary>
     <description>the c14n modules provides a  &quot;Canonical XML&quot; implementation</description>
     <author>Aleksey Sanin &lt;aleksey@aleksey.com&gt; </author>
     <exports symbol='xmlC14NExecute' type='function'/>
     <exports symbol='xmlC14NDocSaveTo' type='function'/>
     <exports symbol='xmlC14NIsVisibleCallback' type='function'/>
     <exports symbol='xmlC14NDocSave' type='function'/>
     <exports symbol='xmlC14NDocDumpMemory' type='function'/>
    </file>
    <file name='catalog'>
     <summary>interfaces to the Catalog handling system</summary>
     <description>the catalog module implements the support for XML Catalogs and SGML catalogs </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_CATALOG_PI' type='macro'/>
     <exports symbol='XML_CATALOGS_NAMESPACE' type='macro'/>
     <exports symbol='XML_CATA_ALLOW_DOCUMENT' type='enum'/>
     <exports symbol='XML_CATA_ALLOW_NONE' type='enum'/>
     <exports symbol='XML_CATA_PREFER_NONE' type='enum'/>
     <exports symbol='XML_CATA_ALLOW_ALL' type='enum'/>
     <exports symbol='XML_CATA_PREFER_SYSTEM' type='enum'/>
     <exports symbol='XML_CATA_ALLOW_GLOBAL' type='enum'/>
     <exports symbol='XML_CATA_PREFER_PUBLIC' type='enum'/>
     <exports symbol='xmlCatalogAllow' type='typedef'/>
     <exports symbol='xmlCatalogPrefer' type='typedef'/>
     <exports symbol='xmlCatalog' type='typedef'/>
     <exports symbol='xmlCatalogPtr' type='typedef'/>
     <exports symbol='xmlCatalogConvert' type='function'/>
     <exports symbol='xmlFreeCatalog' type='function'/>
     <exports symbol='xmlLoadCatalogs' type='function'/>
     <exports symbol='xmlCatalogLocalResolve' type='function'/>
     <exports symbol='xmlACatalogAdd' type='function'/>
     <exports symbol='xmlACatalogResolvePublic' type='function'/>
     <exports symbol='xmlCatalogGetDefaults' type='function'/>
     <exports symbol='xmlInitializeCatalog' type='function'/>
     <exports symbol='xmlLoadACatalog' type='function'/>
     <exports symbol='xmlCatalogAddLocal' type='function'/>
     <exports symbol='xmlCatalogLocalResolveURI' type='function'/>
     <exports symbol='xmlCatalogSetDefaultPrefer' type='function'/>
     <exports symbol='xmlCatalogDump' type='function'/>
     <exports symbol='xmlACatalogResolveURI' type='function'/>
     <exports symbol='xmlCatalogCleanup' type='function'/>
     <exports symbol='xmlCatalogAdd' type='function'/>
     <exports symbol='xmlConvertSGMLCatalog' type='function'/>
     <exports symbol='xmlCatalogResolvePublic' type='function'/>
     <exports symbol='xmlCatalogGetSystem' type='function'/>
     <exports symbol='xmlACatalogRemove' type='function'/>
     <exports symbol='xmlNewCatalog' type='function'/>
     <exports symbol='xmlLoadCatalog' type='function'/>
     <exports symbol='xmlCatalogResolve' type='function'/>
     <exports symbol='xmlParseCatalogFile' type='function'/>
     <exports symbol='xmlCatalogSetDebug' type='function'/>
     <exports symbol='xmlCatalogRemove' type='function'/>
     <exports symbol='xmlCatalogIsEmpty' type='function'/>
     <exports symbol='xmlCatalogGetPublic' type='function'/>
     <exports symbol='xmlACatalogResolveSystem' type='function'/>
     <exports symbol='xmlACatalogDump' type='function'/>
     <exports symbol='xmlCatalogSetDefaults' type='function'/>
     <exports symbol='xmlCatalogFreeLocal' type='function'/>
     <exports symbol='xmlACatalogResolve' type='function'/>
     <exports symbol='xmlCatalogResolveURI' type='function'/>
     <exports symbol='xmlCatalogResolveSystem' type='function'/>
     <exports symbol='xmlLoadSGMLSuperCatalog' type='function'/>
    </file>
    <file name='chvalid'>
     <summary>Unicode character range checking</summary>
     <description>this module exports interfaces for the character range validation APIs  This file is automatically generated from the cvs source definition files using the genChRanges.py Python script </description>
     <author>William Brack &lt;wbrack@mmm.com.hk&gt; </author>
     <exports symbol='xmlIsExtender_ch' type='macro'/>
     <exports symbol='xmlIsPubidCharQ' type='macro'/>
     <exports symbol='xmlIsIdeographicQ' type='macro'/>
     <exports symbol='xmlIsExtenderQ' type='macro'/>
     <exports symbol='xmlIsCombiningQ' type='macro'/>
     <exports symbol='xmlIsDigitQ' type='macro'/>
     <exports symbol='xmlIsDigit_ch' type='macro'/>
     <exports symbol='xmlIsBaseChar_ch' type='macro'/>
     <exports symbol='xmlIsPubidChar_ch' type='macro'/>
     <exports symbol='xmlIsBlankQ' type='macro'/>
     <exports symbol='xmlIsCharQ' type='macro'/>
     <exports symbol='xmlIsBaseCharQ' type='macro'/>
     <exports symbol='xmlIsBlank_ch' type='macro'/>
     <exports symbol='xmlIsChar_ch' type='macro'/>
     <exports symbol='xmlChRangeGroupPtr' type='typedef'/>
     <exports symbol='xmlChSRange' type='typedef'/>
     <exports symbol='xmlChLRange' type='typedef'/>
     <exports symbol='xmlChSRangePtr' type='typedef'/>
     <exports symbol='xmlChRangeGroup' type='typedef'/>
     <exports symbol='xmlChLRangePtr' type='typedef'/>
     <exports symbol='_xmlChSRange' type='struct'/>
     <exports symbol='_xmlChLRange' type='struct'/>
     <exports symbol='_xmlChRangeGroup' type='struct'/>
     <exports symbol='xmlIsDigitGroup' type='variable'/>
     <exports symbol='xmlIsExtenderGroup' type='variable'/>
     <exports symbol='xmlIsBaseCharGroup' type='variable'/>
     <exports symbol='xmlIsPubidChar_tab' type='variable'/>
     <exports symbol='xmlIsCharGroup' type='variable'/>
     <exports symbol='xmlIsCombiningGroup' type='variable'/>
     <exports symbol='xmlIsIdeographicGroup' type='variable'/>
     <exports symbol='xmlIsPubidChar' type='function'/>
     <exports symbol='xmlIsChar' type='function'/>
     <exports symbol='xmlIsDigit' type='function'/>
     <exports symbol='xmlIsCombining' type='function'/>
     <exports symbol='xmlIsIdeographic' type='function'/>
     <exports symbol='xmlIsExtender' type='function'/>
     <exports symbol='xmlCharInRange' type='function'/>
     <exports symbol='xmlIsBaseChar' type='function'/>
     <exports symbol='xmlIsBlank' type='function'/>
    </file>
    <file name='debugXML'>
     <summary>Tree debugging APIs</summary>
     <description>Interfaces to a set of routines used for debugging the tree produced by the XML parser. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlShellCtxt' type='typedef'/>
     <exports symbol='xmlShellCtxtPtr' type='typedef'/>
     <exports symbol='_xmlShellCtxt' type='struct'/>
     <exports symbol='xmlDebugDumpEntities' type='function'/>
     <exports symbol='xmlShellBase' type='function'/>
     <exports symbol='xmlShellCat' type='function'/>
     <exports symbol='xmlDebugDumpDTD' type='function'/>
     <exports symbol='xmlDebugDumpNode' type='function'/>
     <exports symbol='xmlDebugDumpAttrList' type='function'/>
     <exports symbol='xmlShellPrintNode' type='function'/>
     <exports symbol='xmlLsOneNode' type='function'/>
     <exports symbol='xmlShellReadlineFunc' type='function'/>
     <exports symbol='xmlShellSave' type='function'/>
     <exports symbol='xmlShellPwd' type='function'/>
     <exports symbol='xmlBoolToText' type='function'/>
     <exports symbol='xmlShellWrite' type='function'/>
     <exports symbol='xmlDebugDumpString' type='function'/>
     <exports symbol='xmlDebugDumpAttr' type='function'/>
     <exports symbol='xmlShellDu' type='function'/>
     <exports symbol='xmlDebugDumpNodeList' type='function'/>
     <exports symbol='xmlDebugDumpDocument' type='function'/>
     <exports symbol='xmlLsCountNode' type='function'/>
     <exports symbol='xmlShellValidate' type='function'/>
     <exports symbol='xmlShellPrintXPathError' type='function'/>
     <exports symbol='xmlShellDir' type='function'/>
     <exports symbol='xmlShellPrintXPathResult' type='function'/>
     <exports symbol='xmlDebugDumpDocumentHead' type='function'/>
     <exports symbol='xmlDebugDumpOneNode' type='function'/>
     <exports symbol='xmlShellCmd' type='function'/>
     <exports symbol='xmlShellList' type='function'/>
     <exports symbol='xmlShell' type='function'/>
     <exports symbol='xmlShellLoad' type='function'/>
    </file>
    <file name='dict'>
     <summary>string dictionnary</summary>
     <description>dictionary of reusable strings, just used to avoid allocation and freeing operations. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlDict' type='typedef'/>
     <exports symbol='xmlDictPtr' type='typedef'/>
     <exports symbol='xmlDictQLookup' type='function'/>
     <exports symbol='xmlDictReference' type='function'/>
     <exports symbol='xmlDictCreateSub' type='function'/>
     <exports symbol='xmlDictCreate' type='function'/>
     <exports symbol='xmlDictSize' type='function'/>
     <exports symbol='xmlDictLookup' type='function'/>
     <exports symbol='xmlDictFree' type='function'/>
     <exports symbol='xmlDictOwns' type='function'/>
    </file>
    <file name='encoding'>
     <summary>interface for the encoding conversion functions</summary>
     <description>interface for the encoding conversion functions needed for XML basic encoding and iconv() support.  Related specs are rfc2044        (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646]    UTF-8 and UTF-16 in Annexes [ISO-8859-1]   ISO Latin-1 characters codes. [UNICODE]      The Unicode Consortium, &quot;The Unicode Standard -- Worldwide Character Encoding -- Version 1.0&quot;, Addison- Wesley, Volume 1, 1991, Volume 2, 1992.  UTF-8 is described in Unicode Technical Report #4. [US-ASCII]     Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_CHAR_ENCODING_UCS4LE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_ERROR' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_5' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_EBCDIC' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_ASCII' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_NONE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UCS4BE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UTF16LE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UCS4_2143' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_8' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_9' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_6' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_7' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_4' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_EUC_JP' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_2' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_3' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_8859_1' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UCS4_3412' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UTF16BE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_2022_JP' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UTF8' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_SHIFT_JIS' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UCS2' type='enum'/>
     <exports symbol='xmlCharEncoding' type='typedef'/>
     <exports symbol='xmlCharEncodingHandler' type='typedef'/>
     <exports symbol='xmlCharEncodingHandlerPtr' type='typedef'/>
     <exports symbol='_xmlCharEncodingHandler' type='struct'/>
     <exports symbol='xmlDelEncodingAlias' type='function'/>
     <exports symbol='xmlGetEncodingAlias' type='function'/>
     <exports symbol='xmlRegisterCharEncodingHandler' type='function'/>
     <exports symbol='UTF8Toisolat1' type='function'/>
     <exports symbol='xmlInitCharEncodingHandlers' type='function'/>
     <exports symbol='xmlAddEncodingAlias' type='function'/>
     <exports symbol='xmlCleanupEncodingAliases' type='function'/>
     <exports symbol='xmlCharEncOutFunc' type='function'/>
     <exports symbol='xmlParseCharEncoding' type='function'/>
     <exports symbol='xmlCharEncodingInputFunc' type='function'/>
     <exports symbol='xmlCleanupCharEncodingHandlers' type='function'/>
     <exports symbol='xmlNewCharEncodingHandler' type='function'/>
     <exports symbol='xmlCharEncodingOutputFunc' type='function'/>
     <exports symbol='isolat1ToUTF8' type='function'/>
     <exports symbol='xmlFindCharEncodingHandler' type='function'/>
     <exports symbol='xmlCharEncInFunc' type='function'/>
     <exports symbol='xmlGetCharEncodingHandler' type='function'/>
     <exports symbol='xmlCharEncFirstLine' type='function'/>
     <exports symbol='xmlDetectCharEncoding' type='function'/>
     <exports symbol='xmlCharEncCloseFunc' type='function'/>
     <exports symbol='xmlGetCharEncodingName' type='function'/>
    </file>
    <file name='entities'>
     <summary>interface for the XML entities handling</summary>
     <description>this module provides some of the entity API needed for the parser and applications. </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_EXTERNAL_GENERAL_PARSED_ENTITY' type='enum'/>
     <exports symbol='XML_INTERNAL_PARAMETER_ENTITY' type='enum'/>
     <exports symbol='XML_INTERNAL_GENERAL_ENTITY' type='enum'/>
     <exports symbol='XML_EXTERNAL_GENERAL_UNPARSED_ENTITY' type='enum'/>
     <exports symbol='XML_INTERNAL_PREDEFINED_ENTITY' type='enum'/>
     <exports symbol='XML_EXTERNAL_PARAMETER_ENTITY' type='enum'/>
     <exports symbol='xmlEntityType' type='typedef'/>
     <exports symbol='xmlEntitiesTable' type='typedef'/>
     <exports symbol='xmlEntitiesTablePtr' type='typedef'/>
     <exports symbol='_xmlEntity' type='struct'/>
     <exports symbol='xmlAddDocEntity' type='function'/>
     <exports symbol='xmlEncodeEntitiesReentrant' type='function'/>
     <exports symbol='xmlCreateEntitiesTable' type='function'/>
     <exports symbol='xmlGetDtdEntity' type='function'/>
     <exports symbol='xmlAddDtdEntity' type='function'/>
     <exports symbol='xmlCopyEntitiesTable' type='function'/>
     <exports symbol='xmlFreeEntitiesTable' type='function'/>
     <exports symbol='xmlGetParameterEntity' type='function'/>
     <exports symbol='xmlDumpEntitiesTable' type='function'/>
     <exports symbol='xmlDumpEntityDecl' type='function'/>
     <exports symbol='xmlCleanupPredefinedEntities' type='function'/>
     <exports symbol='xmlEncodeSpecialChars' type='function'/>
     <exports symbol='xmlEncodeEntities' type='function'/>
     <exports symbol='xmlGetDocEntity' type='function'/>
     <exports symbol='xmlInitializePredefinedEntities' type='function'/>
     <exports symbol='xmlGetPredefinedEntity' type='function'/>
    </file>
    <file name='globals'>
     <summary>interface for all global variables of the library</summary>
     <description>all the global variables and thread handling for those variables is handled by this module.  The bottom of this file is automatically generated by build_glob.py based on the description file global.data </description>
     <author>Gary Pennington &lt;Gary.Pennington@uk.sun.com&gt;, Daniel Veillard </author>
     <exports symbol='xmlGlobalStatePtr' type='typedef'/>
     <exports symbol='xmlGlobalState' type='typedef'/>
     <exports symbol='_xmlGlobalState' type='struct'/>
     <exports symbol='xmlRealloc' type='variable'/>
     <exports symbol='xmlStructuredError' type='variable'/>
     <exports symbol='xmlParserDebugEntities' type='variable'/>
     <exports symbol='xmlLastError' type='variable'/>
     <exports symbol='xmlTreeIndentString' type='variable'/>
     <exports symbol='xmlMemStrdup' type='variable'/>
     <exports symbol='htmlDefaultSAXHandler' type='variable'/>
     <exports symbol='xmlIndentTreeOutput' type='variable'/>
     <exports symbol='xmlSaveNoEmptyTags' type='variable'/>
     <exports symbol='xmlParserInputBufferCreateFilenameValue' type='variable'/>
     <exports symbol='xmlDefaultBufferSize' type='variable'/>
     <exports symbol='xmlOutputBufferCreateFilenameValue' type='variable'/>
     <exports symbol='xmlKeepBlanksDefaultValue' type='variable'/>
     <exports symbol='xmlGetWarningsDefaultValue' type='variable'/>
     <exports symbol='xmlMallocAtomic' type='variable'/>
     <exports symbol='xmlSubstituteEntitiesDefaultValue' type='variable'/>
     <exports symbol='xmlBufferAllocScheme' type='variable'/>
     <exports symbol='docbDefaultSAXHandler' type='variable'/>
     <exports symbol='xmlGenericErrorContext' type='variable'/>
     <exports symbol='xmlDefaultSAXLocator' type='variable'/>
     <exports symbol='xmlFree' type='variable'/>
     <exports symbol='xmlLoadExtDtdDefaultValue' type='variable'/>
     <exports symbol='xmlRegisterNodeDefaultValue' type='variable'/>
     <exports symbol='xmlDeregisterNodeDefaultValue' type='variable'/>
     <exports symbol='xmlGenericError' type='variable'/>
     <exports symbol='xmlMalloc' type='variable'/>
     <exports symbol='xmlLineNumbersDefaultValue' type='variable'/>
     <exports symbol='xmlParserVersion' type='variable'/>
     <exports symbol='xmlDoValidityCheckingDefaultValue' type='variable'/>
     <exports symbol='xmlDefaultSAXHandler' type='variable'/>
     <exports symbol='xmlPedanticParserDefaultValue' type='variable'/>
     <exports symbol='oldXMLWDcompatibility' type='variable'/>
     <exports symbol='xmlThrDefSetStructuredErrorFunc' type='function'/>
     <exports symbol='xmlThrDefParserInputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlDeregisterNodeDefault' type='function'/>
     <exports symbol='xmlThrDefDeregisterNodeDefault' type='function'/>
     <exports symbol='xmlThrDefPedanticParserDefaultValue' type='function'/>
     <exports symbol='xmlInitializeGlobalState' type='function'/>
     <exports symbol='xmlThrDefBufferAllocScheme' type='function'/>
     <exports symbol='xmlThrDefSetGenericErrorFunc' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlThrDefDoValidityCheckingDefaultValue' type='function'/>
     <exports symbol='xmlCleanupGlobals' type='function'/>
     <exports symbol='xmlRegisterNodeDefault' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFilenameFunc' type='function'/>
     <exports symbol='xmlThrDefGetWarningsDefaultValue' type='function'/>
     <exports symbol='xmlThrDefOutputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlThrDefSubstituteEntitiesDefaultValue' type='function'/>
     <exports symbol='xmlRegisterNodeFunc' type='function'/>
     <exports symbol='xmlThrDefSaveNoEmptyTags' type='function'/>
     <exports symbol='xmlThrDefIndentTreeOutput' type='function'/>
     <exports symbol='xmlThrDefDefaultBufferSize' type='function'/>
     <exports symbol='xmlOutputBufferCreateFilenameFunc' type='function'/>
     <exports symbol='xmlOutputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlInitGlobals' type='function'/>
     <exports symbol='xmlThrDefLoadExtDtdDefaultValue' type='function'/>
     <exports symbol='xmlThrDefLineNumbersDefaultValue' type='function'/>
     <exports symbol='xmlThrDefKeepBlanksDefaultValue' type='function'/>
     <exports symbol='xmlDeregisterNodeFunc' type='function'/>
     <exports symbol='xmlThrDefParserDebugEntities' type='function'/>
     <exports symbol='xmlThrDefTreeIndentString' type='function'/>
     <exports symbol='xmlThrDefRegisterNodeDefault' type='function'/>
    </file>
    <file name='hash'>
     <summary>chained hash tables</summary>
     <author>Bjorn Reese &lt;bjorn.reese@systematic.dk&gt; </author>
     <exports symbol='xmlHashTable' type='typedef'/>
     <exports symbol='xmlHashTablePtr' type='typedef'/>
     <exports symbol='xmlHashScanFull' type='function'/>
     <exports symbol='xmlHashDeallocator' type='function'/>
     <exports symbol='xmlHashScannerFull' type='function'/>
     <exports symbol='xmlHashCopy' type='function'/>
     <exports symbol='xmlHashScanFull3' type='function'/>
     <exports symbol='xmlHashUpdateEntry3' type='function'/>
     <exports symbol='xmlHashScan' type='function'/>
     <exports symbol='xmlHashLookup3' type='function'/>
     <exports symbol='xmlHashLookup2' type='function'/>
     <exports symbol='xmlHashUpdateEntry' type='function'/>
     <exports symbol='xmlHashRemoveEntry' type='function'/>
     <exports symbol='xmlHashRemoveEntry2' type='function'/>
     <exports symbol='xmlHashQLookup3' type='function'/>
     <exports symbol='xmlHashQLookup2' type='function'/>
     <exports symbol='xmlHashAddEntry3' type='function'/>
     <exports symbol='xmlHashScan3' type='function'/>
     <exports symbol='xmlHashScanner' type='function'/>
     <exports symbol='xmlHashAddEntry' type='function'/>
     <exports symbol='xmlHashCopier' type='function'/>
     <exports symbol='xmlHashCreate' type='function'/>
     <exports symbol='xmlHashFree' type='function'/>
     <exports symbol='xmlHashLookup' type='function'/>
     <exports symbol='xmlHashQLookup' type='function'/>
     <exports symbol='xmlHashUpdateEntry2' type='function'/>
     <exports symbol='xmlHashAddEntry2' type='function'/>
     <exports symbol='xmlHashRemoveEntry3' type='function'/>
     <exports symbol='xmlHashSize' type='function'/>
    </file>
    <file name='list'>
     <summary>lists interfaces</summary>
     <description>this module implement the list support used in various place in the library. </description>
     <author>Gary Pennington &lt;Gary.Pennington@uk.sun.com&gt; </author>
     <exports symbol='xmlLink' type='typedef'/>
     <exports symbol='xmlLinkPtr' type='typedef'/>
     <exports symbol='xmlList' type='typedef'/>
     <exports symbol='xmlListPtr' type='typedef'/>
     <exports symbol='xmlListWalker' type='function'/>
     <exports symbol='xmlListRemoveFirst' type='function'/>
     <exports symbol='xmlListReverseWalk' type='function'/>
     <exports symbol='xmlLinkGetData' type='function'/>
     <exports symbol='xmlListInsert' type='function'/>
     <exports symbol='xmlListEmpty' type='function'/>
     <exports symbol='xmlListFront' type='function'/>
     <exports symbol='xmlListSort' type='function'/>
     <exports symbol='xmlListClear' type='function'/>
     <exports symbol='xmlListDeallocator' type='function'/>
     <exports symbol='xmlListMerge' type='function'/>
     <exports symbol='xmlListCreate' type='function'/>
     <exports symbol='xmlListAppend' type='function'/>
     <exports symbol='xmlListRemoveAll' type='function'/>
     <exports symbol='xmlListDup' type='function'/>
     <exports symbol='xmlListReverse' type='function'/>
     <exports symbol='xmlListRemoveLast' type='function'/>
     <exports symbol='xmlListWalk' type='function'/>
     <exports symbol='xmlListDataCompare' type='function'/>
     <exports symbol='xmlListSize' type='function'/>
     <exports symbol='xmlListPushFront' type='function'/>
     <exports symbol='xmlListEnd' type='function'/>
     <exports symbol='xmlListCopy' type='function'/>
     <exports symbol='xmlListPopBack' type='function'/>
     <exports symbol='xmlListPushBack' type='function'/>
     <exports symbol='xmlListPopFront' type='function'/>
     <exports symbol='xmlListDelete' type='function'/>
     <exports symbol='xmlListReverseSearch' type='function'/>
     <exports symbol='xmlListSearch' type='function'/>
    </file>
    <file name='nanoftp'>
     <summary>minimal FTP implementation</summary>
     <description>minimal FTP implementation allowing to fetch resources like external subset. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlNanoFTPScanProxy' type='function'/>
     <exports symbol='xmlNanoFTPQuit' type='function'/>
     <exports symbol='xmlNanoFTPClose' type='function'/>
     <exports symbol='ftpDataCallback' type='function'/>
     <exports symbol='xmlNanoFTPGetResponse' type='function'/>
     <exports symbol='ftpListCallback' type='function'/>
     <exports symbol='xmlNanoFTPCwd' type='function'/>
     <exports symbol='xmlNanoFTPCloseConnection' type='function'/>
     <exports symbol='xmlNanoFTPProxy' type='function'/>
     <exports symbol='xmlNanoFTPInit' type='function'/>
     <exports symbol='xmlNanoFTPConnectTo' type='function'/>
     <exports symbol='xmlNanoFTPList' type='function'/>
     <exports symbol='xmlNanoFTPUpdateURL' type='function'/>
     <exports symbol='xmlNanoFTPOpen' type='function'/>
     <exports symbol='xmlNanoFTPConnect' type='function'/>
     <exports symbol='xmlNanoFTPDele' type='function'/>
     <exports symbol='xmlNanoFTPGet' type='function'/>
     <exports symbol='xmlNanoFTPGetSocket' type='function'/>
     <exports symbol='xmlNanoFTPNewCtxt' type='function'/>
     <exports symbol='xmlNanoFTPCheckResponse' type='function'/>
     <exports symbol='xmlNanoFTPRead' type='function'/>
     <exports symbol='xmlNanoFTPFreeCtxt' type='function'/>
     <exports symbol='xmlNanoFTPCleanup' type='function'/>
     <exports symbol='xmlNanoFTPGetConnection' type='function'/>
    </file>
    <file name='nanohttp'>
     <summary>minimal HTTP implementation</summary>
     <description>minimal HTTP implementation allowing to fetch resources like external subset. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlNanoHTTPRead' type='function'/>
     <exports symbol='xmlNanoHTTPSave' type='function'/>
     <exports symbol='xmlNanoHTTPRedir' type='function'/>
     <exports symbol='xmlNanoHTTPAuthHeader' type='function'/>
     <exports symbol='xmlNanoHTTPFetch' type='function'/>
     <exports symbol='xmlNanoHTTPInit' type='function'/>
     <exports symbol='xmlNanoHTTPMimeType' type='function'/>
     <exports symbol='xmlNanoHTTPClose' type='function'/>
     <exports symbol='xmlNanoHTTPCleanup' type='function'/>
     <exports symbol='xmlNanoHTTPMethod' type='function'/>
     <exports symbol='xmlNanoHTTPContentLength' type='function'/>
     <exports symbol='xmlNanoHTTPOpen' type='function'/>
     <exports symbol='xmlNanoHTTPOpenRedir' type='function'/>
     <exports symbol='xmlNanoHTTPMethodRedir' type='function'/>
     <exports symbol='xmlNanoHTTPScanProxy' type='function'/>
     <exports symbol='xmlNanoHTTPEncoding' type='function'/>
     <exports symbol='xmlNanoHTTPReturnCode' type='function'/>
    </file>
    <file name='parser'>
     <summary>the core parser module</summary>
     <description>Interfaces, constants and types related to the XML parser </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_COMPLETE_ATTRS' type='macro'/>
     <exports symbol='XML_SKIP_IDS' type='macro'/>
     <exports symbol='XML_SAX2_MAGIC' type='macro'/>
     <exports symbol='XML_DETECT_IDS' type='macro'/>
     <exports symbol='XML_DEFAULT_VERSION' type='macro'/>
     <exports symbol='XML_PARSE_NODICT' type='enum'/>
     <exports symbol='XML_PARSER_ENTITY_DECL' type='enum'/>
     <exports symbol='XML_PARSER_CONTENT' type='enum'/>
     <exports symbol='XML_PARSE_NOBLANKS' type='enum'/>
     <exports symbol='XML_PARSE_NOENT' type='enum'/>
     <exports symbol='XML_PARSER_ENTITY_VALUE' type='enum'/>
     <exports symbol='XML_PARSE_DTDLOAD' type='enum'/>
     <exports symbol='XML_PARSER_SYSTEM_LITERAL' type='enum'/>
     <exports symbol='XML_PARSER_PI' type='enum'/>
     <exports symbol='XML_PARSE_NOWARNING' type='enum'/>
     <exports symbol='XML_PARSE_NOERROR' type='enum'/>
     <exports symbol='XML_PARSE_DTDATTR' type='enum'/>
     <exports symbol='XML_PARSE_NSCLEAN' type='enum'/>
     <exports symbol='XML_PARSE_RECOVER' type='enum'/>
     <exports symbol='XML_PARSE_PUSH_DOM' type='enum'/>
     <exports symbol='XML_PARSER_PROLOG' type='enum'/>
     <exports symbol='XML_PARSE_NONET' type='enum'/>
     <exports symbol='XML_PARSER_EPILOG' type='enum'/>
     <exports symbol='XML_PARSER_END_TAG' type='enum'/>
     <exports symbol='XML_PARSE_NOCDATA' type='enum'/>
     <exports symbol='XML_PARSE_SAX1' type='enum'/>
     <exports symbol='XML_PARSE_DTDVALID' type='enum'/>
     <exports symbol='XML_PARSE_DOM' type='enum'/>
     <exports symbol='XML_PARSER_DTD' type='enum'/>
     <exports symbol='XML_PARSER_MISC' type='enum'/>
     <exports symbol='XML_PARSER_ATTRIBUTE_VALUE' type='enum'/>
     <exports symbol='XML_PARSE_PUSH_SAX' type='enum'/>
     <exports symbol='XML_PARSER_START' type='enum'/>
     <exports symbol='XML_PARSE_SAX' type='enum'/>
     <exports symbol='XML_PARSE_UNKNOWN' type='enum'/>
     <exports symbol='XML_PARSE_PEDANTIC' type='enum'/>
     <exports symbol='XML_PARSER_START_TAG' type='enum'/>
     <exports symbol='XML_PARSER_IGNORE' type='enum'/>
     <exports symbol='XML_PARSER_EOF' type='enum'/>
     <exports symbol='XML_PARSER_COMMENT' type='enum'/>
     <exports symbol='XML_PARSER_PUBLIC_LITERAL' type='enum'/>
     <exports symbol='XML_PARSER_CDATA_SECTION' type='enum'/>
     <exports symbol='XML_PARSE_XINCLUDE' type='enum'/>
     <exports symbol='XML_PARSE_NOXINCNODE' type='enum'/>
     <exports symbol='XML_PARSE_READER' type='enum'/>
     <exports symbol='xmlParserNodeInfoSeqPtr' type='typedef'/>
     <exports symbol='xmlSAXHandlerV1Ptr' type='typedef'/>
     <exports symbol='xmlParserMode' type='typedef'/>
     <exports symbol='xmlSAXHandlerV1' type='typedef'/>
     <exports symbol='xmlParserOption' type='typedef'/>
     <exports symbol='xmlParserInputState' type='typedef'/>
     <exports symbol='xmlParserNodeInfoPtr' type='typedef'/>
     <exports symbol='xmlParserNodeInfo' type='typedef'/>
     <exports symbol='xmlParserNodeInfoSeq' type='typedef'/>
     <exports symbol='_xmlParserNodeInfo' type='struct'/>
     <exports symbol='_xmlSAXHandler' type='struct'/>
     <exports symbol='_xmlParserNodeInfoSeq' type='struct'/>
     <exports symbol='_xmlParserCtxt' type='struct'/>
     <exports symbol='_xmlSAXHandlerV1' type='struct'/>
     <exports symbol='_xmlParserInput' type='struct'/>
     <exports symbol='_xmlSAXLocator' type='struct'/>
     <exports symbol='xmlParseDoc' type='function'/>
     <exports symbol='xmlCtxtReadFile' type='function'/>
     <exports symbol='xmlSetupParserForBuffer' type='function'/>
     <exports symbol='xmlParseCtxtExternalEntity' type='function'/>
     <exports symbol='xmlRecoverFile' type='function'/>
     <exports symbol='attributeDeclSAXFunc' type='function'/>
     <exports symbol='getEntitySAXFunc' type='function'/>
     <exports symbol='xmlLineNumbersDefault' type='function'/>
     <exports symbol='xmlGetExternalEntityLoader' type='function'/>
     <exports symbol='elementDeclSAXFunc' type='function'/>
     <exports symbol='startElementSAXFunc' type='function'/>
     <exports symbol='charactersSAXFunc' type='function'/>
     <exports symbol='xmlClearNodeInfoSeq' type='function'/>
     <exports symbol='xmlParseChunk' type='function'/>
     <exports symbol='xmlCtxtUseOptions' type='function'/>
     <exports symbol='xmlParseEntity' type='function'/>
     <exports symbol='xmlCreatePushParserCtxt' type='function'/>
     <exports symbol='xmlParserAddNodeInfo' type='function'/>
     <exports symbol='xmlCtxtReadFd' type='function'/>
     <exports symbol='internalSubsetSAXFunc' type='function'/>
     <exports symbol='xmlNewParserCtxt' type='function'/>
     <exports symbol='endDocumentSAXFunc' type='function'/>
     <exports symbol='xmlParseFile' type='function'/>
     <exports symbol='unparsedEntityDeclSAXFunc' type='function'/>
     <exports symbol='xmlParseDocument' type='function'/>
     <exports symbol='xmlCreateIOParserCtxt' type='function'/>
     <exports symbol='xmlParseInNodeContext' type='function'/>
     <exports symbol='referenceSAXFunc' type='function'/>
     <exports symbol='getParameterEntitySAXFunc' type='function'/>
     <exports symbol='ignorableWhitespaceSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseDoc' type='function'/>
     <exports symbol='xmlReadMemory' type='function'/>
     <exports symbol='xmlInitNodeInfoSeq' type='function'/>
     <exports symbol='xmlParseMemory' type='function'/>
     <exports symbol='xmlSubstituteEntitiesDefault' type='function'/>
     <exports symbol='endElementSAXFunc' type='function'/>
     <exports symbol='xmlCtxtReadMemory' type='function'/>
     <exports symbol='xmlParserFindNodeInfoIndex' type='function'/>
     <exports symbol='xmlByteConsumed' type='function'/>
     <exports symbol='xmlCtxtReset' type='function'/>
     <exports symbol='xmlRecoverDoc' type='function'/>
     <exports symbol='xmlNewIOInputStream' type='function'/>
     <exports symbol='xmlKeepBlanksDefault' type='function'/>
     <exports symbol='xmlReadFile' type='function'/>
     <exports symbol='xmlParserInputRead' type='function'/>
     <exports symbol='xmlInitParser' type='function'/>
     <exports symbol='xmlGetFeaturesList' type='function'/>
     <exports symbol='xmlCreateDocParserCtxt' type='function'/>
     <exports symbol='xmlSetFeature' type='function'/>
     <exports symbol='errorSAXFunc' type='function'/>
     <exports symbol='xmlCtxtReadDoc' type='function'/>
     <exports symbol='xmlSAXParseMemory' type='function'/>
     <exports symbol='xmlRecoverMemory' type='function'/>
     <exports symbol='xmlExternalEntityLoader' type='function'/>
     <exports symbol='startElementNsSAX2Func' type='function'/>
     <exports symbol='xmlSAXUserParseFile' type='function'/>
     <exports symbol='hasInternalSubsetSAXFunc' type='function'/>
     <exports symbol='fatalErrorSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseDTD' type='function'/>
     <exports symbol='cdataBlockSAXFunc' type='function'/>
     <exports symbol='xmlParserFindNodeInfo' type='function'/>
     <exports symbol='xmlSAXParseFile' type='function'/>
     <exports symbol='entityDeclSAXFunc' type='function'/>
     <exports symbol='xmlLoadExternalEntity' type='function'/>
     <exports symbol='xmlParserInputDeallocate' type='function'/>
     <exports symbol='xmlCtxtReadIO' type='function'/>
     <exports symbol='xmlStopParser' type='function'/>
     <exports symbol='xmlReadFd' type='function'/>
     <exports symbol='xmlSAXParseMemoryWithData' type='function'/>
     <exports symbol='processingInstructionSAXFunc' type='function'/>
     <exports symbol='xmlParseExtParsedEnt' type='function'/>
     <exports symbol='xmlReadIO' type='function'/>
     <exports symbol='xmlGetFeature' type='function'/>
     <exports symbol='xmlParseBalancedChunkMemoryRecover' type='function'/>
     <exports symbol='xmlIOParseDTD' type='function'/>
     <exports symbol='xmlFreeParserCtxt' type='function'/>
     <exports symbol='xmlReadDoc' type='function'/>
     <exports symbol='xmlSAXUserParseMemory' type='function'/>
     <exports symbol='xmlParseDTD' type='function'/>
     <exports symbol='xmlParseBalancedChunkMemory' type='function'/>
     <exports symbol='notationDeclSAXFunc' type='function'/>
     <exports symbol='endElementNsSAX2Func' type='function'/>
     <exports symbol='commentSAXFunc' type='function'/>
     <exports symbol='xmlCleanupParser' type='function'/>
     <exports symbol='attributeSAXFunc' type='function'/>
     <exports symbol='hasExternalSubsetSAXFunc' type='function'/>
     <exports symbol='isStandaloneSAXFunc' type='function'/>
     <exports symbol='startDocumentSAXFunc' type='function'/>
     <exports symbol='xmlInitParserCtxt' type='function'/>
     <exports symbol='xmlClearParserCtxt' type='function'/>
     <exports symbol='xmlParserInputGrow' type='function'/>
     <exports symbol='xmlParseExternalEntity' type='function'/>
     <exports symbol='xmlCtxtResetPush' type='function'/>
     <exports symbol='externalSubsetSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseFileWithData' type='function'/>
     <exports symbol='resolveEntitySAXFunc' type='function'/>
     <exports symbol='setDocumentLocatorSAXFunc' type='function'/>
     <exports symbol='xmlPedanticParserDefault' type='function'/>
     <exports symbol='warningSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseEntity' type='function'/>
     <exports symbol='xmlSetExternalEntityLoader' type='function'/>
    </file>
    <file name='parserInternals'>
     <summary>internals routines exported by the parser.</summary>
     <description>this module exports a number of internal parsing routines they are not really all intended for applications but can prove useful doing low level processing. </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_SUBSTITUTE_REF' type='macro'/>
     <exports symbol='IS_BLANK' type='macro'/>
     <exports symbol='IS_EXTENDER_CH' type='macro'/>
     <exports symbol='IS_BYTE_CHAR' type='macro'/>
     <exports symbol='IS_DIGIT' type='macro'/>
     <exports symbol='IS_PUBIDCHAR' type='macro'/>
     <exports symbol='XML_SUBSTITUTE_PEREF' type='macro'/>
     <exports symbol='MOVETO_ENDTAG' type='macro'/>
     <exports symbol='IS_DIGIT_CH' type='macro'/>
     <exports symbol='SKIP_EOL' type='macro'/>
     <exports symbol='IS_EXTENDER' type='macro'/>
     <exports symbol='IS_CHAR' type='macro'/>
     <exports symbol='IS_COMBINING_CH' type='macro'/>
     <exports symbol='IS_PUBIDCHAR_CH' type='macro'/>
     <exports symbol='IS_LETTER_CH' type='macro'/>
     <exports symbol='XML_SUBSTITUTE_NONE' type='macro'/>
     <exports symbol='IS_BLANK_CH' type='macro'/>
     <exports symbol='IS_COMBINING' type='macro'/>
     <exports symbol='XML_MAX_NAMELEN' type='macro'/>
     <exports symbol='IS_LETTER' type='macro'/>
     <exports symbol='IS_BASECHAR' type='macro'/>
     <exports symbol='INPUT_CHUNK' type='macro'/>
     <exports symbol='IS_IDEOGRAPHIC' type='macro'/>
     <exports symbol='MOVETO_STARTTAG' type='macro'/>
     <exports symbol='IS_CHAR_CH' type='macro'/>
     <exports symbol='XML_SUBSTITUTE_BOTH' type='macro'/>
     <exports symbol='xmlStringTextNoenc' type='variable'/>
     <exports symbol='xmlStringComment' type='variable'/>
     <exports symbol='xmlStringText' type='variable'/>
     <exports symbol='xmlParserMaxDepth' type='variable'/>
     <exports symbol='xmlParseAttValue' type='function'/>
     <exports symbol='xmlCreateMemoryParserCtxt' type='function'/>
     <exports symbol='xmlParseAttributeListDecl' type='function'/>
     <exports symbol='nodePop' type='function'/>
     <exports symbol='xmlParseName' type='function'/>
     <exports symbol='xmlParseEncName' type='function'/>
     <exports symbol='xmlParseEntityRef' type='function'/>
     <exports symbol='nodePush' type='function'/>
     <exports symbol='xmlSwitchEncoding' type='function'/>
     <exports symbol='xmlParseNotationDecl' type='function'/>
     <exports symbol='xmlParseExternalSubset' type='function'/>
     <exports symbol='xmlSwitchToEncoding' type='function'/>
     <exports symbol='xmlParseMisc' type='function'/>
     <exports symbol='xmlSwitchInputEncoding' type='function'/>
     <exports symbol='xmlNewStringInputStream' type='function'/>
     <exports symbol='xmlParseExternalID' type='function'/>
     <exports symbol='xmlSkipBlankChars' type='function'/>
     <exports symbol='xmlScanName' type='function'/>
     <exports symbol='xmlParseElementDecl' type='function'/>
     <exports symbol='xmlParseAttribute' type='function'/>
     <exports symbol='xmlParseEndTag' type='function'/>
     <exports symbol='xmlParseEncodingDecl' type='function'/>
     <exports symbol='htmlInitAutoClose' type='function'/>
     <exports symbol='xmlParseMarkupDecl' type='function'/>
     <exports symbol='htmlCreateFileParserCtxt' type='function'/>
     <exports symbol='xmlCreateEntityParserCtxt' type='function'/>
     <exports symbol='inputPush' type='function'/>
     <exports symbol='namePush' type='function'/>
     <exports symbol='xmlStringLenDecodeEntities' type='function'/>
     <exports symbol='xmlNewEntityInputStream' type='function'/>
     <exports symbol='namePop' type='function'/>
     <exports symbol='xmlSplitQName' type='function'/>
     <exports symbol='xmlParseContent' type='function'/>
     <exports symbol='xmlParseNamespace' type='function'/>
     <exports symbol='xmlNewInputStream' type='function'/>
     <exports symbol='xmlParserHandleReference' type='function'/>
     <exports symbol='xmlNamespaceParseQName' type='function'/>
     <exports symbol='xmlParsePITarget' type='function'/>
     <exports symbol='xmlParseElementContentDecl' type='function'/>
     <exports symbol='xmlNewInputFromFile' type='function'/>
     <exports symbol='xmlDecodeEntities' type='function'/>
     <exports symbol='xmlParserHandlePEReference' type='function'/>
     <exports symbol='xmlPopInput' type='function'/>
     <exports symbol='xmlParsePubidLiteral' type='function'/>
     <exports symbol='xmlPushInput' type='function'/>
     <exports symbol='xmlParseEntityValue' type='function'/>
     <exports symbol='xmlStringDecodeEntities' type='function'/>
     <exports symbol='xmlCreateFileParserCtxt' type='function'/>
     <exports symbol='xmlParseCharRef' type='function'/>
     <exports symbol='xmlParseVersionNum' type='function'/>
     <exports symbol='xmlParseElement' type='function'/>
     <exports symbol='xmlParseTextDecl' type='function'/>
     <exports symbol='xmlParseXMLDecl' type='function'/>
     <exports symbol='xmlEntityReferenceFunc' type='function'/>
     <exports symbol='xmlParseElementMixedContentDecl' type='function'/>
     <exports symbol='xmlCopyCharMultiByte' type='function'/>
     <exports symbol='xmlParseElementChildrenContentDecl' type='function'/>
     <exports symbol='xmlParseQuotedString' type='function'/>
     <exports symbol='xmlParseCharData' type='function'/>
     <exports symbol='xmlNamespaceParseNSDef' type='function'/>
     <exports symbol='xmlParseCDSect' type='function'/>
     <exports symbol='xmlParseVersionInfo' type='function'/>
     <exports symbol='xmlStringCurrentChar' type='function'/>
     <exports symbol='xmlParseEnumeratedType' type='function'/>
     <exports symbol='xmlErrMemory' type='function'/>
     <exports symbol='xmlHandleEntity' type='function'/>
     <exports symbol='xmlCurrentChar' type='function'/>
     <exports symbol='xmlNamespaceParseNCName' type='function'/>
     <exports symbol='xmlParseNmtoken' type='function'/>
     <exports symbol='xmlParseNotationType' type='function'/>
     <exports symbol='xmlParserInputShrink' type='function'/>
     <exports symbol='xmlParseReference' type='function'/>
     <exports symbol='xmlSetEntityReferenceFunc' type='function'/>
     <exports symbol='xmlFreeInputStream' type='function'/>
     <exports symbol='xmlParsePEReference' type='function'/>
     <exports symbol='xmlParseDefaultDecl' type='function'/>
     <exports symbol='xmlParseDocTypeDecl' type='function'/>
     <exports symbol='xmlIsLetter' type='function'/>
     <exports symbol='xmlCheckLanguageID' type='function'/>
     <exports symbol='xmlCopyChar' type='function'/>
     <exports symbol='inputPop' type='function'/>
     <exports symbol='xmlNextChar' type='function'/>
     <exports symbol='xmlParseEnumerationType' type='function'/>
     <exports symbol='xmlParseSDDecl' type='function'/>
     <exports symbol='xmlParseAttributeType' type='function'/>
     <exports symbol='xmlParseComment' type='function'/>
     <exports symbol='xmlParsePI' type='function'/>
     <exports symbol='xmlCreateURLParserCtxt' type='function'/>
     <exports symbol='xmlParseStartTag' type='function'/>
     <exports symbol='xmlParseSystemLiteral' type='function'/>
     <exports symbol='xmlParseEntityDecl' type='function'/>
    </file>
    <file name='pattern'>
     <summary>pattern expression handling</summary>
     <description>allows to compile and test pattern expressions for nodes either in a tree or based on a parser state. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlPattern' type='typedef'/>
     <exports symbol='xmlPatternPtr' type='typedef'/>
     <exports symbol='xmlPatterncompile' type='function'/>
     <exports symbol='xmlFreePattern' type='function'/>
     <exports symbol='xmlPatternMatch' type='function'/>
     <exports symbol='xmlFreePatternList' type='function'/>
    </file>
    <file name='relaxng'>
     <summary>implementation of the Relax-NG validation</summary>
     <description>implementation of the Relax-NG validation </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_RELAXNG_ERR_DUPID' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_VALELEM' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ATTRVALID' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_LISTELEM' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_LISTEXTRA' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ATTRNONS' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_EXTRADATA' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ELEMNONS' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ELEMEXTRANS' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_INTERNODATA' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_TYPECMP' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_VALUE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_DATAELEM' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_INTERSEQ' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_LACKDATA' type='enum'/>
     <exports symbol='XML_RELAXNGP_FREE_DOC' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ATTRNAME' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ELEMNOTEMPTY' type='enum'/>
     <exports symbol='XML_RELAXNG_OK' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_DATATYPE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ATTRWRONGNS' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_EXTRACONTENT' type='enum'/>
     <exports symbol='XML_RELAXNGP_NONE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ELEMWRONG' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_LISTEMPTY' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ATTREXTRANS' type='enum'/>
     <exports symbol='XML_RELAXNGP_CRNG' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_TEXTWRONG' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_INVALIDATTR' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ELEMWRONGNS' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_CONTENTVALID' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_TYPEVAL' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_LIST' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_TYPE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_NOELEM' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_MEMORY' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_ELEMNAME' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_NOGRAMMAR' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_NODEFINE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_NOSTATE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_INTEREXTRA' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_INTERNAL' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_NOTELEM' type='enum'/>
     <exports symbol='xmlRelaxNG' type='typedef'/>
     <exports symbol='xmlRelaxNGParserCtxt' type='typedef'/>
     <exports symbol='xmlRelaxNGParserCtxtPtr' type='typedef'/>
     <exports symbol='xmlRelaxNGParserFlag' type='typedef'/>
     <exports symbol='xmlRelaxNGValidErr' type='typedef'/>
     <exports symbol='xmlRelaxNGValidCtxt' type='typedef'/>
     <exports symbol='xmlRelaxNGValidCtxtPtr' type='typedef'/>
     <exports symbol='xmlRelaxNGPtr' type='typedef'/>
     <exports symbol='xmlRelaxNGFreeValidCtxt' type='function'/>
     <exports symbol='xmlRelaxNGValidateFullElement' type='function'/>
     <exports symbol='xmlRelaxNGNewDocParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGSetValidErrors' type='function'/>
     <exports symbol='xmlRelaxNGValidatePopElement' type='function'/>
     <exports symbol='xmlRelaxNGFree' type='function'/>
     <exports symbol='xmlRelaxNGNewParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGValidateDoc' type='function'/>
     <exports symbol='xmlRelaxNGGetParserErrors' type='function'/>
     <exports symbol='xmlRelaxNGFreeParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGSetParserErrors' type='function'/>
     <exports symbol='xmlRelaxNGNewValidCtxt' type='function'/>
     <exports symbol='xmlRelaxNGGetValidErrors' type='function'/>
     <exports symbol='xmlRelaxNGNewMemParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGDump' type='function'/>
     <exports symbol='xmlRelaxNGValidityErrorFunc' type='function'/>
     <exports symbol='xmlRelaxNGParse' type='function'/>
     <exports symbol='xmlRelaxNGDumpTree' type='function'/>
     <exports symbol='xmlRelaxNGValidatePushElement' type='function'/>
     <exports symbol='xmlRelaxNGCleanupTypes' type='function'/>
     <exports symbol='xmlRelaxNGValidatePushCData' type='function'/>
     <exports symbol='xmlRelaxParserSetFlag' type='function'/>
     <exports symbol='xmlRelaxNGValidityWarningFunc' type='function'/>
    </file>
    <file name='schemasInternals'>
     <summary>internal interfaces for XML Schemas</summary>
     <description>internal interfaces for the XML Schemas handling and schema validity checking </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_UNION' type='macro'/>
     <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_CIRCULAR' type='macro'/>
     <exports symbol='XML_SCHEMAS_QUALIF_ATTR' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_LIST' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_USE_REQUIRED' type='macro'/>
     <exports symbol='XML_SCHEMAS_FACET_COLLAPSE' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANY_STRICT' type='macro'/>
     <exports symbol='XML_SCHEMAS_QUALIF_ELEM' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_LIST' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_INCLUDING_CONVERT_NS' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_INTERNAL_RESOLVED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_USE_PROHIBITED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_NILLABLE' type='macro'/>
     <exports symbol='XML_SCHEMAS_FACET_UNKNOWN' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_INTERNAL_RESOLVED' type='macro'/>
     <exports symbol='XML_SCHEMAS_WILDCARD_COMPLETE' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BLOCK_DEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FIXED' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ATOMIC' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_USE_OPTIONAL' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_NSDEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_DEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BLOCK_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANYATTR_STRICT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ABSENT' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTRGROUP_MARKED' type='macro'/>
     <exports symbol='XML_SCHEMAS_FACET_PRESERVE' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_BLOCK_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANYATTR_SKIP' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANYATTR_LAX' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_GLOBAL' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_ABSTRACT' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_FIXED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANY_SKIP' type='macro'/>
     <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_LIST' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FINAL_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_NSDEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_GLOBAL' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_MIXED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANY_LAX' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FINAL_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FINAL_ABSENT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BLOCK_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_TOPLEVEL' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_ABSTRACT' type='macro'/>
     <exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_UNION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_GLOBAL' type='macro'/>
     <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_UNION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_BLOCK_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_FACET_REPLACE' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_DEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_MARKED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_BLOCK_ABSENT' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTRGROUP_GLOBAL' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_REF' type='macro'/>
     <exports symbol='XML_SCHEMAS_GMONTH' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_ELEMENTS' type='enum'/>
     <exports symbol='XML_SCHEMAS_GYEAR' type='enum'/>
     <exports symbol='XML_SCHEMAS_BYTE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ALL' type='enum'/>
     <exports symbol='XML_SCHEMAS_NOTATION' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_EXTENSION' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MAXINCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMAS_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAS_ANYSIMPLETYPE' type='enum'/>
     <exports symbol='XML_SCHEMAS_NMTOKEN' type='enum'/>
     <exports symbol='XML_SCHEMAS_ID' type='enum'/>
     <exports symbol='XML_SCHEMAS_TIME' type='enum'/>
     <exports symbol='XML_SCHEMAS_UBYTE' type='enum'/>
     <exports symbol='XML_SCHEMAS_DATETIME' type='enum'/>
     <exports symbol='XML_SCHEMAS_NNINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMAS_IDREFS' type='enum'/>
     <exports symbol='XML_SCHEMAS_INT' type='enum'/>
     <exports symbol='XML_SCHEMAS_UNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMAS_IDREF' type='enum'/>
     <exports symbol='XML_SCHEMAS_UINT' type='enum'/>
     <exports symbol='XML_SCHEMAS_GDAY' type='enum'/>
     <exports symbol='XML_SCHEMAS_GMONTHDAY' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ANY' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MINEXCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ANYURI' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MAXEXCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_COMPLEX' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTEGROUP' type='enum'/>
     <exports symbol='XML_SCHEMAS_ULONG' type='enum'/>
     <exports symbol='XML_SCHEMAS_PINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_BASIC' type='enum'/>
     <exports symbol='XML_SCHEMAS_HEXBINARY' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_CHOICE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_UNION' type='enum'/>
     <exports symbol='XML_SCHEMAS_DECIMAL' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_UR' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_LENGTH' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_SIMPLE' type='enum'/>
     <exports symbol='XML_SCHEMAS_DOUBLE' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_PATTERN' type='enum'/>
     <exports symbol='XML_SCHEMAS_SHORT' type='enum'/>
     <exports symbol='XML_SCHEMAS_LANGUAGE' type='enum'/>
     <exports symbol='XML_SCHEMAS_NINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMAS_NORMSTRING' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_MIXED' type='enum'/>
     <exports symbol='XML_SCHEMAS_ANYTYPE' type='enum'/>
     <exports symbol='XML_SCHEMAS_DURATION' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_FACET' type='enum'/>
     <exports symbol='XML_SCHEMAS_NMTOKENS' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' type='enum'/>
     <exports symbol='XML_SCHEMAS_USHORT' type='enum'/>
     <exports symbol='XML_SCHEMAS_GYEARMONTH' type='enum'/>
     <exports symbol='XML_SCHEMAS_NCNAME' type='enum'/>
     <exports symbol='XML_SCHEMAS_NPINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMAS_INTEGER' type='enum'/>
     <exports symbol='XML_SCHEMAS_BASE64BINARY' type='enum'/>
     <exports symbol='XML_SCHEMAS_LONG' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_COMPLEX_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_FRACTIONDIGITS' type='enum'/>
     <exports symbol='XML_SCHEMAS_BOOLEAN' type='enum'/>
     <exports symbol='XML_SCHEMAS_ENTITY' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_GROUP' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_SIMPLE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_SIMPLE_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAS_FLOAT' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_WHITESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ENTITIES' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ELEMENT' type='enum'/>
     <exports symbol='XML_SCHEMAS_DATE' type='enum'/>
     <exports symbol='XML_SCHEMAS_STRING' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_LIST' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_TOTALDIGITS' type='enum'/>
     <exports symbol='XML_SCHEMAS_QNAME' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_NOTATION' type='enum'/>
     <exports symbol='XML_SCHEMAS_TOKEN' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_ANY' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_BASIC' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MINLENGTH' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_SEQUENCE' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MAXLENGTH' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_ENUMERATION' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_UNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_RESTRICTION' type='enum'/>
     <exports symbol='xmlSchemaValPtr' type='typedef'/>
     <exports symbol='xmlSchemaFacetLink' type='typedef'/>
     <exports symbol='xmlSchemaWildcardNsPtr' type='typedef'/>
     <exports symbol='xmlSchemaAttributeGroup' type='typedef'/>
     <exports symbol='xmlSchemaAttributeGroupPtr' type='typedef'/>
     <exports symbol='xmlSchemaElementPtr' type='typedef'/>
     <exports symbol='xmlSchemaFacetLinkPtr' type='typedef'/>
     <exports symbol='xmlSchemaWildcardPtr' type='typedef'/>
     <exports symbol='xmlSchemaVal' type='typedef'/>
     <exports symbol='xmlSchemaTypeLinkPtr' type='typedef'/>
     <exports symbol='xmlSchemaAttributeLinkPtr' type='typedef'/>
     <exports symbol='xmlSchemaWildcardNs' type='typedef'/>
     <exports symbol='xmlSchemaType' type='typedef'/>
     <exports symbol='xmlSchemaAttributePtr' type='typedef'/>
     <exports symbol='xmlSchemaNotationPtr' type='typedef'/>
     <exports symbol='xmlSchemaAnnot' type='typedef'/>
     <exports symbol='xmlSchemaValType' type='typedef'/>
     <exports symbol='xmlSchemaTypePtr' type='typedef'/>
     <exports symbol='xmlSchemaNotation' type='typedef'/>
     <exports symbol='xmlSchemaAnnotPtr' type='typedef'/>
     <exports symbol='xmlSchemaElement' type='typedef'/>
     <exports symbol='xmlSchemaFacet' type='typedef'/>
     <exports symbol='xmlSchemaContentType' type='typedef'/>
     <exports symbol='xmlSchemaTypeType' type='typedef'/>
     <exports symbol='xmlSchemaAttribute' type='typedef'/>
     <exports symbol='xmlSchemaFacetPtr' type='typedef'/>
     <exports symbol='xmlSchemaWildcard' type='typedef'/>
     <exports symbol='xmlSchemaTypeLink' type='typedef'/>
     <exports symbol='xmlSchemaAttributeLink' type='typedef'/>
     <exports symbol='_xmlSchemaWildcardNs' type='struct'/>
     <exports symbol='_xmlSchemaAttribute' type='struct'/>
     <exports symbol='_xmlSchemaFacet' type='struct'/>
     <exports symbol='_xmlSchemaType' type='struct'/>
     <exports symbol='_xmlSchemaAttributeGroup' type='struct'/>
     <exports symbol='_xmlSchemaNotation' type='struct'/>
     <exports symbol='_xmlSchemaElement' type='struct'/>
     <exports symbol='_xmlSchema' type='struct'/>
     <exports symbol='_xmlSchemaAttributeLink' type='struct'/>
     <exports symbol='_xmlSchemaFacetLink' type='struct'/>
     <exports symbol='_xmlSchemaWildcard' type='struct'/>
     <exports symbol='_xmlSchemaTypeLink' type='struct'/>
     <exports symbol='_xmlSchemaAnnot' type='struct'/>
     <exports symbol='xmlSchemaFreeType' type='function'/>
     <exports symbol='xmlSchemaFreeWildcard' type='function'/>
    </file>
    <file name='threads'>
     <summary>interfaces for thread handling</summary>
     <description>set of generic threading related routines should work with pthreads, Windows native or TLS threads </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlMutex' type='typedef'/>
     <exports symbol='xmlRMutex' type='typedef'/>
     <exports symbol='xmlRMutexPtr' type='typedef'/>
     <exports symbol='xmlMutexPtr' type='typedef'/>
     <exports symbol='xmlFreeRMutex' type='function'/>
     <exports symbol='xmlGetThreadId' type='function'/>
     <exports symbol='xmlFreeMutex' type='function'/>
     <exports symbol='xmlCleanupThreads' type='function'/>
     <exports symbol='xmlMutexUnlock' type='function'/>
     <exports symbol='xmlNewRMutex' type='function'/>
     <exports symbol='xmlMutexLock' type='function'/>
     <exports symbol='xmlIsMainThread' type='function'/>
     <exports symbol='xmlRMutexUnlock' type='function'/>
     <exports symbol='xmlGetGlobalState' type='function'/>
     <exports symbol='xmlNewMutex' type='function'/>
     <exports symbol='xmlRMutexLock' type='function'/>
     <exports symbol='xmlInitThreads' type='function'/>
     <exports symbol='xmlUnlockLibrary' type='function'/>
     <exports symbol='xmlLockLibrary' type='function'/>
    </file>
    <file name='tree'>
     <summary>interfaces for tree manipulation</summary>
     <description>this module describes the structures found in an tree resulting from an XML or HTML parsing, as well as the API provided for various processing on that tree </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_LOCAL_NAMESPACE' type='macro'/>
     <exports symbol='XML_GET_CONTENT' type='macro'/>
     <exports symbol='XML_XML_NAMESPACE' type='macro'/>
     <exports symbol='XML_XML_ID' type='macro'/>
     <exports symbol='xmlChildrenNode' type='macro'/>
     <exports symbol='xmlRootNode' type='macro'/>
     <exports symbol='BASE_BUFFER_SIZE' type='macro'/>
     <exports symbol='XML_GET_LINE' type='macro'/>
     <exports symbol='XML_ATTRIBUTE_IMPLIED' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_IDREF' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_IDREFS' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_REQUIRED' type='enum'/>
     <exports symbol='XML_XINCLUDE_END' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_ELEMENT' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_ELEMENT' type='enum'/>
     <exports symbol='XML_CDATA_SECTION_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_DECL' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_SEQ' type='enum'/>
     <exports symbol='XML_BUFFER_ALLOC_DOUBLEIT' type='enum'/>
     <exports symbol='XML_DOCUMENT_FRAG_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_ANY' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_ONCE' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_PCDATA' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_FIXED' type='enum'/>
     <exports symbol='XML_DOCUMENT_TYPE_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
     <exports symbol='XML_NAMESPACE_DECL' type='enum'/>
     <exports symbol='XML_ENTITY_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_MIXED' type='enum'/>
     <exports symbol='XML_XINCLUDE_START' type='enum'/>
     <exports symbol='XML_TEXT_NODE' type='enum'/>
     <exports symbol='XML_BUFFER_ALLOC_EXACT' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_ENTITIES' type='enum'/>
     <exports symbol='XML_BUFFER_ALLOC_IMMUTABLE' type='enum'/>
     <exports symbol='XML_NOTATION_NODE' type='enum'/>
     <exports symbol='XML_ENTITY_REF_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_EMPTY' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_ENUMERATION' type='enum'/>
     <exports symbol='XML_HTML_DOCUMENT_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_UNDEFINED' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NONE' type='enum'/>
     <exports symbol='XML_DOCB_DOCUMENT_NODE' type='enum'/>
     <exports symbol='XML_COMMENT_NODE' type='enum'/>
     <exports symbol='XML_DOCUMENT_NODE' type='enum'/>
     <exports symbol='XML_DTD_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_OR' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NMTOKEN' type='enum'/>
     <exports symbol='XML_PI_NODE' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NMTOKENS' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NOTATION' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_ENTITY' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_DECL' type='enum'/>
     <exports symbol='XML_ENTITY_DECL' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_ID' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_CDATA' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_MULT' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_PLUS' type='enum'/>
     <exports symbol='xmlNs' type='typedef'/>
     <exports symbol='xmlBufferPtr' type='typedef'/>
     <exports symbol='xmlEnumerationPtr' type='typedef'/>
     <exports symbol='xmlBuffer' type='typedef'/>
     <exports symbol='xmlSAXLocatorPtr' type='typedef'/>
     <exports symbol='xmlParserInput' type='typedef'/>
     <exports symbol='xmlElement' type='typedef'/>
     <exports symbol='xmlElementType' type='typedef'/>
     <exports symbol='xmlBufferAllocationScheme' type='typedef'/>
     <exports symbol='xmlRef' type='typedef'/>
     <exports symbol='xmlDocPtr' type='typedef'/>
     <exports symbol='xmlElementContent' type='typedef'/>
     <exports symbol='xmlAttributeType' type='typedef'/>
     <exports symbol='xmlRefPtr' type='typedef'/>
     <exports symbol='xmlParserInputBuffer' type='typedef'/>
     <exports symbol='xmlNode' type='typedef'/>
     <exports symbol='xmlDoc' type='typedef'/>
     <exports symbol='xmlParserCtxt' type='typedef'/>
     <exports symbol='xmlDtdPtr' type='typedef'/>
     <exports symbol='xmlAttributeDefault' type='typedef'/>
     <exports symbol='xmlNotation' type='typedef'/>
     <exports symbol='xmlNsType' type='typedef'/>
     <exports symbol='xmlEntity' type='typedef'/>
     <exports symbol='xmlAttr' type='typedef'/>
     <exports symbol='xmlAttributePtr' type='typedef'/>
     <exports symbol='xmlElementTypeVal' type='typedef'/>
     <exports symbol='xmlElementPtr' type='typedef'/>
     <exports symbol='xmlElementContentOccur' type='typedef'/>
     <exports symbol='xmlIDPtr' type='typedef'/>
     <exports symbol='xmlAttrPtr' type='typedef'/>
     <exports symbol='xmlParserInputPtr' type='typedef'/>
     <exports symbol='xmlID' type='typedef'/>
     <exports symbol='xmlParserCtxtPtr' type='typedef'/>
     <exports symbol='xmlEntityPtr' type='typedef'/>
     <exports symbol='xmlEnumeration' type='typedef'/>
     <exports symbol='xmlElementContentType' type='typedef'/>
     <exports symbol='xmlNsPtr' type='typedef'/>
     <exports symbol='xmlParserInputBufferPtr' type='typedef'/>
     <exports symbol='xmlSAXHandler' type='typedef'/>
     <exports symbol='xmlOutputBuffer' type='typedef'/>
     <exports symbol='xmlSAXLocator' type='typedef'/>
     <exports symbol='xmlElementContentPtr' type='typedef'/>
     <exports symbol='xmlNotationPtr' type='typedef'/>
     <exports symbol='xmlNodePtr' type='typedef'/>
     <exports symbol='xmlDtd' type='typedef'/>
     <exports symbol='xmlAttribute' type='typedef'/>
     <exports symbol='xmlOutputBufferPtr' type='typedef'/>
     <exports symbol='xmlSAXHandlerPtr' type='typedef'/>
     <exports symbol='_xmlBuffer' type='struct'/>
     <exports symbol='_xmlAttribute' type='struct'/>
     <exports symbol='_xmlEnumeration' type='struct'/>
     <exports symbol='_xmlNs' type='struct'/>
     <exports symbol='_xmlNode' type='struct'/>
     <exports symbol='_xmlID' type='struct'/>
     <exports symbol='_xmlElement' type='struct'/>
     <exports symbol='_xmlDoc' type='struct'/>
     <exports symbol='_xmlNotation' type='struct'/>
     <exports symbol='_xmlDtd' type='struct'/>
     <exports symbol='_xmlRef' type='struct'/>
     <exports symbol='_xmlAttr' type='struct'/>
     <exports symbol='_xmlElementContent' type='struct'/>
     <exports symbol='xmlNodeSetContentLen' type='function'/>
     <exports symbol='xmlDocCopyNode' type='function'/>
     <exports symbol='xmlAddSibling' type='function'/>
     <exports symbol='xmlGetProp' type='function'/>
     <exports symbol='xmlNewNsPropEatName' type='function'/>
     <exports symbol='xmlSearchNs' type='function'/>
     <exports symbol='xmlStringGetNodeList' type='function'/>
     <exports symbol='xmlBufferWriteQuotedString' type='function'/>
     <exports symbol='xmlCopyProp' type='function'/>
     <exports symbol='xmlNodeListGetString' type='function'/>
     <exports symbol='xmlNewDocRawNode' type='function'/>
     <exports symbol='xmlNodeGetBase' type='function'/>
     <exports symbol='xmlGetLineNo' type='function'/>
     <exports symbol='xmlBufferEmpty' type='function'/>
     <exports symbol='xmlSetDocCompressMode' type='function'/>
     <exports symbol='xmlBuildQName' type='function'/>
     <exports symbol='xmlCopyNode' type='function'/>
     <exports symbol='xmlUnlinkNode' type='function'/>
     <exports symbol='xmlSplitQName3' type='function'/>
     <exports symbol='xmlRemoveProp' type='function'/>
     <exports symbol='xmlDocSetRootElement' type='function'/>
     <exports symbol='xmlNodeSetName' type='function'/>
     <exports symbol='xmlNewDocFragment' type='function'/>
     <exports symbol='xmlDocGetRootElement' type='function'/>
     <exports symbol='xmlNodeAddContentLen' type='function'/>
     <exports symbol='xmlValidateName' type='function'/>
     <exports symbol='xmlAddChild' type='function'/>
     <exports symbol='xmlGetDocCompressMode' type='function'/>
     <exports symbol='xmlSetBufferAllocationScheme' type='function'/>
     <exports symbol='xmlGetNsProp' type='function'/>
     <exports symbol='xmlNewDocProp' type='function'/>
     <exports symbol='xmlFreeNode' type='function'/>
     <exports symbol='xmlFreeNs' type='function'/>
     <exports symbol='xmlBufferContent' type='function'/>
     <exports symbol='xmlAddPrevSibling' type='function'/>
     <exports symbol='xmlNodeGetLang' type='function'/>
     <exports symbol='xmlBufferAddHead' type='function'/>
     <exports symbol='xmlSetListDoc' type='function'/>
     <exports symbol='xmlNewPI' type='function'/>
     <exports symbol='xmlValidateNMToken' type='function'/>
     <exports symbol='xmlBufferSetAllocationScheme' type='function'/>
     <exports symbol='xmlGetCompressMode' type='function'/>
     <exports symbol='xmlNewChild' type='function'/>
     <exports symbol='xmlNodeListGetRawString' type='function'/>
     <exports symbol='xmlStringLenGetNodeList' type='function'/>
     <exports symbol='xmlSaveFormatFile' type='function'/>
     <exports symbol='xmlSaveFormatFileEnc' type='function'/>
     <exports symbol='xmlGetNodePath' type='function'/>
     <exports symbol='xmlElemDump' type='function'/>
     <exports symbol='xmlCopyPropList' type='function'/>
     <exports symbol='xmlBufferWriteCHAR' type='function'/>
     <exports symbol='xmlSaveFormatFileTo' type='function'/>
     <exports symbol='xmlDocFormatDump' type='function'/>
     <exports symbol='xmlGetIntSubset' type='function'/>
     <exports symbol='xmlNodeSetSpacePreserve' type='function'/>
     <exports symbol='xmlHasProp' type='function'/>
     <exports symbol='xmlNodeBufGetContent' type='function'/>
     <exports symbol='xmlBufferWriteChar' type='function'/>
     <exports symbol='xmlBufferFree' type='function'/>
     <exports symbol='xmlReplaceNode' type='function'/>
     <exports symbol='xmlNewNode' type='function'/>
     <exports symbol='xmlBufferCat' type='function'/>
     <exports symbol='xmlSaveFileTo' type='function'/>
     <exports symbol='xmlCreateIntSubset' type='function'/>
     <exports symbol='xmlNewTextChild' type='function'/>
     <exports symbol='xmlNewDoc' type='function'/>
     <exports symbol='xmlNodeSetContent' type='function'/>
     <exports symbol='xmlBufferAdd' type='function'/>
     <exports symbol='xmlNewCharRef' type='function'/>
     <exports symbol='xmlNodeDumpOutput' type='function'/>
     <exports symbol='xmlCopyNamespace' type='function'/>
     <exports symbol='xmlSearchNsByHref' type='function'/>
     <exports symbol='xmlCopyNamespaceList' type='function'/>
     <exports symbol='xmlNewNodeEatName' type='function'/>
     <exports symbol='xmlTextMerge' type='function'/>
     <exports symbol='xmlSplitQName2' type='function'/>
     <exports symbol='xmlUnsetProp' type='function'/>
     <exports symbol='xmlBufferResize' type='function'/>
     <exports symbol='xmlValidateQName' type='function'/>
     <exports symbol='xmlNodeSetBase' type='function'/>
     <exports symbol='xmlNewComment' type='function'/>
     <exports symbol='xmlValidateNCName' type='function'/>
     <exports symbol='xmlBufferLength' type='function'/>
     <exports symbol='xmlNewDocComment' type='function'/>
     <exports symbol='xmlNewText' type='function'/>
     <exports symbol='xmlNodeDump' type='function'/>
     <exports symbol='xmlGetBufferAllocationScheme' type='function'/>
     <exports symbol='xmlSaveFile' type='function'/>
     <exports symbol='xmlSetNs' type='function'/>
     <exports symbol='xmlBufferCreateSize' type='function'/>
     <exports symbol='xmlNewNs' type='function'/>
     <exports symbol='xmlHasNsProp' type='function'/>
     <exports symbol='xmlNewCDataBlock' type='function'/>
     <exports symbol='xmlSetCompressMode' type='function'/>
     <exports symbol='xmlSetTreeDoc' type='function'/>
     <exports symbol='xmlAttrSerializeTxtContent' type='function'/>
     <exports symbol='xmlBufferCreate' type='function'/>
     <exports symbol='xmlCopyNodeList' type='function'/>
     <exports symbol='xmlNewDocNodeEatName' type='function'/>
     <exports symbol='xmlCopyDtd' type='function'/>
     <exports symbol='xmlNewDocText' type='function'/>
     <exports symbol='xmlAddChildList' type='function'/>
     <exports symbol='xmlBufferCreateStatic' type='function'/>
     <exports symbol='xmlFreePropList' type='function'/>
     <exports symbol='xmlNodeAddContent' type='function'/>
     <exports symbol='xmlUnsetNsProp' type='function'/>
     <exports symbol='xmlNewReference' type='function'/>
     <exports symbol='xmlReconciliateNs' type='function'/>
     <exports symbol='xmlBufferCCat' type='function'/>
     <exports symbol='xmlAddNextSibling' type='function'/>
     <exports symbol='xmlGetNsList' type='function'/>
     <exports symbol='xmlBufferGrow' type='function'/>
     <exports symbol='xmlNodeIsText' type='function'/>
     <exports symbol='xmlSetProp' type='function'/>
     <exports symbol='xmlNewGlobalNs' type='function'/>
     <exports symbol='xmlBufferDump' type='function'/>
     <exports symbol='xmlNodeGetContent' type='function'/>
     <exports symbol='xmlIsXHTML' type='function'/>
     <exports symbol='xmlNodeSetLang' type='function'/>
     <exports symbol='xmlDocDumpMemoryEnc' type='function'/>
     <exports symbol='xmlFreeDtd' type='function'/>
     <exports symbol='xmlFreeNodeList' type='function'/>
     <exports symbol='xmlFreeDoc' type='function'/>
     <exports symbol='xmlDocDumpMemory' type='function'/>
     <exports symbol='xmlNewTextLen' type='function'/>
     <exports symbol='xmlCopyDoc' type='function'/>
     <exports symbol='xmlNewDocNode' type='function'/>
     <exports symbol='xmlDocDump' type='function'/>
     <exports symbol='xmlSaveFileEnc' type='function'/>
     <exports symbol='xmlFreeProp' type='function'/>
     <exports symbol='xmlSetNsProp' type='function'/>
     <exports symbol='xmlIsBlankNode' type='function'/>
     <exports symbol='xmlDocDumpFormatMemory' type='function'/>
     <exports symbol='xmlGetNoNsProp' type='function'/>
     <exports symbol='xmlDocDumpFormatMemoryEnc' type='function'/>
     <exports symbol='xmlNewProp' type='function'/>
     <exports symbol='xmlTextConcat' type='function'/>
     <exports symbol='xmlNodeGetSpacePreserve' type='function'/>
     <exports symbol='xmlNewDocTextLen' type='function'/>
     <exports symbol='xmlNewDtd' type='function'/>
     <exports symbol='xmlBufferShrink' type='function'/>
     <exports symbol='xmlNewNsProp' type='function'/>
     <exports symbol='xmlFreeNsList' type='function'/>
     <exports symbol='xmlGetLastChild' type='function'/>
    </file>
    <file name='uri'>
     <summary>library of generic URI related routines</summary>
     <description>library of generic URI related routines Implements RFC 2396 </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlURI' type='typedef'/>
     <exports symbol='xmlURIPtr' type='typedef'/>
     <exports symbol='_xmlURI' type='struct'/>
     <exports symbol='xmlNormalizeURIPath' type='function'/>
     <exports symbol='xmlPrintURI' type='function'/>
     <exports symbol='xmlURIUnescapeString' type='function'/>
     <exports symbol='xmlParseURI' type='function'/>
     <exports symbol='xmlCreateURI' type='function'/>
     <exports symbol='xmlURIEscapeStr' type='function'/>
     <exports symbol='xmlCanonicPath' type='function'/>
     <exports symbol='xmlFreeURI' type='function'/>
     <exports symbol='xmlParseURIReference' type='function'/>
     <exports symbol='xmlBuildRelativeURI' type='function'/>
     <exports symbol='xmlSaveUri' type='function'/>
     <exports symbol='xmlURIEscape' type='function'/>
     <exports symbol='xmlBuildURI' type='function'/>
    </file>
    <file name='valid'>
     <summary>The DTD validation</summary>
     <description>API for the DTD handling and the validity checking </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlElementTable' type='typedef'/>
     <exports symbol='xmlValidStatePtr' type='typedef'/>
     <exports symbol='xmlIDTablePtr' type='typedef'/>
     <exports symbol='xmlNotationTablePtr' type='typedef'/>
     <exports symbol='xmlAttributeTable' type='typedef'/>
     <exports symbol='xmlElementTablePtr' type='typedef'/>
     <exports symbol='xmlRefTablePtr' type='typedef'/>
     <exports symbol='xmlNotationTable' type='typedef'/>
     <exports symbol='xmlRefTable' type='typedef'/>
     <exports symbol='xmlValidState' type='typedef'/>
     <exports symbol='xmlValidCtxt' type='typedef'/>
     <exports symbol='xmlAttributeTablePtr' type='typedef'/>
     <exports symbol='xmlIDTable' type='typedef'/>
     <exports symbol='xmlValidCtxtPtr' type='typedef'/>
     <exports symbol='_xmlValidCtxt' type='struct'/>
     <exports symbol='xmlFreeNotationTable' type='function'/>
     <exports symbol='xmlValidateNameValue' type='function'/>
     <exports symbol='xmlValidateElement' type='function'/>
     <exports symbol='xmlAddRef' type='function'/>
     <exports symbol='xmlDumpAttributeDecl' type='function'/>
     <exports symbol='xmlValidateDocumentFinal' type='function'/>
     <exports symbol='xmlValidateDtdFinal' type='function'/>
     <exports symbol='xmlDumpAttributeTable' type='function'/>
     <exports symbol='xmlCreateEnumeration' type='function'/>
     <exports symbol='xmlValidateOneAttribute' type='function'/>
     <exports symbol='xmlValidGetValidElements' type='function'/>
     <exports symbol='xmlDumpNotationTable' type='function'/>
     <exports symbol='xmlFreeAttributeTable' type='function'/>
     <exports symbol='xmlIsID' type='function'/>
     <exports symbol='xmlGetDtdQAttrDesc' type='function'/>
     <exports symbol='xmlDumpNotationDecl' type='function'/>
     <exports symbol='xmlValidityErrorFunc' type='function'/>
     <exports symbol='xmlGetDtdQElementDesc' type='function'/>
     <exports symbol='xmlGetRefs' type='function'/>
     <exports symbol='xmlCopyNotationTable' type='function'/>
     <exports symbol='xmlValidateDocument' type='function'/>
     <exports symbol='xmlValidGetPotentialChildren' type='function'/>
     <exports symbol='xmlAddNotationDecl' type='function'/>
     <exports symbol='xmlValidateElementDecl' type='function'/>
     <exports symbol='xmlAddAttributeDecl' type='function'/>
     <exports symbol='xmlGetID' type='function'/>
     <exports symbol='xmlAddID' type='function'/>
     <exports symbol='xmlValidateAttributeDecl' type='function'/>
     <exports symbol='xmlSprintfElementContent' type='function'/>
     <exports symbol='xmlValidateOneElement' type='function'/>
     <exports symbol='xmlValidateNmtokenValue' type='function'/>
     <exports symbol='xmlRemoveRef' type='function'/>
     <exports symbol='xmlValidateNmtokensValue' type='function'/>
     <exports symbol='xmlAddElementDecl' type='function'/>
     <exports symbol='xmlSnprintfElementContent' type='function'/>
     <exports symbol='xmlValidateOneNamespace' type='function'/>
     <exports symbol='xmlValidatePushElement' type='function'/>
     <exports symbol='xmlIsRef' type='function'/>
     <exports symbol='xmlDumpElementTable' type='function'/>
     <exports symbol='xmlCopyElementTable' type='function'/>
     <exports symbol='xmlFreeRefTable' type='function'/>
     <exports symbol='xmlFreeElementContent' type='function'/>
     <exports symbol='xmlRemoveID' type='function'/>
     <exports symbol='xmlFreeElementTable' type='function'/>
     <exports symbol='xmlFreeIDTable' type='function'/>
     <exports symbol='xmlFreeValidCtxt' type='function'/>
     <exports symbol='xmlCopyAttributeTable' type='function'/>
     <exports symbol='xmlCopyElementContent' type='function'/>
     <exports symbol='xmlValidateAttributeValue' type='function'/>
     <exports symbol='xmlValidCtxtNormalizeAttributeValue' type='function'/>
     <exports symbol='xmlValidityWarningFunc' type='function'/>
     <exports symbol='xmlValidatePopElement' type='function'/>
     <exports symbol='xmlFreeEnumeration' type='function'/>
     <exports symbol='xmlValidateNamesValue' type='function'/>
     <exports symbol='xmlCopyEnumeration' type='function'/>
     <exports symbol='xmlGetDtdAttrDesc' type='function'/>
     <exports symbol='xmlValidateDtd' type='function'/>
     <exports symbol='xmlNewValidCtxt' type='function'/>
     <exports symbol='xmlIsMixedElement' type='function'/>
     <exports symbol='xmlDumpElementDecl' type='function'/>
     <exports symbol='xmlValidNormalizeAttributeValue' type='function'/>
     <exports symbol='xmlValidBuildContentModel' type='function'/>
     <exports symbol='xmlValidateNotationUse' type='function'/>
     <exports symbol='xmlValidateRoot' type='function'/>
     <exports symbol='xmlValidateNotationDecl' type='function'/>
     <exports symbol='xmlNewElementContent' type='function'/>
     <exports symbol='xmlGetDtdElementDesc' type='function'/>
     <exports symbol='xmlGetDtdNotationDesc' type='function'/>
     <exports symbol='xmlValidatePushCData' type='function'/>
    </file>
    <file name='xinclude'>
     <summary>implementation of XInclude</summary>
     <description>API to handle XInclude processing, implements the World Wide Web Consortium Last Call Working Draft 10 November 2003</description>
     <author>Daniel Veillard </author>
     <exports symbol='XINCLUDE_PARSE_TEXT' type='macro'/>
     <exports symbol='XINCLUDE_PARSE_XPOINTER' type='macro'/>
     <exports symbol='XINCLUDE_NODE' type='macro'/>
     <exports symbol='XINCLUDE_PARSE_XML' type='macro'/>
     <exports symbol='XINCLUDE_HREF' type='macro'/>
     <exports symbol='XINCLUDE_PARSE_ENCODING' type='macro'/>
     <exports symbol='XINCLUDE_FALLBACK' type='macro'/>
     <exports symbol='XINCLUDE_NS' type='macro'/>
     <exports symbol='XINCLUDE_PARSE' type='macro'/>
     <exports symbol='XINCLUDE_OLD_NS' type='macro'/>
     <exports symbol='xmlXIncludeCtxt' type='typedef'/>
     <exports symbol='xmlXIncludeCtxtPtr' type='typedef'/>
     <exports symbol='xmlXIncludeProcessTree' type='function'/>
     <exports symbol='xmlXIncludeProcessNode' type='function'/>
     <exports symbol='xmlXIncludeFreeContext' type='function'/>
     <exports symbol='xmlXIncludeSetFlags' type='function'/>
     <exports symbol='xmlXIncludeProcess' type='function'/>
     <exports symbol='xmlXIncludeNewContext' type='function'/>
     <exports symbol='xmlXIncludeProcessTreeFlags' type='function'/>
     <exports symbol='xmlXIncludeProcessFlags' type='function'/>
    </file>
    <file name='xlink'>
     <summary>unfinished XLink detection module</summary>
     <description>unfinished XLink detection module </description>
     <author>Daniel Veillard </author>
     <exports symbol='XLINK_ACTUATE_NONE' type='enum'/>
     <exports symbol='XLINK_SHOW_NEW' type='enum'/>
     <exports symbol='XLINK_TYPE_EXTENDED' type='enum'/>
     <exports symbol='XLINK_TYPE_NONE' type='enum'/>
     <exports symbol='XLINK_SHOW_REPLACE' type='enum'/>
     <exports symbol='XLINK_ACTUATE_ONREQUEST' type='enum'/>
     <exports symbol='XLINK_SHOW_NONE' type='enum'/>
     <exports symbol='XLINK_TYPE_EXTENDED_SET' type='enum'/>
     <exports symbol='XLINK_ACTUATE_AUTO' type='enum'/>
     <exports symbol='XLINK_SHOW_EMBED' type='enum'/>
     <exports symbol='XLINK_TYPE_SIMPLE' type='enum'/>
     <exports symbol='xlinkHandler' type='typedef'/>
     <exports symbol='xlinkRole' type='typedef'/>
     <exports symbol='xlinkShow' type='typedef'/>
     <exports symbol='xlinkHandlerPtr' type='typedef'/>
     <exports symbol='xlinkHRef' type='typedef'/>
     <exports symbol='xlinkType' type='typedef'/>
     <exports symbol='xlinkTitle' type='typedef'/>
     <exports symbol='xlinkActuate' type='typedef'/>
     <exports symbol='_xlinkHandler' type='struct'/>
     <exports symbol='xlinkNodeDetectFunc' type='function'/>
     <exports symbol='xlinkGetDefaultHandler' type='function'/>
     <exports symbol='xlinkIsLink' type='function'/>
     <exports symbol='xlinkSimpleLinkFunk' type='function'/>
     <exports symbol='xlinkSetDefaultHandler' type='function'/>
     <exports symbol='xlinkSetDefaultDetect' type='function'/>
     <exports symbol='xlinkExtendedLinkFunk' type='function'/>
     <exports symbol='xlinkExtendedLinkSetFunk' type='function'/>
     <exports symbol='xlinkGetDefaultDetect' type='function'/>
    </file>
    <file name='xmlIO'>
     <summary>interface for the I/O interfaces used by the parser</summary>
     <description>interface for the I/O interfaces used by the parser </description>
     <author>Daniel Veillard </author>
     <exports symbol='_xmlParserInputBuffer' type='struct'/>
     <exports symbol='_xmlOutputBuffer' type='struct'/>
     <exports symbol='xmlIOHTTPRead' type='function'/>
     <exports symbol='xmlInputMatchCallback' type='function'/>
     <exports symbol='xmlRegisterDefaultOutputCallbacks' type='function'/>
     <exports symbol='xmlFileClose' type='function'/>
     <exports symbol='xmlOutputMatchCallback' type='function'/>
     <exports symbol='xmlParserInputBufferPush' type='function'/>
     <exports symbol='xmlIOFTPRead' type='function'/>
     <exports symbol='xmlRegisterHTTPPostCallbacks' type='function'/>
     <exports symbol='xmlIOFTPOpen' type='function'/>
     <exports symbol='xmlIOFTPClose' type='function'/>
     <exports symbol='xmlFileOpen' type='function'/>
     <exports symbol='xmlOutputBufferCreateFile' type='function'/>
     <exports symbol='xmlCheckFilename' type='function'/>
     <exports symbol='xmlOutputOpenCallback' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFilename' type='function'/>
     <exports symbol='xmlOutputBufferClose' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFd' type='function'/>
     <exports symbol='xmlOutputBufferCreateIO' type='function'/>
     <exports symbol='xmlOutputWriteCallback' type='function'/>
     <exports symbol='xmlOutputBufferFlush' type='function'/>
     <exports symbol='xmlCheckHTTPInput' type='function'/>
     <exports symbol='xmlRegisterOutputCallbacks' type='function'/>
     <exports symbol='xmlParserInputBufferCreateMem' type='function'/>
     <exports symbol='xmlIOFTPMatch' type='function'/>
     <exports symbol='xmlRegisterInputCallbacks' type='function'/>
     <exports symbol='xmlFreeParserInputBuffer' type='function'/>
     <exports symbol='xmlRegisterDefaultInputCallbacks' type='function'/>
     <exports symbol='xmlParserInputBufferGrow' type='function'/>
     <exports symbol='xmlAllocOutputBuffer' type='function'/>
     <exports symbol='xmlNoNetExternalEntityLoader' type='function'/>
     <exports symbol='xmlOutputCloseCallback' type='function'/>
     <exports symbol='xmlIOHTTPMatch' type='function'/>
     <exports symbol='xmlIOHTTPOpen' type='function'/>
     <exports symbol='xmlParserInputBufferCreateIO' type='function'/>
     <exports symbol='xmlOutputBufferCreateFd' type='function'/>
     <exports symbol='xmlNormalizeWindowsPath' type='function'/>
     <exports symbol='xmlInputReadCallback' type='function'/>
     <exports symbol='xmlParserInputBufferCreateStatic' type='function'/>
     <exports symbol='xmlIOHTTPClose' type='function'/>
     <exports symbol='xmlOutputBufferWriteEscape' type='function'/>
     <exports symbol='xmlOutputBufferCreateFilename' type='function'/>
     <exports symbol='xmlCleanupOutputCallbacks' type='function'/>
     <exports symbol='xmlInputOpenCallback' type='function'/>
     <exports symbol='xmlParserInputBufferRead' type='function'/>
     <exports symbol='xmlOutputBufferWriteString' type='function'/>
     <exports symbol='xmlFileMatch' type='function'/>
     <exports symbol='xmlPopInputCallbacks' type='function'/>
     <exports symbol='xmlFileRead' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFile' type='function'/>
     <exports symbol='xmlParserGetDirectory' type='function'/>
     <exports symbol='xmlOutputBufferWrite' type='function'/>
     <exports symbol='xmlCleanupInputCallbacks' type='function'/>
     <exports symbol='xmlInputCloseCallback' type='function'/>
     <exports symbol='xmlIOHTTPOpenW' type='function'/>
     <exports symbol='xmlAllocParserInputBuffer' type='function'/>
    </file>
    <file name='xmlautomata'>
     <summary>API to build regexp automata</summary>
     <description>the API to build regexp automata </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlAutomataStatePtr' type='typedef'/>
     <exports symbol='xmlAutomata' type='typedef'/>
     <exports symbol='xmlAutomataPtr' type='typedef'/>
     <exports symbol='xmlAutomataState' type='typedef'/>
     <exports symbol='xmlFreeAutomata' type='function'/>
     <exports symbol='xmlAutomataNewCounter' type='function'/>
     <exports symbol='xmlAutomataGetInitState' type='function'/>
     <exports symbol='xmlAutomataNewTransition2' type='function'/>
     <exports symbol='xmlAutomataNewState' type='function'/>
     <exports symbol='xmlAutomataNewCountTrans' type='function'/>
     <exports symbol='xmlAutomataNewOnceTrans2' type='function'/>
     <exports symbol='xmlAutomataNewAllTrans' type='function'/>
     <exports symbol='xmlAutomataNewOnceTrans' type='function'/>
     <exports symbol='xmlAutomataNewCounterTrans' type='function'/>
     <exports symbol='xmlAutomataCompile' type='function'/>
     <exports symbol='xmlNewAutomata' type='function'/>
     <exports symbol='xmlAutomataNewEpsilon' type='function'/>
     <exports symbol='xmlAutomataNewCountTrans2' type='function'/>
     <exports symbol='xmlAutomataSetFinalState' type='function'/>
     <exports symbol='xmlAutomataNewCountedTrans' type='function'/>
     <exports symbol='xmlAutomataNewTransition' type='function'/>
     <exports symbol='xmlAutomataIsDeterminist' type='function'/>
    </file>
    <file name='xmlerror'>
     <summary>error handling</summary>
     <description>the API used to report errors </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' type='enum'/>
     <exports symbol='XML_DTD_CONTENT_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_MEMBER_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4' type='enum'/>
     <exports symbol='XML_DTD_ATTRIBUTE_VALUE' type='enum'/>
     <exports symbol='XML_ERR_INVALID_DEC_CHARREF' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NO_PARENT' type='enum'/>
     <exports symbol='XML_ERR_CDATA_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_1' type='enum'/>
     <exports symbol='XML_XINCLUDE_INCLUDE_IN_INCLUDE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_1' type='enum'/>
     <exports symbol='XML_XPATH_EXPRESSION_OK' type='enum'/>
     <exports symbol='XML_ERR_DOCUMENT_END' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ENUMERATION_VALID' type='enum'/>
     <exports symbol='XML_ERR_CHARREF_IN_PROLOG' type='enum'/>
     <exports symbol='XML_RNGP_INVALID_DEFINE_NAME' type='enum'/>
     <exports symbol='XML_SAVE_UNKNOWN_ENCODING' type='enum'/>
     <exports symbol='XML_ERR_CONDSEC_INVALID_KEYWORD' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ATTR_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_7' type='enum'/>
     <exports symbol='XML_CATALOG_MISSING_ATTR' type='enum'/>
     <exports symbol='XML_ERR_NO_MEMORY' type='enum'/>
     <exports symbol='XML_ERR_PEREF_SEMICOL_MISSING' type='enum'/>
     <exports symbol='XML_ERR_DOCUMENT_START' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_TEXT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_2_2' type='enum'/>
     <exports symbol='XML_FROM_IO' type='enum'/>
     <exports symbol='XML_HTML_UNKNOWN_TAG' type='enum'/>
     <exports symbol='XML_DTD_NOT_STANDALONE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_ATTR' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOROOT' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTEMPTY' type='enum'/>
     <exports symbol='XML_RNGP_NEED_COMBINE' type='enum'/>
     <exports symbol='XML_IO_EROFS' type='enum'/>
     <exports symbol='XML_ERR_DOCTYPE_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_ERR_XMLDECL_NOT_STARTED' type='enum'/>
     <exports symbol='XML_IO_EXDEV' type='enum'/>
     <exports symbol='XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING' type='enum'/>
     <exports symbol='XML_RNGP_URI_FRAGMENT' type='enum'/>
     <exports symbol='XML_FROM_MEMORY' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_2' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_CHAR_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_MAXOCCURS' type='enum'/>
     <exports symbol='XML_ERR_MISSING_ENCODING' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_3_1' type='enum'/>
     <exports symbol='XML_ERR_LT_IN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_XINCLUDE_ENTITY_DEF_MISMATCH' type='enum'/>
     <exports symbol='XML_XPTR_RESOURCE_ERROR' type='enum'/>
     <exports symbol='XML_IO_EISCONN' type='enum'/>
     <exports symbol='XML_ERR_GT_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAP_FACET_NO_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_HTTP_UNKNOWN_HOST' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_USE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_2' type='enum'/>
     <exports symbol='XML_IO_UNKNOWN' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ONEMORE_GROUP_ATTR' type='enum'/>
     <exports symbol='XML_ERR_VALUE_REQUIRED' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION' type='enum'/>
     <exports symbol='XML_IO_ECHILD' type='enum'/>
     <exports symbol='XML_RNGP_URI_NOT_ABSOLUTE' type='enum'/>
     <exports symbol='XML_RNGP_NAME_MISSING' type='enum'/>
     <exports symbol='XML_ERR_CONDSEC_NOT_STARTED' type='enum'/>
     <exports symbol='XML_RNGP_START_MISSING' type='enum'/>
     <exports symbol='XML_ERR_PEREF_IN_EPILOG' type='enum'/>
     <exports symbol='XML_IO_EINTR' type='enum'/>
     <exports symbol='XML_FROM_VALID' type='enum'/>
     <exports symbol='XML_FTP_PASV_ANSWER' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_NOOP' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ELEM_CHILD' type='enum'/>
     <exports symbol='XML_CATALOG_RECURSION' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_GROUP' type='enum'/>
     <exports symbol='XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI' type='enum'/>
     <exports symbol='XML_ERR_CHARREF_IN_EPILOG' type='enum'/>
     <exports symbol='XML_DTD_ELEM_DEFAULT_NAMESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAP_FAILED_BUILD_IMPORT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_REGEXP_INVALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_1' type='enum'/>
     <exports symbol='XML_C14N_CREATE_STACK' type='enum'/>
     <exports symbol='XML_WAR_LANG_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_PREDICATE_ERROR' type='enum'/>
     <exports symbol='XML_ERR_EXT_SUBSET_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_AU' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NAME_INVALID' type='enum'/>
     <exports symbol='XML_FROM_DTD' type='enum'/>
     <exports symbol='XML_SCHEMAV_CONSTRUCT' type='enum'/>
     <exports symbol='XML_RNGP_EXTERNALREF_RECURSE' type='enum'/>
     <exports symbol='XML_XINCLUDE_RECURSION' type='enum'/>
     <exports symbol='XML_DTD_ATTRIBUTE_DEFAULT' type='enum'/>
     <exports symbol='XML_RNGP_UNKNOWN_COMBINE' type='enum'/>
     <exports symbol='XML_SCHEMAV_EXTRACONTENT' type='enum'/>
     <exports symbol='XML_RNGP_START_EMPTY' type='enum'/>
     <exports symbol='XML_XINCLUDE_XPTR_RESULT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2' type='enum'/>
     <exports symbol='XML_RNGP_ELEM_CONTENT_EMPTY' type='enum'/>
     <exports symbol='XML_XINCLUDE_FRAGMENT_ID' type='enum'/>
     <exports symbol='XML_WAR_NS_URI' type='enum'/>
     <exports symbol='XML_IO_EMLINK' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_CT_1' type='enum'/>
     <exports symbol='XML_ERR_NMTOKEN_REQUIRED' type='enum'/>
     <exports symbol='XML_RNGP_ANYNAME_ATTR_ANCESTOR' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_IS_EXTERNAL' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOT_DETERMINISTIC' type='enum'/>
     <exports symbol='XML_ERR_PI_NOT_STARTED' type='enum'/>
     <exports symbol='XML_RNGP_START_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_3_2' type='enum'/>
     <exports symbol='XML_RNGP_GROUP_ATTR_CONFLICT' type='enum'/>
     <exports symbol='XML_RNGP_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_ATTRUNKNOWN' type='enum'/>
     <exports symbol='XML_IO_ENODEV' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_REF' type='enum'/>
     <exports symbol='XML_FROM_PARSER' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_REF' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5' type='enum'/>
     <exports symbol='XML_XINCLUDE_NO_FALLBACK' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_RESOLVE' type='enum'/>
     <exports symbol='XML_C14N_CREATE_CTXT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_FACET_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_ATTRGRP_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_XINCLUDE_TEXT_DOCUMENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_PREFIX' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1' type='enum'/>
     <exports symbol='XML_ERR_STANDALONE_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_ATTR' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_LOOP' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD' type='enum'/>
     <exports symbol='XML_IO_EINPROGRESS' type='enum'/>
     <exports symbol='XML_IO_FLUSH' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD' type='enum'/>
     <exports symbol='XML_C14N_INVALID_NODE' type='enum'/>
     <exports symbol='XML_IO_EFAULT' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_CTXT_POSITION' type='enum'/>
     <exports symbol='XML_ERR_NOTATION_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_LENGTH_VALID' type='enum'/>
     <exports symbol='XML_DTD_STANDALONE_DEFAULTED' type='enum'/>
     <exports symbol='XML_DTD_INVALID_DEFAULT' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ELEM' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_TYPE' type='enum'/>
     <exports symbol='XML_XPTR_EXTRA_OBJECTS' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_FACET_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOTATION_NO_NAME' type='enum'/>
     <exports symbol='XML_DTD_EMPTY_NOTATION' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_TEXT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ALL_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI' type='enum'/>
     <exports symbol='XML_ERR_ELEMCONTENT_NOT_STARTED' type='enum'/>
     <exports symbol='XML_RNGP_INCLUDE_FAILURE' type='enum'/>
     <exports symbol='XML_RNGP_INVALID_VALUE' type='enum'/>
     <exports symbol='XML_ERR_COMMENT_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD' type='enum'/>
     <exports symbol='XML_IO_EMSGSIZE' type='enum'/>
     <exports symbol='XML_FROM_CATALOG' type='enum'/>
     <exports symbol='XML_SCHEMAV_ATTRINVALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_1' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_VALUE' type='enum'/>
     <exports symbol='XML_DTD_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_FROM_HTML' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_LIST' type='enum'/>
     <exports symbol='XML_ERR_LT_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_AU_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_ERR_ATTLIST_NOT_STARTED' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_NAME' type='enum'/>
     <exports symbol='XML_ERR_PCDATA_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAV_INTERNAL' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_VALUE' type='enum'/>
     <exports symbol='XML_ERR_STRING_NOT_CLOSED' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_IN_DTD' type='enum'/>
     <exports symbol='XML_SCHEMAV_HAVEDEFAULT' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_NOTATION' type='enum'/>
     <exports symbol='XML_RNGP_ERROR_TYPE_LIB' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_2_1' type='enum'/>
     <exports symbol='XML_DTD_NO_ROOT' type='enum'/>
     <exports symbol='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' type='enum'/>
     <exports symbol='XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME' type='enum'/>
     <exports symbol='XML_IO_ECANCELED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' type='enum'/>
     <exports symbol='XML_ERR_UNKNOWN_ENCODING' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTSIMPLE' type='enum'/>
     <exports symbol='XML_HTTP_URL_SYNTAX' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_FACET' type='enum'/>
     <exports symbol='XML_DTD_CONTENT_MODEL' type='enum'/>
     <exports symbol='XML_XPATH_UNDEF_PREFIX_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_REF_AND_SUBTYPE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR' type='enum'/>
     <exports symbol='XML_IO_EADDRINUSE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_LIST_CHILD' type='enum'/>
     <exports symbol='XML_CATALOG_ENTRY_BROKEN' type='enum'/>
     <exports symbol='XML_WAR_NS_URI_RELATIVE' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ID' type='enum'/>
     <exports symbol='XML_RNGP_TEXT_EXPECTED' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' type='enum'/>
     <exports symbol='XML_XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' type='enum'/>
     <exports symbol='XML_IO_EDOM' type='enum'/>
     <exports symbol='XML_SCHEMAV_FACET' type='enum'/>
     <exports symbol='XML_RNGP_PARAM_NAME_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ELEMENT_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ELEMENT_2_1' type='enum'/>
     <exports symbol='XML_RNGP_INVALID_URI' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_LIST' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_LIST' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_NO_CONTENT' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_EMPTY' type='enum'/>
     <exports symbol='XML_XPATH_UNFINISHED_LITERAL_ERROR' type='enum'/>
     <exports symbol='XML_RNGP_EXTERNALREF_EMTPY' type='enum'/>
     <exports symbol='XML_ERR_SPACE_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MAXLENGTH_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD' type='enum'/>
     <exports symbol='XML_DTD_DIFFERENT_PREFIX' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_NO_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTDETERMINIST' type='enum'/>
     <exports symbol='XML_ERR_INVALID_HEX_CHARREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_INTERLEAVE' type='enum'/>
     <exports symbol='XML_HTML_STRUCURE_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAV_ELEMCONT' type='enum'/>
     <exports symbol='XML_SCHEMAV_MISSING' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD' type='enum'/>
     <exports symbol='XML_IO_ENFILE' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_CREATE_FAILED' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_IS_PARAMETER' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_BASE_TYPE' type='enum'/>
     <exports symbol='XML_ERR_RESERVED_XML_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_3_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_3_1' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NO_NAME' type='enum'/>
     <exports symbol='XML_IO_EPERM' type='enum'/>
     <exports symbol='XML_IO_ENETUNREACH' type='enum'/>
     <exports symbol='XML_ERR_CHARREF_AT_EOF' type='enum'/>
     <exports symbol='XML_IO_ENOMEM' type='enum'/>
     <exports symbol='XML_IO_ENOSPC' type='enum'/>
     <exports symbol='XML_XPTR_CHILDSEQ_START' type='enum'/>
     <exports symbol='XML_RNGP_ATTR_CONFLICT' type='enum'/>
     <exports symbol='XML_RNGP_TYPE_VALUE' type='enum'/>
     <exports symbol='XML_FROM_REGEXP' type='enum'/>
     <exports symbol='XML_XINCLUDE_UNKNOWN_ENCODING' type='enum'/>
     <exports symbol='XML_RNGP_DEF_CHOICE_AND_INTERLEAVE' type='enum'/>
     <exports symbol='XML_TREE_UNTERMINATED_ENTITY' type='enum'/>
     <exports symbol='XML_ERR_URI_REQUIRED' type='enum'/>
     <exports symbol='XML_XINCLUDE_XPTR_FAILED' type='enum'/>
     <exports symbol='XML_FROM_TREE' type='enum'/>
     <exports symbol='XML_CATALOG_PREFER_VALUE' type='enum'/>
     <exports symbol='XML_ERR_HYPHEN_IN_COMMENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_1_1' type='enum'/>
     <exports symbol='XML_C14N_REQUIRES_UTF8' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_1_2' type='enum'/>
     <exports symbol='XML_FROM_XINCLUDE' type='enum'/>
     <exports symbol='XML_SCHEMAP_CVC_SIMPLE_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_NO_XMLNS' type='enum'/>
     <exports symbol='XML_SCHEMAP_NO_XSI' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_EMPTY' type='enum'/>
     <exports symbol='XML_IO_ENOTDIR' type='enum'/>
     <exports symbol='XML_SAVE_CHAR_INVALID' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_NO_CONTENT' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_NO_NAME' type='enum'/>
     <exports symbol='XML_DTD_ID_FIXED' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_A_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_XINCLUDE_NO_HREF' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_OPERAND' type='enum'/>
     <exports symbol='XML_IO_ENOEXEC' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_REF' type='enum'/>
     <exports symbol='XML_XINCLUDE_HREF_URI' type='enum'/>
     <exports symbol='XML_ERR_EXTRA_CONTENT' type='enum'/>
     <exports symbol='XML_ERR_EXT_ENTITY_STANDALONE' type='enum'/>
     <exports symbol='XML_SCHEMAP_MG_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_4' type='enum'/>
     <exports symbol='XML_SCHEMAP_FAILED_PARSE' type='enum'/>
     <exports symbol='XML_RNGP_REF_CYCLE' type='enum'/>
     <exports symbol='XML_RNGP_HREF_ERROR' type='enum'/>
     <exports symbol='XML_FROM_NONE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_GROUP' type='enum'/>
     <exports symbol='XML_ERR_LITERAL_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_REF_AND_SUBTYPE' type='enum'/>
     <exports symbol='XML_RNGP_ELEM_TEXT_CONFLICT' type='enum'/>
     <exports symbol='XML_SCHEMAP_ATTR_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ELEMENT_1' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' type='enum'/>
     <exports symbol='XML_SCHEMAP_ELEM_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_DTD_ID_SUBSET' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_CHAR_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_EMPTY' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ENTITY' type='enum'/>
     <exports symbol='XML_RNGP_PARSE_ERROR' type='enum'/>
     <exports symbol='XML_XINCLUDE_PARSE_VALUE' type='enum'/>
     <exports symbol='XML_RNGP_XML_NS' type='enum'/>
     <exports symbol='XML_ERR_MISPLACED_CDATA_END' type='enum'/>
     <exports symbol='XML_FROM_HTTP' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ONEMORE' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_1' type='enum'/>
     <exports symbol='XML_RNGP_REF_CREATE_FAILED' type='enum'/>
     <exports symbol='XML_ERR_SEPARATOR_REQUIRED' type='enum'/>
     <exports symbol='XML_DTD_ROOT_NAME' type='enum'/>
     <exports symbol='XML_RNGP_UNKNOWN_TYPE_LIB' type='enum'/>
     <exports symbol='XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_CONTENT' type='enum'/>
     <exports symbol='XML_RNGP_REF_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_DTD_XMLID_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_TYPE_AND_SUBTYPE' type='enum'/>
     <exports symbol='XML_TREE_INVALID_HEX' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_ADD' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' type='enum'/>
     <exports symbol='XML_DTD_NOTATION_REDEFINED' type='enum'/>
     <exports symbol='XML_RNGP_ELEM_CONTENT_ERROR' type='enum'/>
     <exports symbol='XML_DTD_ATTRIBUTE_REDEFINED' type='enum'/>
     <exports symbol='XML_RNGP_UNKNOWN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_ERR_UNDECLARED_ENTITY' type='enum'/>
     <exports symbol='XML_ERR_PUBID_REQUIRED' type='enum'/>
     <exports symbol='XML_IO_ENOTSOCK' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_GROUP' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2' type='enum'/>
     <exports symbol='XML_RNGP_NOTALLOWED_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_RNGP_MISSING_HREF' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_3' type='enum'/>
     <exports symbol='XML_ERR_PI_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_1' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_PATTERN_VALID' type='enum'/>
     <exports symbol='XML_FROM_RELAXNGP' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ATTR' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_4_3' type='enum'/>
     <exports symbol='XML_FTP_ACCNT' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ATTR_INVALID_VALUE' type='enum'/>
     <exports symbol='XML_FROM_RELAXNGV' type='enum'/>
     <exports symbol='XML_RNGP_REF_NAME_INVALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTTOPLEVEL' type='enum'/>
     <exports symbol='XML_IO_ENOENT' type='enum'/>
     <exports symbol='XML_ERR_NO_DTD' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2' type='enum'/>
     <exports symbol='XML_FROM_C14N' type='enum'/>
     <exports symbol='XML_FROM_XSLT' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_ATTR' type='enum'/>
     <exports symbol='XML_IO_EIO' type='enum'/>
     <exports symbol='XML_XPATH_START_LITERAL_ERROR' type='enum'/>
     <exports symbol='XML_IO_EACCES' type='enum'/>
     <exports symbol='XML_DTD_NOT_PCDATA' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_COMBINATION' type='enum'/>
     <exports symbol='XML_WAR_UNKNOWN_VERSION' type='enum'/>
     <exports symbol='XML_XINCLUDE_MULTIPLE_ROOT' type='enum'/>
     <exports symbol='XML_RNGP_PARAM_FORBIDDEN' type='enum'/>
     <exports symbol='XML_ERR_OK' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOTHING_TO_PARSE' type='enum'/>
     <exports symbol='XML_SCHEMAP_RECURSIVE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_2_1' type='enum'/>
     <exports symbol='XML_ERR_UNSUPPORTED_ENCODING' type='enum'/>
     <exports symbol='XML_SCHEMAP_GROUP_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_IN_PROLOG' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ELEM_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_1_1' type='enum'/>
     <exports symbol='XML_ERR_CHARREF_IN_DTD' type='enum'/>
     <exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES' type='enum'/>
     <exports symbol='XML_IO_ENOTTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' type='enum'/>
     <exports symbol='XML_RNGP_EMPTY_CONTENT' type='enum'/>
     <exports symbol='XML_IO_EALREADY' type='enum'/>
     <exports symbol='XML_DTD_NO_DTD' type='enum'/>
     <exports symbol='XML_IO_ERANGE' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_NOTATION' type='enum'/>
     <exports symbol='XML_IO_ENOSYS' type='enum'/>
     <exports symbol='XML_FROM_DATATYPE' type='enum'/>
     <exports symbol='XML_ERR_WARNING' type='enum'/>
     <exports symbol='XML_SCHEMAP_ATTRFORMDEFAULT_VALUE' type='enum'/>
     <exports symbol='XML_IO_EISDIR' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE' type='enum'/>
     <exports symbol='XML_ERR_VERSION_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_CTXT_SIZE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_UNION_CHILD' type='enum'/>
     <exports symbol='XML_ERR_PEREF_AT_EOF' type='enum'/>
     <exports symbol='XML_XPATH_MEMORY_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOROOT' type='enum'/>
     <exports symbol='XML_XPATH_EXPR_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_3_2_1' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_3_2_2' type='enum'/>
     <exports symbol='XML_XPATH_UNCLOSED_ERROR' type='enum'/>
     <exports symbol='XML_WAR_CATALOG_PI' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_MINOCCURS' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TOTALDIGITS_VALID' type='enum'/>
     <exports symbol='XML_XINCLUDE_FALLBACKS_IN_INCLUDE' type='enum'/>
     <exports symbol='XML_IO_ENOLCK' type='enum'/>
     <exports symbol='XML_XINCLUDE_DEPRECATED_NS' type='enum'/>
     <exports symbol='XML_RNGP_CHOICE_EMPTY' type='enum'/>
     <exports symbol='XML_ERR_LITERAL_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_SEMICOL_MISSING' type='enum'/>
     <exports symbol='XML_DTD_MULTIPLE_ID' type='enum'/>
     <exports symbol='XML_FROM_XPATH' type='enum'/>
     <exports symbol='XML_IO_EPIPE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_6' type='enum'/>
     <exports symbol='XML_SCHEMAP_EXTENSION_NO_BASE' type='enum'/>
     <exports symbol='XML_XPTR_SYNTAX_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_5' type='enum'/>
     <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_4' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_6' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_ISABSTRACT' type='enum'/>
     <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' type='enum'/>
     <exports symbol='XML_IO_LOAD_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_3' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_ELEM' type='enum'/>
     <exports symbol='XML_SCHEMAV_UNDECLAREDELEM' type='enum'/>
     <exports symbol='XML_RNGP_CREATE_FAILURE' type='enum'/>
     <exports symbol='XML_IO_EBADF' type='enum'/>
     <exports symbol='XML_ERR_CONDSEC_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_RNGP_PREFIX_UNDEFINED' type='enum'/>
     <exports symbol='XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI' type='enum'/>
     <exports symbol='XML_ERR_EQUAL_REQUIRED' type='enum'/>
     <exports symbol='XML_XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_WHITE_SPACE' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' type='enum'/>
     <exports symbol='XML_RNGP_INCLUDE_EMPTY' type='enum'/>
     <exports symbol='XML_IO_ENOTSUP' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_XPTR_SUB_RESOURCE_ERROR' type='enum'/>
     <exports symbol='XML_RNGP_VALUE_EMPTY' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_CREATE_FAILED' type='enum'/>
     <exports symbol='XML_DTD_NO_PREFIX' type='enum'/>
     <exports symbol='XML_IO_EAGAIN' type='enum'/>
     <exports symbol='XML_RNGP_UNKNOWN_CONSTRUCT' type='enum'/>
     <exports symbol='XML_ERR_UNPARSED_ENTITY' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_IMPORT_CHILD' type='enum'/>
     <exports symbol='XML_FTP_EPSV_ANSWER' type='enum'/>
     <exports symbol='XML_DTD_ENTITY_TYPE' type='enum'/>
     <exports symbol='XML_ERR_FATAL' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_1' type='enum'/>
     <exports symbol='XML_DTD_ID_REDEFINED' type='enum'/>
     <exports symbol='XML_XPATH_ENCODING_ERROR' type='enum'/>
     <exports symbol='XML_RNGP_REF_NO_NAME' type='enum'/>
     <exports symbol='XML_ERR_NONE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD' type='enum'/>
     <exports symbol='XML_XPATH_NUMBER_ERROR' type='enum'/>
     <exports symbol='XML_RNGP_NSNAME_ATTR_ANCESTOR' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_FACET_TYPE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_ONEMORE' type='enum'/>
     <exports symbol='XML_ERR_CONDSEC_INVALID' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ATTR_ATTR' type='enum'/>
     <exports symbol='XML_XPTR_UNKNOWN_SCHEME' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_FACET_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_BOOLEAN' type='enum'/>
     <exports symbol='XML_SCHEMAP_REF_AND_CONTENT' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_IN_EPILOG' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOATTR_NOREF' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_MISSING' type='enum'/>
     <exports symbol='XML_DTD_CONTENT_NOT_DETERMINIST' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_1_2' type='enum'/>
     <exports symbol='XML_DTD_NO_ELEM_NAME' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_NO_START' type='enum'/>
     <exports symbol='XML_RNGP_VALUE_NO_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_1' type='enum'/>
     <exports symbol='XML_IO_EAFNOSUPPORT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_ELEMENT_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ELEMENT_3' type='enum'/>
     <exports symbol='XML_CATALOG_NOT_CATALOG' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4' type='enum'/>
     <exports symbol='XML_IO_EFBIG' type='enum'/>
     <exports symbol='XML_ERR_NS_DECL_ERROR' type='enum'/>
     <exports symbol='XML_WAR_UNDECLARED_ENTITY' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_DATA' type='enum'/>
     <exports symbol='XML_ERR_ERROR' type='enum'/>
     <exports symbol='XML_DTD_MISSING_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_IO_EMFILE' type='enum'/>
     <exports symbol='XML_RNGP_EMPTY_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_DTD_ELEM_NAMESPACE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ATTR_ELEM' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_1' type='enum'/>
     <exports symbol='XML_IO_NO_INPUT' type='enum'/>
     <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_2_2' type='enum'/>
     <exports symbol='XML_NS_ERR_UNDEFINED_NAMESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MINLENGTH_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_3' type='enum'/>
     <exports symbol='XML_REGEXP_COMPILE_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_IO_WRITE' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_PE_INTERNAL' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_MISSING' type='enum'/>
     <exports symbol='XML_ERR_NOTATION_NOT_STARTED' type='enum'/>
     <exports symbol='XML_ERR_INTERNAL_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_DERIVED_OK_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_DERIVED_OK_2_1' type='enum'/>
     <exports symbol='XML_IO_EBADMSG' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_INTERLEAVE' type='enum'/>
     <exports symbol='XML_ERR_DOCUMENT_EMPTY' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ELEM' type='enum'/>
     <exports symbol='XML_IO_NETWORK_ATTEMPT' type='enum'/>
     <exports symbol='XML_FROM_OUTPUT' type='enum'/>
     <exports symbol='XML_FROM_NAMESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_4' type='enum'/>
     <exports symbol='XML_XPTR_EVAL_FAILED' type='enum'/>
     <exports symbol='XML_IO_EBUSY' type='enum'/>
     <exports symbol='XML_ERR_ATTLIST_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_XINCLUDE_TEXT_FRAGMENT' type='enum'/>
     <exports symbol='XML_RNGP_INCLUDE_RECURSE' type='enum'/>
     <exports symbol='XML_ERR_INVALID_URI' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ENUM' type='enum'/>
     <exports symbol='XML_SCHEMAV_INVALIDATTR' type='enum'/>
     <exports symbol='XML_SCHEMAP_FAILED_LOAD' type='enum'/>
     <exports symbol='XML_IO_ESRCH' type='enum'/>
     <exports symbol='XML_IO_ENXIO' type='enum'/>
     <exports symbol='XML_FROM_XPOINTER' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_4' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_WITHOUT_VALUE' type='enum'/>
     <exports symbol='XML_RNGP_TEXT_HAS_CHILD' type='enum'/>
     <exports symbol='XML_DTD_ELEM_REDEFINED' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTNILLABLE' type='enum'/>
     <exports symbol='XML_SCHEMAP_ELEM_DEFAULT_FIXED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_ELEMENT' type='enum'/>
     <exports symbol='XML_RNGP_REF_NO_DEF' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED' type='enum'/>
     <exports symbol='XML_ERR_NOT_WELL_BALANCED' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_5' type='enum'/>
     <exports symbol='XML_NS_ERR_XML_NAMESPACE' type='enum'/>
     <exports symbol='XML_ERR_INVALID_CHARREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_ERR_INVALID_CHAR' type='enum'/>
     <exports symbol='XML_RNGP_FOREIGN_ELEMENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_DEF_AND_PREFIX' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME' type='enum'/>
     <exports symbol='XML_RNGP_NSNAME_NO_NS' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_2_2' type='enum'/>
     <exports symbol='XML_ERR_MIXED_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNION_NOT_EXPRESSIBLE' type='enum'/>
     <exports symbol='XML_SCHEMAP_INTERNAL' type='enum'/>
     <exports symbol='XML_SCHEMAV_INVALIDELEM' type='enum'/>
     <exports symbol='XML_NS_ERR_QNAME' type='enum'/>
     <exports symbol='XML_XPATH_VARIABLE_REF_ERROR' type='enum'/>
     <exports symbol='XML_DTD_NOTATION_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_ERR_INVALID_ENCODING' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOT_SCHEMA' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_ARITY' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_INCLUDE' type='enum'/>
     <exports symbol='XML_ERR_TAG_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_RNGP_XMLNS_NAME' type='enum'/>
     <exports symbol='XML_ERR_LTSLASH_REQUIRED' type='enum'/>
     <exports symbol='XML_DTD_XMLID_VALUE' type='enum'/>
     <exports symbol='XML_DTD_MIXED_CORRUPT' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_CREATE_FAILED' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_BOUNDARY' type='enum'/>
     <exports symbol='XML_SCHEMAP_ELEMFORMDEFAULT_VALUE' type='enum'/>
     <exports symbol='XML_ERR_PEREF_IN_INT_SUBSET' type='enum'/>
     <exports symbol='XML_RNGP_DATA_CONTENT' type='enum'/>
     <exports symbol='XML_ERR_STRING_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3' type='enum'/>
     <exports symbol='XML_TREE_INVALID_DEC' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_MULTIPLE' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOTYPE_NOREF' type='enum'/>
     <exports symbol='XML_IO_EDEADLK' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_1' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE' type='enum'/>
     <exports symbol='XML_IO_EINVAL' type='enum'/>
     <exports symbol='XML_IO_ENAMETOOLONG' type='enum'/>
     <exports symbol='XML_ERR_PEREF_IN_PROLOG' type='enum'/>
     <exports symbol='XML_RNGP_EXTERNAL_REF_FAILURE' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOROLLBACK' type='enum'/>
     <exports symbol='XML_FROM_FTP' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_TEXT' type='enum'/>
     <exports symbol='XML_SAVE_NOT_UTF8' type='enum'/>
     <exports symbol='XML_DTD_INVALID_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_4_1' type='enum'/>
     <exports symbol='XML_RNGP_TYPE_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1' type='enum'/>
     <exports symbol='XML_ERR_TAG_NAME_MISMATCH' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3' type='enum'/>
     <exports symbol='XML_ERR_ENCODING_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_REDEFINED' type='enum'/>
     <exports symbol='XML_IO_ECONNREFUSED' type='enum'/>
     <exports symbol='XML_ERR_XMLDECL_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_ATTRGROUP' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_SIMPLETYPE_NONAME' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_GROUP_CHILD' type='enum'/>
     <exports symbol='XML_XINCLUDE_BUILD_FAILED' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_ERR_PEREF_NO_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_4_2' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_AT_EOF' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD' type='enum'/>
     <exports symbol='XML_NS_ERR_ATTRIBUTE_REDEFINED' type='enum'/>
     <exports symbol='XML_ERR_NAME_REQUIRED' type='enum'/>
     <exports symbol='XML_IO_ETIMEDOUT' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_CHILDREN' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_NAME_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAV_WRONGELEM' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' type='enum'/>
     <exports symbol='XML_SAVE_NO_DOCTYPE' type='enum'/>
     <exports symbol='XML_RNGP_CHOICE_CONTENT' type='enum'/>
     <exports symbol='XML_RNGP_EMPTY_CONSTRUCT' type='enum'/>
     <exports symbol='XML_RNGP_FORBIDDEN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_ERR_ELEMCONTENT_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_4' type='enum'/>
     <exports symbol='XML_ERR_URI_FRAGMENT' type='enum'/>
     <exports symbol='XML_IO_ESPIPE' type='enum'/>
     <exports symbol='XML_DTD_NO_DOC' type='enum'/>
     <exports symbol='XML_IO_EEXIST' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_MG_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_FROM_SCHEMASV' type='enum'/>
     <exports symbol='XML_FROM_SCHEMASP' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_3_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_1' type='enum'/>
     <exports symbol='XML_ERR_MIXED_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_PREFIX_UNDEFINED' type='enum'/>
     <exports symbol='XML_DTD_STANDALONE_WHITE_SPACE' type='enum'/>
     <exports symbol='XML_HTTP_USE_IP' type='enum'/>
     <exports symbol='XML_IO_ENCODER' type='enum'/>
     <exports symbol='XML_IO_ENOTEMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' type='enum'/>
     <exports symbol='XML_RNGP_START_CHOICE_AND_INTERLEAVE' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_3' type='enum'/>
     <exports symbol='XML_XINCLUDE_INVALID_CHAR' type='enum'/>
     <exports symbol='XML_RNGP_TYPE_NOT_FOUND' type='enum'/>
     <exports symbol='XML_IO_BUFFER_FULL' type='enum'/>
     <exports symbol='xmlErrorPtr' type='typedef'/>
     <exports symbol='xmlErrorLevel' type='typedef'/>
     <exports symbol='xmlParserErrors' type='typedef'/>
     <exports symbol='xmlErrorDomain' type='typedef'/>
     <exports symbol='xmlError' type='typedef'/>
     <exports symbol='_xmlError' type='struct'/>
     <exports symbol='xmlParserValidityError' type='function'/>
     <exports symbol='xmlGenericErrorFunc' type='function'/>
     <exports symbol='xmlSetGenericErrorFunc' type='function'/>
     <exports symbol='xmlParserPrintFileInfo' type='function'/>
     <exports symbol='xmlCtxtResetLastError' type='function'/>
     <exports symbol='xmlResetLastError' type='function'/>
     <exports symbol='initGenericErrorDefaultFunc' type='function'/>
     <exports symbol='xmlCopyError' type='function'/>
     <exports symbol='xmlParserValidityWarning' type='function'/>
     <exports symbol='xmlParserPrintFileContext' type='function'/>
     <exports symbol='xmlGetLastError' type='function'/>
     <exports symbol='xmlParserWarning' type='function'/>
     <exports symbol='xmlStructuredErrorFunc' type='function'/>
     <exports symbol='xmlSetStructuredErrorFunc' type='function'/>
     <exports symbol='xmlResetError' type='function'/>
     <exports symbol='xmlParserError' type='function'/>
     <exports symbol='xmlCtxtGetLastError' type='function'/>
    </file>
    <file name='xmlexports'>
     <summary>macros for marking symbols as exportable/importable.</summary>
     <description>macros for marking symbols as exportable/importable. </description>
     <author>Igor Zlatovic &lt;igor@zlatkovic.com&gt; </author>
     <exports symbol='XMLCALL' type='macro'/>
     <exports symbol='_REENTRANT' type='macro'/>
     <exports symbol='XMLPUBFUN' type='macro'/>
     <exports symbol='XMLPUBVAR' type='macro'/>
     <exports symbol='LIBXML_DLL_IMPORT' type='macro'/>
    </file>
    <file name='xmlmemory'>
     <summary>interface for the memory allocator</summary>
     <description>provides interfaces for the memory allocator, including debugging capabilities. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlRealloc' type='macro'/>
     <exports symbol='xmlMalloc' type='macro'/>
     <exports symbol='xmlMallocAtomic' type='macro'/>
     <exports symbol='DEBUG_MEMORY' type='macro'/>
     <exports symbol='xmlMemStrdup' type='macro'/>
     <exports symbol='xmlMemRealloc' type='function'/>
     <exports symbol='xmlMemMalloc' type='function'/>
     <exports symbol='xmlGcMemGet' type='function'/>
     <exports symbol='xmlStrdupFunc' type='function'/>
     <exports symbol='xmlFreeFunc' type='function'/>
     <exports symbol='xmlInitMemory' type='function'/>
     <exports symbol='xmlMemFree' type='function'/>
     <exports symbol='xmlMallocAtomicLoc' type='function'/>
     <exports symbol='xmlReallocLoc' type='function'/>
     <exports symbol='xmlCleanupMemory' type='function'/>
     <exports symbol='xmlMemUsed' type='function'/>
     <exports symbol='xmlMemSetup' type='function'/>
     <exports symbol='xmlMemGet' type='function'/>
     <exports symbol='xmlMemoryDump' type='function'/>
     <exports symbol='xmlMallocLoc' type='function'/>
     <exports symbol='xmlReallocFunc' type='function'/>
     <exports symbol='xmlMallocFunc' type='function'/>
     <exports symbol='xmlMemDisplay' type='function'/>
     <exports symbol='xmlGcMemSetup' type='function'/>
     <exports symbol='xmlMemShow' type='function'/>
     <exports symbol='xmlMemoryStrdup' type='function'/>
     <exports symbol='xmlMemStrdupLoc' type='function'/>
    </file>
    <file name='xmlreader'>
     <summary>the XMLReader implementation</summary>
     <description>API of the XML streaming API based on C# interfaces. </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_READER_TYPE_DOCUMENT_FRAGMENT' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_INITIAL' type='enum'/>
     <exports symbol='XML_READER_TYPE_COMMENT' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_ERROR' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_EOF' type='enum'/>
     <exports symbol='XML_PARSER_LOADDTD' type='enum'/>
     <exports symbol='XML_READER_TYPE_ENTITY' type='enum'/>
     <exports symbol='XML_READER_TYPE_SIGNIFICANT_WHITESPACE' type='enum'/>
     <exports symbol='XML_READER_TYPE_TEXT' type='enum'/>
     <exports symbol='XML_READER_TYPE_PROCESSING_INSTRUCTION' type='enum'/>
     <exports symbol='XML_READER_TYPE_END_ENTITY' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_READING' type='enum'/>
     <exports symbol='XML_READER_TYPE_XML_DECLARATION' type='enum'/>
     <exports symbol='XML_PARSER_DEFAULTATTRS' type='enum'/>
     <exports symbol='XML_READER_TYPE_NONE' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_CLOSED' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_VALIDITY_ERROR' type='enum'/>
     <exports symbol='XML_PARSER_VALIDATE' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_WARNING' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_VALIDITY_WARNING' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_ERROR' type='enum'/>
     <exports symbol='XML_READER_TYPE_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_READER_TYPE_ELEMENT' type='enum'/>
     <exports symbol='XML_READER_TYPE_DOCUMENT' type='enum'/>
     <exports symbol='XML_READER_TYPE_DOCUMENT_TYPE' type='enum'/>
     <exports symbol='XML_READER_TYPE_CDATA' type='enum'/>
     <exports symbol='XML_READER_TYPE_END_ELEMENT' type='enum'/>
     <exports symbol='XML_READER_TYPE_WHITESPACE' type='enum'/>
     <exports symbol='XML_READER_TYPE_NOTATION' type='enum'/>
     <exports symbol='XML_PARSER_SUBST_ENTITIES' type='enum'/>
     <exports symbol='XML_READER_TYPE_ENTITY_REFERENCE' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_INTERACTIVE' type='enum'/>
     <exports symbol='xmlParserProperties' type='typedef'/>
     <exports symbol='xmlTextReaderPtr' type='typedef'/>
     <exports symbol='xmlTextReaderMode' type='typedef'/>
     <exports symbol='xmlParserSeverities' type='typedef'/>
     <exports symbol='xmlTextReader' type='typedef'/>
     <exports symbol='xmlTextReaderLocatorPtr' type='typedef'/>
     <exports symbol='xmlReaderTypes' type='typedef'/>
     <exports symbol='xmlTextReaderBaseUri' type='function'/>
     <exports symbol='xmlTextReaderValue' type='function'/>
     <exports symbol='xmlNewTextReaderFilename' type='function'/>
     <exports symbol='xmlTextReaderRead' type='function'/>
     <exports symbol='xmlTextReaderReadString' type='function'/>
     <exports symbol='xmlTextReaderMoveToAttributeNo' type='function'/>
     <exports symbol='xmlTextReaderDepth' type='function'/>
     <exports symbol='xmlTextReaderErrorFunc' type='function'/>
     <exports symbol='xmlTextReaderHasAttributes' type='function'/>
     <exports symbol='xmlReaderNewWalker' type='function'/>
     <exports symbol='xmlTextReaderSetErrorHandler' type='function'/>
     <exports symbol='xmlTextReaderLocatorLineNumber' type='function'/>
     <exports symbol='xmlTextReaderLookupNamespace' type='function'/>
     <exports symbol='xmlTextReaderMoveToAttributeNs' type='function'/>
     <exports symbol='xmlTextReaderNext' type='function'/>
     <exports symbol='xmlTextReaderReadAttributeValue' type='function'/>
     <exports symbol='xmlTextReaderIsDefault' type='function'/>
     <exports symbol='xmlReaderForFile' type='function'/>
     <exports symbol='xmlTextReaderConstNamespaceUri' type='function'/>
     <exports symbol='xmlTextReaderMoveToNextAttribute' type='function'/>
     <exports symbol='xmlTextReaderQuoteChar' type='function'/>
     <exports symbol='xmlTextReaderReadOuterXml' type='function'/>
     <exports symbol='xmlTextReaderNamespaceUri' type='function'/>
     <exports symbol='xmlTextReaderExpand' type='function'/>
     <exports symbol='xmlReaderNewDoc' type='function'/>
     <exports symbol='xmlTextReaderXmlLang' type='function'/>
     <exports symbol='xmlReaderForDoc' type='function'/>
     <exports symbol='xmlReaderNewIO' type='function'/>
     <exports symbol='xmlTextReaderMoveToElement' type='function'/>
     <exports symbol='xmlTextReaderSetStructuredErrorHandler' type='function'/>
     <exports symbol='xmlTextReaderClose' type='function'/>
     <exports symbol='xmlTextReaderReadInnerXml' type='function'/>
     <exports symbol='xmlReaderWalker' type='function'/>
     <exports symbol='xmlReaderForIO' type='function'/>
     <exports symbol='xmlTextReaderIsValid' type='function'/>
     <exports symbol='xmlTextReaderConstXmlLang' type='function'/>
     <exports symbol='xmlTextReaderConstString' type='function'/>
     <exports symbol='xmlTextReaderNodeType' type='function'/>
     <exports symbol='xmlTextReaderNormalization' type='function'/>
     <exports symbol='xmlTextReaderGetErrorHandler' type='function'/>
     <exports symbol='xmlTextReaderConstPrefix' type='function'/>
     <exports symbol='xmlTextReaderGetParserProp' type='function'/>
     <exports symbol='xmlTextReaderGetRemainder' type='function'/>
     <exports symbol='xmlReaderNewFile' type='function'/>
     <exports symbol='xmlFreeTextReader' type='function'/>
     <exports symbol='xmlTextReaderMoveToAttribute' type='function'/>
     <exports symbol='xmlTextReaderRelaxNGSetSchema' type='function'/>
     <exports symbol='xmlTextReaderName' type='function'/>
     <exports symbol='xmlReaderNewFd' type='function'/>
     <exports symbol='xmlTextReaderNextSibling' type='function'/>
     <exports symbol='xmlTextReaderRelaxNGValidate' type='function'/>
     <exports symbol='xmlTextReaderIsEmptyElement' type='function'/>
     <exports symbol='xmlTextReaderCurrentDoc' type='function'/>
     <exports symbol='xmlReaderForMemory' type='function'/>
     <exports symbol='xmlTextReaderConstBaseUri' type='function'/>
     <exports symbol='xmlReaderForFd' type='function'/>
     <exports symbol='xmlTextReaderMoveToFirstAttribute' type='function'/>
     <exports symbol='xmlTextReaderPrefix' type='function'/>
     <exports symbol='xmlTextReaderPreservePattern' type='function'/>
     <exports symbol='xmlTextReaderLocatorBaseURI' type='function'/>
     <exports symbol='xmlTextReaderGetAttribute' type='function'/>
     <exports symbol='xmlReaderNewMemory' type='function'/>
     <exports symbol='xmlTextReaderConstValue' type='function'/>
     <exports symbol='xmlNewTextReader' type='function'/>
     <exports symbol='xmlTextReaderGetAttributeNo' type='function'/>
     <exports symbol='xmlTextReaderLocalName' type='function'/>
     <exports symbol='xmlTextReaderGetAttributeNs' type='function'/>
     <exports symbol='xmlTextReaderConstName' type='function'/>
     <exports symbol='xmlTextReaderHasValue' type='function'/>
     <exports symbol='xmlTextReaderPreserve' type='function'/>
     <exports symbol='xmlTextReaderAttributeCount' type='function'/>
     <exports symbol='xmlTextReaderReadState' type='function'/>
     <exports symbol='xmlTextReaderCurrentNode' type='function'/>
     <exports symbol='xmlTextReaderConstLocalName' type='function'/>
     <exports symbol='xmlTextReaderSetParserProp' type='function'/>
    </file>
    <file name='xmlregexp'>
     <summary>regular expressions handling</summary>
     <description>basic API for libxml regular expressions handling used for XML Schemas and validation. </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlRegExecCtxtPtr' type='typedef'/>
     <exports symbol='xmlRegexp' type='typedef'/>
     <exports symbol='xmlRegexpPtr' type='typedef'/>
     <exports symbol='xmlRegExecCtxt' type='typedef'/>
     <exports symbol='xmlRegFreeExecCtxt' type='function'/>
     <exports symbol='xmlRegexpCompile' type='function'/>
     <exports symbol='xmlRegExecCallbacks' type='function'/>
     <exports symbol='xmlRegNewExecCtxt' type='function'/>
     <exports symbol='xmlRegexpIsDeterminist' type='function'/>
     <exports symbol='xmlRegExecPushString2' type='function'/>
     <exports symbol='xmlRegExecPushString' type='function'/>
     <exports symbol='xmlRegexpExec' type='function'/>
     <exports symbol='xmlRegFreeRegexp' type='function'/>
     <exports symbol='xmlRegexpPrint' type='function'/>
    </file>
    <file name='xmlsave'>
     <summary>the XML document serializer</summary>
     <description>API to save document or subtree of document </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlSaveCtxt' type='typedef'/>
     <exports symbol='xmlSaveCtxtPtr' type='typedef'/>
     <exports symbol='xmlSaveToIO' type='function'/>
     <exports symbol='xmlSaveToFilename' type='function'/>
     <exports symbol='xmlSaveToFd' type='function'/>
     <exports symbol='xmlSaveClose' type='function'/>
     <exports symbol='xmlSaveDoc' type='function'/>
     <exports symbol='xmlSaveFlush' type='function'/>
     <exports symbol='xmlSaveSetAttrEscape' type='function'/>
     <exports symbol='xmlSaveSetEscape' type='function'/>
     <exports symbol='xmlSaveTree' type='function'/>
    </file>
    <file name='xmlschemas'>
     <summary>incomplete XML Schemas structure implementation</summary>
     <description>interface to the XML Schemas handling and schema validity checking, it is incomplete right now. </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_SCHEMAS_ERR_NOTNILLABLE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_OK' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOROLLBACK' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_XXX' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTTOPLEVEL' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTEMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOROOT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_INVALIDELEM' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ISABSTRACT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ATTRINVALID' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ATTRUNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_EXTRACONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTDETERMINIST' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTSIMPLE' type='enum'/>
     <exports symbol='XML_SCHEMA_VAL_VC_I_CREATE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_INTERNAL' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_UNDECLAREDELEM' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_WRONGELEM' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_INVALIDATTR' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_HAVEDEFAULT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_CONSTRUCT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_FACET' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ELEMCONT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTYPE' type='enum'/>
     <exports symbol='xmlSchemaPtr' type='typedef'/>
     <exports symbol='xmlSchemaParserCtxt' type='typedef'/>
     <exports symbol='xmlSchemaValidOption' type='typedef'/>
     <exports symbol='xmlSchemaValidCtxtPtr' type='typedef'/>
     <exports symbol='xmlSchemaParserCtxtPtr' type='typedef'/>
     <exports symbol='xmlSchema' type='typedef'/>
     <exports symbol='xmlSchemaValidError' type='typedef'/>
     <exports symbol='xmlSchemaValidCtxt' type='typedef'/>
     <exports symbol='xmlSchemaValidateStream' type='function'/>
     <exports symbol='xmlSchemaSetParserErrors' type='function'/>
     <exports symbol='xmlSchemaValidateOneElement' type='function'/>
     <exports symbol='xmlSchemaValidityWarningFunc' type='function'/>
     <exports symbol='xmlSchemaValidateDoc' type='function'/>
     <exports symbol='xmlSchemaNewDocParserCtxt' type='function'/>
     <exports symbol='xmlSchemaFree' type='function'/>
     <exports symbol='xmlSchemaDump' type='function'/>
     <exports symbol='xmlSchemaSetValidOptions' type='function'/>
     <exports symbol='xmlSchemaParse' type='function'/>
     <exports symbol='xmlSchemaNewMemParserCtxt' type='function'/>
     <exports symbol='xmlSchemaFreeParserCtxt' type='function'/>
     <exports symbol='xmlSchemaValidityErrorFunc' type='function'/>
     <exports symbol='xmlSchemaFreeValidCtxt' type='function'/>
     <exports symbol='xmlSchemaGetParserErrors' type='function'/>
     <exports symbol='xmlSchemaNewValidCtxt' type='function'/>
     <exports symbol='xmlSchemaSetValidErrors' type='function'/>
     <exports symbol='xmlSchemaGetValidErrors' type='function'/>
     <exports symbol='xmlSchemaNewParserCtxt' type='function'/>
     <exports symbol='xmlSchemaValidCtxtGetOptions' type='function'/>
    </file>
    <file name='xmlschemastypes'>
     <summary>implementation of XML Schema Datatypes</summary>
     <description>module providing the XML Schema Datatypes implementation both definition and validity checking </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlSchemaNewFacet' type='function'/>
     <exports symbol='xmlSchemaValPredefTypeNode' type='function'/>
     <exports symbol='xmlSchemaIsBuiltInTypeFacet' type='function'/>
     <exports symbol='xmlSchemaValidateLengthFacet' type='function'/>
     <exports symbol='xmlSchemaFreeFacet' type='function'/>
     <exports symbol='xmlSchemaGetBuiltInListSimpleTypeItemType' type='function'/>
     <exports symbol='xmlSchemaFreeValue' type='function'/>
     <exports symbol='xmlSchemaCompareValues' type='function'/>
     <exports symbol='xmlSchemaValidatePredefinedType' type='function'/>
     <exports symbol='xmlSchemaInitTypes' type='function'/>
     <exports symbol='xmlSchemaValidateFacet' type='function'/>
     <exports symbol='xmlSchemaValPredefTypeNodeNoNorm' type='function'/>
     <exports symbol='xmlSchemaValidateListSimpleTypeFacet' type='function'/>
     <exports symbol='xmlSchemaCleanupTypes' type='function'/>
     <exports symbol='xmlSchemaCollapseString' type='function'/>
     <exports symbol='xmlSchemaGetBuiltInType' type='function'/>
     <exports symbol='xmlSchemaGetFacetValueAsULong' type='function'/>
     <exports symbol='xmlSchemaGetPredefinedType' type='function'/>
     <exports symbol='xmlSchemaCheckFacet' type='function'/>
    </file>
    <file name='xmlstring'>
     <summary>set of routines to process strings</summary>
     <description>type and interfaces needed for the internal string handling of the library, especially UTF8 processing. </description>
     <author>Daniel Veillard </author>
     <exports symbol='BAD_CAST' type='macro'/>
     <exports symbol='xmlChar' type='typedef'/>
     <exports symbol='xmlStrcmp' type='function'/>
     <exports symbol='xmlStrncmp' type='function'/>
     <exports symbol='xmlUTF8Strloc' type='function'/>
     <exports symbol='xmlCharStrndup' type='function'/>
     <exports symbol='xmlStrsub' type='function'/>
     <exports symbol='xmlStrncat' type='function'/>
     <exports symbol='xmlGetUTF8Char' type='function'/>
     <exports symbol='xmlStrcasestr' type='function'/>
     <exports symbol='xmlStrcat' type='function'/>
     <exports symbol='xmlStrcasecmp' type='function'/>
     <exports symbol='xmlStrstr' type='function'/>
     <exports symbol='xmlStrPrintf' type='function'/>
     <exports symbol='xmlStrndup' type='function'/>
     <exports symbol='xmlStrVPrintf' type='function'/>
     <exports symbol='xmlUTF8Size' type='function'/>
     <exports symbol='xmlCheckUTF8' type='function'/>
     <exports symbol='xmlStrQEqual' type='function'/>
     <exports symbol='xmlStrncasecmp' type='function'/>
     <exports symbol='xmlUTF8Strlen' type='function'/>
     <exports symbol='xmlUTF8Strsub' type='function'/>
     <exports symbol='xmlStrncatNew' type='function'/>
     <exports symbol='xmlUTF8Strpos' type='function'/>
     <exports symbol='xmlStrEqual' type='function'/>
     <exports symbol='xmlStrlen' type='function'/>
     <exports symbol='xmlUTF8Charcmp' type='function'/>
     <exports symbol='xmlUTF8Strndup' type='function'/>
     <exports symbol='xmlUTF8Strsize' type='function'/>
     <exports symbol='xmlStrdup' type='function'/>
     <exports symbol='xmlCharStrdup' type='function'/>
     <exports symbol='xmlStrchr' type='function'/>
    </file>
    <file name='xmlunicode'>
     <summary>Unicode character APIs</summary>
     <description>API for the Unicode character APIs  This file is automatically generated from the UCS description files of the Unicode Character Database</description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlUCSIsBlockElements' type='function'/>
     <exports symbol='xmlUCSIsVariationSelectorsSupplement' type='function'/>
     <exports symbol='xmlUCSIsTags' type='function'/>
     <exports symbol='xmlUCSIsEnclosedAlphanumerics' type='function'/>
     <exports symbol='xmlUCSIsBopomofo' type='function'/>
     <exports symbol='xmlUCSIsSinhala' type='function'/>
     <exports symbol='xmlUCSIsDingbats' type='function'/>
     <exports symbol='xmlUCSIsLatinExtendedB' type='function'/>
     <exports symbol='xmlUCSIsCombiningHalfMarks' type='function'/>
     <exports symbol='xmlUCSIsSupplementalArrowsA' type='function'/>
     <exports symbol='xmlUCSIsLatinExtendedA' type='function'/>
     <exports symbol='xmlUCSIsYiRadicals' type='function'/>
     <exports symbol='xmlUCSIsCombiningDiacriticalMarks' type='function'/>
     <exports symbol='xmlUCSIsCombiningMarksforSymbols' type='function'/>
     <exports symbol='xmlUCSIsHalfwidthandFullwidthForms' type='function'/>
     <exports symbol='xmlUCSIsBasicLatin' type='function'/>
     <exports symbol='xmlUCSIsOldItalic' type='function'/>
     <exports symbol='xmlUCSIsLimbu' type='function'/>
     <exports symbol='xmlUCSIsCat' type='function'/>
     <exports symbol='xmlUCSIsCatSo' type='function'/>
     <exports symbol='xmlUCSIsCatLu' type='function'/>
     <exports symbol='xmlUCSIsCatLt' type='function'/>
     <exports symbol='xmlUCSIsYiSyllables' type='function'/>
     <exports symbol='xmlUCSIsCatSk' type='function'/>
     <exports symbol='xmlUCSIsCatLo' type='function'/>
     <exports symbol='xmlUCSIsKhmerSymbols' type='function'/>
     <exports symbol='xmlUCSIsCatLm' type='function'/>
     <exports symbol='xmlUCSIsAlphabeticPresentationForms' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousTechnical' type='function'/>
     <exports symbol='xmlUCSIsMongolian' type='function'/>
     <exports symbol='xmlUCSIsUgaritic' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibilityIdeographsSupplement' type='function'/>
     <exports symbol='xmlUCSIsKannada' type='function'/>
     <exports symbol='xmlUCSIsMalayalam' type='function'/>
     <exports symbol='xmlUCSIsCypriotSyllabary' type='function'/>
     <exports symbol='xmlUCSIsTamil' type='function'/>
     <exports symbol='xmlUCSIsCatC' type='function'/>
     <exports symbol='xmlUCSIsUnifiedCanadianAboriginalSyllabics' type='function'/>
     <exports symbol='xmlUCSIsCatN' type='function'/>
     <exports symbol='xmlUCSIsCatLl' type='function'/>
     <exports symbol='xmlUCSIsCatL' type='function'/>
     <exports symbol='xmlUCSIsCatM' type='function'/>
     <exports symbol='xmlUCSIsTelugu' type='function'/>
     <exports symbol='xmlUCSIsMathematicalAlphanumericSymbols' type='function'/>
     <exports symbol='xmlUCSIsLowSurrogates' type='function'/>
     <exports symbol='xmlUCSIsOsmanya' type='function'/>
     <exports symbol='xmlUCSIsGreek' type='function'/>
     <exports symbol='xmlUCSIsEthiopic' type='function'/>
     <exports symbol='xmlUCSIsCatP' type='function'/>
     <exports symbol='xmlUCSIsBoxDrawing' type='function'/>
     <exports symbol='xmlUCSIsGeorgian' type='function'/>
     <exports symbol='xmlUCSIsOgham' type='function'/>
     <exports symbol='xmlUCSIsCatZ' type='function'/>
     <exports symbol='xmlUCSIsGreekandCoptic' type='function'/>
     <exports symbol='xmlUCSIsIPAExtensions' type='function'/>
     <exports symbol='xmlUCSIsByzantineMusicalSymbols' type='function'/>
     <exports symbol='xmlUCSIsKangxiRadicals' type='function'/>
     <exports symbol='xmlUCSIsEnclosedCJKLettersandMonths' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibilityForms' type='function'/>
     <exports symbol='xmlUCSIsCatCs' type='function'/>
     <exports symbol='xmlUCSIsHanunoo' type='function'/>
     <exports symbol='xmlUCSIsGreekExtended' type='function'/>
     <exports symbol='xmlUCSIsCJKRadicalsSupplement' type='function'/>
     <exports symbol='xmlUCSIsArmenian' type='function'/>
     <exports symbol='xmlUCSIsCatCf' type='function'/>
     <exports symbol='xmlUCSIsSmallFormVariants' type='function'/>
     <exports symbol='xmlUCSIsHangulCompatibilityJamo' type='function'/>
     <exports symbol='xmlUCSIsSupplementaryPrivateUseAreaB' type='function'/>
     <exports symbol='xmlUCSIsCatCc' type='function'/>
     <exports symbol='xmlUCSIsSupplementaryPrivateUseAreaA' type='function'/>
     <exports symbol='xmlUCSIsCatCo' type='function'/>
     <exports symbol='xmlUCSIsCherokee' type='function'/>
     <exports symbol='xmlUCSIsCatPe' type='function'/>
     <exports symbol='xmlUCSIsKatakanaPhoneticExtensions' type='function'/>
     <exports symbol='xmlUCSIsLinearBSyllabary' type='function'/>
     <exports symbol='xmlUCSIsGothic' type='function'/>
     <exports symbol='xmlUCSIsLetterlikeSymbols' type='function'/>
     <exports symbol='xmlUCSIsKhmer' type='function'/>
     <exports symbol='xmlUCSIsCatNd' type='function'/>
     <exports symbol='xmlUCSIsPhoneticExtensions' type='function'/>
     <exports symbol='xmlUCSIsTaiLe' type='function'/>
     <exports symbol='xmlUCSIsArabic' type='function'/>
     <exports symbol='xmlUCSIsHebrew' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousMathematicalSymbolsB' type='function'/>
     <exports symbol='xmlUCSIsCombiningDiacriticalMarksforSymbols' type='function'/>
     <exports symbol='xmlUCSIsVariationSelectors' type='function'/>
     <exports symbol='xmlUCSIsArabicPresentationFormsA' type='function'/>
     <exports symbol='xmlUCSIsCatZp' type='function'/>
     <exports symbol='xmlUCSIsCatZs' type='function'/>
     <exports symbol='xmlUCSIsArabicPresentationFormsB' type='function'/>
     <exports symbol='xmlUCSIsGeometricShapes' type='function'/>
     <exports symbol='xmlUCSIsCatZl' type='function'/>
     <exports symbol='xmlUCSIsTagalog' type='function'/>
     <exports symbol='xmlUCSIsSpecials' type='function'/>
     <exports symbol='xmlUCSIsGujarati' type='function'/>
     <exports symbol='xmlUCSIsLinearBIdeograms' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousMathematicalSymbolsA' type='function'/>
     <exports symbol='xmlUCSIsBlock' type='function'/>
     <exports symbol='xmlUCSIsBopomofoExtended' type='function'/>
     <exports symbol='xmlUCSIsThaana' type='function'/>
     <exports symbol='xmlUCSIsIdeographicDescriptionCharacters' type='function'/>
     <exports symbol='xmlUCSIsHangulJamo' type='function'/>
     <exports symbol='xmlUCSIsShavian' type='function'/>
     <exports symbol='xmlUCSIsTagbanwa' type='function'/>
     <exports symbol='xmlUCSIsGeneralPunctuation' type='function'/>
     <exports symbol='xmlUCSIsCyrillic' type='function'/>
     <exports symbol='xmlUCSIsArrows' type='function'/>
     <exports symbol='xmlUCSIsControlPictures' type='function'/>
     <exports symbol='xmlUCSIsYijingHexagramSymbols' type='function'/>
     <exports symbol='xmlUCSIsCJKUnifiedIdeographs' type='function'/>
     <exports symbol='xmlUCSIsCatNl' type='function'/>
     <exports symbol='xmlUCSIsCatNo' type='function'/>
     <exports symbol='xmlUCSIsDeseret' type='function'/>
     <exports symbol='xmlUCSIsCatSm' type='function'/>
     <exports symbol='xmlUCSIsBengali' type='function'/>
     <exports symbol='xmlUCSIsPrivateUse' type='function'/>
     <exports symbol='xmlUCSIsMusicalSymbols' type='function'/>
     <exports symbol='xmlUCSIsBuhid' type='function'/>
     <exports symbol='xmlUCSIsHangulSyllables' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibility' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibilityIdeographs' type='function'/>
     <exports symbol='xmlUCSIsOpticalCharacterRecognition' type='function'/>
     <exports symbol='xmlUCSIsLatin1Supplement' type='function'/>
     <exports symbol='xmlUCSIsAegeanNumbers' type='function'/>
     <exports symbol='xmlUCSIsKatakana' type='function'/>
     <exports symbol='xmlUCSIsCJKSymbolsandPunctuation' type='function'/>
     <exports symbol='xmlUCSIsTaiXuanJingSymbols' type='function'/>
     <exports symbol='xmlUCSIsGurmukhi' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousSymbols' type='function'/>
     <exports symbol='xmlUCSIsDevanagari' type='function'/>
     <exports symbol='xmlUCSIsPrivateUseArea' type='function'/>
     <exports symbol='xmlUCSIsMathematicalOperators' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousSymbolsandArrows' type='function'/>
     <exports symbol='xmlUCSIsSupplementalArrowsB' type='function'/>
     <exports symbol='xmlUCSIsCurrencySymbols' type='function'/>
     <exports symbol='xmlUCSIsNumberForms' type='function'/>
     <exports symbol='xmlUCSIsTibetan' type='function'/>
     <exports symbol='xmlUCSIsSupplementalMathematicalOperators' type='function'/>
     <exports symbol='xmlUCSIsCJKUnifiedIdeographsExtensionA' type='function'/>
     <exports symbol='xmlUCSIsKanbun' type='function'/>
     <exports symbol='xmlUCSIsCJKUnifiedIdeographsExtensionB' type='function'/>
     <exports symbol='xmlUCSIsThai' type='function'/>
     <exports symbol='xmlUCSIsSpacingModifierLetters' type='function'/>
     <exports symbol='xmlUCSIsRunic' type='function'/>
     <exports symbol='xmlUCSIsCatSc' type='function'/>
     <exports symbol='xmlUCSIsCatPc' type='function'/>
     <exports symbol='xmlUCSIsCatMc' type='function'/>
     <exports symbol='xmlUCSIsCatPf' type='function'/>
     <exports symbol='xmlUCSIsCyrillicSupplement' type='function'/>
     <exports symbol='xmlUCSIsCatPd' type='function'/>
     <exports symbol='xmlUCSIsMyanmar' type='function'/>
     <exports symbol='xmlUCSIsCatPi' type='function'/>
     <exports symbol='xmlUCSIsHiragana' type='function'/>
     <exports symbol='xmlUCSIsCatPo' type='function'/>
     <exports symbol='xmlUCSIsHighPrivateUseSurrogates' type='function'/>
     <exports symbol='xmlUCSIsLatinExtendedAdditional' type='function'/>
     <exports symbol='xmlUCSIsCatPs' type='function'/>
     <exports symbol='xmlUCSIsSyriac' type='function'/>
     <exports symbol='xmlUCSIsSuperscriptsandSubscripts' type='function'/>
     <exports symbol='xmlUCSIsHighSurrogates' type='function'/>
     <exports symbol='xmlUCSIsCatMn' type='function'/>
     <exports symbol='xmlUCSIsLao' type='function'/>
     <exports symbol='xmlUCSIsOriya' type='function'/>
     <exports symbol='xmlUCSIsBraillePatterns' type='function'/>
     <exports symbol='xmlUCSIsCatMe' type='function'/>
     <exports symbol='xmlUCSIsCatS' type='function'/>
    </file>
    <file name='xmlversion'>
     <summary>compile-time version informations</summary>
     <description>compile-time version informations for the XML library </description>
     <author>Daniel Veillard </author>
     <exports symbol='LIBXML_VERSION_EXTRA' type='macro'/>
     <exports symbol='LIBXML_DOCB_ENABLED' type='macro'/>
     <exports symbol='LIBXML_CATALOG_ENABLED' type='macro'/>
     <exports symbol='LIBXML_LEGACY_ENABLED' type='macro'/>
     <exports symbol='LIBXML_REGEXP_ENABLED' type='macro'/>
     <exports symbol='LIBXML_VERSION_STRING' type='macro'/>
     <exports symbol='LIBXML_XPTR_ENABLED' type='macro'/>
     <exports symbol='LIBXML_READER_ENABLED' type='macro'/>
     <exports symbol='LIBXML_ICONV_ENABLED' type='macro'/>
     <exports symbol='LIBXML_HTML_ENABLED' type='macro'/>
     <exports symbol='LIBXML_DOTTED_VERSION' type='macro'/>
     <exports symbol='LIBXML_UNICODE_ENABLED' type='macro'/>
     <exports symbol='LIBXML_ISO8859X_ENABLED' type='macro'/>
     <exports symbol='LIBXML_DEBUG_ENABLED' type='macro'/>
     <exports symbol='LIBXML_XINCLUDE_ENABLED' type='macro'/>
     <exports symbol='LIBXML_FTP_ENABLED' type='macro'/>
     <exports symbol='LIBXML_AUTOMATA_ENABLED' type='macro'/>
     <exports symbol='ATTRIBUTE_UNUSED' type='macro'/>
     <exports symbol='LIBXML_WRITER_ENABLED' type='macro'/>
     <exports symbol='LIBXML_PUSH_ENABLED' type='macro'/>
     <exports symbol='WITHOUT_TRIO' type='macro'/>
     <exports symbol='LIBXML_C14N_ENABLED' type='macro'/>
     <exports symbol='LIBXML_SCHEMAS_ENABLED' type='macro'/>
     <exports symbol='DEBUG_MEMORY_LOCATION' type='macro'/>
     <exports symbol='LIBXML_SAX1_ENABLED' type='macro'/>
     <exports symbol='LIBXML_TEST_VERSION' type='macro'/>
     <exports symbol='LIBXML_HTTP_ENABLED' type='macro'/>
     <exports symbol='LIBXML_OUTPUT_ENABLED' type='macro'/>
     <exports symbol='WITH_TRIO' type='macro'/>
     <exports symbol='LIBXML_THREAD_ENABLED' type='macro'/>
     <exports symbol='LIBXML_XPATH_ENABLED' type='macro'/>
     <exports symbol='LIBXML_VERSION' type='macro'/>
     <exports symbol='LIBXML_VALID_ENABLED' type='macro'/>
     <exports symbol='LIBXML_TREE_ENABLED' type='macro'/>
     <exports symbol='LIBXML_PATTERN_ENABLED' type='macro'/>
     <exports symbol='xmlCheckVersion' type='function'/>
    </file>
    <file name='xmlwriter'>
     <summary>text writing API for XML</summary>
     <description>text writing API for XML </description>
     <author>Alfred Mickautsch &lt;alfred@mickautsch.de&gt; </author>
     <exports symbol='xmlTextWriterWriteProcessingInstruction' type='macro'/>
     <exports symbol='xmlTextWriterWriteDocType' type='macro'/>
     <exports symbol='xmlTextWriter' type='typedef'/>
     <exports symbol='xmlTextWriterPtr' type='typedef'/>
     <exports symbol='xmlTextWriterStartDocument' type='function'/>
     <exports symbol='xmlTextWriterEndPI' type='function'/>
     <exports symbol='xmlTextWriterWriteBase64' type='function'/>
     <exports symbol='xmlTextWriterSetIndentString' type='function'/>
     <exports symbol='xmlTextWriterStartAttribute' type='function'/>
     <exports symbol='xmlTextWriterEndComment' type='function'/>
     <exports symbol='xmlTextWriterWriteRawLen' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDExternalEntityContents' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatCDATA' type='function'/>
     <exports symbol='xmlTextWriterStartAttributeNS' type='function'/>
     <exports symbol='xmlNewTextWriterPushParser' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatAttributeNS' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatPI' type='function'/>
     <exports symbol='xmlTextWriterWriteBinHex' type='function'/>
     <exports symbol='xmlTextWriterEndAttribute' type='function'/>
     <exports symbol='xmlTextWriterSetIndent' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatPI' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDAttlist' type='function'/>
     <exports symbol='xmlTextWriterStartComment' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatDTD' type='function'/>
     <exports symbol='xmlTextWriterEndCDATA' type='function'/>
     <exports symbol='xmlTextWriterStartElementNS' type='function'/>
     <exports symbol='xmlTextWriterEndDTDEntity' type='function'/>
     <exports symbol='xmlNewTextWriter' type='function'/>
     <exports symbol='xmlFreeTextWriter' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatDTDAttlist' type='function'/>
     <exports symbol='xmlTextWriterStartPI' type='function'/>
     <exports symbol='xmlTextWriterStartElement' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDExternalEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatRaw' type='function'/>
     <exports symbol='xmlTextWriterWritePI' type='function'/>
     <exports symbol='xmlTextWriterWriteCDATA' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatDTDInternalEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatAttribute' type='function'/>
     <exports symbol='xmlTextWriterEndDTDElement' type='function'/>
     <exports symbol='xmlTextWriterWriteComment' type='function'/>
     <exports symbol='xmlTextWriterWriteElement' type='function'/>
     <exports symbol='xmlTextWriterEndElement' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatComment' type='function'/>
     <exports symbol='xmlTextWriterStartCDATA' type='function'/>
     <exports symbol='xmlNewTextWriterFilename' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatElement' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatComment' type='function'/>
     <exports symbol='xmlTextWriterWriteAttributeNS' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatDTDInternalEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatRaw' type='function'/>
     <exports symbol='xmlTextWriterEndDocument' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatString' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDInternalEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatElementNS' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDNotation' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatElement' type='function'/>
     <exports symbol='xmlTextWriterWriteElementNS' type='function'/>
     <exports symbol='xmlTextWriterWriteString' type='function'/>
     <exports symbol='xmlTextWriterFullEndElement' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatAttributeNS' type='function'/>
     <exports symbol='xmlTextWriterFlush' type='function'/>
     <exports symbol='xmlTextWriterStartDTD' type='function'/>
     <exports symbol='xmlTextWriterWriteAttribute' type='function'/>
     <exports symbol='xmlNewTextWriterDoc' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatDTDElement' type='function'/>
     <exports symbol='xmlTextWriterEndDTDAttlist' type='function'/>
     <exports symbol='xmlNewTextWriterTree' type='function'/>
     <exports symbol='xmlNewTextWriterMemory' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatCDATA' type='function'/>
     <exports symbol='xmlTextWriterStartDTDAttlist' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatString' type='function'/>
     <exports symbol='xmlTextWriterEndDTD' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatDTD' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatDTDAttlist' type='function'/>
     <exports symbol='xmlTextWriterWriteRaw' type='function'/>
     <exports symbol='xmlTextWriterWriteDTDElement' type='function'/>
     <exports symbol='xmlTextWriterWriteDTD' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatAttribute' type='function'/>
     <exports symbol='xmlTextWriterStartDTDEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatDTDElement' type='function'/>
     <exports symbol='xmlTextWriterStartDTDElement' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatElementNS' type='function'/>
    </file>
    <file name='xpath'>
     <summary>XML Path Language implementation</summary>
     <description>API for the XML Path Language implementation  XML Path Language implementation XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer</description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlXPathNodeSetGetLength' type='macro'/>
     <exports symbol='xmlXPathNodeSetIsEmpty' type='macro'/>
     <exports symbol='xmlXPathNodeSetItem' type='macro'/>
     <exports symbol='XPATH_NUMBER_ERROR' type='enum'/>
     <exports symbol='XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
     <exports symbol='XPATH_BOOLEAN' type='enum'/>
     <exports symbol='XPATH_START_LITERAL_ERROR' type='enum'/>
     <exports symbol='XPATH_RANGE' type='enum'/>
     <exports symbol='XPTR_SYNTAX_ERROR' type='enum'/>
     <exports symbol='XPATH_LOCATIONSET' type='enum'/>
     <exports symbol='XPATH_INVALID_CHAR_ERROR' type='enum'/>
     <exports symbol='XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
     <exports symbol='XPATH_UNCLOSED_ERROR' type='enum'/>
     <exports symbol='XPATH_POINT' type='enum'/>
     <exports symbol='XPATH_INVALID_ARITY' type='enum'/>
     <exports symbol='XPATH_STRING' type='enum'/>
     <exports symbol='XPATH_EXPRESSION_OK' type='enum'/>
     <exports symbol='XPATH_NODESET' type='enum'/>
     <exports symbol='XPTR_SUB_RESOURCE_ERROR' type='enum'/>
     <exports symbol='XPATH_INVALID_PREDICATE_ERROR' type='enum'/>
     <exports symbol='XPATH_XSLT_TREE' type='enum'/>
     <exports symbol='XPATH_EXPR_ERROR' type='enum'/>
     <exports symbol='XPATH_VARIABLE_REF_ERROR' type='enum'/>
     <exports symbol='XPATH_INVALID_TYPE' type='enum'/>
     <exports symbol='XPATH_INVALID_CTXT_SIZE' type='enum'/>
     <exports symbol='XPATH_INVALID_CTXT_POSITION' type='enum'/>
     <exports symbol='XPATH_UNDEFINED' type='enum'/>
     <exports symbol='XPATH_MEMORY_ERROR' type='enum'/>
     <exports symbol='XPATH_UNFINISHED_LITERAL_ERROR' type='enum'/>
     <exports symbol='XPATH_NUMBER' type='enum'/>
     <exports symbol='XPATH_UNDEF_PREFIX_ERROR' type='enum'/>
     <exports symbol='XPATH_ENCODING_ERROR' type='enum'/>
     <exports symbol='XPATH_USERS' type='enum'/>
     <exports symbol='XPATH_INVALID_OPERAND' type='enum'/>
     <exports symbol='XPTR_RESOURCE_ERROR' type='enum'/>
     <exports symbol='xmlXPathObjectType' type='typedef'/>
     <exports symbol='xmlXPathVariablePtr' type='typedef'/>
     <exports symbol='xmlXPathContext' type='typedef'/>
     <exports symbol='xmlXPathFuncPtr' type='typedef'/>
     <exports symbol='xmlXPathObjectPtr' type='typedef'/>
     <exports symbol='xmlXPathTypePtr' type='typedef'/>
     <exports symbol='xmlXPathType' type='typedef'/>
     <exports symbol='xmlXPathAxisPtr' type='typedef'/>
     <exports symbol='xmlXPathFunct' type='typedef'/>
     <exports symbol='xmlXPathCompExprPtr' type='typedef'/>
     <exports symbol='xmlXPathError' type='typedef'/>
     <exports symbol='xmlXPathObject' type='typedef'/>
     <exports symbol='xmlXPathCompExpr' type='typedef'/>
     <exports symbol='xmlXPathContextPtr' type='typedef'/>
     <exports symbol='xmlXPathParserContextPtr' type='typedef'/>
     <exports symbol='xmlNodeSet' type='typedef'/>
     <exports symbol='xmlXPathVariable' type='typedef'/>
     <exports symbol='xmlXPathAxis' type='typedef'/>
     <exports symbol='xmlNodeSetPtr' type='typedef'/>
     <exports symbol='xmlXPathParserContext' type='typedef'/>
     <exports symbol='_xmlXPathFunct' type='struct'/>
     <exports symbol='_xmlXPathVariable' type='struct'/>
     <exports symbol='_xmlXPathObject' type='struct'/>
     <exports symbol='_xmlXPathParserContext' type='struct'/>
     <exports symbol='_xmlXPathContext' type='struct'/>
     <exports symbol='_xmlXPathAxis' type='struct'/>
     <exports symbol='_xmlXPathType' type='struct'/>
     <exports symbol='_xmlNodeSet' type='struct'/>
     <exports symbol='xmlXPathNAN' type='variable'/>
     <exports symbol='xmlXPathPINF' type='variable'/>
     <exports symbol='xmlXPathNINF' type='variable'/>
     <exports symbol='xmlXPathCastNodeSetToString' type='function'/>
     <exports symbol='xmlXPathCastNodeSetToBoolean' type='function'/>
     <exports symbol='xmlXPathCompiledEval' type='function'/>
     <exports symbol='xmlXPathCastNodeToString' type='function'/>
     <exports symbol='xmlXPathEvalExpression' type='function'/>
     <exports symbol='xmlXPathConvertString' type='function'/>
     <exports symbol='xmlXPathConvertBoolean' type='function'/>
     <exports symbol='xmlXPathInit' type='function'/>
     <exports symbol='xmlXPathCastStringToBoolean' type='function'/>
     <exports symbol='xmlXPathConvertFunc' type='function'/>
     <exports symbol='xmlXPathIsInf' type='function'/>
     <exports symbol='xmlXPathOrderDocElems' type='function'/>
     <exports symbol='xmlXPathFuncLookupFunc' type='function'/>
     <exports symbol='xmlXPathFreeNodeSetList' type='function'/>
     <exports symbol='xmlXPathCmpNodes' type='function'/>
     <exports symbol='xmlXPathCastBooleanToNumber' type='function'/>
     <exports symbol='xmlXPathCastToString' type='function'/>
     <exports symbol='xmlXPathCtxtCompile' type='function'/>
     <exports symbol='xmlXPathCastStringToNumber' type='function'/>
     <exports symbol='xmlXPathAxisFunc' type='function'/>
     <exports symbol='xmlXPathCastToNumber' type='function'/>
     <exports symbol='xmlXPathCastBooleanToString' type='function'/>
     <exports symbol='xmlXPathCastNodeToNumber' type='function'/>
     <exports symbol='xmlXPathCastNumberToBoolean' type='function'/>
     <exports symbol='xmlXPathFunction' type='function'/>
     <exports symbol='xmlXPathVariableLookupFunc' type='function'/>
     <exports symbol='xmlXPathEvalFunc' type='function'/>
     <exports symbol='xmlXPathFreeCompExpr' type='function'/>
     <exports symbol='xmlXPathObjectCopy' type='function'/>
     <exports symbol='xmlXPathNewContext' type='function'/>
     <exports symbol='xmlXPathEvalPredicate' type='function'/>
     <exports symbol='xmlXPathIsNaN' type='function'/>
     <exports symbol='xmlXPathConvertNumber' type='function'/>
     <exports symbol='xmlXPathCompile' type='function'/>
     <exports symbol='xmlXPathFreeObject' type='function'/>
     <exports symbol='xmlXPathNodeSetCreate' type='function'/>
     <exports symbol='xmlXPathFreeNodeSet' type='function'/>
     <exports symbol='xmlXPathCastNodeSetToNumber' type='function'/>
     <exports symbol='xmlXPathFreeContext' type='function'/>
     <exports symbol='xmlXPathEval' type='function'/>
     <exports symbol='xmlXPathCastNumberToString' type='function'/>
     <exports symbol='xmlXPathCastToBoolean' type='function'/>
    </file>
    <file name='xpathInternals'>
     <summary>internal interfaces for XML Path Language implementation</summary>
     <description>internal interfaces for XML Path Language implementation used to build new modules on top of XPath like XPointer and XSLT </description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlXPathStackIsNodeSet' type='macro'/>
     <exports symbol='xmlXPathStackIsExternal' type='macro'/>
     <exports symbol='xmlXPathReturnEmptyString' type='macro'/>
     <exports symbol='XP_ERROR0' type='macro'/>
     <exports symbol='xmlXPathCheckError' type='macro'/>
     <exports symbol='xmlXPathSetError' type='macro'/>
     <exports symbol='CHECK_ERROR' type='macro'/>
     <exports symbol='xmlXPathSetTypeError' type='macro'/>
     <exports symbol='xmlXPathReturnEmptyNodeSet' type='macro'/>
     <exports symbol='xmlXPathReturnString' type='macro'/>
     <exports symbol='xmlXPathReturnTrue' type='macro'/>
     <exports symbol='CAST_TO_BOOLEAN' type='macro'/>
     <exports symbol='xmlXPathSetArityError' type='macro'/>
     <exports symbol='xmlXPathReturnBoolean' type='macro'/>
     <exports symbol='CHECK_TYPE' type='macro'/>
     <exports symbol='xmlXPathGetContextNode' type='macro'/>
     <exports symbol='xmlXPathReturnFalse' type='macro'/>
     <exports symbol='xmlXPathReturnNumber' type='macro'/>
     <exports symbol='CAST_TO_NUMBER' type='macro'/>
     <exports symbol='CHECK_ERROR0' type='macro'/>
     <exports symbol='xmlXPathReturnExternal' type='macro'/>
     <exports symbol='xmlXPathGetDocument' type='macro'/>
     <exports symbol='xmlXPathGetError' type='macro'/>
     <exports symbol='XP_ERROR' type='macro'/>
     <exports symbol='CHECK_ARITY' type='macro'/>
     <exports symbol='CHECK_TYPE0' type='macro'/>
     <exports symbol='CAST_TO_STRING' type='macro'/>
     <exports symbol='xmlXPathEmptyNodeSet' type='macro'/>
     <exports symbol='xmlXPathReturnNodeSet' type='macro'/>
     <exports symbol='xmlXPathNodeSetMerge' type='function'/>
     <exports symbol='xmlXPathRoundFunction' type='function'/>
     <exports symbol='xmlXPathSubstringAfterFunction' type='function'/>
     <exports symbol='xmlXPathNumberFunction' type='function'/>
     <exports symbol='xmlXPathPopNodeSet' type='function'/>
     <exports symbol='xmlXPathNsLookup' type='function'/>
     <exports symbol='xmlXPathCountFunction' type='function'/>
     <exports symbol='xmlXPathParseNCName' type='function'/>
     <exports symbol='xmlXPathNewNodeSet' type='function'/>
     <exports symbol='xmlXPathVariableLookupNS' type='function'/>
     <exports symbol='xmlXPathNextAncestorOrSelf' type='function'/>
     <exports symbol='xmlXPathNewBoolean' type='function'/>
     <exports symbol='xmlXPathNodeSetRemove' type='function'/>
     <exports symbol='xmlXPathSubValues' type='function'/>
     <exports symbol='xmlXPathNewNodeSetList' type='function'/>
     <exports symbol='xmlXPathPopBoolean' type='function'/>
     <exports symbol='xmlXPathEqualValues' type='function'/>
     <exports symbol='xmlXPathNewString' type='function'/>
     <exports symbol='xmlXPathTrailingSorted' type='function'/>
     <exports symbol='xmlXPathMultValues' type='function'/>
     <exports symbol='xmlXPathModValues' type='function'/>
     <exports symbol='xmlXPathNodeLeadingSorted' type='function'/>
     <exports symbol='xmlXPathNextChild' type='function'/>
     <exports symbol='xmlXPathNextFollowingSibling' type='function'/>
     <exports symbol='xmlXPathPopString' type='function'/>
     <exports symbol='xmlXPathNewParserContext' type='function'/>
     <exports symbol='xmlXPathNamespaceURIFunction' type='function'/>
     <exports symbol='xmlXPathWrapNodeSet' type='function'/>
     <exports symbol='xmlXPathRoot' type='function'/>
     <exports symbol='xmlXPathLangFunction' type='function'/>
     <exports symbol='xmlXPathRegisterFuncNS' type='function'/>
     <exports symbol='xmlXPathCompareValues' type='function'/>
     <exports symbol='xmlXPathIsNodeType' type='function'/>
     <exports symbol='xmlXPathNodeSetAddNs' type='function'/>
     <exports symbol='xmlXPathNodeSetContains' type='function'/>
     <exports symbol='xmlXPatherror' type='function'/>
     <exports symbol='xmlXPathNextAncestor' type='function'/>
     <exports symbol='xmlXPathNextFollowing' type='function'/>
     <exports symbol='xmlXPathRegisterVariableNS' type='function'/>
     <exports symbol='xmlXPathRegisteredNsCleanup' type='function'/>
     <exports symbol='xmlXPathConcatFunction' type='function'/>
     <exports symbol='xmlXPathLocalNameFunction' type='function'/>
     <exports symbol='xmlXPathAddValues' type='function'/>
     <exports symbol='xmlXPathDifference' type='function'/>
     <exports symbol='xmlXPathRegisterVariable' type='function'/>
     <exports symbol='valuePop' type='function'/>
     <exports symbol='xmlXPathCeilingFunction' type='function'/>
     <exports symbol='xmlXPathIntersection' type='function'/>
     <exports symbol='xmlXPathLeadingSorted' type='function'/>
     <exports symbol='xmlXPathContainsFunction' type='function'/>
     <exports symbol='xmlXPathNextPrecedingSibling' type='function'/>
     <exports symbol='xmlXPathNodeSetSort' type='function'/>
     <exports symbol='xmlXPathStartsWithFunction' type='function'/>
     <exports symbol='xmlXPathBooleanFunction' type='function'/>
     <exports symbol='xmlXPathPopExternal' type='function'/>
     <exports symbol='xmlXPathNormalizeFunction' type='function'/>
     <exports symbol='xmlXPathNodeLeading' type='function'/>
     <exports symbol='xmlXPathSumFunction' type='function'/>
     <exports symbol='xmlXPathRegisterVariableLookup' type='function'/>
     <exports symbol='xmlXPathNotEqualValues' type='function'/>
     <exports symbol='xmlXPathNodeSetDel' type='function'/>
     <exports symbol='xmlXPathWrapString' type='function'/>
     <exports symbol='xmlXPathEvaluatePredicateResult' type='function'/>
     <exports symbol='xmlXPathNodeTrailingSorted' type='function'/>
     <exports symbol='xmlXPathErr' type='function'/>
     <exports symbol='xmlXPathNextPreceding' type='function'/>
     <exports symbol='xmlXPathFunctionLookupNS' type='function'/>
     <exports symbol='xmlXPathRegisteredFuncsCleanup' type='function'/>
     <exports symbol='xmlXPathRegisterAllFunctions' type='function'/>
     <exports symbol='xmlXPathNewCString' type='function'/>
     <exports symbol='xmlXPathRegisterFunc' type='function'/>
     <exports symbol='xmlXPathPositionFunction' type='function'/>
     <exports symbol='xmlXPathSubstringBeforeFunction' type='function'/>
     <exports symbol='xmlXPathRegisteredVariablesCleanup' type='function'/>
     <exports symbol='xmlXPathNextDescendant' type='function'/>
     <exports symbol='xmlXPathNextNamespace' type='function'/>
     <exports symbol='xmlXPathWrapCString' type='function'/>
     <exports symbol='xmlXPathNewFloat' type='function'/>
     <exports symbol='xmlXPathRegisterNs' type='function'/>
     <exports symbol='xmlXPathWrapExternal' type='function'/>
     <exports symbol='xmlXPathNextParent' type='function'/>
     <exports symbol='xmlXPathNodeSetFreeNs' type='function'/>
     <exports symbol='xmlXPathTrailing' type='function'/>
     <exports symbol='xmlXPathHasSameNodes' type='function'/>
     <exports symbol='xmlXPathDistinctSorted' type='function'/>
     <exports symbol='xmlXPathFreeParserContext' type='function'/>
     <exports symbol='xmlXPathNodeTrailing' type='function'/>
     <exports symbol='xmlXPathFunctionLookup' type='function'/>
     <exports symbol='valuePush' type='function'/>
     <exports symbol='xmlXPathNodeSetAdd' type='function'/>
     <exports symbol='xmlXPathSubstringFunction' type='function'/>
     <exports symbol='xmlXPathStringFunction' type='function'/>
     <exports symbol='xmlXPathFloorFunction' type='function'/>
     <exports symbol='xmlXPathNodeSetAddUnique' type='function'/>
     <exports symbol='xmlXPathNewValueTree' type='function'/>
     <exports symbol='xmlXPathDistinct' type='function'/>
     <exports symbol='xmlXPathIdFunction' type='function'/>
     <exports symbol='xmlXPathVariableLookup' type='function'/>
     <exports symbol='xmlXPathNotFunction' type='function'/>
     <exports symbol='xmlXPathStringEvalNumber' type='function'/>
     <exports symbol='xmlXPathNextDescendantOrSelf' type='function'/>
     <exports symbol='xmlXPathParseName' type='function'/>
     <exports symbol='xmlXPathNextAttribute' type='function'/>
     <exports symbol='xmlXPathDivValues' type='function'/>
     <exports symbol='xmlXPathStringLengthFunction' type='function'/>
     <exports symbol='xmlXPathLastFunction' type='function'/>
     <exports symbol='xmlXPathNextSelf' type='function'/>
     <exports symbol='xmlXPathDebugDumpCompExpr' type='function'/>
     <exports symbol='xmlXPathEvalExpr' type='function'/>
     <exports symbol='xmlXPathFalseFunction' type='function'/>
     <exports symbol='xmlXPathDebugDumpObject' type='function'/>
     <exports symbol='xmlXPathValueFlipSign' type='function'/>
     <exports symbol='xmlXPathTranslateFunction' type='function'/>
     <exports symbol='xmlXPathLeading' type='function'/>
     <exports symbol='xmlXPathRegisterFuncLookup' type='function'/>
     <exports symbol='xmlXPathTrueFunction' type='function'/>
     <exports symbol='xmlXPathPopNumber' type='function'/>
    </file>
    <file name='xpointer'>
     <summary>API to handle XML Pointers</summary>
     <description>API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000</description>
     <author>Daniel Veillard </author>
     <exports symbol='xmlLocationSet' type='typedef'/>
     <exports symbol='xmlLocationSetPtr' type='typedef'/>
     <exports symbol='_xmlLocationSet' type='struct'/>
     <exports symbol='xmlXPtrNewRange' type='function'/>
     <exports symbol='xmlXPtrFreeLocationSet' type='function'/>
     <exports symbol='xmlXPtrWrapLocationSet' type='function'/>
     <exports symbol='xmlXPtrEvalRangePredicate' type='function'/>
     <exports symbol='xmlXPtrBuildNodeList' type='function'/>
     <exports symbol='xmlXPtrLocationSetAdd' type='function'/>
     <exports symbol='xmlXPtrNewRangeNodes' type='function'/>
     <exports symbol='xmlXPtrEval' type='function'/>
     <exports symbol='xmlXPtrRangeToFunction' type='function'/>
     <exports symbol='xmlXPtrNewCollapsedRange' type='function'/>
     <exports symbol='xmlXPtrNewRangePoints' type='function'/>
     <exports symbol='xmlXPtrNewLocationSetNodeSet' type='function'/>
     <exports symbol='xmlXPtrNewRangePointNode' type='function'/>
     <exports symbol='xmlXPtrNewContext' type='function'/>
     <exports symbol='xmlXPtrNewRangeNodeObject' type='function'/>
     <exports symbol='xmlXPtrLocationSetRemove' type='function'/>
     <exports symbol='xmlXPtrNewRangeNodePoint' type='function'/>
     <exports symbol='xmlXPtrLocationSetDel' type='function'/>
     <exports symbol='xmlXPtrLocationSetMerge' type='function'/>
     <exports symbol='xmlXPtrLocationSetCreate' type='function'/>
     <exports symbol='xmlXPtrNewLocationSetNodes' type='function'/>
    </file>
  </files>
  <symbols>
    <macro name='ATTRIBUTE_UNUSED' file='xmlversion'>
      <info>Macro used to signal to GCC unused function parameters</info>
    </macro>
    <macro name='BAD_CAST' file='xmlstring'>
      <info>Macro to cast a string to an xmlChar * when one know its safe.</info>
    </macro>
    <macro name='BASE_BUFFER_SIZE' file='tree'>
      <info>default buffer size 4000.</info>
    </macro>
    <macro name='CAST_TO_BOOLEAN' file='xpathInternals'>
      <info>Macro to try to cast the value on the top of the XPath stack to a boolean.</info>
    </macro>
    <macro name='CAST_TO_NUMBER' file='xpathInternals'>
      <info>Macro to try to cast the value on the top of the XPath stack to a number.</info>
    </macro>
    <macro name='CAST_TO_STRING' file='xpathInternals'>
      <info>Macro to try to cast the value on the top of the XPath stack to a string.</info>
    </macro>
    <macro name='CHECK_ARITY' file='xpathInternals'>
      <info>Macro to check that the number of args passed to an XPath function matches.</info>
      <arg name='x' info='the number of expected args'/>
    </macro>
    <macro name='CHECK_ERROR' file='xpathInternals'>
      <info>Macro to return from the function if an XPath error was detected.</info>
    </macro>
    <macro name='CHECK_ERROR0' file='xpathInternals'>
      <info>Macro to return 0 from the function if an XPath error was detected.</info>
    </macro>
    <macro name='CHECK_TYPE' file='xpathInternals'>
      <info>Macro to check that the value on top of the XPath stack is of a given type.</info>
      <arg name='typeval' info='the XPath type'/>
    </macro>
    <macro name='CHECK_TYPE0' file='xpathInternals'>
      <info>Macro to check that the value on top of the XPath stack is of a given type. Return(0) in case of failure</info>
      <arg name='typeval' info='the XPath type'/>
    </macro>
    <macro name='DEBUG_MEMORY' file='xmlmemory'>
      <info>DEBUG_MEMORY replaces the allocator with a collect and debug shell to the libc allocator. DEBUG_MEMORY should only be activated when debugging libxml i.e. if libxml has been configured with --with-debug-mem too. #define DEBUG_MEMORY_FREED #define DEBUG_MEMORY_LOCATION</info>
    </macro>
    <macro name='DEBUG_MEMORY_LOCATION' file='xmlversion'>
      <info>Whether the memory debugging is configured in</info>
    </macro>
    <macro name='HTML_COMMENT_NODE' file='HTMLtree'>
      <info>Macro. A comment in a HTML document is really implemented the same way as a comment in an XML document.</info>
    </macro>
    <macro name='HTML_ENTITY_REF_NODE' file='HTMLtree'>
      <info>Macro. An entity reference in a HTML document is really implemented the same way as an entity reference in an XML document.</info>
    </macro>
    <macro name='HTML_PI_NODE' file='HTMLtree'>
      <info>Macro. A processing instruction in a HTML document is really implemented the same way as a processing instruction in an XML document.</info>
    </macro>
    <macro name='HTML_PRESERVE_NODE' file='HTMLtree'>
      <info>Macro. A preserved node in a HTML document is really implemented the same way as a CDATA section in an XML document.</info>
    </macro>
    <macro name='HTML_TEXT_NODE' file='HTMLtree'>
      <info>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</info>
    </macro>
    <macro name='INPUT_CHUNK' file='parserInternals'>
      <info>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</info>
    </macro>
    <macro name='IS_BASECHAR' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:  [85] BaseChar ::= ... long list see REC ...</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_BLANK' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:  [3] S ::= (#x20 | #x9 | #xD | #xA)+</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_BLANK_CH' file='parserInternals'>
      <info>Behaviour same as IS_BLANK</info>
      <arg name='c' info='an xmlChar value (normally unsigned char)'/>
    </macro>
    <macro name='IS_BYTE_CHAR' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:  [2] Char ::= #x9 | #xA | #xD | [#x20...] any byte character in the accepted range</info>
      <arg name='c' info='an byte value (int)'/>
    </macro>
    <macro name='IS_CHAR' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:  [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_CHAR_CH' file='parserInternals'>
      <info>Behaves like IS_CHAR on single-byte value</info>
      <arg name='c' info='an xmlChar (usually an unsigned char)'/>
    </macro>
    <macro name='IS_COMBINING' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:  [87] CombiningChar ::= ... long list see REC ...</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_COMBINING_CH' file='parserInternals'>
      <info>Always false (all combining chars &gt; 0xff)</info>
      <arg name='c' info='an xmlChar (usually an unsigned char)'/>
    </macro>
    <macro name='IS_DIGIT' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:  [88] Digit ::= ... long list see REC ...</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_DIGIT_CH' file='parserInternals'>
      <info>Behaves like IS_DIGIT but with a single byte argument</info>
      <arg name='c' info='an xmlChar value (usually an unsigned char)'/>
    </macro>
    <macro name='IS_EXTENDER' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:   [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_EXTENDER_CH' file='parserInternals'>
      <info>Behaves like IS_EXTENDER but with a single-byte argument</info>
      <arg name='c' info='an xmlChar value (usually an unsigned char)'/>
    </macro>
    <macro name='IS_IDEOGRAPHIC' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:   [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_LETTER' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:   [84] Letter ::= BaseChar | Ideographic</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_LETTER_CH' file='parserInternals'>
      <info>Macro behaves like IS_LETTER, but only check base chars</info>
      <arg name='c' info='an xmlChar value (normally unsigned char)'/>
    </macro>
    <macro name='IS_PUBIDCHAR' file='parserInternals'>
      <info>Macro to check the following production in the XML spec:   [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-&apos;()+,./:=?;!*#@$_%]</info>
      <arg name='c' info='an UNICODE value (int)'/>
    </macro>
    <macro name='IS_PUBIDCHAR_CH' file='parserInternals'>
      <info>Same as IS_PUBIDCHAR but for single-byte value</info>
      <arg name='c' info='an xmlChar value (normally unsigned char)'/>
    </macro>
    <macro name='LIBXML_AUTOMATA_ENABLED' file='xmlversion'>
      <info>Whether the automata interfaces are compiled in</info>
    </macro>
    <macro name='LIBXML_C14N_ENABLED' file='xmlversion'>
      <info>Whether the Canonicalization support is configured in</info>
    </macro>
    <macro name='LIBXML_CATALOG_ENABLED' file='xmlversion'>
      <info>Whether the Catalog support is configured in</info>
    </macro>
    <macro name='LIBXML_DEBUG_ENABLED' file='xmlversion'>
      <info>Whether Debugging module is configured in</info>
    </macro>
    <macro name='LIBXML_DLL_IMPORT' file='xmlexports'>
    </macro>
    <macro name='LIBXML_DOCB_ENABLED' file='xmlversion'>
      <info>Whether the SGML Docbook support is configured in</info>
    </macro>
    <macro name='LIBXML_DOTTED_VERSION' file='xmlversion'>
      <info>the version string like &quot;1.2.3&quot;</info>
    </macro>
    <macro name='LIBXML_FTP_ENABLED' file='xmlversion'>
      <info>Whether the FTP support is configured in</info>
    </macro>
    <macro name='LIBXML_HTML_ENABLED' file='xmlversion'>
      <info>Whether the HTML support is configured in</info>
    </macro>
    <macro name='LIBXML_HTTP_ENABLED' file='xmlversion'>
      <info>Whether the HTTP support is configured in</info>
    </macro>
    <macro name='LIBXML_ICONV_ENABLED' file='xmlversion'>
      <info>Whether iconv support is available</info>
    </macro>
    <macro name='LIBXML_ISO8859X_ENABLED' file='xmlversion'>
      <info>Whether ISO-8859-* support is made available in case iconv is not</info>
    </macro>
    <macro name='LIBXML_LEGACY_ENABLED' file='xmlversion'>
      <info>Whether the deprecated APIs are compiled in for compatibility</info>
    </macro>
    <macro name='LIBXML_OUTPUT_ENABLED' file='xmlversion'>
      <info>Whether the serialization/saving support is configured in</info>
    </macro>
    <macro name='LIBXML_PATTERN_ENABLED' file='xmlversion'>
      <info>Whether the xmlPattern node selection interface is configured in</info>
    </macro>
    <macro name='LIBXML_PUSH_ENABLED' file='xmlversion'>
      <info>Whether the push parsing interfaces are configured in</info>
    </macro>
    <macro name='LIBXML_READER_ENABLED' file='xmlversion'>
      <info>Whether the xmlReader parsing interface is configured in</info>
    </macro>
    <macro name='LIBXML_REGEXP_ENABLED' file='xmlversion'>
      <info>Whether the regular expressions interfaces are compiled in</info>
    </macro>
    <macro name='LIBXML_SAX1_ENABLED' file='xmlversion'>
      <info>Whether the older SAX1 interface is configured in</info>
    </macro>
    <macro name='LIBXML_SCHEMAS_ENABLED' file='xmlversion'>
      <info>Whether the Schemas validation interfaces are compiled in</info>
    </macro>
    <macro name='LIBXML_TEST_VERSION' file='xmlversion'>
      <info>Macro to check that the libxml version in use is compatible with the version the software has been compiled against</info>
    </macro>
    <macro name='LIBXML_THREAD_ENABLED' file='xmlversion'>
      <info>Whether the thread support is configured in</info>
    </macro>
    <macro name='LIBXML_TREE_ENABLED' file='xmlversion'>
      <info>Whether the DOM like tree manipulation API support is configured in</info>
    </macro>
    <macro name='LIBXML_UNICODE_ENABLED' file='xmlversion'>
      <info>Whether the Unicode related interfaces are compiled in</info>
    </macro>
    <macro name='LIBXML_VALID_ENABLED' file='xmlversion'>
      <info>Whether the DTD validation support is configured in</info>
    </macro>
    <macro name='LIBXML_VERSION' file='xmlversion'>
      <info>the version number: 1.2.3 value is 1002003</info>
    </macro>
    <macro name='LIBXML_VERSION_EXTRA' file='xmlversion'>
      <info>extra version information, used to show a CVS compilation</info>
    </macro>
    <macro name='LIBXML_VERSION_STRING' file='xmlversion'>
      <info>the version number string, 1.2.3 value is &quot;1002003&quot;</info>
    </macro>
    <macro name='LIBXML_WRITER_ENABLED' file='xmlversion'>
      <info>Whether the xmlWriter saving interface is configured in</info>
    </macro>
    <macro name='LIBXML_XINCLUDE_ENABLED' file='xmlversion'>
      <info>Whether XInclude is configured in</info>
    </macro>
    <macro name='LIBXML_XPATH_ENABLED' file='xmlversion'>
      <info>Whether XPath is configured in</info>
    </macro>
    <macro name='LIBXML_XPTR_ENABLED' file='xmlversion'>
      <info>Whether XPointer is configured in</info>
    </macro>
    <macro name='MOVETO_ENDTAG' file='parserInternals'>
      <info>Skips to the next &apos;&gt;&apos; char.</info>
      <arg name='p' info='and UTF8 string pointer'/>
    </macro>
    <macro name='MOVETO_STARTTAG' file='parserInternals'>
      <info>Skips to the next &apos;&lt;&apos; char.</info>
      <arg name='p' info='and UTF8 string pointer'/>
    </macro>
    <macro name='SKIP_EOL' file='parserInternals'>
      <info>Skips the end of line chars.</info>
      <arg name='p' info='and UTF8 string pointer'/>
    </macro>
    <macro name='WITHOUT_TRIO' file='xmlversion'>
      <info>defined if the trio support should not be configured in</info>
    </macro>
    <macro name='WITH_TRIO' file='xmlversion'>
      <info>defined if the trio support need to be configured in</info>
    </macro>
    <macro name='XINCLUDE_FALLBACK' file='xinclude'>
      <info>Macro defining &quot;fallback&quot;</info>
    </macro>
    <macro name='XINCLUDE_HREF' file='xinclude'>
      <info>Macro defining &quot;href&quot;</info>
    </macro>
    <macro name='XINCLUDE_NODE' file='xinclude'>
      <info>Macro defining &quot;include&quot;</info>
    </macro>
    <macro name='XINCLUDE_NS' file='xinclude'>
      <info>Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude</info>
    </macro>
    <macro name='XINCLUDE_OLD_NS' file='xinclude'>
      <info>Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude</info>
    </macro>
    <macro name='XINCLUDE_PARSE' file='xinclude'>
      <info>Macro defining &quot;parse&quot;</info>
    </macro>
    <macro name='XINCLUDE_PARSE_ENCODING' file='xinclude'>
      <info>Macro defining &quot;encoding&quot;</info>
    </macro>
    <macro name='XINCLUDE_PARSE_TEXT' file='xinclude'>
      <info>Macro defining &quot;text&quot;</info>
    </macro>
    <macro name='XINCLUDE_PARSE_XML' file='xinclude'>
      <info>Macro defining &quot;xml&quot;</info>
    </macro>
    <macro name='XINCLUDE_PARSE_XPOINTER' file='xinclude'>
      <info>Macro defining &quot;xpointer&quot;</info>
    </macro>
    <macro name='XMLCALL' file='xmlexports'>
    </macro>
    <macro name='XMLPUBFUN' file='xmlexports'>
    </macro>
    <macro name='XMLPUBVAR' file='xmlexports'>
    </macro>
    <macro name='XML_CATALOGS_NAMESPACE' file='catalog'>
      <info>The namespace for the XML Catalogs elements.</info>
    </macro>
    <macro name='XML_CATALOG_PI' file='catalog'>
      <info>The specific XML Catalog Processing Instuction name.</info>
    </macro>
    <macro name='XML_COMPLETE_ATTRS' file='parser'>
      <info>Bit in the loadsubset context field to tell to do complete the elements attributes lists with the ones defaulted from the DTDs. Use it to initialize xmlLoadExtDtdDefaultValue.</info>
    </macro>
    <macro name='XML_DEFAULT_VERSION' file='parser'>
      <info>The default version of XML used: 1.0</info>
    </macro>
    <macro name='XML_DETECT_IDS' file='parser'>
      <info>Bit in the loadsubset context field to tell to do ID/REFs lookups. Use it to initialize xmlLoadExtDtdDefaultValue.</info>
    </macro>
    <macro name='XML_GET_CONTENT' file='tree'>
      <info>Macro to extract the content pointer of a node.</info>
    </macro>
    <macro name='XML_GET_LINE' file='tree'>
      <info>Macro to extract the line number of an element node.</info>
    </macro>
    <macro name='XML_LOCAL_NAMESPACE' file='tree'>
      <info>A namespace declaration node.</info>
    </macro>
    <macro name='XML_MAX_NAMELEN' file='parserInternals'>
      <info>Identifiers can be longer, but this will be more costly at runtime.</info>
    </macro>
    <macro name='XML_SAX2_MAGIC' file='parser'>
      <info>Special constant found in SAX2 blocks initialized fields</info>
    </macro>
    <macro name='XML_SCHEMAS_ANYATTR_LAX' file='schemasInternals'>
      <info>Ignore validation non definition on attributes Obsolete, not used anymore.</info>
    </macro>
    <macro name='XML_SCHEMAS_ANYATTR_SKIP' file='schemasInternals'>
      <info>Skip unknown attribute from validation Obsolete, not used anymore.</info>
    </macro>
    <macro name='XML_SCHEMAS_ANYATTR_STRICT' file='schemasInternals'>
      <info>Apply strict validation rules on attributes Obsolete, not used anymore.</info>
    </macro>
    <macro name='XML_SCHEMAS_ANY_LAX' file='schemasInternals'>
      <info>Used by wildcards. Validate if type found, don&apos;t worry if not found</info>
    </macro>
    <macro name='XML_SCHEMAS_ANY_SKIP' file='schemasInternals'>
      <info>Skip unknown attribute from validation</info>
    </macro>
    <macro name='XML_SCHEMAS_ANY_STRICT' file='schemasInternals'>
      <info>Used by wildcards. Apply strict validation rules</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTRGROUP_GLOBAL' file='schemasInternals'>
      <info>The attribute wildcard has been already builded.</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTRGROUP_MARKED' file='schemasInternals'>
      <info>Marks the attr group as marked; used for circular checks.</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED' file='schemasInternals'>
      <info>The attribute wildcard has been already builded.</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_FIXED' file='schemasInternals'>
      <info>the attribute has a fixed value</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_GLOBAL' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_INTERNAL_RESOLVED' file='schemasInternals'>
      <info>this is set when the &quot;type&quot; and &quot;ref&quot; references have been resolved.</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_NSDEFAULT' file='schemasInternals'>
      <info>allow elements in no namespace</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_USE_OPTIONAL' file='schemasInternals'>
      <info>The attribute is optional.</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_USE_PROHIBITED' file='schemasInternals'>
      <info>Used by wildcards. The attribute is prohibited.</info>
    </macro>
    <macro name='XML_SCHEMAS_ATTR_USE_REQUIRED' file='schemasInternals'>
      <info>The attribute is required.</info>
    </macro>
    <macro name='XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION' file='schemasInternals'>
      <info>the schema has &quot;extension&quot; in the set of blockDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION' file='schemasInternals'>
      <info>the schema has &quot;restriction&quot; in the set of blockDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION' file='schemasInternals'>
      <info>the schema has &quot;substitution&quot; in the set of blockDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_ABSTRACT' file='schemasInternals'>
      <info>the element is abstract</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_BLOCK_ABSENT' file='schemasInternals'>
      <info>the &quot;block&quot; attribute is absent</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_BLOCK_EXTENSION' file='schemasInternals'>
      <info>disallowed substitutions are absent</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_BLOCK_RESTRICTION' file='schemasInternals'>
      <info>disallowed substitutions: &quot;restriction&quot;</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION' file='schemasInternals'>
      <info>disallowed substitutions: &quot;substituion&quot;</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_CIRCULAR' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_DEFAULT' file='schemasInternals'>
      <info>the element has a default value</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_FINAL_ABSENT' file='schemasInternals'>
      <info>substitution group exclusions are absent</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_FINAL_EXTENSION' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_FINAL_RESTRICTION' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_FIXED' file='schemasInternals'>
      <info>the element has a fixed value</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_GLOBAL' file='schemasInternals'>
      <info>the element is global</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_INTERNAL_RESOLVED' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_NILLABLE' file='schemasInternals'>
      <info>the element is nillable</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_NSDEFAULT' file='schemasInternals'>
      <info>allow elements in no namespace Obsolete, not used anymore.</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_REF' file='schemasInternals'>
      <info>the element is a reference to a type</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_TOPLEVEL' file='schemasInternals'>
      <info>the element is top level obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead</info>
    </macro>
    <macro name='XML_SCHEMAS_FACET_COLLAPSE' file='schemasInternals'>
      <info>collapse the types of the facet</info>
    </macro>
    <macro name='XML_SCHEMAS_FACET_PRESERVE' file='schemasInternals'>
      <info>preserve the type of the facet</info>
    </macro>
    <macro name='XML_SCHEMAS_FACET_REPLACE' file='schemasInternals'>
      <info>replace the type of the facet</info>
    </macro>
    <macro name='XML_SCHEMAS_FACET_UNKNOWN' file='schemasInternals'>
      <info>unknown facet handling</info>
    </macro>
    <macro name='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' file='schemasInternals'>
      <info>the schema has &quot;extension&quot; in the set of finalDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_FINAL_DEFAULT_LIST' file='schemasInternals'>
      <info>the cshema has &quot;list&quot; in the set of finalDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION' file='schemasInternals'>
      <info>the schema has &quot;restriction&quot; in the set of finalDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_FINAL_DEFAULT_UNION' file='schemasInternals'>
      <info>the schema has &quot;union&quot; in the set of finalDefault.</info>
    </macro>
    <macro name='XML_SCHEMAS_INCLUDING_CONVERT_NS' file='schemasInternals'>
      <info>the schema is currently including an other schema with no target namespace.</info>
    </macro>
    <macro name='XML_SCHEMAS_QUALIF_ATTR' file='schemasInternals'>
      <info>the schema requires qualified attributes</info>
    </macro>
    <macro name='XML_SCHEMAS_QUALIF_ELEM' file='schemasInternals'>
      <info>the schema requires qualified elements</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_ABSTRACT' file='schemasInternals'>
      <info>the simple/complexType is abstract.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_BLOCK_DEFAULT' file='schemasInternals'>
      <info>the complexType did not specify &apos;block&apos; so use the default of the &lt;schema&gt; item.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_BLOCK_EXTENSION' file='schemasInternals'>
      <info>the complexType has a &apos;block&apos; of &quot;extension&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_BLOCK_RESTRICTION' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION' file='schemasInternals'>
      <info>the simple or complex type has a derivation method of &quot;extension&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION' file='schemasInternals'>
      <info>the simple or complex type has a derivation method of &quot;restriction&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_FINAL_DEFAULT' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_FINAL_EXTENSION' file='schemasInternals'>
      <info>the complexType has a final of &quot;extension&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_FINAL_LIST' file='schemasInternals'>
      <info>the simpleType has a final of &quot;list&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_FINAL_RESTRICTION' file='schemasInternals'>
      <info>the simpleType/complexType has a final of &quot;restriction&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_FINAL_UNION' file='schemasInternals'>
      <info>the simpleType has a final of &quot;union&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_GLOBAL' file='schemasInternals'>
      <info>the type is global</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_MARKED' file='schemasInternals'>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_MIXED' file='schemasInternals'>
      <info>the element content type is mixed</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD' file='schemasInternals'>
      <info>the complexType owns an attribute wildcard, i.e. it can be freed by the complexType</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_VARIETY_ABSENT' file='schemasInternals'>
      <info>the simpleType has a variety of &quot;absent&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_VARIETY_ATOMIC' file='schemasInternals'>
      <info>the simpleType has a variety of &quot;union&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_VARIETY_LIST' file='schemasInternals'>
      <info>the simpleType has a variety of &quot;list&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_VARIETY_UNION' file='schemasInternals'>
      <info>the simpleType has a variety of &quot;union&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_WILDCARD_COMPLETE' file='schemasInternals'>
      <info>If the wildcard is complete.</info>
    </macro>
    <macro name='XML_SKIP_IDS' file='parser'>
      <info>Bit in the loadsubset context field to tell to not do ID/REFs registration. Used to initialize xmlLoadExtDtdDefaultValue in some special cases.</info>
    </macro>
    <macro name='XML_SUBSTITUTE_BOTH' file='parserInternals'>
      <info>Both general and parameter entities need to be substituted.</info>
    </macro>
    <macro name='XML_SUBSTITUTE_NONE' file='parserInternals'>
      <info>If no entities need to be substituted.</info>
    </macro>
    <macro name='XML_SUBSTITUTE_PEREF' file='parserInternals'>
      <info>Whether parameter entities need to be substituted.</info>
    </macro>
    <macro name='XML_SUBSTITUTE_REF' file='parserInternals'>
      <info>Whether general entities need to be substituted.</info>
    </macro>
    <macro name='XML_XML_ID' file='tree'>
      <info>This is the name for the special xml:id attribute</info>
    </macro>
    <macro name='XML_XML_NAMESPACE' file='tree'>
      <info>This is the namespace for the special xml: prefix predefined in the XML Namespace specification.</info>
    </macro>
    <macro name='XP_ERROR' file='xpathInternals'>
      <info>Macro to raise an XPath error and return.</info>
      <arg name='X' info='the error code'/>
    </macro>
    <macro name='XP_ERROR0' file='xpathInternals'>
      <info>Macro to raise an XPath error and return 0.</info>
      <arg name='X' info='the error code'/>
    </macro>
    <macro name='_REENTRANT' file='xmlexports'>
    </macro>
    <macro name='htmlDefaultSubelement' file='HTMLparser'>
      <info>Returns the default subelement for this element</info>
      <arg name='elt' info='HTML element'/>
    </macro>
    <macro name='htmlElementAllowedHereDesc' file='HTMLparser'>
      <info>Checks whether an HTML element description may be a direct child of the specified element.  Returns 1 if allowed; 0 otherwise.</info>
      <arg name='parent' info='HTML parent element'/>
      <arg name='elt' info='HTML element'/>
    </macro>
    <macro name='htmlRequiredAttrs' file='HTMLparser'>
      <info>Returns the attributes required for the specified element.</info>
      <arg name='elt' info='HTML element'/>
    </macro>
    <macro name='xmlChildrenNode' file='tree'>
      <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children.&quot;</info>
    </macro>
    <macro name='xmlIsBaseCharQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsBaseChar_ch' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsBlankQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsBlank_ch' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsCharQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsChar_ch' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsCombiningQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsDigitQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsDigit_ch' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsExtenderQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsExtender_ch' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsIdeographicQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsPubidCharQ' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlIsPubidChar_ch' file='chvalid'>
      <info>Automatically generated by genChRanges.py</info>
      <arg name='c' info='char to validate'/>
    </macro>
    <macro name='xmlRootNode' file='tree'>
      <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children&quot;.</info>
    </macro>
    <macro name='xmlTextWriterWriteDocType' file='xmlwriter'>
      <info>this macro maps to xmlTextWriterWriteDTD</info>
    </macro>
    <macro name='xmlTextWriterWriteProcessingInstruction' file='xmlwriter'>
      <info>This macro maps to xmlTextWriterWritePI</info>
    </macro>
    <macro name='xmlXPathCheckError' file='xpathInternals'>
      <info>Check if an XPath error was raised.  Returns true if an error has been raised, false otherwise.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathEmptyNodeSet' file='xpathInternals'>
      <info>Empties a node-set.</info>
      <arg name='ns' info='a node-set'/>
    </macro>
    <macro name='xmlXPathGetContextNode' file='xpathInternals'>
      <info>Get the context node of an XPath context.  Returns the context node.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathGetDocument' file='xpathInternals'>
      <info>Get the document of an XPath context.  Returns the context document.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathGetError' file='xpathInternals'>
      <info>Get the error code of an XPath context.  Returns the context error.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathNodeSetGetLength' file='xpath'>
      <info>Implement a functionality similar to the DOM NodeList.length.  Returns the number of nodes in the node-set.</info>
      <arg name='ns' info='a node-set'/>
    </macro>
    <macro name='xmlXPathNodeSetIsEmpty' file='xpath'>
      <info>Checks whether @ns is empty or not.  Returns %TRUE if @ns is an empty node-set.</info>
      <arg name='ns' info='a node-set'/>
    </macro>
    <macro name='xmlXPathNodeSetItem' file='xpath'>
      <info>Implements a functionality similar to the DOM NodeList.item().  Returns the xmlNodePtr at the given @index in @ns or NULL if @index is out of range (0 to length-1)</info>
      <arg name='ns' info='a node-set'/>
      <arg name='index' info='index of a node in the set'/>
    </macro>
    <macro name='xmlXPathReturnBoolean' file='xpathInternals'>
      <info>Pushes the boolean @val on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
      <arg name='val' info='a boolean'/>
    </macro>
    <macro name='xmlXPathReturnEmptyNodeSet' file='xpathInternals'>
      <info>Pushes an empty node-set on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathReturnEmptyString' file='xpathInternals'>
      <info>Pushes an empty string on the stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathReturnExternal' file='xpathInternals'>
      <info>Pushes user data on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
      <arg name='val' info='user data'/>
    </macro>
    <macro name='xmlXPathReturnFalse' file='xpathInternals'>
      <info>Pushes false on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathReturnNodeSet' file='xpathInternals'>
      <info>Pushes the node-set @ns on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
      <arg name='ns' info='a node-set'/>
    </macro>
    <macro name='xmlXPathReturnNumber' file='xpathInternals'>
      <info>Pushes the double @val on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
      <arg name='val' info='a double'/>
    </macro>
    <macro name='xmlXPathReturnString' file='xpathInternals'>
      <info>Pushes the string @str on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
      <arg name='str' info='a string'/>
    </macro>
    <macro name='xmlXPathReturnTrue' file='xpathInternals'>
      <info>Pushes true on the context stack.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathSetArityError' file='xpathInternals'>
      <info>Raises an XPATH_INVALID_ARITY error.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathSetError' file='xpathInternals'>
      <info>Raises an error.</info>
      <arg name='ctxt' info='an XPath parser context'/>
      <arg name='err' info='an xmlXPathError code'/>
    </macro>
    <macro name='xmlXPathSetTypeError' file='xpathInternals'>
      <info>Raises an XPATH_INVALID_TYPE error.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathStackIsExternal' file='xpathInternals'>
      <info>Checks if the current value on the XPath stack is an external object.  Returns true if the current object on the stack is an external object.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <macro name='xmlXPathStackIsNodeSet' file='xpathInternals'>
      <info>Check if the current value on the XPath stack is a node set or an XSLT value tree.  Returns true if the current object on the stack is a node-set.</info>
      <arg name='ctxt' info='an XPath parser context'/>
    </macro>
    <enum name='HTML_DEPRECATED' file='HTMLparser' value='2' type='htmlStatus'/>
    <enum name='HTML_INVALID' file='HTMLparser' value='1' type='htmlStatus'/>
    <enum name='HTML_NA' file='HTMLparser' value='0' type='htmlStatus' info='something we don&apos;t check at all'/>
    <enum name='HTML_PARSE_NOBLANKS' file='HTMLparser' value='256' type='htmlParserOption' info='remove blank nodes'/>
    <enum name='HTML_PARSE_NOERROR' file='HTMLparser' value='32' type='htmlParserOption' info='suppress error reports'/>
    <enum name='HTML_PARSE_NONET' file='HTMLparser' value='2048' type='htmlParserOption' info=' Forbid network access'/>
    <enum name='HTML_PARSE_NOWARNING' file='HTMLparser' value='64' type='htmlParserOption' info='suppress warning reports'/>
    <enum name='HTML_PARSE_PEDANTIC' file='HTMLparser' value='128' type='htmlParserOption' info='pedantic error reporting'/>
    <enum name='HTML_REQUIRED' file='HTMLparser' value='12' type='htmlStatus' info=' VALID bit set so ( &amp; HTML_VALID ) is TRUE'/>
    <enum name='HTML_VALID' file='HTMLparser' value='4' type='htmlStatus'/>
    <enum name='XLINK_ACTUATE_AUTO' file='xlink' value='1' type='xlinkActuate'/>
    <enum name='XLINK_ACTUATE_NONE' file='xlink' value='0' type='xlinkActuate'/>
    <enum name='XLINK_ACTUATE_ONREQUEST' file='xlink' value='2' type='xlinkActuate'/>
    <enum name='XLINK_SHOW_EMBED' file='xlink' value='2' type='xlinkShow'/>
    <enum name='XLINK_SHOW_NEW' file='xlink' value='1' type='xlinkShow'/>
    <enum name='XLINK_SHOW_NONE' file='xlink' value='0' type='xlinkShow'/>
    <enum name='XLINK_SHOW_REPLACE' file='xlink' value='3' type='xlinkShow'/>
    <enum name='XLINK_TYPE_EXTENDED' file='xlink' value='2' type='xlinkType'/>
    <enum name='XLINK_TYPE_EXTENDED_SET' file='xlink' value='3' type='xlinkType'/>
    <enum name='XLINK_TYPE_NONE' file='xlink' value='0' type='xlinkType'/>
    <enum name='XLINK_TYPE_SIMPLE' file='xlink' value='1' type='xlinkType'/>
    <enum name='XML_ATTRIBUTE_CDATA' file='tree' value='1' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_DECL' file='tree' value='16' type='xmlElementType'/>
    <enum name='XML_ATTRIBUTE_ENTITIES' file='tree' value='6' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_ENTITY' file='tree' value='5' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_ENUMERATION' file='tree' value='9' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_FIXED' file='tree' value='4' type='xmlAttributeDefault'/>
    <enum name='XML_ATTRIBUTE_ID' file='tree' value='2' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_IDREF' file='tree' value='3' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_IDREFS' file='tree' value='4' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_IMPLIED' file='tree' value='3' type='xmlAttributeDefault'/>
    <enum name='XML_ATTRIBUTE_NMTOKEN' file='tree' value='7' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_NMTOKENS' file='tree' value='8' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_NODE' file='tree' value='2' type='xmlElementType'/>
    <enum name='XML_ATTRIBUTE_NONE' file='tree' value='1' type='xmlAttributeDefault'/>
    <enum name='XML_ATTRIBUTE_NOTATION' file='tree' value='10' type='xmlAttributeType'/>
    <enum name='XML_ATTRIBUTE_REQUIRED' file='tree' value='2' type='xmlAttributeDefault'/>
    <enum name='XML_BUFFER_ALLOC_DOUBLEIT' file='tree' value='1' type='xmlBufferAllocationScheme'/>
    <enum name='XML_BUFFER_ALLOC_EXACT' file='tree' value='2' type='xmlBufferAllocationScheme'/>
    <enum name='XML_BUFFER_ALLOC_IMMUTABLE' file='tree' value='3' type='xmlBufferAllocationScheme'/>
    <enum name='XML_C14N_CREATE_CTXT' file='xmlerror' value='1950' type='xmlParserErrors'/>
    <enum name='XML_C14N_CREATE_STACK' file='xmlerror' value='1952' type='xmlParserErrors' info='1952'/>
    <enum name='XML_C14N_INVALID_NODE' file='xmlerror' value='1953' type='xmlParserErrors' info='1953'/>
    <enum name='XML_C14N_REQUIRES_UTF8' file='xmlerror' value='1951' type='xmlParserErrors' info='1951'/>
    <enum name='XML_CATALOG_ENTRY_BROKEN' file='xmlerror' value='1651' type='xmlParserErrors' info='1651'/>
    <enum name='XML_CATALOG_MISSING_ATTR' file='xmlerror' value='1650' type='xmlParserErrors'/>
    <enum name='XML_CATALOG_NOT_CATALOG' file='xmlerror' value='1653' type='xmlParserErrors' info='1653'/>
    <enum name='XML_CATALOG_PREFER_VALUE' file='xmlerror' value='1652' type='xmlParserErrors' info='1652'/>
    <enum name='XML_CATALOG_RECURSION' file='xmlerror' value='1654' type='xmlParserErrors' info='1654'/>
    <enum name='XML_CATA_ALLOW_ALL' file='catalog' value='3' type='xmlCatalogAllow'/>
    <enum name='XML_CATA_ALLOW_DOCUMENT' file='catalog' value='2' type='xmlCatalogAllow'/>
    <enum name='XML_CATA_ALLOW_GLOBAL' file='catalog' value='1' type='xmlCatalogAllow'/>
    <enum name='XML_CATA_ALLOW_NONE' file='catalog' value='0' type='xmlCatalogAllow'/>
    <enum name='XML_CATA_PREFER_NONE' file='catalog' value='0' type='xmlCatalogPrefer'/>
    <enum name='XML_CATA_PREFER_PUBLIC' file='catalog' value='1' type='xmlCatalogPrefer'/>
    <enum name='XML_CATA_PREFER_SYSTEM' file='catalog' value='2' type='xmlCatalogPrefer'/>
    <enum name='XML_CDATA_SECTION_NODE' file='tree' value='4' type='xmlElementType'/>
    <enum name='XML_CHAR_ENCODING_2022_JP' file='encoding' value='19' type='xmlCharEncoding' info='ISO-2022-JP'/>
    <enum name='XML_CHAR_ENCODING_8859_1' file='encoding' value='10' type='xmlCharEncoding' info='ISO-8859-1 ISO Latin 1'/>
    <enum name='XML_CHAR_ENCODING_8859_2' file='encoding' value='11' type='xmlCharEncoding' info='ISO-8859-2 ISO Latin 2'/>
    <enum name='XML_CHAR_ENCODING_8859_3' file='encoding' value='12' type='xmlCharEncoding' info='ISO-8859-3'/>
    <enum name='XML_CHAR_ENCODING_8859_4' file='encoding' value='13' type='xmlCharEncoding' info='ISO-8859-4'/>
    <enum name='XML_CHAR_ENCODING_8859_5' file='encoding' value='14' type='xmlCharEncoding' info='ISO-8859-5'/>
    <enum name='XML_CHAR_ENCODING_8859_6' file='encoding' value='15' type='xmlCharEncoding' info='ISO-8859-6'/>
    <enum name='XML_CHAR_ENCODING_8859_7' file='encoding' value='16' type='xmlCharEncoding' info='ISO-8859-7'/>
    <enum name='XML_CHAR_ENCODING_8859_8' file='encoding' value='17' type='xmlCharEncoding' info='ISO-8859-8'/>
    <enum name='XML_CHAR_ENCODING_8859_9' file='encoding' value='18' type='xmlCharEncoding' info='ISO-8859-9'/>
    <enum name='XML_CHAR_ENCODING_ASCII' file='encoding' value='22' type='xmlCharEncoding' info=' pure ASCII'/>
    <enum name='XML_CHAR_ENCODING_EBCDIC' file='encoding' value='6' type='xmlCharEncoding' info='EBCDIC uh!'/>
    <enum name='XML_CHAR_ENCODING_ERROR' file='encoding' value='-1' type='xmlCharEncoding' info='No char encoding detected'/>
    <enum name='XML_CHAR_ENCODING_EUC_JP' file='encoding' value='21' type='xmlCharEncoding' info='EUC-JP'/>
    <enum name='XML_CHAR_ENCODING_NONE' file='encoding' value='0' type='xmlCharEncoding' info='No char encoding detected'/>
    <enum name='XML_CHAR_ENCODING_SHIFT_JIS' file='encoding' value='20' type='xmlCharEncoding' info='Shift_JIS'/>
    <enum name='XML_CHAR_ENCODING_UCS2' file='encoding' value='9' type='xmlCharEncoding' info='UCS-2'/>
    <enum name='XML_CHAR_ENCODING_UCS4BE' file='encoding' value='5' type='xmlCharEncoding' info='UCS-4 big endian'/>
    <enum name='XML_CHAR_ENCODING_UCS4LE' file='encoding' value='4' type='xmlCharEncoding' info='UCS-4 little endian'/>
    <enum name='XML_CHAR_ENCODING_UCS4_2143' file='encoding' value='7' type='xmlCharEncoding' info='UCS-4 unusual ordering'/>
    <enum name='XML_CHAR_ENCODING_UCS4_3412' file='encoding' value='8' type='xmlCharEncoding' info='UCS-4 unusual ordering'/>
    <enum name='XML_CHAR_ENCODING_UTF16BE' file='encoding' value='3' type='xmlCharEncoding' info='UTF-16 big endian'/>
    <enum name='XML_CHAR_ENCODING_UTF16LE' file='encoding' value='2' type='xmlCharEncoding' info='UTF-16 little endian'/>
    <enum name='XML_CHAR_ENCODING_UTF8' file='encoding' value='1' type='xmlCharEncoding' info='UTF-8'/>
    <enum name='XML_COMMENT_NODE' file='tree' value='8' type='xmlElementType'/>
    <enum name='XML_DOCB_DOCUMENT_NODE' file='tree' value='21' type='xmlElementType'/>
    <enum name='XML_DOCUMENT_FRAG_NODE' file='tree' value='11' type='xmlElementType'/>
    <enum name='XML_DOCUMENT_NODE' file='tree' value='9' type='xmlElementType'/>
    <enum name='XML_DOCUMENT_TYPE_NODE' file='tree' value='10' type='xmlElementType'/>
    <enum name='XML_DTD_ATTRIBUTE_DEFAULT' file='xmlerror' value='500' type='xmlParserErrors'/>
    <enum name='XML_DTD_ATTRIBUTE_REDEFINED' file='xmlerror' value='501' type='xmlParserErrors' info='501'/>
    <enum name='XML_DTD_ATTRIBUTE_VALUE' file='xmlerror' value='502' type='xmlParserErrors' info='502'/>
    <enum name='XML_DTD_CONTENT_ERROR' file='xmlerror' value='503' type='xmlParserErrors' info='503'/>
    <enum name='XML_DTD_CONTENT_MODEL' file='xmlerror' value='504' type='xmlParserErrors' info='504'/>
    <enum name='XML_DTD_CONTENT_NOT_DETERMINIST' file='xmlerror' value='505' type='xmlParserErrors' info='505'/>
    <enum name='XML_DTD_DIFFERENT_PREFIX' file='xmlerror' value='506' type='xmlParserErrors' info='506'/>
    <enum name='XML_DTD_ELEM_DEFAULT_NAMESPACE' file='xmlerror' value='507' type='xmlParserErrors' info='507'/>
    <enum name='XML_DTD_ELEM_NAMESPACE' file='xmlerror' value='508' type='xmlParserErrors' info='508'/>
    <enum name='XML_DTD_ELEM_REDEFINED' file='xmlerror' value='509' type='xmlParserErrors' info='509'/>
    <enum name='XML_DTD_EMPTY_NOTATION' file='xmlerror' value='510' type='xmlParserErrors' info='510'/>
    <enum name='XML_DTD_ENTITY_TYPE' file='xmlerror' value='511' type='xmlParserErrors' info='511'/>
    <enum name='XML_DTD_ID_FIXED' file='xmlerror' value='512' type='xmlParserErrors' info='512'/>
    <enum name='XML_DTD_ID_REDEFINED' file='xmlerror' value='513' type='xmlParserErrors' info='513'/>
    <enum name='XML_DTD_ID_SUBSET' file='xmlerror' value='514' type='xmlParserErrors' info='514'/>
    <enum name='XML_DTD_INVALID_CHILD' file='xmlerror' value='515' type='xmlParserErrors' info='515'/>
    <enum name='XML_DTD_INVALID_DEFAULT' file='xmlerror' value='516' type='xmlParserErrors' info='516'/>
    <enum name='XML_DTD_LOAD_ERROR' file='xmlerror' value='517' type='xmlParserErrors' info='517'/>
    <enum name='XML_DTD_MISSING_ATTRIBUTE' file='xmlerror' value='518' type='xmlParserErrors' info='518'/>
    <enum name='XML_DTD_MIXED_CORRUPT' file='xmlerror' value='519' type='xmlParserErrors' info='519'/>
    <enum name='XML_DTD_MULTIPLE_ID' file='xmlerror' value='520' type='xmlParserErrors' info='520'/>
    <enum name='XML_DTD_NODE' file='tree' value='14' type='xmlElementType'/>
    <enum name='XML_DTD_NOTATION_REDEFINED' file='xmlerror' value='526' type='xmlParserErrors' info='526'/>
    <enum name='XML_DTD_NOTATION_VALUE' file='xmlerror' value='527' type='xmlParserErrors' info='527'/>
    <enum name='XML_DTD_NOT_EMPTY' file='xmlerror' value='528' type='xmlParserErrors' info='528'/>
    <enum name='XML_DTD_NOT_PCDATA' file='xmlerror' value='529' type='xmlParserErrors' info='529'/>
    <enum name='XML_DTD_NOT_STANDALONE' file='xmlerror' value='530' type='xmlParserErrors' info='530'/>
    <enum name='XML_DTD_NO_DOC' file='xmlerror' value='521' type='xmlParserErrors' info='521'/>
    <enum name='XML_DTD_NO_DTD' file='xmlerror' value='522' type='xmlParserErrors' info='522'/>
    <enum name='XML_DTD_NO_ELEM_NAME' file='xmlerror' value='523' type='xmlParserErrors' info='523'/>
    <enum name='XML_DTD_NO_PREFIX' file='xmlerror' value='524' type='xmlParserErrors' info='524'/>
    <enum name='XML_DTD_NO_ROOT' file='xmlerror' value='525' type='xmlParserErrors' info='525'/>
    <enum name='XML_DTD_ROOT_NAME' file='xmlerror' value='531' type='xmlParserErrors' info='531'/>
    <enum name='XML_DTD_STANDALONE_DEFAULTED' file='xmlerror' value='538' type='xmlParserErrors' info='538'/>
    <enum name='XML_DTD_STANDALONE_WHITE_SPACE' file='xmlerror' value='532' type='xmlParserErrors' info='532'/>
    <enum name='XML_DTD_UNKNOWN_ATTRIBUTE' file='xmlerror' value='533' type='xmlParserErrors' info='533'/>
    <enum name='XML_DTD_UNKNOWN_ELEM' file='xmlerror' value='534' type='xmlParserErrors' info='534'/>
    <enum name='XML_DTD_UNKNOWN_ENTITY' file='xmlerror' value='535' type='xmlParserErrors' info='535'/>
    <enum name='XML_DTD_UNKNOWN_ID' file='xmlerror' value='536' type='xmlParserErrors' info='536'/>
    <enum name='XML_DTD_UNKNOWN_NOTATION' file='xmlerror' value='537' type='xmlParserErrors' info='537'/>
    <enum name='XML_DTD_XMLID_TYPE' file='xmlerror' value='540' type='xmlParserErrors' info='540'/>
    <enum name='XML_DTD_XMLID_VALUE' file='xmlerror' value='539' type='xmlParserErrors' info='539'/>
    <enum name='XML_ELEMENT_CONTENT_ELEMENT' file='tree' value='2' type='xmlElementContentType'/>
    <enum name='XML_ELEMENT_CONTENT_MULT' file='tree' value='3' type='xmlElementContentOccur'/>
    <enum name='XML_ELEMENT_CONTENT_ONCE' file='tree' value='1' type='xmlElementContentOccur'/>
    <enum name='XML_ELEMENT_CONTENT_OPT' file='tree' value='2' type='xmlElementContentOccur'/>
    <enum name='XML_ELEMENT_CONTENT_OR' file='tree' value='4' type='xmlElementContentType'/>
    <enum name='XML_ELEMENT_CONTENT_PCDATA' file='tree' value='1' type='xmlElementContentType'/>
    <enum name='XML_ELEMENT_CONTENT_PLUS' file='tree' value='4' type='xmlElementContentOccur'/>
    <enum name='XML_ELEMENT_CONTENT_SEQ' file='tree' value='3' type='xmlElementContentType'/>
    <enum name='XML_ELEMENT_DECL' file='tree' value='15' type='xmlElementType'/>
    <enum name='XML_ELEMENT_NODE' file='tree' value='1' type='xmlElementType'/>
    <enum name='XML_ELEMENT_TYPE_ANY' file='tree' value='2' type='xmlElementTypeVal'/>
    <enum name='XML_ELEMENT_TYPE_ELEMENT' file='tree' value='4' type='xmlElementTypeVal'/>
    <enum name='XML_ELEMENT_TYPE_EMPTY' file='tree' value='1' type='xmlElementTypeVal'/>
    <enum name='XML_ELEMENT_TYPE_MIXED' file='tree' value='3' type='xmlElementTypeVal'/>
    <enum name='XML_ELEMENT_TYPE_UNDEFINED' file='tree' value='0' type='xmlElementTypeVal'/>
    <enum name='XML_ENTITY_DECL' file='tree' value='17' type='xmlElementType'/>
    <enum name='XML_ENTITY_NODE' file='tree' value='6' type='xmlElementType'/>
    <enum name='XML_ENTITY_REF_NODE' file='tree' value='5' type='xmlElementType'/>
    <enum name='XML_ERR_ATTLIST_NOT_FINISHED' file='xmlerror' value='51' type='xmlParserErrors' info='51'/>
    <enum name='XML_ERR_ATTLIST_NOT_STARTED' file='xmlerror' value='50' type='xmlParserErrors' info='50'/>
    <enum name='XML_ERR_ATTRIBUTE_NOT_FINISHED' file='xmlerror' value='40' type='xmlParserErrors' info='40'/>
    <enum name='XML_ERR_ATTRIBUTE_NOT_STARTED' file='xmlerror' value='39' type='xmlParserErrors' info='39'/>
    <enum name='XML_ERR_ATTRIBUTE_REDEFINED' file='xmlerror' value='42' type='xmlParserErrors' info='42'/>
    <enum name='XML_ERR_ATTRIBUTE_WITHOUT_VALUE' file='xmlerror' value='41' type='xmlParserErrors' info='41'/>
    <enum name='XML_ERR_CDATA_NOT_FINISHED' file='xmlerror' value='63' type='xmlParserErrors' info='63'/>
    <enum name='XML_ERR_CHARREF_AT_EOF' file='xmlerror' value='10' type='xmlParserErrors' info='10'/>
    <enum name='XML_ERR_CHARREF_IN_DTD' file='xmlerror' value='13' type='xmlParserErrors' info='13'/>
    <enum name='XML_ERR_CHARREF_IN_EPILOG' file='xmlerror' value='12' type='xmlParserErrors' info='12'/>
    <enum name='XML_ERR_CHARREF_IN_PROLOG' file='xmlerror' value='11' type='xmlParserErrors' info='11'/>
    <enum name='XML_ERR_COMMENT_NOT_FINISHED' file='xmlerror' value='45' type='xmlParserErrors' info='45'/>
    <enum name='XML_ERR_CONDSEC_INVALID' file='xmlerror' value='83' type='xmlParserErrors' info='83'/>
    <enum name='XML_ERR_CONDSEC_INVALID_KEYWORD' file='xmlerror' value='95' type='xmlParserErrors' info='95'/>
    <enum name='XML_ERR_CONDSEC_NOT_FINISHED' file='xmlerror' value='59' type='xmlParserErrors' info='59'/>
    <enum name='XML_ERR_CONDSEC_NOT_STARTED' file='xmlerror' value='58' type='xmlParserErrors' info='58'/>
    <enum name='XML_ERR_DOCTYPE_NOT_FINISHED' file='xmlerror' value='61' type='xmlParserErrors' info='61'/>
    <enum name='XML_ERR_DOCUMENT_EMPTY' file='xmlerror' value='4' type='xmlParserErrors' info='4'/>
    <enum name='XML_ERR_DOCUMENT_END' file='xmlerror' value='5' type='xmlParserErrors' info='5'/>
    <enum name='XML_ERR_DOCUMENT_START' file='xmlerror' value='3' type='xmlParserErrors' info='3'/>
    <enum name='XML_ERR_ELEMCONTENT_NOT_FINISHED' file='xmlerror' value='55' type='xmlParserErrors' info='55'/>
    <enum name='XML_ERR_ELEMCONTENT_NOT_STARTED' file='xmlerror' value='54' type='xmlParserErrors' info='54'/>
    <enum name='XML_ERR_ENCODING_NAME' file='xmlerror' value='79' type='xmlParserErrors' info='79'/>
    <enum name='XML_ERR_ENTITYREF_AT_EOF' file='xmlerror' value='14' type='xmlParserErrors' info='14'/>
    <enum name='XML_ERR_ENTITYREF_IN_DTD' file='xmlerror' value='17' type='xmlParserErrors' info='17'/>
    <enum name='XML_ERR_ENTITYREF_IN_EPILOG' file='xmlerror' value='16' type='xmlParserErrors' info='16'/>
    <enum name='XML_ERR_ENTITYREF_IN_PROLOG' file='xmlerror' value='15' type='xmlParserErrors' info='15'/>
    <enum name='XML_ERR_ENTITYREF_NO_NAME' file='xmlerror' value='22' type='xmlParserErrors' info='22'/>
    <enum name='XML_ERR_ENTITYREF_SEMICOL_MISSING' file='xmlerror' value='23' type='xmlParserErrors' info='23'/>
    <enum name='XML_ERR_ENTITY_BOUNDARY' file='xmlerror' value='90' type='xmlParserErrors' info='90'/>
    <enum name='XML_ERR_ENTITY_CHAR_ERROR' file='xmlerror' value='87' type='xmlParserErrors' info='87'/>
    <enum name='XML_ERR_ENTITY_IS_EXTERNAL' file='xmlerror' value='29' type='xmlParserErrors' info='29'/>
    <enum name='XML_ERR_ENTITY_IS_PARAMETER' file='xmlerror' value='30' type='xmlParserErrors' info='30'/>
    <enum name='XML_ERR_ENTITY_LOOP' file='xmlerror' value='89' type='xmlParserErrors' info='89'/>
    <enum name='XML_ERR_ENTITY_NOT_FINISHED' file='xmlerror' value='37' type='xmlParserErrors' info='37'/>
    <enum name='XML_ERR_ENTITY_NOT_STARTED' file='xmlerror' value='36' type='xmlParserErrors' info='36'/>
    <enum name='XML_ERR_ENTITY_PE_INTERNAL' file='xmlerror' value='88' type='xmlParserErrors' info='88'/>
    <enum name='XML_ERR_EQUAL_REQUIRED' file='xmlerror' value='75' type='xmlParserErrors' info='75'/>
    <enum name='XML_ERR_ERROR' file='xmlerror' value='2' type='xmlErrorLevel' info='A recoverable error'/>
    <enum name='XML_ERR_EXTRA_CONTENT' file='xmlerror' value='86' type='xmlParserErrors' info='86'/>
    <enum name='XML_ERR_EXT_ENTITY_STANDALONE' file='xmlerror' value='82' type='xmlParserErrors' info='82'/>
    <enum name='XML_ERR_EXT_SUBSET_NOT_FINISHED' file='xmlerror' value='60' type='xmlParserErrors' info='60'/>
    <enum name='XML_ERR_FATAL' file='xmlerror' value='3' type='xmlErrorLevel' info=' A fatal error'/>
    <enum name='XML_ERR_GT_REQUIRED' file='xmlerror' value='73' type='xmlParserErrors' info='73'/>
    <enum name='XML_ERR_HYPHEN_IN_COMMENT' file='xmlerror' value='80' type='xmlParserErrors' info='80'/>
    <enum name='XML_ERR_INTERNAL_ERROR' file='xmlerror' value='1' type='xmlParserErrors' info='1'/>
    <enum name='XML_ERR_INVALID_CHAR' file='xmlerror' value='9' type='xmlParserErrors' info='9'/>
    <enum name='XML_ERR_INVALID_CHARREF' file='xmlerror' value='8' type='xmlParserErrors' info='8'/>
    <enum name='XML_ERR_INVALID_DEC_CHARREF' file='xmlerror' value='7' type='xmlParserErrors' info='7'/>
    <enum name='XML_ERR_INVALID_ENCODING' file='xmlerror' value='81' type='xmlParserErrors' info='81'/>
    <enum name='XML_ERR_INVALID_HEX_CHARREF' file='xmlerror' value='6' type='xmlParserErrors' info='6'/>
    <enum name='XML_ERR_INVALID_URI' file='xmlerror' value='91' type='xmlParserErrors' info='91'/>
    <enum name='XML_ERR_LITERAL_NOT_FINISHED' file='xmlerror' value='44' type='xmlParserErrors' info='44'/>
    <enum name='XML_ERR_LITERAL_NOT_STARTED' file='xmlerror' value='43' type='xmlParserErrors' info='43'/>
    <enum name='XML_ERR_LTSLASH_REQUIRED' file='xmlerror' value='74' type='xmlParserErrors' info='74'/>
    <enum name='XML_ERR_LT_IN_ATTRIBUTE' file='xmlerror' value='38' type='xmlParserErrors' info='38'/>
    <enum name='XML_ERR_LT_REQUIRED' file='xmlerror' value='72' type='xmlParserErrors' info='72'/>
    <enum name='XML_ERR_MISPLACED_CDATA_END' file='xmlerror' value='62' type='xmlParserErrors' info='62'/>
    <enum name='XML_ERR_MISSING_ENCODING' file='xmlerror' value='101' type='xmlParserErrors' info='101'/>
    <enum name='XML_ERR_MIXED_NOT_FINISHED' file='xmlerror' value='53' type='xmlParserErrors' info='53'/>
    <enum name='XML_ERR_MIXED_NOT_STARTED' file='xmlerror' value='52' type='xmlParserErrors' info='52'/>
    <enum name='XML_ERR_NAME_REQUIRED' file='xmlerror' value='68' type='xmlParserErrors' info='68'/>
    <enum name='XML_ERR_NMTOKEN_REQUIRED' file='xmlerror' value='67' type='xmlParserErrors' info='67'/>
    <enum name='XML_ERR_NONE' file='xmlerror' value='0' type='xmlErrorLevel'/>
    <enum name='XML_ERR_NOTATION_NOT_FINISHED' file='xmlerror' value='49' type='xmlParserErrors' info='49'/>
    <enum name='XML_ERR_NOTATION_NOT_STARTED' file='xmlerror' value='48' type='xmlParserErrors' info='48'/>
    <enum name='XML_ERR_NOT_WELL_BALANCED' file='xmlerror' value='85' type='xmlParserErrors' info='85'/>
    <enum name='XML_ERR_NO_DTD' file='xmlerror' value='94' type='xmlParserErrors' info='94'/>
    <enum name='XML_ERR_NO_MEMORY' file='xmlerror' value='2' type='xmlParserErrors' info='2'/>
    <enum name='XML_ERR_NS_DECL_ERROR' file='xmlerror' value='35' type='xmlParserErrors' info='35'/>
    <enum name='XML_ERR_OK' file='xmlerror' value='0' type='xmlParserErrors'/>
    <enum name='XML_ERR_PCDATA_REQUIRED' file='xmlerror' value='69' type='xmlParserErrors' info='69'/>
    <enum name='XML_ERR_PEREF_AT_EOF' file='xmlerror' value='18' type='xmlParserErrors' info='18'/>
    <enum name='XML_ERR_PEREF_IN_EPILOG' file='xmlerror' value='20' type='xmlParserErrors' info='20'/>
    <enum name='XML_ERR_PEREF_IN_INT_SUBSET' file='xmlerror' value='21' type='xmlParserErrors' info='21'/>
    <enum name='XML_ERR_PEREF_IN_PROLOG' file='xmlerror' value='19' type='xmlParserErrors' info='19'/>
    <enum name='XML_ERR_PEREF_NO_NAME' file='xmlerror' value='24' type='xmlParserErrors' info='24'/>
    <enum name='XML_ERR_PEREF_SEMICOL_MISSING' file='xmlerror' value='25' type='xmlParserErrors' info='25'/>
    <enum name='XML_ERR_PI_NOT_FINISHED' file='xmlerror' value='47' type='xmlParserErrors' info='47'/>
    <enum name='XML_ERR_PI_NOT_STARTED' file='xmlerror' value='46' type='xmlParserErrors' info='46'/>
    <enum name='XML_ERR_PUBID_REQUIRED' file='xmlerror' value='71' type='xmlParserErrors' info='71'/>
    <enum name='XML_ERR_RESERVED_XML_NAME' file='xmlerror' value='64' type='xmlParserErrors' info='64'/>
    <enum name='XML_ERR_SEPARATOR_REQUIRED' file='xmlerror' value='66' type='xmlParserErrors' info='66'/>
    <enum name='XML_ERR_SPACE_REQUIRED' file='xmlerror' value='65' type='xmlParserErrors' info='65'/>
    <enum name='XML_ERR_STANDALONE_VALUE' file='xmlerror' value='78' type='xmlParserErrors' info='78'/>
    <enum name='XML_ERR_STRING_NOT_CLOSED' file='xmlerror' value='34' type='xmlParserErrors' info='34'/>
    <enum name='XML_ERR_STRING_NOT_STARTED' file='xmlerror' value='33' type='xmlParserErrors' info='33'/>
    <enum name='XML_ERR_TAG_NAME_MISMATCH' file='xmlerror' value='76' type='xmlParserErrors' info='76'/>
    <enum name='XML_ERR_TAG_NOT_FINISHED' file='xmlerror' value='77' type='xmlParserErrors' info='77'/>
    <enum name='XML_ERR_UNDECLARED_ENTITY' file='xmlerror' value='26' type='xmlParserErrors' info='26'/>
    <enum name='XML_ERR_UNKNOWN_ENCODING' file='xmlerror' value='31' type='xmlParserErrors' info='31'/>
    <enum name='XML_ERR_UNPARSED_ENTITY' file='xmlerror' value='28' type='xmlParserErrors' info='28'/>
    <enum name='XML_ERR_UNSUPPORTED_ENCODING' file='xmlerror' value='32' type='xmlParserErrors' info='32'/>
    <enum name='XML_ERR_URI_FRAGMENT' file='xmlerror' value='92' type='xmlParserErrors' info='92'/>
    <enum name='XML_ERR_URI_REQUIRED' file='xmlerror' value='70' type='xmlParserErrors' info='70'/>
    <enum name='XML_ERR_VALUE_REQUIRED' file='xmlerror' value='84' type='xmlParserErrors' info='84'/>
    <enum name='XML_ERR_VERSION_MISSING' file='xmlerror' value='96' type='xmlParserErrors' info='96'/>
    <enum name='XML_ERR_WARNING' file='xmlerror' value='1' type='xmlErrorLevel' info='A simple warning'/>
    <enum name='XML_ERR_XMLDECL_NOT_FINISHED' file='xmlerror' value='57' type='xmlParserErrors' info='57'/>
    <enum name='XML_ERR_XMLDECL_NOT_STARTED' file='xmlerror' value='56' type='xmlParserErrors' info='56'/>
    <enum name='XML_EXTERNAL_GENERAL_PARSED_ENTITY' file='entities' value='2' type='xmlEntityType'/>
    <enum name='XML_EXTERNAL_GENERAL_UNPARSED_ENTITY' file='entities' value='3' type='xmlEntityType'/>
    <enum name='XML_EXTERNAL_PARAMETER_ENTITY' file='entities' value='5' type='xmlEntityType'/>
    <enum name='XML_FROM_C14N' file='xmlerror' value='21' type='xmlErrorDomain' info='The Canonicalization module'/>
    <enum name='XML_FROM_CATALOG' file='xmlerror' value='20' type='xmlErrorDomain' info='The Catalog module'/>
    <enum name='XML_FROM_DATATYPE' file='xmlerror' value='15' type='xmlErrorDomain' info='The W3C XML Schemas Datatype module'/>
    <enum name='XML_FROM_DTD' file='xmlerror' value='4' type='xmlErrorDomain' info='The XML DTD validation with parser contex'/>
    <enum name='XML_FROM_FTP' file='xmlerror' value='9' type='xmlErrorDomain' info='The FTP module'/>
    <enum name='XML_FROM_HTML' file='xmlerror' value='5' type='xmlErrorDomain' info='The HTML parser'/>
    <enum name='XML_FROM_HTTP' file='xmlerror' value='10' type='xmlErrorDomain' info='The FTP module'/>
    <enum name='XML_FROM_IO' file='xmlerror' value='8' type='xmlErrorDomain' info='The Input/Output stack'/>
    <enum name='XML_FROM_MEMORY' file='xmlerror' value='6' type='xmlErrorDomain' info='The memory allocator'/>
    <enum name='XML_FROM_NAMESPACE' file='xmlerror' value='3' type='xmlErrorDomain' info='The XML Namespace module'/>
    <enum name='XML_FROM_NONE' file='xmlerror' value='0' type='xmlErrorDomain'/>
    <enum name='XML_FROM_OUTPUT' file='xmlerror' value='7' type='xmlErrorDomain' info='The serialization code'/>
    <enum name='XML_FROM_PARSER' file='xmlerror' value='1' type='xmlErrorDomain' info='The XML parser'/>
    <enum name='XML_FROM_REGEXP' file='xmlerror' value='14' type='xmlErrorDomain' info='The regular expressions module'/>
    <enum name='XML_FROM_RELAXNGP' file='xmlerror' value='18' type='xmlErrorDomain' info='The Relax-NG parser module'/>
    <enum name='XML_FROM_RELAXNGV' file='xmlerror' value='19' type='xmlErrorDomain' info='The Relax-NG validator module'/>
    <enum name='XML_FROM_SCHEMASP' file='xmlerror' value='16' type='xmlErrorDomain' info='The W3C XML Schemas parser module'/>
    <enum name='XML_FROM_SCHEMASV' file='xmlerror' value='17' type='xmlErrorDomain' info='The W3C XML Schemas validation module'/>
    <enum name='XML_FROM_TREE' file='xmlerror' value='2' type='xmlErrorDomain' info='The tree module'/>
    <enum name='XML_FROM_VALID' file='xmlerror' value='23' type='xmlErrorDomain' info=' The XML DTD validation with valid context'/>
    <enum name='XML_FROM_XINCLUDE' file='xmlerror' value='11' type='xmlErrorDomain' info='The XInclude processing'/>
    <enum name='XML_FROM_XPATH' file='xmlerror' value='12' type='xmlErrorDomain' info='The XPath module'/>
    <enum name='XML_FROM_XPOINTER' file='xmlerror' value='13' type='xmlErrorDomain' info='The XPointer module'/>
    <enum name='XML_FROM_XSLT' file='xmlerror' value='22' type='xmlErrorDomain' info='The XSLT engine from libxslt'/>
    <enum name='XML_FTP_ACCNT' file='xmlerror' value='2002' type='xmlParserErrors' info='2002'/>
    <enum name='XML_FTP_EPSV_ANSWER' file='xmlerror' value='2001' type='xmlParserErrors' info='2001'/>
    <enum name='XML_FTP_PASV_ANSWER' file='xmlerror' value='2000' type='xmlParserErrors'/>
    <enum name='XML_HTML_DOCUMENT_NODE' file='tree' value='13' type='xmlElementType'/>
    <enum name='XML_HTML_STRUCURE_ERROR' file='xmlerror' value='800' type='xmlParserErrors'/>
    <enum name='XML_HTML_UNKNOWN_TAG' file='xmlerror' value='801' type='xmlParserErrors' info='801'/>
    <enum name='XML_HTTP_UNKNOWN_HOST' file='xmlerror' value='2022' type='xmlParserErrors' info='2022'/>
    <enum name='XML_HTTP_URL_SYNTAX' file='xmlerror' value='2020' type='xmlParserErrors'/>
    <enum name='XML_HTTP_USE_IP' file='xmlerror' value='2021' type='xmlParserErrors' info='2021'/>
    <enum name='XML_INTERNAL_GENERAL_ENTITY' file='entities' value='1' type='xmlEntityType'/>
    <enum name='XML_INTERNAL_PARAMETER_ENTITY' file='entities' value='4' type='xmlEntityType'/>
    <enum name='XML_INTERNAL_PREDEFINED_ENTITY' file='entities' value='6' type='xmlEntityType'/>
    <enum name='XML_IO_BUFFER_FULL' file='xmlerror' value='1548' type='xmlParserErrors' info='1548'/>
    <enum name='XML_IO_EACCES' file='xmlerror' value='1501' type='xmlParserErrors' info='1501'/>
    <enum name='XML_IO_EADDRINUSE' file='xmlerror' value='1554' type='xmlParserErrors' info='1554'/>
    <enum name='XML_IO_EAFNOSUPPORT' file='xmlerror' value='1556' type='xmlParserErrors' info='1556'/>
    <enum name='XML_IO_EAGAIN' file='xmlerror' value='1502' type='xmlParserErrors' info='1502'/>
    <enum name='XML_IO_EALREADY' file='xmlerror' value='1555' type='xmlParserErrors' info='1555'/>
    <enum name='XML_IO_EBADF' file='xmlerror' value='1503' type='xmlParserErrors' info='1503'/>
    <enum name='XML_IO_EBADMSG' file='xmlerror' value='1504' type='xmlParserErrors' info='1504'/>
    <enum name='XML_IO_EBUSY' file='xmlerror' value='1505' type='xmlParserErrors' info='1505'/>
    <enum name='XML_IO_ECANCELED' file='xmlerror' value='1506' type='xmlParserErrors' info='1506'/>
    <enum name='XML_IO_ECHILD' file='xmlerror' value='1507' type='xmlParserErrors' info='1507'/>
    <enum name='XML_IO_ECONNREFUSED' file='xmlerror' value='1552' type='xmlParserErrors' info='1552'/>
    <enum name='XML_IO_EDEADLK' file='xmlerror' value='1508' type='xmlParserErrors' info='1508'/>
    <enum name='XML_IO_EDOM' file='xmlerror' value='1509' type='xmlParserErrors' info='1509'/>
    <enum name='XML_IO_EEXIST' file='xmlerror' value='1510' type='xmlParserErrors' info='1510'/>
    <enum name='XML_IO_EFAULT' file='xmlerror' value='1511' type='xmlParserErrors' info='1511'/>
    <enum name='XML_IO_EFBIG' file='xmlerror' value='1512' type='xmlParserErrors' info='1512'/>
    <enum name='XML_IO_EINPROGRESS' file='xmlerror' value='1513' type='xmlParserErrors' info='1513'/>
    <enum name='XML_IO_EINTR' file='xmlerror' value='1514' type='xmlParserErrors' info='1514'/>
    <enum name='XML_IO_EINVAL' file='xmlerror' value='1515' type='xmlParserErrors' info='1515'/>
    <enum name='XML_IO_EIO' file='xmlerror' value='1516' type='xmlParserErrors' info='1516'/>
    <enum name='XML_IO_EISCONN' file='xmlerror' value='1551' type='xmlParserErrors' info='1551'/>
    <enum name='XML_IO_EISDIR' file='xmlerror' value='1517' type='xmlParserErrors' info='1517'/>
    <enum name='XML_IO_EMFILE' file='xmlerror' value='1518' type='xmlParserErrors' info='1518'/>
    <enum name='XML_IO_EMLINK' file='xmlerror' value='1519' type='xmlParserErrors' info='1519'/>
    <enum name='XML_IO_EMSGSIZE' file='xmlerror' value='1520' type='xmlParserErrors' info='1520'/>
    <enum name='XML_IO_ENAMETOOLONG' file='xmlerror' value='1521' type='xmlParserErrors' info='1521'/>
    <enum name='XML_IO_ENCODER' file='xmlerror' value='1544' type='xmlParserErrors' info='1544'/>
    <enum name='XML_IO_ENETUNREACH' file='xmlerror' value='1553' type='xmlParserErrors' info='1553'/>
    <enum name='XML_IO_ENFILE' file='xmlerror' value='1522' type='xmlParserErrors' info='1522'/>
    <enum name='XML_IO_ENODEV' file='xmlerror' value='1523' type='xmlParserErrors' info='1523'/>
    <enum name='XML_IO_ENOENT' file='xmlerror' value='1524' type='xmlParserErrors' info='1524'/>
    <enum name='XML_IO_ENOEXEC' file='xmlerror' value='1525' type='xmlParserErrors' info='1525'/>
    <enum name='XML_IO_ENOLCK' file='xmlerror' value='1526' type='xmlParserErrors' info='1526'/>
    <enum name='XML_IO_ENOMEM' file='xmlerror' value='1527' type='xmlParserErrors' info='1527'/>
    <enum name='XML_IO_ENOSPC' file='xmlerror' value='1528' type='xmlParserErrors' info='1528'/>
    <enum name='XML_IO_ENOSYS' file='xmlerror' value='1529' type='xmlParserErrors' info='1529'/>
    <enum name='XML_IO_ENOTDIR' file='xmlerror' value='1530' type='xmlParserErrors' info='1530'/>
    <enum name='XML_IO_ENOTEMPTY' file='xmlerror' value='1531' type='xmlParserErrors' info='1531'/>
    <enum name='XML_IO_ENOTSOCK' file='xmlerror' value='1550' type='xmlParserErrors' info='1550'/>
    <enum name='XML_IO_ENOTSUP' file='xmlerror' value='1532' type='xmlParserErrors' info='1532'/>
    <enum name='XML_IO_ENOTTY' file='xmlerror' value='1533' type='xmlParserErrors' info='1533'/>
    <enum name='XML_IO_ENXIO' file='xmlerror' value='1534' type='xmlParserErrors' info='1534'/>
    <enum name='XML_IO_EPERM' file='xmlerror' value='1535' type='xmlParserErrors' info='1535'/>
    <enum name='XML_IO_EPIPE' file='xmlerror' value='1536' type='xmlParserErrors' info='1536'/>
    <enum name='XML_IO_ERANGE' file='xmlerror' value='1537' type='xmlParserErrors' info='1537'/>
    <enum name='XML_IO_EROFS' file='xmlerror' value='1538' type='xmlParserErrors' info='1538'/>
    <enum name='XML_IO_ESPIPE' file='xmlerror' value='1539' type='xmlParserErrors' info='1539'/>
    <enum name='XML_IO_ESRCH' file='xmlerror' value='1540' type='xmlParserErrors' info='1540'/>
    <enum name='XML_IO_ETIMEDOUT' file='xmlerror' value='1541' type='xmlParserErrors' info='1541'/>
    <enum name='XML_IO_EXDEV' file='xmlerror' value='1542' type='xmlParserErrors' info='1542'/>
    <enum name='XML_IO_FLUSH' file='xmlerror' value='1545' type='xmlParserErrors' info='1545'/>
    <enum name='XML_IO_LOAD_ERROR' file='xmlerror' value='1549' type='xmlParserErrors' info='1549'/>
    <enum name='XML_IO_NETWORK_ATTEMPT' file='xmlerror' value='1543' type='xmlParserErrors' info='1543'/>
    <enum name='XML_IO_NO_INPUT' file='xmlerror' value='1547' type='xmlParserErrors' info='1547'/>
    <enum name='XML_IO_UNKNOWN' file='xmlerror' value='1500' type='xmlParserErrors'/>
    <enum name='XML_IO_WRITE' file='xmlerror' value='1546' type='xmlParserErrors' info='1546'/>
    <enum name='XML_NAMESPACE_DECL' file='tree' value='18' type='xmlElementType'/>
    <enum name='XML_NOTATION_NODE' file='tree' value='12' type='xmlElementType'/>
    <enum name='XML_NS_ERR_ATTRIBUTE_REDEFINED' file='xmlerror' value='203' type='xmlParserErrors' info='203'/>
    <enum name='XML_NS_ERR_QNAME' file='xmlerror' value='202' type='xmlParserErrors' info='202'/>
    <enum name='XML_NS_ERR_UNDEFINED_NAMESPACE' file='xmlerror' value='201' type='xmlParserErrors' info='201'/>
    <enum name='XML_NS_ERR_XML_NAMESPACE' file='xmlerror' value='200' type='xmlParserErrors'/>
    <enum name='XML_PARSER_ATTRIBUTE_VALUE' file='parser' value='12' type='xmlParserInputState' info='within an attribute value'/>
    <enum name='XML_PARSER_CDATA_SECTION' file='parser' value='8' type='xmlParserInputState' info='within a CDATA section'/>
    <enum name='XML_PARSER_COMMENT' file='parser' value='5' type='xmlParserInputState' info='within a comment'/>
    <enum name='XML_PARSER_CONTENT' file='parser' value='7' type='xmlParserInputState' info='within the content'/>
    <enum name='XML_PARSER_DEFAULTATTRS' file='xmlreader' value='2' type='xmlParserProperties'/>
    <enum name='XML_PARSER_DTD' file='parser' value='3' type='xmlParserInputState' info='within some DTD content'/>
    <enum name='XML_PARSER_END_TAG' file='parser' value='9' type='xmlParserInputState' info='within a closing tag'/>
    <enum name='XML_PARSER_ENTITY_DECL' file='parser' value='10' type='xmlParserInputState' info='within an entity declaration'/>
    <enum name='XML_PARSER_ENTITY_VALUE' file='parser' value='11' type='xmlParserInputState' info='within an entity value in a decl'/>
    <enum name='XML_PARSER_EOF' file='parser' value='-1' type='xmlParserInputState' info='nothing is to be parsed'/>
    <enum name='XML_PARSER_EPILOG' file='parser' value='14' type='xmlParserInputState' info='the Misc* after the last end tag'/>
    <enum name='XML_PARSER_IGNORE' file='parser' value='15' type='xmlParserInputState' info='within an IGNORED section'/>
    <enum name='XML_PARSER_LOADDTD' file='xmlreader' value='1' type='xmlParserProperties'/>
    <enum name='XML_PARSER_MISC' file='parser' value='1' type='xmlParserInputState' info='Misc* before int subset'/>
    <enum name='XML_PARSER_PI' file='parser' value='2' type='xmlParserInputState' info='Within a processing instruction'/>
    <enum name='XML_PARSER_PROLOG' file='parser' value='4' type='xmlParserInputState' info='Misc* after internal subset'/>
    <enum name='XML_PARSER_PUBLIC_LITERAL' file='parser' value='16' type='xmlParserInputState' info=' within a PUBLIC value'/>
    <enum name='XML_PARSER_SEVERITY_ERROR' file='xmlreader' value='4' type='xmlParserSeverities'/>
    <enum name='XML_PARSER_SEVERITY_VALIDITY_ERROR' file='xmlreader' value='2' type='xmlParserSeverities'/>
    <enum name='XML_PARSER_SEVERITY_VALIDITY_WARNING' file='xmlreader' value='1' type='xmlParserSeverities'/>
    <enum name='XML_PARSER_SEVERITY_WARNING' file='xmlreader' value='3' type='xmlParserSeverities'/>
    <enum name='XML_PARSER_START' file='parser' value='0' type='xmlParserInputState' info='nothing has been parsed'/>
    <enum name='XML_PARSER_START_TAG' file='parser' value='6' type='xmlParserInputState' info='within a start tag'/>
    <enum name='XML_PARSER_SUBST_ENTITIES' file='xmlreader' value='4' type='xmlParserProperties'/>
    <enum name='XML_PARSER_SYSTEM_LITERAL' file='parser' value='13' type='xmlParserInputState' info='within a SYSTEM value'/>
    <enum name='XML_PARSER_VALIDATE' file='xmlreader' value='3' type='xmlParserProperties'/>
    <enum name='XML_PARSE_DOM' file='parser' value='1' type='xmlParserMode'/>
    <enum name='XML_PARSE_DTDATTR' file='parser' value='8' type='xmlParserOption' info='default DTD attributes'/>
    <enum name='XML_PARSE_DTDLOAD' file='parser' value='4' type='xmlParserOption' info='load the external subset'/>
    <enum name='XML_PARSE_DTDVALID' file='parser' value='16' type='xmlParserOption' info='validate with the DTD'/>
    <enum name='XML_PARSE_NOBLANKS' file='parser' value='256' type='xmlParserOption' info='remove blank nodes'/>
    <enum name='XML_PARSE_NOCDATA' file='parser' value='16384' type='xmlParserOption' info='merge CDATA as text nodes'/>
    <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionnary'/>
    <enum name='XML_PARSE_NOENT' file='parser' value='2' type='xmlParserOption' info='substitute entities'/>
    <enum name='XML_PARSE_NOERROR' file='parser' value='32' type='xmlParserOption' info='suppress error reports'/>
    <enum name='XML_PARSE_NONET' file='parser' value='2048' type='xmlParserOption' info='Forbid network access'/>
    <enum name='XML_PARSE_NOWARNING' file='parser' value='64' type='xmlParserOption' info='suppress warning reports'/>
    <enum name='XML_PARSE_NOXINCNODE' file='parser' value='32768' type='xmlParserOption' info=' do not generate XINCLUDE START/END nodes'/>
    <enum name='XML_PARSE_NSCLEAN' file='parser' value='8192' type='xmlParserOption' info='remove redundant namespaces declarations'/>
    <enum name='XML_PARSE_PEDANTIC' file='parser' value='128' type='xmlParserOption' info='pedantic error reporting'/>
    <enum name='XML_PARSE_PUSH_DOM' file='parser' value='3' type='xmlParserMode'/>
    <enum name='XML_PARSE_PUSH_SAX' file='parser' value='4' type='xmlParserMode'/>
    <enum name='XML_PARSE_READER' file='parser' value='5' type='xmlParserMode'/>
    <enum name='XML_PARSE_RECOVER' file='parser' value='1' type='xmlParserOption' info='recover on errors'/>
    <enum name='XML_PARSE_SAX' file='parser' value='2' type='xmlParserMode'/>
    <enum name='XML_PARSE_SAX1' file='parser' value='512' type='xmlParserOption' info='use the SAX1 interface internally'/>
    <enum name='XML_PARSE_UNKNOWN' file='parser' value='0' type='xmlParserMode'/>
    <enum name='XML_PARSE_XINCLUDE' file='parser' value='1024' type='xmlParserOption' info='Implement XInclude substitition'/>
    <enum name='XML_PI_NODE' file='tree' value='7' type='xmlElementType'/>
    <enum name='XML_READER_TYPE_ATTRIBUTE' file='xmlreader' value='2' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_CDATA' file='xmlreader' value='4' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_COMMENT' file='xmlreader' value='8' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_DOCUMENT' file='xmlreader' value='9' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_DOCUMENT_FRAGMENT' file='xmlreader' value='11' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_DOCUMENT_TYPE' file='xmlreader' value='10' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_ELEMENT' file='xmlreader' value='1' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_END_ELEMENT' file='xmlreader' value='15' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_END_ENTITY' file='xmlreader' value='16' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_ENTITY' file='xmlreader' value='6' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_ENTITY_REFERENCE' file='xmlreader' value='5' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_NONE' file='xmlreader' value='0' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_NOTATION' file='xmlreader' value='12' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_PROCESSING_INSTRUCTION' file='xmlreader' value='7' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_SIGNIFICANT_WHITESPACE' file='xmlreader' value='14' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_TEXT' file='xmlreader' value='3' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_WHITESPACE' file='xmlreader' value='13' type='xmlReaderTypes'/>
    <enum name='XML_READER_TYPE_XML_DECLARATION' file='xmlreader' value='17' type='xmlReaderTypes'/>
    <enum name='XML_REGEXP_COMPILE_ERROR' file='xmlerror' value='1450' type='xmlParserErrors'/>
    <enum name='XML_RELAXNGP_CRNG' file='relaxng' value='2' type='xmlRelaxNGParserFlag'/>
    <enum name='XML_RELAXNGP_FREE_DOC' file='relaxng' value='1' type='xmlRelaxNGParserFlag'/>
    <enum name='XML_RELAXNGP_NONE' file='relaxng' value='0' type='xmlRelaxNGParserFlag'/>
    <enum name='XML_RELAXNG_ERR_ATTREXTRANS' file='relaxng' value='20' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ATTRNAME' file='relaxng' value='14' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ATTRNONS' file='relaxng' value='16' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ATTRVALID' file='relaxng' value='24' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ATTRWRONGNS' file='relaxng' value='18' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_CONTENTVALID' file='relaxng' value='25' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_DATAELEM' file='relaxng' value='28' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_DATATYPE' file='relaxng' value='31' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_DUPID' file='relaxng' value='4' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ELEMEXTRANS' file='relaxng' value='19' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ELEMNAME' file='relaxng' value='13' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ELEMNONS' file='relaxng' value='15' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ELEMNOTEMPTY' file='relaxng' value='21' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ELEMWRONG' file='relaxng' value='38' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_ELEMWRONGNS' file='relaxng' value='17' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_EXTRACONTENT' file='relaxng' value='26' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_EXTRADATA' file='relaxng' value='35' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_INTEREXTRA' file='relaxng' value='12' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_INTERNAL' file='relaxng' value='37' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_INTERNODATA' file='relaxng' value='10' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_INTERSEQ' file='relaxng' value='11' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_INVALIDATTR' file='relaxng' value='27' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_LACKDATA' file='relaxng' value='36' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_LIST' file='relaxng' value='33' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_LISTELEM' file='relaxng' value='30' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_LISTEMPTY' file='relaxng' value='9' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_LISTEXTRA' file='relaxng' value='8' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_MEMORY' file='relaxng' value='1' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_NODEFINE' file='relaxng' value='7' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_NOELEM' file='relaxng' value='22' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_NOGRAMMAR' file='relaxng' value='34' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_NOSTATE' file='relaxng' value='6' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_NOTELEM' file='relaxng' value='23' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_TEXTWRONG' file='relaxng' value='39' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_TYPE' file='relaxng' value='2' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_TYPECMP' file='relaxng' value='5' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_TYPEVAL' file='relaxng' value='3' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_VALELEM' file='relaxng' value='29' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_ERR_VALUE' file='relaxng' value='32' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RELAXNG_OK' file='relaxng' value='0' type='xmlRelaxNGValidErr'/>
    <enum name='XML_RNGP_ANYNAME_ATTR_ANCESTOR' file='xmlerror' value='1000' type='xmlParserErrors'/>
    <enum name='XML_RNGP_ATTRIBUTE_CHILDREN' file='xmlerror' value='1002' type='xmlParserErrors' info='1002'/>
    <enum name='XML_RNGP_ATTRIBUTE_CONTENT' file='xmlerror' value='1003' type='xmlParserErrors' info='1003'/>
    <enum name='XML_RNGP_ATTRIBUTE_EMPTY' file='xmlerror' value='1004' type='xmlParserErrors' info='1004'/>
    <enum name='XML_RNGP_ATTRIBUTE_NOOP' file='xmlerror' value='1005' type='xmlParserErrors' info='1005'/>
    <enum name='XML_RNGP_ATTR_CONFLICT' file='xmlerror' value='1001' type='xmlParserErrors' info='1001'/>
    <enum name='XML_RNGP_CHOICE_CONTENT' file='xmlerror' value='1006' type='xmlParserErrors' info='1006'/>
    <enum name='XML_RNGP_CHOICE_EMPTY' file='xmlerror' value='1007' type='xmlParserErrors' info='1007'/>
    <enum name='XML_RNGP_CREATE_FAILURE' file='xmlerror' value='1008' type='xmlParserErrors' info='1008'/>
    <enum name='XML_RNGP_DATA_CONTENT' file='xmlerror' value='1009' type='xmlParserErrors' info='1009'/>
    <enum name='XML_RNGP_DEFINE_CREATE_FAILED' file='xmlerror' value='1011' type='xmlParserErrors' info='1011'/>
    <enum name='XML_RNGP_DEFINE_EMPTY' file='xmlerror' value='1012' type='xmlParserErrors' info='1012'/>
    <enum name='XML_RNGP_DEFINE_MISSING' file='xmlerror' value='1013' type='xmlParserErrors' info='1013'/>
    <enum name='XML_RNGP_DEFINE_NAME_MISSING' file='xmlerror' value='1014' type='xmlParserErrors' info='1014'/>
    <enum name='XML_RNGP_DEF_CHOICE_AND_INTERLEAVE' file='xmlerror' value='1010' type='xmlParserErrors' info='1010'/>
    <enum name='XML_RNGP_ELEMENT_CONTENT' file='xmlerror' value='1018' type='xmlParserErrors' info='1018'/>
    <enum name='XML_RNGP_ELEMENT_EMPTY' file='xmlerror' value='1017' type='xmlParserErrors' info='1017'/>
    <enum name='XML_RNGP_ELEMENT_NAME' file='xmlerror' value='1019' type='xmlParserErrors' info='1019'/>
    <enum name='XML_RNGP_ELEMENT_NO_CONTENT' file='xmlerror' value='1020' type='xmlParserErrors' info='1020'/>
    <enum name='XML_RNGP_ELEM_CONTENT_EMPTY' file='xmlerror' value='1015' type='xmlParserErrors' info='1015'/>
    <enum name='XML_RNGP_ELEM_CONTENT_ERROR' file='xmlerror' value='1016' type='xmlParserErrors' info='1016'/>
    <enum name='XML_RNGP_ELEM_TEXT_CONFLICT' file='xmlerror' value='1021' type='xmlParserErrors' info='1021'/>
    <enum name='XML_RNGP_EMPTY' file='xmlerror' value='1022' type='xmlParserErrors' info='1022'/>
    <enum name='XML_RNGP_EMPTY_CONSTRUCT' file='xmlerror' value='1023' type='xmlParserErrors' info='1023'/>
    <enum name='XML_RNGP_EMPTY_CONTENT' file='xmlerror' value='1024' type='xmlParserErrors' info='1024'/>
    <enum name='XML_RNGP_EMPTY_NOT_EMPTY' file='xmlerror' value='1025' type='xmlParserErrors' info='1025'/>
    <enum name='XML_RNGP_ERROR_TYPE_LIB' file='xmlerror' value='1026' type='xmlParserErrors' info='1026'/>
    <enum name='XML_RNGP_EXCEPT_EMPTY' file='xmlerror' value='1027' type='xmlParserErrors' info='1027'/>
    <enum name='XML_RNGP_EXCEPT_MISSING' file='xmlerror' value='1028' type='xmlParserErrors' info='1028'/>
    <enum name='XML_RNGP_EXCEPT_MULTIPLE' file='xmlerror' value='1029' type='xmlParserErrors' info='1029'/>
    <enum name='XML_RNGP_EXCEPT_NO_CONTENT' file='xmlerror' value='1030' type='xmlParserErrors' info='1030'/>
    <enum name='XML_RNGP_EXTERNALREF_EMTPY' file='xmlerror' value='1031' type='xmlParserErrors' info='1031'/>
    <enum name='XML_RNGP_EXTERNALREF_RECURSE' file='xmlerror' value='1033' type='xmlParserErrors' info='1033'/>
    <enum name='XML_RNGP_EXTERNAL_REF_FAILURE' file='xmlerror' value='1032' type='xmlParserErrors' info='1032'/>
    <enum name='XML_RNGP_FORBIDDEN_ATTRIBUTE' file='xmlerror' value='1034' type='xmlParserErrors' info='1034'/>
    <enum name='XML_RNGP_FOREIGN_ELEMENT' file='xmlerror' value='1035' type='xmlParserErrors' info='1035'/>
    <enum name='XML_RNGP_GRAMMAR_CONTENT' file='xmlerror' value='1036' type='xmlParserErrors' info='1036'/>
    <enum name='XML_RNGP_GRAMMAR_EMPTY' file='xmlerror' value='1037' type='xmlParserErrors' info='1037'/>
    <enum name='XML_RNGP_GRAMMAR_MISSING' file='xmlerror' value='1038' type='xmlParserErrors' info='1038'/>
    <enum name='XML_RNGP_GRAMMAR_NO_START' file='xmlerror' value='1039' type='xmlParserErrors' info='1039'/>
    <enum name='XML_RNGP_GROUP_ATTR_CONFLICT' file='xmlerror' value='1040' type='xmlParserErrors' info='1040'/>
    <enum name='XML_RNGP_HREF_ERROR' file='xmlerror' value='1041' type='xmlParserErrors' info='1041'/>
    <enum name='XML_RNGP_INCLUDE_EMPTY' file='xmlerror' value='1042' type='xmlParserErrors' info='1042'/>
    <enum name='XML_RNGP_INCLUDE_FAILURE' file='xmlerror' value='1043' type='xmlParserErrors' info='1043'/>
    <enum name='XML_RNGP_INCLUDE_RECURSE' file='xmlerror' value='1044' type='xmlParserErrors' info='1044'/>
    <enum name='XML_RNGP_INTERLEAVE_ADD' file='xmlerror' value='1045' type='xmlParserErrors' info='1045'/>
    <enum name='XML_RNGP_INTERLEAVE_CREATE_FAILED' file='xmlerror' value='1046' type='xmlParserErrors' info='1046'/>
    <enum name='XML_RNGP_INTERLEAVE_EMPTY' file='xmlerror' value='1047' type='xmlParserErrors' info='1047'/>
    <enum name='XML_RNGP_INTERLEAVE_NO_CONTENT' file='xmlerror' value='1048' type='xmlParserErrors' info='1048'/>
    <enum name='XML_RNGP_INVALID_DEFINE_NAME' file='xmlerror' value='1049' type='xmlParserErrors' info='1049'/>
    <enum name='XML_RNGP_INVALID_URI' file='xmlerror' value='1050' type='xmlParserErrors' info='1050'/>
    <enum name='XML_RNGP_INVALID_VALUE' file='xmlerror' value='1051' type='xmlParserErrors' info='1051'/>
    <enum name='XML_RNGP_MISSING_HREF' file='xmlerror' value='1052' type='xmlParserErrors' info='1052'/>
    <enum name='XML_RNGP_NAME_MISSING' file='xmlerror' value='1053' type='xmlParserErrors' info='1053'/>
    <enum name='XML_RNGP_NEED_COMBINE' file='xmlerror' value='1054' type='xmlParserErrors' info='1054'/>
    <enum name='XML_RNGP_NOTALLOWED_NOT_EMPTY' file='xmlerror' value='1055' type='xmlParserErrors' info='1055'/>
    <enum name='XML_RNGP_NSNAME_ATTR_ANCESTOR' file='xmlerror' value='1056' type='xmlParserErrors' info='1056'/>
    <enum name='XML_RNGP_NSNAME_NO_NS' file='xmlerror' value='1057' type='xmlParserErrors' info='1057'/>
    <enum name='XML_RNGP_PARAM_FORBIDDEN' file='xmlerror' value='1058' type='xmlParserErrors' info='1058'/>
    <enum name='XML_RNGP_PARAM_NAME_MISSING' file='xmlerror' value='1059' type='xmlParserErrors' info='1059'/>
    <enum name='XML_RNGP_PARENTREF_CREATE_FAILED' file='xmlerror' value='1060' type='xmlParserErrors' info='1060'/>
    <enum name='XML_RNGP_PARENTREF_NAME_INVALID' file='xmlerror' value='1061' type='xmlParserErrors' info='1061'/>
    <enum name='XML_RNGP_PARENTREF_NOT_EMPTY' file='xmlerror' value='1064' type='xmlParserErrors' info='1064'/>
    <enum name='XML_RNGP_PARENTREF_NO_NAME' file='xmlerror' value='1062' type='xmlParserErrors' info='1062'/>
    <enum name='XML_RNGP_PARENTREF_NO_PARENT' file='xmlerror' value='1063' type='xmlParserErrors' info='1063'/>
    <enum name='XML_RNGP_PARSE_ERROR' file='xmlerror' value='1065' type='xmlParserErrors' info='1065'/>
    <enum name='XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME' file='xmlerror' value='1066' type='xmlParserErrors' info='1066'/>
    <enum name='XML_RNGP_PAT_ATTR_ATTR' file='xmlerror' value='1067' type='xmlParserErrors' info='1067'/>
    <enum name='XML_RNGP_PAT_ATTR_ELEM' file='xmlerror' value='1068' type='xmlParserErrors' info='1068'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_ATTR' file='xmlerror' value='1069' type='xmlParserErrors' info='1069'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_ELEM' file='xmlerror' value='1070' type='xmlParserErrors' info='1070'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' file='xmlerror' value='1071' type='xmlParserErrors' info='1071'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_GROUP' file='xmlerror' value='1072' type='xmlParserErrors' info='1072'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE' file='xmlerror' value='1073' type='xmlParserErrors' info='1073'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_LIST' file='xmlerror' value='1074' type='xmlParserErrors' info='1074'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_ONEMORE' file='xmlerror' value='1075' type='xmlParserErrors' info='1075'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_REF' file='xmlerror' value='1076' type='xmlParserErrors' info='1076'/>
    <enum name='XML_RNGP_PAT_DATA_EXCEPT_TEXT' file='xmlerror' value='1077' type='xmlParserErrors' info='1077'/>
    <enum name='XML_RNGP_PAT_LIST_ATTR' file='xmlerror' value='1078' type='xmlParserErrors' info='1078'/>
    <enum name='XML_RNGP_PAT_LIST_ELEM' file='xmlerror' value='1079' type='xmlParserErrors' info='1079'/>
    <enum name='XML_RNGP_PAT_LIST_INTERLEAVE' file='xmlerror' value='1080' type='xmlParserErrors' info='1080'/>
    <enum name='XML_RNGP_PAT_LIST_LIST' file='xmlerror' value='1081' type='xmlParserErrors' info='1081'/>
    <enum name='XML_RNGP_PAT_LIST_REF' file='xmlerror' value='1082' type='xmlParserErrors' info='1082'/>
    <enum name='XML_RNGP_PAT_LIST_TEXT' file='xmlerror' value='1083' type='xmlParserErrors' info='1083'/>
    <enum name='XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME' file='xmlerror' value='1084' type='xmlParserErrors' info='1084'/>
    <enum name='XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME' file='xmlerror' value='1085' type='xmlParserErrors' info='1085'/>
    <enum name='XML_RNGP_PAT_ONEMORE_GROUP_ATTR' file='xmlerror' value='1086' type='xmlParserErrors' info='1086'/>
    <enum name='XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR' file='xmlerror' value='1087' type='xmlParserErrors' info='1087'/>
    <enum name='XML_RNGP_PAT_START_ATTR' file='xmlerror' value='1088' type='xmlParserErrors' info='1088'/>
    <enum name='XML_RNGP_PAT_START_DATA' file='xmlerror' value='1089' type='xmlParserErrors' info='1089'/>
    <enum name='XML_RNGP_PAT_START_EMPTY' file='xmlerror' value='1090' type='xmlParserErrors' info='1090'/>
    <enum name='XML_RNGP_PAT_START_GROUP' file='xmlerror' value='1091' type='xmlParserErrors' info='1091'/>
    <enum name='XML_RNGP_PAT_START_INTERLEAVE' file='xmlerror' value='1092' type='xmlParserErrors' info='1092'/>
    <enum name='XML_RNGP_PAT_START_LIST' file='xmlerror' value='1093' type='xmlParserErrors' info='1093'/>
    <enum name='XML_RNGP_PAT_START_ONEMORE' file='xmlerror' value='1094' type='xmlParserErrors' info='1094'/>
    <enum name='XML_RNGP_PAT_START_TEXT' file='xmlerror' value='1095' type='xmlParserErrors' info='1095'/>
    <enum name='XML_RNGP_PAT_START_VALUE' file='xmlerror' value='1096' type='xmlParserErrors' info='1096'/>
    <enum name='XML_RNGP_PREFIX_UNDEFINED' file='xmlerror' value='1097' type='xmlParserErrors' info='1097'/>
    <enum name='XML_RNGP_REF_CREATE_FAILED' file='xmlerror' value='1098' type='xmlParserErrors' info='1098'/>
    <enum name='XML_RNGP_REF_CYCLE' file='xmlerror' value='1099' type='xmlParserErrors' info='1099'/>
    <enum name='XML_RNGP_REF_NAME_INVALID' file='xmlerror' value='1100' type='xmlParserErrors' info='1100'/>
    <enum name='XML_RNGP_REF_NOT_EMPTY' file='xmlerror' value='1103' type='xmlParserErrors' info='1103'/>
    <enum name='XML_RNGP_REF_NO_DEF' file='xmlerror' value='1101' type='xmlParserErrors' info='1101'/>
    <enum name='XML_RNGP_REF_NO_NAME' file='xmlerror' value='1102' type='xmlParserErrors' info='1102'/>
    <enum name='XML_RNGP_START_CHOICE_AND_INTERLEAVE' file='xmlerror' value='1104' type='xmlParserErrors' info='1104'/>
    <enum name='XML_RNGP_START_CONTENT' file='xmlerror' value='1105' type='xmlParserErrors' info='1105'/>
    <enum name='XML_RNGP_START_EMPTY' file='xmlerror' value='1106' type='xmlParserErrors' info='1106'/>
    <enum name='XML_RNGP_START_MISSING' file='xmlerror' value='1107' type='xmlParserErrors' info='1107'/>
    <enum name='XML_RNGP_TEXT_EXPECTED' file='xmlerror' value='1108' type='xmlParserErrors' info='1108'/>
    <enum name='XML_RNGP_TEXT_HAS_CHILD' file='xmlerror' value='1109' type='xmlParserErrors' info='1109'/>
    <enum name='XML_RNGP_TYPE_MISSING' file='xmlerror' value='1110' type='xmlParserErrors' info='1110'/>
    <enum name='XML_RNGP_TYPE_NOT_FOUND' file='xmlerror' value='1111' type='xmlParserErrors' info='1111'/>
    <enum name='XML_RNGP_TYPE_VALUE' file='xmlerror' value='1112' type='xmlParserErrors' info='1112'/>
    <enum name='XML_RNGP_UNKNOWN_ATTRIBUTE' file='xmlerror' value='1113' type='xmlParserErrors' info='1113'/>
    <enum name='XML_RNGP_UNKNOWN_COMBINE' file='xmlerror' value='1114' type='xmlParserErrors' info='1114'/>
    <enum name='XML_RNGP_UNKNOWN_CONSTRUCT' file='xmlerror' value='1115' type='xmlParserErrors' info='1115'/>
    <enum name='XML_RNGP_UNKNOWN_TYPE_LIB' file='xmlerror' value='1116' type='xmlParserErrors' info='1116'/>
    <enum name='XML_RNGP_URI_FRAGMENT' file='xmlerror' value='1117' type='xmlParserErrors' info='1117'/>
    <enum name='XML_RNGP_URI_NOT_ABSOLUTE' file='xmlerror' value='1118' type='xmlParserErrors' info='1118'/>
    <enum name='XML_RNGP_VALUE_EMPTY' file='xmlerror' value='1119' type='xmlParserErrors' info='1119'/>
    <enum name='XML_RNGP_VALUE_NO_CONTENT' file='xmlerror' value='1120' type='xmlParserErrors' info='1120'/>
    <enum name='XML_RNGP_XMLNS_NAME' file='xmlerror' value='1121' type='xmlParserErrors' info='1121'/>
    <enum name='XML_RNGP_XML_NS' file='xmlerror' value='1122' type='xmlParserErrors' info='1122'/>
    <enum name='XML_SAVE_CHAR_INVALID' file='xmlerror' value='1401' type='xmlParserErrors' info='1401'/>
    <enum name='XML_SAVE_NOT_UTF8' file='xmlerror' value='1400' type='xmlParserErrors'/>
    <enum name='XML_SAVE_NO_DOCTYPE' file='xmlerror' value='1402' type='xmlParserErrors' info='1402'/>
    <enum name='XML_SAVE_UNKNOWN_ENCODING' file='xmlerror' value='1403' type='xmlParserErrors' info='1403'/>
    <enum name='XML_SCHEMAP_ATTRFORMDEFAULT_VALUE' file='xmlerror' value='1701' type='xmlParserErrors' info='1701'/>
    <enum name='XML_SCHEMAP_ATTRGRP_NONAME_NOREF' file='xmlerror' value='1702' type='xmlParserErrors' info='1702'/>
    <enum name='XML_SCHEMAP_ATTR_NONAME_NOREF' file='xmlerror' value='1703' type='xmlParserErrors' info='1703'/>
    <enum name='XML_SCHEMAP_AU_PROPS_CORRECT_2' file='xmlerror' value='3078' type='xmlParserErrors' info='3078'/>
    <enum name='XML_SCHEMAP_A_PROPS_CORRECT_2' file='xmlerror' value='3079' type='xmlParserErrors'/>
    <enum name='XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF' file='xmlerror' value='1704' type='xmlParserErrors' info='1704'/>
    <enum name='XML_SCHEMAP_COS_CT_EXTENDS_1_1' file='xmlerror' value='3063' type='xmlParserErrors' info='3063'/>
    <enum name='XML_SCHEMAP_COS_CT_EXTENDS_1_3' file='xmlerror' value='1800' type='xmlParserErrors' info='1800'/>
    <enum name='XML_SCHEMAP_COS_ST_DERIVED_OK_2_1' file='xmlerror' value='3031' type='xmlParserErrors' info='3031'/>
    <enum name='XML_SCHEMAP_COS_ST_DERIVED_OK_2_2' file='xmlerror' value='3032' type='xmlParserErrors' info='3032'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_1' file='xmlerror' value='3011' type='xmlParserErrors' info='3011'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' file='xmlerror' value='3012' type='xmlParserErrors' info='3012'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1' file='xmlerror' value='3013' type='xmlParserErrors' info='3013'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' file='xmlerror' value='3014' type='xmlParserErrors' info='3014'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' file='xmlerror' value='3015' type='xmlParserErrors' info='3015'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1' file='xmlerror' value='3016' type='xmlParserErrors' info='3016'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2' file='xmlerror' value='3017' type='xmlParserErrors' info='3017'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1' file='xmlerror' value='3018' type='xmlParserErrors' info='3018'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' file='xmlerror' value='3019' type='xmlParserErrors' info='3019'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3' file='xmlerror' value='3020' type='xmlParserErrors' info='3020'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' file='xmlerror' value='3021' type='xmlParserErrors' info='3021'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5' file='xmlerror' value='3022' type='xmlParserErrors' info='3022'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_1' file='xmlerror' value='3023' type='xmlParserErrors' info='3023'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1' file='xmlerror' value='3024' type='xmlParserErrors' info='3024'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2' file='xmlerror' value='3025' type='xmlParserErrors' info='3025'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1' file='xmlerror' value='3027' type='xmlParserErrors' info='3027'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2' file='xmlerror' value='3026' type='xmlParserErrors' info='3026'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3' file='xmlerror' value='3028' type='xmlParserErrors' info='3028'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4' file='xmlerror' value='3029' type='xmlParserErrors' info='3029'/>
    <enum name='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5' file='xmlerror' value='3030' type='xmlParserErrors' info='3030'/>
    <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_1' file='xmlerror' value='3058' type='xmlParserErrors' info='3058'/>
    <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_2_1' file='xmlerror' value='3059' type='xmlParserErrors' info='3059'/>
    <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1' file='xmlerror' value='3060' type='xmlParserErrors' info='3060'/>
    <enum name='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2' file='xmlerror' value='3061' type='xmlParserErrors' info='3061'/>
    <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_1' file='xmlerror' value='1782' type='xmlParserErrors' info='1782'/>
    <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_2' file='xmlerror' value='1783' type='xmlParserErrors' info='1783'/>
    <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_3' file='xmlerror' value='1784' type='xmlParserErrors' info='1784'/>
    <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_4' file='xmlerror' value='1785' type='xmlParserErrors' info='1785'/>
    <enum name='XML_SCHEMAP_CT_PROPS_CORRECT_5' file='xmlerror' value='1786' type='xmlParserErrors' info='1786'/>
    <enum name='XML_SCHEMAP_CVC_SIMPLE_TYPE' file='xmlerror' value='3062' type='xmlParserErrors' info='3062'/>
    <enum name='XML_SCHEMAP_DEF_AND_PREFIX' file='xmlerror' value='1768' type='xmlParserErrors' info='1768'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' file='xmlerror' value='1787' type='xmlParserErrors' info='1787'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' file='xmlerror' value='1788' type='xmlParserErrors' info='1788'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2' file='xmlerror' value='1789' type='xmlParserErrors' info='1789'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3' file='xmlerror' value='3077' type='xmlParserErrors' info='3077'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2' file='xmlerror' value='1790' type='xmlParserErrors' info='1790'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' file='xmlerror' value='1791' type='xmlParserErrors' info='1791'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' file='xmlerror' value='1797' type='xmlParserErrors' info='1797'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' file='xmlerror' value='1798' type='xmlParserErrors' info='1798'/>
    <enum name='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' file='xmlerror' value='1799' type='xmlParserErrors' info='1799'/>
    <enum name='XML_SCHEMAP_ELEMFORMDEFAULT_VALUE' file='xmlerror' value='1705' type='xmlParserErrors' info='1705'/>
    <enum name='XML_SCHEMAP_ELEM_DEFAULT_FIXED' file='xmlerror' value='1755' type='xmlParserErrors' info='1755'/>
    <enum name='XML_SCHEMAP_ELEM_NONAME_NOREF' file='xmlerror' value='1706' type='xmlParserErrors' info='1706'/>
    <enum name='XML_SCHEMAP_EXTENSION_NO_BASE' file='xmlerror' value='1707' type='xmlParserErrors' info='1707'/>
    <enum name='XML_SCHEMAP_E_PROPS_CORRECT_2' file='xmlerror' value='3045' type='xmlParserErrors' info='3045'/>
    <enum name='XML_SCHEMAP_E_PROPS_CORRECT_3' file='xmlerror' value='3046' type='xmlParserErrors' info='3046'/>
    <enum name='XML_SCHEMAP_E_PROPS_CORRECT_4' file='xmlerror' value='3047' type='xmlParserErrors' info='3047'/>
    <enum name='XML_SCHEMAP_E_PROPS_CORRECT_5' file='xmlerror' value='3048' type='xmlParserErrors' info='3048'/>
    <enum name='XML_SCHEMAP_E_PROPS_CORRECT_6' file='xmlerror' value='3049' type='xmlParserErrors' info='3049'/>
    <enum name='XML_SCHEMAP_FACET_NO_VALUE' file='xmlerror' value='1708' type='xmlParserErrors' info='1708'/>
    <enum name='XML_SCHEMAP_FAILED_BUILD_IMPORT' file='xmlerror' value='1709' type='xmlParserErrors' info='1709'/>
    <enum name='XML_SCHEMAP_FAILED_LOAD' file='xmlerror' value='1757' type='xmlParserErrors' info='1757'/>
    <enum name='XML_SCHEMAP_FAILED_PARSE' file='xmlerror' value='1766' type='xmlParserErrors' info='1766'/>
    <enum name='XML_SCHEMAP_GROUP_NONAME_NOREF' file='xmlerror' value='1710' type='xmlParserErrors' info='1710'/>
    <enum name='XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI' file='xmlerror' value='1711' type='xmlParserErrors' info='1711'/>
    <enum name='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' file='xmlerror' value='1712' type='xmlParserErrors' info='1712'/>
    <enum name='XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI' file='xmlerror' value='1713' type='xmlParserErrors' info='1713'/>
    <enum name='XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI' file='xmlerror' value='1770' type='xmlParserErrors' info='1770'/>
    <enum name='XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI' file='xmlerror' value='1771' type='xmlParserErrors' info='1771'/>
    <enum name='XML_SCHEMAP_INTERNAL' file='xmlerror' value='3069' type='xmlParserErrors' info='3069 non-W3C'/>
    <enum name='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' file='xmlerror' value='1793' type='xmlParserErrors' info='1793'/>
    <enum name='XML_SCHEMAP_INVALID_ATTR_COMBINATION' file='xmlerror' value='1777' type='xmlParserErrors' info='1777'/>
    <enum name='XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION' file='xmlerror' value='1778' type='xmlParserErrors' info='1778'/>
    <enum name='XML_SCHEMAP_INVALID_ATTR_NAME' file='xmlerror' value='1780' type='xmlParserErrors' info='1780'/>
    <enum name='XML_SCHEMAP_INVALID_ATTR_USE' file='xmlerror' value='1774' type='xmlParserErrors' info='1774'/>
    <enum name='XML_SCHEMAP_INVALID_BOOLEAN' file='xmlerror' value='1714' type='xmlParserErrors' info='1714'/>
    <enum name='XML_SCHEMAP_INVALID_ENUM' file='xmlerror' value='1715' type='xmlParserErrors' info='1715'/>
    <enum name='XML_SCHEMAP_INVALID_FACET' file='xmlerror' value='1716' type='xmlParserErrors' info='1716'/>
    <enum name='XML_SCHEMAP_INVALID_FACET_VALUE' file='xmlerror' value='1717' type='xmlParserErrors' info='1717'/>
    <enum name='XML_SCHEMAP_INVALID_MAXOCCURS' file='xmlerror' value='1718' type='xmlParserErrors' info='1718'/>
    <enum name='XML_SCHEMAP_INVALID_MINOCCURS' file='xmlerror' value='1719' type='xmlParserErrors' info='1719'/>
    <enum name='XML_SCHEMAP_INVALID_REF_AND_SUBTYPE' file='xmlerror' value='1720' type='xmlParserErrors' info='1720'/>
    <enum name='XML_SCHEMAP_INVALID_WHITE_SPACE' file='xmlerror' value='1721' type='xmlParserErrors' info='1721'/>
    <enum name='XML_SCHEMAP_MG_PROPS_CORRECT_1' file='xmlerror' value='3074' type='xmlParserErrors' info='3074'/>
    <enum name='XML_SCHEMAP_MG_PROPS_CORRECT_2' file='xmlerror' value='3075' type='xmlParserErrors' info='3075'/>
    <enum name='XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD' file='xmlerror' value='1779' type='xmlParserErrors' info='1779'/>
    <enum name='XML_SCHEMAP_NOATTR_NOREF' file='xmlerror' value='1722' type='xmlParserErrors' info='1722'/>
    <enum name='XML_SCHEMAP_NOROOT' file='xmlerror' value='1759' type='xmlParserErrors' info='1759'/>
    <enum name='XML_SCHEMAP_NOTATION_NO_NAME' file='xmlerror' value='1723' type='xmlParserErrors' info='1723'/>
    <enum name='XML_SCHEMAP_NOTHING_TO_PARSE' file='xmlerror' value='1758' type='xmlParserErrors' info='1758'/>
    <enum name='XML_SCHEMAP_NOTYPE_NOREF' file='xmlerror' value='1724' type='xmlParserErrors' info='1724'/>
    <enum name='XML_SCHEMAP_NOT_DETERMINISTIC' file='xmlerror' value='3070' type='xmlParserErrors' info='3070 non-W3C'/>
    <enum name='XML_SCHEMAP_NOT_SCHEMA' file='xmlerror' value='1772' type='xmlParserErrors' info='1772'/>
    <enum name='XML_SCHEMAP_NO_XMLNS' file='xmlerror' value='3056' type='xmlParserErrors' info='3056'/>
    <enum name='XML_SCHEMAP_NO_XSI' file='xmlerror' value='3057' type='xmlParserErrors' info='3057'/>
    <enum name='XML_SCHEMAP_PREFIX_UNDEFINED' file='xmlerror' value='1700' type='xmlParserErrors'/>
    <enum name='XML_SCHEMAP_P_PROPS_CORRECT_1' file='xmlerror' value='3042' type='xmlParserErrors' info='3042'/>
    <enum name='XML_SCHEMAP_P_PROPS_CORRECT_2_1' file='xmlerror' value='3043' type='xmlParserErrors' info='3043'/>
    <enum name='XML_SCHEMAP_P_PROPS_CORRECT_2_2' file='xmlerror' value='3044' type='xmlParserErrors' info='3044'/>
    <enum name='XML_SCHEMAP_RECURSIVE' file='xmlerror' value='1775' type='xmlParserErrors' info='1775'/>
    <enum name='XML_SCHEMAP_REDEFINED_ATTR' file='xmlerror' value='1764' type='xmlParserErrors' info='1764'/>
    <enum name='XML_SCHEMAP_REDEFINED_ATTRGROUP' file='xmlerror' value='1763' type='xmlParserErrors' info='1763'/>
    <enum name='XML_SCHEMAP_REDEFINED_ELEMENT' file='xmlerror' value='1762' type='xmlParserErrors' info='1762'/>
    <enum name='XML_SCHEMAP_REDEFINED_GROUP' file='xmlerror' value='1760' type='xmlParserErrors' info='1760'/>
    <enum name='XML_SCHEMAP_REDEFINED_NOTATION' file='xmlerror' value='1765' type='xmlParserErrors' info='1765'/>
    <enum name='XML_SCHEMAP_REDEFINED_TYPE' file='xmlerror' value='1761' type='xmlParserErrors' info='1761'/>
    <enum name='XML_SCHEMAP_REF_AND_CONTENT' file='xmlerror' value='1781' type='xmlParserErrors' info='1781'/>
    <enum name='XML_SCHEMAP_REF_AND_SUBTYPE' file='xmlerror' value='1725' type='xmlParserErrors' info='1725'/>
    <enum name='XML_SCHEMAP_REGEXP_INVALID' file='xmlerror' value='1756' type='xmlParserErrors' info='1756'/>
    <enum name='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' file='xmlerror' value='1726' type='xmlParserErrors' info='1726'/>
    <enum name='XML_SCHEMAP_S4S_ATTR_INVALID_VALUE' file='xmlerror' value='3037' type='xmlParserErrors' info='3037'/>
    <enum name='XML_SCHEMAP_S4S_ATTR_MISSING' file='xmlerror' value='3036' type='xmlParserErrors' info='3036'/>
    <enum name='XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED' file='xmlerror' value='3035' type='xmlParserErrors' info='3035'/>
    <enum name='XML_SCHEMAP_S4S_ELEM_MISSING' file='xmlerror' value='3034' type='xmlParserErrors' info='3034'/>
    <enum name='XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED' file='xmlerror' value='3033' type='xmlParserErrors' info='3033'/>
    <enum name='XML_SCHEMAP_SIMPLETYPE_NONAME' file='xmlerror' value='1727' type='xmlParserErrors' info='1727'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_1' file='xmlerror' value='3051' type='xmlParserErrors' info='3051'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_2' file='xmlerror' value='3052' type='xmlParserErrors' info='3052'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_3_1' file='xmlerror' value='3053' type='xmlParserErrors' info='3053'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_3_2' file='xmlerror' value='3054' type='xmlParserErrors' info='3054'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_4' file='xmlerror' value='3055' type='xmlParserErrors' info='3055'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1' file='xmlerror' value='3071' type='xmlParserErrors' info='3071'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2' file='xmlerror' value='3072' type='xmlParserErrors' info='3072'/>
    <enum name='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3' file='xmlerror' value='3073' type='xmlParserErrors' info='3073'/>
    <enum name='XML_SCHEMAP_SRC_CT_1' file='xmlerror' value='3076' type='xmlParserErrors' info='3076'/>
    <enum name='XML_SCHEMAP_SRC_ELEMENT_1' file='xmlerror' value='3038' type='xmlParserErrors' info='3038'/>
    <enum name='XML_SCHEMAP_SRC_ELEMENT_2_1' file='xmlerror' value='3039' type='xmlParserErrors' info='3039'/>
    <enum name='XML_SCHEMAP_SRC_ELEMENT_2_2' file='xmlerror' value='3040' type='xmlParserErrors' info='3040'/>
    <enum name='XML_SCHEMAP_SRC_ELEMENT_3' file='xmlerror' value='3041' type='xmlParserErrors' info='3041'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_1_1' file='xmlerror' value='3064' type='xmlParserErrors' info='3064'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_1_2' file='xmlerror' value='3065' type='xmlParserErrors' info='3065'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_2' file='xmlerror' value='3066' type='xmlParserErrors' info='3066'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_2_1' file='xmlerror' value='3067' type='xmlParserErrors' info='3067'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_2_2' file='xmlerror' value='3068' type='xmlParserErrors' info='3068'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_3_1' file='xmlerror' value='1795' type='xmlParserErrors' info='1795'/>
    <enum name='XML_SCHEMAP_SRC_IMPORT_3_2' file='xmlerror' value='1796' type='xmlParserErrors' info='1796'/>
    <enum name='XML_SCHEMAP_SRC_INCLUDE' file='xmlerror' value='3050' type='xmlParserErrors' info='3050'/>
    <enum name='XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE' file='xmlerror' value='3006' type='xmlParserErrors' info='3006'/>
    <enum name='XML_SCHEMAP_SRC_RESOLVE' file='xmlerror' value='3004' type='xmlParserErrors' info='3004'/>
    <enum name='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' file='xmlerror' value='3005' type='xmlParserErrors' info='3005'/>
    <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' file='xmlerror' value='3000' type='xmlParserErrors'/>
    <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_2' file='xmlerror' value='3001' type='xmlParserErrors' info='3001'/>
    <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_3' file='xmlerror' value='3002' type='xmlParserErrors' info='3002'/>
    <enum name='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' file='xmlerror' value='3003' type='xmlParserErrors' info='3003'/>
    <enum name='XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES' file='xmlerror' value='3007' type='xmlParserErrors' info='3007'/>
    <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_1' file='xmlerror' value='3008' type='xmlParserErrors' info='3008'/>
    <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_2' file='xmlerror' value='3009' type='xmlParserErrors' info='3009'/>
    <enum name='XML_SCHEMAP_ST_PROPS_CORRECT_3' file='xmlerror' value='3010' type='xmlParserErrors' info='3010'/>
    <enum name='XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE' file='xmlerror' value='1776' type='xmlParserErrors' info='1776'/>
    <enum name='XML_SCHEMAP_TYPE_AND_SUBTYPE' file='xmlerror' value='1728' type='xmlParserErrors' info='1728'/>
    <enum name='XML_SCHEMAP_UNION_NOT_EXPRESSIBLE' file='xmlerror' value='1794' type='xmlParserErrors' info='1794'/>
    <enum name='XML_SCHEMAP_UNKNOWN_ALL_CHILD' file='xmlerror' value='1729' type='xmlParserErrors' info='1729'/>
    <enum name='XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' file='xmlerror' value='1730' type='xmlParserErrors' info='1730'/>
    <enum name='XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD' file='xmlerror' value='1732' type='xmlParserErrors' info='1732'/>
    <enum name='XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP' file='xmlerror' value='1733' type='xmlParserErrors' info='1733'/>
    <enum name='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' file='xmlerror' value='1731' type='xmlParserErrors' info='1731'/>
    <enum name='XML_SCHEMAP_UNKNOWN_BASE_TYPE' file='xmlerror' value='1734' type='xmlParserErrors' info='1734'/>
    <enum name='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' file='xmlerror' value='1735' type='xmlParserErrors' info='1735'/>
    <enum name='XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD' file='xmlerror' value='1736' type='xmlParserErrors' info='1736'/>
    <enum name='XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD' file='xmlerror' value='1737' type='xmlParserErrors' info='1737'/>
    <enum name='XML_SCHEMAP_UNKNOWN_ELEM_CHILD' file='xmlerror' value='1738' type='xmlParserErrors' info='1738'/>
    <enum name='XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD' file='xmlerror' value='1739' type='xmlParserErrors' info='1739'/>
    <enum name='XML_SCHEMAP_UNKNOWN_FACET_CHILD' file='xmlerror' value='1740' type='xmlParserErrors' info='1740'/>
    <enum name='XML_SCHEMAP_UNKNOWN_FACET_TYPE' file='xmlerror' value='1741' type='xmlParserErrors' info='1741'/>
    <enum name='XML_SCHEMAP_UNKNOWN_GROUP_CHILD' file='xmlerror' value='1742' type='xmlParserErrors' info='1742'/>
    <enum name='XML_SCHEMAP_UNKNOWN_IMPORT_CHILD' file='xmlerror' value='1743' type='xmlParserErrors' info='1743'/>
    <enum name='XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD' file='xmlerror' value='1769' type='xmlParserErrors' info='1769'/>
    <enum name='XML_SCHEMAP_UNKNOWN_LIST_CHILD' file='xmlerror' value='1744' type='xmlParserErrors' info='1744'/>
    <enum name='XML_SCHEMAP_UNKNOWN_MEMBER_TYPE' file='xmlerror' value='1773' type='xmlParserErrors' info='1773'/>
    <enum name='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' file='xmlerror' value='1745' type='xmlParserErrors' info='1745'/>
    <enum name='XML_SCHEMAP_UNKNOWN_PREFIX' file='xmlerror' value='1767' type='xmlParserErrors' info='1767'/>
    <enum name='XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD' file='xmlerror' value='1746' type='xmlParserErrors' info='1746'/>
    <enum name='XML_SCHEMAP_UNKNOWN_REF' file='xmlerror' value='1747' type='xmlParserErrors' info='1747'/>
    <enum name='XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD' file='xmlerror' value='1748' type='xmlParserErrors' info='1748'/>
    <enum name='XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD' file='xmlerror' value='1749' type='xmlParserErrors' info='1749'/>
    <enum name='XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD' file='xmlerror' value='1750' type='xmlParserErrors' info='1750'/>
    <enum name='XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD' file='xmlerror' value='1751' type='xmlParserErrors' info='1751'/>
    <enum name='XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD' file='xmlerror' value='1752' type='xmlParserErrors' info='1752'/>
    <enum name='XML_SCHEMAP_UNKNOWN_TYPE' file='xmlerror' value='1753' type='xmlParserErrors' info='1753'/>
    <enum name='XML_SCHEMAP_UNKNOWN_UNION_CHILD' file='xmlerror' value='1754' type='xmlParserErrors' info='1754'/>
    <enum name='XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER' file='xmlerror' value='1792' type='xmlParserErrors' info='1792'/>
    <enum name='XML_SCHEMAS_ANYSIMPLETYPE' file='schemasInternals' value='46' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ANYTYPE' file='schemasInternals' value='45' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ANYURI' file='schemasInternals' value='29' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_BASE64BINARY' file='schemasInternals' value='44' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_BOOLEAN' file='schemasInternals' value='15' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_BYTE' file='schemasInternals' value='41' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_DATE' file='schemasInternals' value='10' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_DATETIME' file='schemasInternals' value='11' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_DECIMAL' file='schemasInternals' value='3' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_DOUBLE' file='schemasInternals' value='14' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_DURATION' file='schemasInternals' value='12' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ENTITIES' file='schemasInternals' value='27' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ENTITY' file='schemasInternals' value='26' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ERR_' file='xmlschemas' value='24' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_ATTRINVALID' file='xmlschemas' value='21' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_ATTRUNKNOWN' file='xmlschemas' value='20' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_CONSTRUCT' file='xmlschemas' value='17' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_ELEMCONT' file='xmlschemas' value='10' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_EXTRACONTENT' file='xmlschemas' value='13' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_FACET' file='xmlschemas' value='23' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_HAVEDEFAULT' file='xmlschemas' value='11' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_INTERNAL' file='xmlschemas' value='18' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_INVALIDATTR' file='xmlschemas' value='14' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_INVALIDELEM' file='xmlschemas' value='15' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_ISABSTRACT' file='xmlschemas' value='8' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_MISSING' file='xmlschemas' value='4' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOROLLBACK' file='xmlschemas' value='7' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOROOT' file='xmlschemas' value='1' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOTDETERMINIST' file='xmlschemas' value='16' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOTEMPTY' file='xmlschemas' value='9' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOTNILLABLE' file='xmlschemas' value='12' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOTSIMPLE' file='xmlschemas' value='19' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOTTOPLEVEL' file='xmlschemas' value='3' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_NOTYPE' file='xmlschemas' value='6' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_OK' file='xmlschemas' value='0' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_UNDECLAREDELEM' file='xmlschemas' value='2' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_VALUE' file='xmlschemas' value='22' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_WRONGELEM' file='xmlschemas' value='5' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_ERR_XXX' file='xmlschemas' value='25' type='xmlSchemaValidError'/>
    <enum name='XML_SCHEMAS_FLOAT' file='schemasInternals' value='13' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_GDAY' file='schemasInternals' value='5' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_GMONTH' file='schemasInternals' value='6' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_GMONTHDAY' file='schemasInternals' value='7' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_GYEAR' file='schemasInternals' value='8' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_GYEARMONTH' file='schemasInternals' value='9' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_HEXBINARY' file='schemasInternals' value='43' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ID' file='schemasInternals' value='23' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_IDREF' file='schemasInternals' value='24' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_IDREFS' file='schemasInternals' value='25' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_INT' file='schemasInternals' value='35' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_INTEGER' file='schemasInternals' value='30' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_LANGUAGE' file='schemasInternals' value='17' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_LONG' file='schemasInternals' value='37' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NAME' file='schemasInternals' value='20' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NCNAME' file='schemasInternals' value='22' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NINTEGER' file='schemasInternals' value='32' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NMTOKEN' file='schemasInternals' value='18' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NMTOKENS' file='schemasInternals' value='19' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NNINTEGER' file='schemasInternals' value='33' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NORMSTRING' file='schemasInternals' value='2' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NOTATION' file='schemasInternals' value='28' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_NPINTEGER' file='schemasInternals' value='31' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_PINTEGER' file='schemasInternals' value='34' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_QNAME' file='schemasInternals' value='21' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_SHORT' file='schemasInternals' value='39' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_STRING' file='schemasInternals' value='1' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_TIME' file='schemasInternals' value='4' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_TOKEN' file='schemasInternals' value='16' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_UBYTE' file='schemasInternals' value='42' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_UINT' file='schemasInternals' value='36' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_ULONG' file='schemasInternals' value='38' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_UNKNOWN' file='schemasInternals' value='0' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAS_USHORT' file='schemasInternals' value='40' type='xmlSchemaValType'/>
    <enum name='XML_SCHEMAV_ATTRINVALID' file='xmlerror' value='1821' type='xmlParserErrors' info='1821'/>
    <enum name='XML_SCHEMAV_ATTRUNKNOWN' file='xmlerror' value='1820' type='xmlParserErrors' info='1820'/>
    <enum name='XML_SCHEMAV_CONSTRUCT' file='xmlerror' value='1817' type='xmlParserErrors' info='1817'/>
    <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_1' file='xmlerror' value='1861' type='xmlParserErrors' info='1861'/>
    <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_2' file='xmlerror' value='1862' type='xmlParserErrors' info='1862'/>
    <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_3' file='xmlerror' value='1863' type='xmlParserErrors' info='1863'/>
    <enum name='XML_SCHEMAV_CVC_ATTRIBUTE_4' file='xmlerror' value='1864' type='xmlParserErrors' info='1864'/>
    <enum name='XML_SCHEMAV_CVC_AU' file='xmlerror' value='1874' type='xmlParserErrors' info='1874'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_1' file='xmlerror' value='1873' type='xmlParserErrors' info='1873'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1' file='xmlerror' value='1841' type='xmlParserErrors' info='1841'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' file='xmlerror' value='1842' type='xmlParserErrors' info='1842'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' file='xmlerror' value='1843' type='xmlParserErrors' info='1843'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4' file='xmlerror' value='1844' type='xmlParserErrors' info='1844'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1' file='xmlerror' value='1865' type='xmlParserErrors' info='1865'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1' file='xmlerror' value='1866' type='xmlParserErrors' info='1866'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2' file='xmlerror' value='1867' type='xmlParserErrors' info='1867'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_4' file='xmlerror' value='1868' type='xmlParserErrors' info='1868'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1' file='xmlerror' value='1869' type='xmlParserErrors' info='1869'/>
    <enum name='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2' file='xmlerror' value='1870' type='xmlParserErrors' info='1870'/>
    <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' file='xmlerror' value='1824' type='xmlParserErrors' info='1824'/>
    <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2' file='xmlerror' value='1825' type='xmlParserErrors' info='1825'/>
    <enum name='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' file='xmlerror' value='1826' type='xmlParserErrors' info='1826'/>
    <enum name='XML_SCHEMAV_CVC_ELT_1' file='xmlerror' value='1845' type='xmlParserErrors' info='1845'/>
    <enum name='XML_SCHEMAV_CVC_ELT_2' file='xmlerror' value='1846' type='xmlParserErrors' info='1846'/>
    <enum name='XML_SCHEMAV_CVC_ELT_3_1' file='xmlerror' value='1847' type='xmlParserErrors' info='1847'/>
    <enum name='XML_SCHEMAV_CVC_ELT_3_2_1' file='xmlerror' value='1848' type='xmlParserErrors' info='1848'/>
    <enum name='XML_SCHEMAV_CVC_ELT_3_2_2' file='xmlerror' value='1849' type='xmlParserErrors' info='1849'/>
    <enum name='XML_SCHEMAV_CVC_ELT_4_1' file='xmlerror' value='1850' type='xmlParserErrors' info='1850'/>
    <enum name='XML_SCHEMAV_CVC_ELT_4_2' file='xmlerror' value='1851' type='xmlParserErrors' info='1851'/>
    <enum name='XML_SCHEMAV_CVC_ELT_4_3' file='xmlerror' value='1852' type='xmlParserErrors' info='1852'/>
    <enum name='XML_SCHEMAV_CVC_ELT_5_1_1' file='xmlerror' value='1853' type='xmlParserErrors' info='1853'/>
    <enum name='XML_SCHEMAV_CVC_ELT_5_1_2' file='xmlerror' value='1854' type='xmlParserErrors' info='1854'/>
    <enum name='XML_SCHEMAV_CVC_ELT_5_2_1' file='xmlerror' value='1855' type='xmlParserErrors' info='1855'/>
    <enum name='XML_SCHEMAV_CVC_ELT_5_2_2_1' file='xmlerror' value='1856' type='xmlParserErrors' info='1856'/>
    <enum name='XML_SCHEMAV_CVC_ELT_5_2_2_2_1' file='xmlerror' value='1857' type='xmlParserErrors' info='1857'/>
    <enum name='XML_SCHEMAV_CVC_ELT_5_2_2_2_2' file='xmlerror' value='1858' type='xmlParserErrors' info='1858'/>
    <enum name='XML_SCHEMAV_CVC_ELT_6' file='xmlerror' value='1859' type='xmlParserErrors' info='1859'/>
    <enum name='XML_SCHEMAV_CVC_ELT_7' file='xmlerror' value='1860' type='xmlParserErrors' info='1860'/>
    <enum name='XML_SCHEMAV_CVC_ENUMERATION_VALID' file='xmlerror' value='1840' type='xmlParserErrors' info='1840'/>
    <enum name='XML_SCHEMAV_CVC_FACET_VALID' file='xmlerror' value='1829' type='xmlParserErrors' info='1829'/>
    <enum name='XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID' file='xmlerror' value='1838' type='xmlParserErrors' info='1838'/>
    <enum name='XML_SCHEMAV_CVC_LENGTH_VALID' file='xmlerror' value='1830' type='xmlParserErrors' info='1830'/>
    <enum name='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' file='xmlerror' value='1836' type='xmlParserErrors' info='1836'/>
    <enum name='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' file='xmlerror' value='1834' type='xmlParserErrors' info='1834'/>
    <enum name='XML_SCHEMAV_CVC_MAXLENGTH_VALID' file='xmlerror' value='1832' type='xmlParserErrors' info='1832'/>
    <enum name='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' file='xmlerror' value='1835' type='xmlParserErrors' info='1835'/>
    <enum name='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' file='xmlerror' value='1833' type='xmlParserErrors' info='1833'/>
    <enum name='XML_SCHEMAV_CVC_MINLENGTH_VALID' file='xmlerror' value='1831' type='xmlParserErrors' info='1831'/>
    <enum name='XML_SCHEMAV_CVC_PATTERN_VALID' file='xmlerror' value='1839' type='xmlParserErrors' info='1839'/>
    <enum name='XML_SCHEMAV_CVC_TOTALDIGITS_VALID' file='xmlerror' value='1837' type='xmlParserErrors' info='1837'/>
    <enum name='XML_SCHEMAV_CVC_TYPE_1' file='xmlerror' value='1875' type='xmlParserErrors' info='1875'/>
    <enum name='XML_SCHEMAV_CVC_TYPE_2' file='xmlerror' value='1876' type='xmlParserErrors' info='1876'/>
    <enum name='XML_SCHEMAV_CVC_TYPE_3_1_1' file='xmlerror' value='1827' type='xmlParserErrors' info='1827'/>
    <enum name='XML_SCHEMAV_CVC_TYPE_3_1_2' file='xmlerror' value='1828' type='xmlParserErrors' info='1828'/>
    <enum name='XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING' file='xmlerror' value='1872' type='xmlParserErrors' info='1872'/>
    <enum name='XML_SCHEMAV_ELEMCONT' file='xmlerror' value='1810' type='xmlParserErrors' info='1810'/>
    <enum name='XML_SCHEMAV_ELEMENT_CONTENT' file='xmlerror' value='1871' type='xmlParserErrors' info='1871'/>
    <enum name='XML_SCHEMAV_EXTRACONTENT' file='xmlerror' value='1813' type='xmlParserErrors' info='1813'/>
    <enum name='XML_SCHEMAV_FACET' file='xmlerror' value='1823' type='xmlParserErrors' info='1823'/>
    <enum name='XML_SCHEMAV_HAVEDEFAULT' file='xmlerror' value='1811' type='xmlParserErrors' info='1811'/>
    <enum name='XML_SCHEMAV_INTERNAL' file='xmlerror' value='1818' type='xmlParserErrors' info='1818'/>
    <enum name='XML_SCHEMAV_INVALIDATTR' file='xmlerror' value='1814' type='xmlParserErrors' info='1814'/>
    <enum name='XML_SCHEMAV_INVALIDELEM' file='xmlerror' value='1815' type='xmlParserErrors' info='1815'/>
    <enum name='XML_SCHEMAV_ISABSTRACT' file='xmlerror' value='1808' type='xmlParserErrors' info='1808'/>
    <enum name='XML_SCHEMAV_MISSING' file='xmlerror' value='1804' type='xmlParserErrors' info='1804'/>
    <enum name='XML_SCHEMAV_NOROLLBACK' file='xmlerror' value='1807' type='xmlParserErrors' info='1807'/>
    <enum name='XML_SCHEMAV_NOROOT' file='xmlerror' value='1801' type='xmlParserErrors'/>
    <enum name='XML_SCHEMAV_NOTDETERMINIST' file='xmlerror' value='1816' type='xmlParserErrors' info='1816'/>
    <enum name='XML_SCHEMAV_NOTEMPTY' file='xmlerror' value='1809' type='xmlParserErrors' info='1809'/>
    <enum name='XML_SCHEMAV_NOTNILLABLE' file='xmlerror' value='1812' type='xmlParserErrors' info='1812'/>
    <enum name='XML_SCHEMAV_NOTSIMPLE' file='xmlerror' value='1819' type='xmlParserErrors' info='1819'/>
    <enum name='XML_SCHEMAV_NOTTOPLEVEL' file='xmlerror' value='1803' type='xmlParserErrors' info='1803'/>
    <enum name='XML_SCHEMAV_NOTYPE' file='xmlerror' value='1806' type='xmlParserErrors' info='1806'/>
    <enum name='XML_SCHEMAV_UNDECLAREDELEM' file='xmlerror' value='1802' type='xmlParserErrors' info='1802'/>
    <enum name='XML_SCHEMAV_VALUE' file='xmlerror' value='1822' type='xmlParserErrors' info='1822'/>
    <enum name='XML_SCHEMAV_WRONGELEM' file='xmlerror' value='1805' type='xmlParserErrors' info='1805'/>
    <enum name='XML_SCHEMA_CONTENT_ANY' file='schemasInternals' value='7' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_CONTENT_BASIC' file='schemasInternals' value='6' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_CONTENT_ELEMENTS' file='schemasInternals' value='2' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_CONTENT_EMPTY' file='schemasInternals' value='1' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_CONTENT_MIXED' file='schemasInternals' value='3' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' file='schemasInternals' value='5' type='xmlSchemaContentType' info='obsolete, not used'/>
    <enum name='XML_SCHEMA_CONTENT_SIMPLE' file='schemasInternals' value='4' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_CONTENT_UNKNOWN' file='schemasInternals' value='0' type='xmlSchemaContentType'/>
    <enum name='XML_SCHEMA_FACET_ENUMERATION' file='schemasInternals' value='1007' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_FRACTIONDIGITS' file='schemasInternals' value='1005' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_LENGTH' file='schemasInternals' value='1009' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_MAXEXCLUSIVE' file='schemasInternals' value='1003' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_MAXINCLUSIVE' file='schemasInternals' value='1002' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_MAXLENGTH' file='schemasInternals' value='1010' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_MINEXCLUSIVE' file='schemasInternals' value='1001' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_MININCLUSIVE' file='schemasInternals' value='1000' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_MINLENGTH' file='schemasInternals' value='1011' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_PATTERN' file='schemasInternals' value='1006' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_TOTALDIGITS' file='schemasInternals' value='1004' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_FACET_WHITESPACE' file='schemasInternals' value='1008' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_ALL' file='schemasInternals' value='8' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_ANY' file='schemasInternals' value='2' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' file='schemasInternals' value='21' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_ATTRIBUTE' file='schemasInternals' value='15' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_ATTRIBUTEGROUP' file='schemasInternals' value='16' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_BASIC' file='schemasInternals' value='1' type='xmlSchemaTypeType' info='A built-in datatype'/>
    <enum name='XML_SCHEMA_TYPE_CHOICE' file='schemasInternals' value='7' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_COMPLEX' file='schemasInternals' value='5' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_COMPLEX_CONTENT' file='schemasInternals' value='10' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_ELEMENT' file='schemasInternals' value='14' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_EXTENSION' file='schemasInternals' value='13' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_FACET' file='schemasInternals' value='3' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_GROUP' file='schemasInternals' value='17' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_LIST' file='schemasInternals' value='19' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_NOTATION' file='schemasInternals' value='18' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_RESTRICTION' file='schemasInternals' value='12' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_SEQUENCE' file='schemasInternals' value='6' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_SIMPLE' file='schemasInternals' value='4' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_SIMPLE_CONTENT' file='schemasInternals' value='9' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_UNION' file='schemasInternals' value='20' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_UR' file='schemasInternals' value='11' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_VAL_VC_I_CREATE' file='xmlschemas' value='1' type='xmlSchemaValidOption' info=' Default/fixed: create an attribute node
* or an element&apos;s text node on the instance.
*'/>
    <enum name='XML_TEXTREADER_MODE_CLOSED' file='xmlreader' value='4' type='xmlTextReaderMode'/>
    <enum name='XML_TEXTREADER_MODE_EOF' file='xmlreader' value='3' type='xmlTextReaderMode'/>
    <enum name='XML_TEXTREADER_MODE_ERROR' file='xmlreader' value='2' type='xmlTextReaderMode'/>
    <enum name='XML_TEXTREADER_MODE_INITIAL' file='xmlreader' value='0' type='xmlTextReaderMode'/>
    <enum name='XML_TEXTREADER_MODE_INTERACTIVE' file='xmlreader' value='1' type='xmlTextReaderMode'/>
    <enum name='XML_TEXTREADER_MODE_READING' file='xmlreader' value='5' type='xmlTextReaderMode'/>
    <enum name='XML_TEXT_NODE' file='tree' value='3' type='xmlElementType'/>
    <enum name='XML_TREE_INVALID_DEC' file='xmlerror' value='1301' type='xmlParserErrors' info='1301'/>
    <enum name='XML_TREE_INVALID_HEX' file='xmlerror' value='1300' type='xmlParserErrors'/>
    <enum name='XML_TREE_UNTERMINATED_ENTITY' file='xmlerror' value='1302' type='xmlParserErrors' info='1302'/>
    <enum name='XML_WAR_CATALOG_PI' file='xmlerror' value='93' type='xmlParserErrors' info='93'/>
    <enum name='XML_WAR_LANG_VALUE' file='xmlerror' value='98' type='xmlParserErrors' info='98'/>
    <enum name='XML_WAR_NS_URI' file='xmlerror' value='99' type='xmlParserErrors' info='99'/>
    <enum name='XML_WAR_NS_URI_RELATIVE' file='xmlerror' value='100' type='xmlParserErrors' info='100'/>
    <enum name='XML_WAR_UNDECLARED_ENTITY' file='xmlerror' value='27' type='xmlParserErrors' info='27'/>
    <enum name='XML_WAR_UNKNOWN_VERSION' file='xmlerror' value='97' type='xmlParserErrors' info='97'/>
    <enum name='XML_XINCLUDE_BUILD_FAILED' file='xmlerror' value='1609' type='xmlParserErrors' info='1609'/>
    <enum name='XML_XINCLUDE_DEPRECATED_NS' file='xmlerror' value='1617' type='xmlParserErrors' info='1617'/>
    <enum name='XML_XINCLUDE_END' file='tree' value='20' type='xmlElementType'/>
    <enum name='XML_XINCLUDE_ENTITY_DEF_MISMATCH' file='xmlerror' value='1602' type='xmlParserErrors' info='1602'/>
    <enum name='XML_XINCLUDE_FALLBACKS_IN_INCLUDE' file='xmlerror' value='1615' type='xmlParserErrors' info='1615'/>
    <enum name='XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE' file='xmlerror' value='1616' type='xmlParserErrors' info='1616'/>
    <enum name='XML_XINCLUDE_FRAGMENT_ID' file='xmlerror' value='1618' type='xmlParserErrors' info='1618'/>
    <enum name='XML_XINCLUDE_HREF_URI' file='xmlerror' value='1605' type='xmlParserErrors' info='1605'/>
    <enum name='XML_XINCLUDE_INCLUDE_IN_INCLUDE' file='xmlerror' value='1614' type='xmlParserErrors' info='1614'/>
    <enum name='XML_XINCLUDE_INVALID_CHAR' file='xmlerror' value='1608' type='xmlParserErrors' info='1608'/>
    <enum name='XML_XINCLUDE_MULTIPLE_ROOT' file='xmlerror' value='1611' type='xmlParserErrors' info='1611'/>
    <enum name='XML_XINCLUDE_NO_FALLBACK' file='xmlerror' value='1604' type='xmlParserErrors' info='1604'/>
    <enum name='XML_XINCLUDE_NO_HREF' file='xmlerror' value='1603' type='xmlParserErrors' info='1603'/>
    <enum name='XML_XINCLUDE_PARSE_VALUE' file='xmlerror' value='1601' type='xmlParserErrors' info='1601'/>
    <enum name='XML_XINCLUDE_RECURSION' file='xmlerror' value='1600' type='xmlParserErrors'/>
    <enum name='XML_XINCLUDE_START' file='tree' value='19' type='xmlElementType'/>
    <enum name='XML_XINCLUDE_TEXT_DOCUMENT' file='xmlerror' value='1607' type='xmlParserErrors' info='1607'/>
    <enum name='XML_XINCLUDE_TEXT_FRAGMENT' file='xmlerror' value='1606' type='xmlParserErrors' info='1606'/>
    <enum name='XML_XINCLUDE_UNKNOWN_ENCODING' file='xmlerror' value='1610' type='xmlParserErrors' info='1610'/>
    <enum name='XML_XINCLUDE_XPTR_FAILED' file='xmlerror' value='1612' type='xmlParserErrors' info='1612'/>
    <enum name='XML_XINCLUDE_XPTR_RESULT' file='xmlerror' value='1613' type='xmlParserErrors' info='1613'/>
    <enum name='XML_XPATH_ENCODING_ERROR' file='xmlerror' value='1220' type='xmlParserErrors' info='1220'/>
    <enum name='XML_XPATH_EXPRESSION_OK' file='xmlerror' value='1200' type='xmlParserErrors'/>
    <enum name='XML_XPATH_EXPR_ERROR' file='xmlerror' value='1207' type='xmlParserErrors' info='1207'/>
    <enum name='XML_XPATH_INVALID_ARITY' file='xmlerror' value='1212' type='xmlParserErrors' info='1212'/>
    <enum name='XML_XPATH_INVALID_CHAR_ERROR' file='xmlerror' value='1221' type='xmlParserErrors' info='1221'/>
    <enum name='XML_XPATH_INVALID_CTXT_POSITION' file='xmlerror' value='1214' type='xmlParserErrors' info='1214'/>
    <enum name='XML_XPATH_INVALID_CTXT_SIZE' file='xmlerror' value='1213' type='xmlParserErrors' info='1213'/>
    <enum name='XML_XPATH_INVALID_OPERAND' file='xmlerror' value='1210' type='xmlParserErrors' info='1210'/>
    <enum name='XML_XPATH_INVALID_PREDICATE_ERROR' file='xmlerror' value='1206' type='xmlParserErrors' info='1206'/>
    <enum name='XML_XPATH_INVALID_TYPE' file='xmlerror' value='1211' type='xmlParserErrors' info='1211'/>
    <enum name='XML_XPATH_MEMORY_ERROR' file='xmlerror' value='1215' type='xmlParserErrors' info='1215'/>
    <enum name='XML_XPATH_NUMBER_ERROR' file='xmlerror' value='1201' type='xmlParserErrors' info='1201'/>
    <enum name='XML_XPATH_START_LITERAL_ERROR' file='xmlerror' value='1203' type='xmlParserErrors' info='1203'/>
    <enum name='XML_XPATH_UNCLOSED_ERROR' file='xmlerror' value='1208' type='xmlParserErrors' info='1208'/>
    <enum name='XML_XPATH_UNDEF_PREFIX_ERROR' file='xmlerror' value='1219' type='xmlParserErrors' info='1219'/>
    <enum name='XML_XPATH_UNDEF_VARIABLE_ERROR' file='xmlerror' value='1205' type='xmlParserErrors' info='1205'/>
    <enum name='XML_XPATH_UNFINISHED_LITERAL_ERROR' file='xmlerror' value='1202' type='xmlParserErrors' info='1202'/>
    <enum name='XML_XPATH_UNKNOWN_FUNC_ERROR' file='xmlerror' value='1209' type='xmlParserErrors' info='1209'/>
    <enum name='XML_XPATH_VARIABLE_REF_ERROR' file='xmlerror' value='1204' type='xmlParserErrors' info='1204'/>
    <enum name='XML_XPTR_CHILDSEQ_START' file='xmlerror' value='1901' type='xmlParserErrors' info='1901'/>
    <enum name='XML_XPTR_EVAL_FAILED' file='xmlerror' value='1902' type='xmlParserErrors' info='1902'/>
    <enum name='XML_XPTR_EXTRA_OBJECTS' file='xmlerror' value='1903' type='xmlParserErrors' info='1903'/>
    <enum name='XML_XPTR_RESOURCE_ERROR' file='xmlerror' value='1217' type='xmlParserErrors' info='1217'/>
    <enum name='XML_XPTR_SUB_RESOURCE_ERROR' file='xmlerror' value='1218' type='xmlParserErrors' info='1218'/>
    <enum name='XML_XPTR_SYNTAX_ERROR' file='xmlerror' value='1216' type='xmlParserErrors' info='1216'/>
    <enum name='XML_XPTR_UNKNOWN_SCHEME' file='xmlerror' value='1900' type='xmlParserErrors'/>
    <enum name='XPATH_BOOLEAN' file='xpath' value='2' type='xmlXPathObjectType'/>
    <enum name='XPATH_ENCODING_ERROR' file='xpath' value='20' type='xmlXPathError'/>
    <enum name='XPATH_EXPRESSION_OK' file='xpath' value='0' type='xmlXPathError'/>
    <enum name='XPATH_EXPR_ERROR' file='xpath' value='7' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_ARITY' file='xpath' value='12' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_CHAR_ERROR' file='xpath' value='21' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_CTXT_POSITION' file='xpath' value='14' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_CTXT_SIZE' file='xpath' value='13' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_OPERAND' file='xpath' value='10' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_PREDICATE_ERROR' file='xpath' value='6' type='xmlXPathError'/>
    <enum name='XPATH_INVALID_TYPE' file='xpath' value='11' type='xmlXPathError'/>
    <enum name='XPATH_LOCATIONSET' file='xpath' value='7' type='xmlXPathObjectType'/>
    <enum name='XPATH_MEMORY_ERROR' file='xpath' value='15' type='xmlXPathError'/>
    <enum name='XPATH_NODESET' file='xpath' value='1' type='xmlXPathObjectType'/>
    <enum name='XPATH_NUMBER' file='xpath' value='3' type='xmlXPathObjectType'/>
    <enum name='XPATH_NUMBER_ERROR' file='xpath' value='1' type='xmlXPathError'/>
    <enum name='XPATH_POINT' file='xpath' value='5' type='xmlXPathObjectType'/>
    <enum name='XPATH_RANGE' file='xpath' value='6' type='xmlXPathObjectType'/>
    <enum name='XPATH_START_LITERAL_ERROR' file='xpath' value='3' type='xmlXPathError'/>
    <enum name='XPATH_STRING' file='xpath' value='4' type='xmlXPathObjectType'/>
    <enum name='XPATH_UNCLOSED_ERROR' file='xpath' value='8' type='xmlXPathError'/>
    <enum name='XPATH_UNDEFINED' file='xpath' value='0' type='xmlXPathObjectType'/>
    <enum name='XPATH_UNDEF_PREFIX_ERROR' file='xpath' value='19' type='xmlXPathError'/>
    <enum name='XPATH_UNDEF_VARIABLE_ERROR' file='xpath' value='5' type='xmlXPathError'/>
    <enum name='XPATH_UNFINISHED_LITERAL_ERROR' file='xpath' value='2' type='xmlXPathError'/>
    <enum name='XPATH_UNKNOWN_FUNC_ERROR' file='xpath' value='9' type='xmlXPathError'/>
    <enum name='XPATH_USERS' file='xpath' value='8' type='xmlXPathObjectType'/>
    <enum name='XPATH_VARIABLE_REF_ERROR' file='xpath' value='4' type='xmlXPathError'/>
    <enum name='XPATH_XSLT_TREE' file='xpath' value='9' type='xmlXPathObjectType' info=' An XSLT value tree, non modifiable'/>
    <enum name='XPTR_RESOURCE_ERROR' file='xpath' value='17' type='xmlXPathError'/>
    <enum name='XPTR_SUB_RESOURCE_ERROR' file='xpath' value='18' type='xmlXPathError'/>
    <enum name='XPTR_SYNTAX_ERROR' file='xpath' value='16' type='xmlXPathError'/>
    <typedef name='docbDocPtr' file='DOCBparser' type='xmlDocPtr'/>
    <typedef name='docbParserCtxt' file='DOCBparser' type='xmlParserCtxt'/>
    <typedef name='docbParserCtxtPtr' file='DOCBparser' type='xmlParserCtxtPtr'/>
    <typedef name='docbParserInput' file='DOCBparser' type='xmlParserInput'/>
    <typedef name='docbParserInputPtr' file='DOCBparser' type='xmlParserInputPtr'/>
    <typedef name='docbSAXHandler' file='DOCBparser' type='xmlSAXHandler'/>
    <typedef name='docbSAXHandlerPtr' file='DOCBparser' type='xmlSAXHandlerPtr'/>
    <typedef name='htmlDocPtr' file='HTMLparser' type='xmlDocPtr'/>
    <struct name='htmlElemDesc' file='HTMLparser' type='struct _htmlElemDesc'>
      <field name='name' type='const char *' info=' The tag name'/>
      <field name='startTag' type='char' info=' Whether the start tag can be implied'/>
      <field name='endTag' type='char' info=' Whether the end tag can be implied'/>
      <field name='saveEndTag' type='char' info=' Whether the end tag should be saved'/>
      <field name='empty' type='char' info=' Is this an empty element ?'/>
      <field name='depr' type='char' info=' Is this a deprecated element ?'/>
      <field name='dtd' type='char' info=' 1: only in Loose DTD, 2: only Frameset one'/>
      <field name='isinline' type='char' info=' is this a block 0 or inline 1 element'/>
      <field name='desc' type='const char *' info=' the description NRK Jan.2003
* New fields encapsulating HTML structure
*
* Bugs:
*	This is a very limited representation.  It fails to tell us when
*	an element *requires* subelements (we only have whether they&apos;re
*	allowed or not), and it doesn&apos;t tell us where CDATA and PCDATA
*	are allowed.  Some element relationships are not fully represented:
*	these are flagged with the word MODIFIER
*'/>
      <field name='subelts' type='const char **' info=' allowed sub-elements of this element'/>
      <field name='defaultsubelt' type='const char *' info=' subelement for suggested auto-repair
if necessary or NULL'/>
      <field name='attrs_opt' type='const char **' info=' Optional Attributes'/>
      <field name='attrs_depr' type='const char **' info=' Additional deprecated attributes'/>
      <field name='attrs_req' type='const char **' info=' Required attributes'/>
    </struct>
    <typedef name='htmlElemDescPtr' file='HTMLparser' type='htmlElemDesc *'/>
    <struct name='htmlEntityDesc' file='HTMLparser' type='struct _htmlEntityDesc'>
      <field name='value' type='unsigned int' info=' the UNICODE value for the character'/>
      <field name='name' type='const char *' info=' The entity name'/>
      <field name='desc' type='const char *' info=' the description'/>
    </struct>
    <typedef name='htmlEntityDescPtr' file='HTMLparser' type='htmlEntityDesc *'/>
    <typedef name='htmlNodePtr' file='HTMLparser' type='xmlNodePtr'/>
    <typedef name='htmlParserCtxt' file='HTMLparser' type='xmlParserCtxt'/>
    <typedef name='htmlParserCtxtPtr' file='HTMLparser' type='xmlParserCtxtPtr'/>
    <typedef name='htmlParserInput' file='HTMLparser' type='xmlParserInput'/>
    <typedef name='htmlParserInputPtr' file='HTMLparser' type='xmlParserInputPtr'/>
    <typedef name='htmlParserNodeInfo' file='HTMLparser' type='xmlParserNodeInfo'/>
    <typedef name='htmlParserOption' file='HTMLparser' type='enum'/>
    <typedef name='htmlSAXHandler' file='HTMLparser' type='xmlSAXHandler'/>
    <typedef name='htmlSAXHandlerPtr' file='HTMLparser' type='xmlSAXHandlerPtr'/>
    <typedef name='htmlStatus' file='HTMLparser' type='enum'/>
    <typedef name='xlinkActuate' file='xlink' type='enum'/>
    <typedef name='xlinkHRef' file='xlink' type='xmlChar *'/>
    <struct name='xlinkHandler' file='xlink' type='struct _xlinkHandler'>
      <field name='simple' type='xlinkSimpleLinkFunk' info=''/>
      <field name='extended' type='xlinkExtendedLinkFunk' info=''/>
      <field name='set' type='xlinkExtendedLinkSetFunk' info=''/>
    </struct>
    <typedef name='xlinkHandlerPtr' file='xlink' type='xlinkHandler *'/>
    <typedef name='xlinkRole' file='xlink' type='xmlChar *'/>
    <typedef name='xlinkShow' file='xlink' type='enum'/>
    <typedef name='xlinkTitle' file='xlink' type='xmlChar *'/>
    <typedef name='xlinkType' file='xlink' type='enum'/>
    <struct name='xmlAttr' file='tree' type='struct _xmlAttr'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' XML_ATTRIBUTE_NODE, must be second !'/>
      <field name='name' type='const xmlChar *' info=' the name of the property'/>
      <field name='children' type='struct _xmlNode *' info=' the value of the property'/>
      <field name='last' type='struct _xmlNode *' info=' NULL'/>
      <field name='parent' type='struct _xmlNode *' info=' child-&gt;parent link'/>
      <field name='next' type='struct _xmlAttr *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlAttr *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
      <field name='ns' type='xmlNs *' info=' pointer to the associated namespace'/>
      <field name='atype' type='xmlAttributeType' info=' the attribute type if validating'/>
      <field name='psvi' type='void *' info=' for type/PSVI informations'/>
    </struct>
    <typedef name='xmlAttrPtr' file='tree' type='xmlAttr *'/>
    <struct name='xmlAttribute' file='tree' type='struct _xmlAttribute'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' XML_ATTRIBUTE_DECL, must be second !'/>
      <field name='name' type='const xmlChar *' info=' Attribute name'/>
      <field name='children' type='struct _xmlNode *' info=' NULL'/>
      <field name='last' type='struct _xmlNode *' info=' NULL'/>
      <field name='parent' type='struct _xmlDtd *' info=' -&gt; DTD'/>
      <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
      <field name='nexth' type='struct _xmlAttribute *' info=' next in hash table'/>
      <field name='atype' type='xmlAttributeType' info=' The attribute type'/>
      <field name='def' type='xmlAttributeDefault' info=' the default'/>
      <field name='defaultValue' type='const xmlChar *' info=' or the default value'/>
      <field name='tree' type='xmlEnumerationPtr' info=' or the enumeration tree if any'/>
      <field name='prefix' type='const xmlChar *' info=' the namespace prefix if any'/>
      <field name='elem' type='const xmlChar *' info=' Element holding the attribute'/>
    </struct>
    <typedef name='xmlAttributeDefault' file='tree' type='enum'/>
    <typedef name='xmlAttributePtr' file='tree' type='xmlAttribute *'/>
    <struct name='xmlAttributeTable' file='valid' type='struct _xmlHashTable'/>
    <typedef name='xmlAttributeTablePtr' file='valid' type='xmlAttributeTable *'/>
    <typedef name='xmlAttributeType' file='tree' type='enum'/>
    <struct name='xmlAutomata' file='xmlautomata' type='struct _xmlAutomata'/>
    <typedef name='xmlAutomataPtr' file='xmlautomata' type='xmlAutomata *'/>
    <struct name='xmlAutomataState' file='xmlautomata' type='struct _xmlAutomataState'/>
    <typedef name='xmlAutomataStatePtr' file='xmlautomata' type='xmlAutomataState *'/>
    <struct name='xmlBuffer' file='tree' type='struct _xmlBuffer'>
      <field name='content' type='xmlChar *' info=' The buffer content UTF8'/>
      <field name='use' type='unsigned int' info=' The buffer size used'/>
      <field name='size' type='unsigned int' info=' The buffer size'/>
      <field name='alloc' type='xmlBufferAllocationScheme' info=' The realloc method'/>
    </struct>
    <typedef name='xmlBufferAllocationScheme' file='tree' type='enum'/>
    <typedef name='xmlBufferPtr' file='tree' type='xmlBuffer *'/>
    <struct name='xmlCatalog' file='catalog' type='struct _xmlCatalog'/>
    <typedef name='xmlCatalogAllow' file='catalog' type='enum'/>
    <typedef name='xmlCatalogPrefer' file='catalog' type='enum'/>
    <typedef name='xmlCatalogPtr' file='catalog' type='xmlCatalog *'/>
    <struct name='xmlChLRange' file='chvalid' type='struct _xmlChLRange'>
      <field name='low' type='unsigned int' info=''/>
      <field name='high' type='unsigned int' info=''/>
    </struct>
    <typedef name='xmlChLRangePtr' file='chvalid' type='xmlChLRange *'/>
    <struct name='xmlChRangeGroup' file='chvalid' type='struct _xmlChRangeGroup'>
      <field name='nbShortRange' type='int' info=''/>
      <field name='nbLongRange' type='int' info=''/>
      <field name='shortRange' type='xmlChSRangePtr' info=' points to an array of ranges'/>
      <field name='longRange' type='xmlChLRangePtr' info=''/>
    </struct>
    <typedef name='xmlChRangeGroupPtr' file='chvalid' type='xmlChRangeGroup *'/>
    <struct name='xmlChSRange' file='chvalid' type='struct _xmlChSRange'>
      <field name='low' type='unsigned short' info=''/>
      <field name='high' type='unsigned short' info=''/>
    </struct>
    <typedef name='xmlChSRangePtr' file='chvalid' type='xmlChSRange *'/>
    <typedef name='xmlChar' file='xmlstring' type='unsigned char'/>
    <typedef name='xmlCharEncoding' file='encoding' type='enum'/>
    <struct name='xmlCharEncodingHandler' file='encoding' type='struct _xmlCharEncodingHandler'>
      <field name='name' type='char *' info=''/>
      <field name='input' type='xmlCharEncodingInputFunc' info=''/>
      <field name='output' type='xmlCharEncodingOutputFunc' info=''/>
      <field name='iconv_in' type='iconv_t' info=''/>
      <field name='iconv_out' type='iconv_t' info=''/>
    </struct>
    <typedef name='xmlCharEncodingHandlerPtr' file='encoding' type='xmlCharEncodingHandler *'/>
    <struct name='xmlDict' file='dict' type='struct _xmlDict'/>
    <typedef name='xmlDictPtr' file='dict' type='xmlDict *'/>
    <struct name='xmlDoc' file='tree' type='struct _xmlDoc'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' XML_DOCUMENT_NODE, must be second !'/>
      <field name='name' type='char *' info=' name/filename/URI of the document'/>
      <field name='children' type='struct _xmlNode *' info=' the document tree'/>
      <field name='last' type='struct _xmlNode *' info=' last child link'/>
      <field name='parent' type='struct _xmlNode *' info=' child-&gt;parent link'/>
      <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' autoreference to itself End of common part'/>
      <field name='compression' type='int' info=' level of zlib compression'/>
      <field name='standalone' type='int' info=' standalone document (no external refs)'/>
      <field name='intSubset' type='struct _xmlDtd *' info=' the document internal subset'/>
      <field name='extSubset' type='struct _xmlDtd *' info=' the document external subset'/>
      <field name='oldNs' type='struct _xmlNs *' info=' Global namespace, the old way'/>
      <field name='version' type='const xmlChar *' info=' the XML version string'/>
      <field name='encoding' type='const xmlChar *' info=' external initial encoding, if any'/>
      <field name='ids' type='void *' info=' Hash table for ID attributes if any'/>
      <field name='refs' type='void *' info=' Hash table for IDREFs attributes if any'/>
      <field name='URL' type='const xmlChar *' info=' The URI for that document'/>
      <field name='charset' type='int' info=' encoding of the in-memory content
actually an xmlCharEncoding'/>
      <field name='dict' type='struct _xmlDict *' info=' dict used to allocate names or NULL'/>
      <field name='psvi' type='void *' info=' for type/PSVI informations'/>
    </struct>
    <typedef name='xmlDocPtr' file='tree' type='xmlDoc *'/>
    <struct name='xmlDtd' file='tree' type='struct _xmlDtd'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' XML_DTD_NODE, must be second !'/>
      <field name='name' type='const xmlChar *' info=' Name of the DTD'/>
      <field name='children' type='struct _xmlNode *' info=' the value of the property link'/>
      <field name='last' type='struct _xmlNode *' info=' last child link'/>
      <field name='parent' type='struct _xmlDoc *' info=' child-&gt;parent link'/>
      <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' the containing document End of common part'/>
      <field name='notations' type='void *' info=' Hash table for notations if any'/>
      <field name='elements' type='void *' info=' Hash table for elements if any'/>
      <field name='attributes' type='void *' info=' Hash table for attributes if any'/>
      <field name='entities' type='void *' info=' Hash table for entities if any'/>
      <field name='ExternalID' type='const xmlChar *' info=' External identifier for PUBLIC DTD'/>
      <field name='SystemID' type='const xmlChar *' info=' URI for a SYSTEM or PUBLIC DTD'/>
      <field name='pentities' type='void *' info=' Hash table for param entities if any'/>
    </struct>
    <typedef name='xmlDtdPtr' file='tree' type='xmlDtd *'/>
    <struct name='xmlElement' file='tree' type='struct _xmlElement'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' XML_ELEMENT_DECL, must be second !'/>
      <field name='name' type='const xmlChar *' info=' Element name'/>
      <field name='children' type='struct _xmlNode *' info=' NULL'/>
      <field name='last' type='struct _xmlNode *' info=' NULL'/>
      <field name='parent' type='struct _xmlDtd *' info=' -&gt; DTD'/>
      <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
      <field name='etype' type='xmlElementTypeVal' info=' The type'/>
      <field name='content' type='xmlElementContentPtr' info=' the allowed element content'/>
      <field name='attributes' type='xmlAttributePtr' info=' List of the declared attributes'/>
      <field name='prefix' type='const xmlChar *' info=' the namespace prefix if any'/>
      <field name='contModel' type='xmlRegexpPtr' info=' the validating regexp'/>
      <field name='contModel' type='void *' info=''/>
    </struct>
    <struct name='xmlElementContent' file='tree' type='struct _xmlElementContent'>
      <field name='type' type='xmlElementContentType' info=' PCDATA, ELEMENT, SEQ or OR'/>
      <field name='ocur' type='xmlElementContentOccur' info=' ONCE, OPT, MULT or PLUS'/>
      <field name='name' type='const xmlChar *' info=' Element name'/>
      <field name='c1' type='struct _xmlElementContent *' info=' first child'/>
      <field name='c2' type='struct _xmlElementContent *' info=' second child'/>
      <field name='parent' type='struct _xmlElementContent *' info=' parent'/>
      <field name='prefix' type='const xmlChar *' info=' Namespace prefix'/>
    </struct>
    <typedef name='xmlElementContentOccur' file='tree' type='enum'/>
    <typedef name='xmlElementContentPtr' file='tree' type='xmlElementContent *'/>
    <typedef name='xmlElementContentType' file='tree' type='enum'/>
    <typedef name='xmlElementPtr' file='tree' type='xmlElement *'/>
    <struct name='xmlElementTable' file='valid' type='struct _xmlHashTable'/>
    <typedef name='xmlElementTablePtr' file='valid' type='xmlElementTable *'/>
    <typedef name='xmlElementType' file='tree' type='enum'/>
    <typedef name='xmlElementTypeVal' file='tree' type='enum'/>
    <struct name='xmlEntitiesTable' file='entities' type='struct _xmlHashTable'/>
    <typedef name='xmlEntitiesTablePtr' file='entities' type='xmlEntitiesTable *'/>
    <struct name='xmlEntity' file='tree' type='struct _xmlEntity'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' XML_ENTITY_DECL, must be second !'/>
      <field name='name' type='const xmlChar *' info=' Entity name'/>
      <field name='children' type='struct _xmlNode *' info=' First child link'/>
      <field name='last' type='struct _xmlNode *' info=' Last child link'/>
      <field name='parent' type='struct _xmlDtd *' info=' -&gt; DTD'/>
      <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' the containing document'/>
      <field name='orig' type='xmlChar *' info=' content without ref substitution'/>
      <field name='content' type='xmlChar *' info=' content or ndata if unparsed'/>
      <field name='length' type='int' info=' the content length'/>
      <field name='etype' type='xmlEntityType' info=' The entity type'/>
      <field name='ExternalID' type='const xmlChar *' info=' External identifier for PUBLIC'/>
      <field name='SystemID' type='const xmlChar *' info=' URI for a SYSTEM or PUBLIC Entity'/>
      <field name='nexte' type='struct _xmlEntity *' info=' unused'/>
      <field name='URI' type='const xmlChar *' info=' the full URI as computed'/>
      <field name='owner' type='int' info=' does the entity own the childrens'/>
    </struct>
    <typedef name='xmlEntityPtr' file='tree' type='xmlEntity *'/>
    <typedef name='xmlEntityType' file='entities' type='enum'/>
    <struct name='xmlEnumeration' file='tree' type='struct _xmlEnumeration'>
      <field name='next' type='struct _xmlEnumeration *' info=' next one'/>
      <field name='name' type='const xmlChar *' info=' Enumeration name'/>
    </struct>
    <typedef name='xmlEnumerationPtr' file='tree' type='xmlEnumeration *'/>
    <struct name='xmlError' file='xmlerror' type='struct _xmlError'>
      <field name='domain' type='int' info=' What part of the library raised this error'/>
      <field name='code' type='int' info=' The error code, e.g. an xmlParserError'/>
      <field name='message' type='char *' info=' human-readable informative error message'/>
      <field name='level' type='xmlErrorLevel' info=' how consequent is the error'/>
      <field name='file' type='char *' info=' the filename'/>
      <field name='line' type='int' info=' the line number if available'/>
      <field name='str1' type='char *' info=' extra string information'/>
      <field name='str2' type='char *' info=' extra string information'/>
      <field name='str3' type='char *' info=' extra string information'/>
      <field name='int1' type='int' info=' extra number information'/>
      <field name='int2' type='int' info=' extra number information'/>
      <field name='ctxt' type='void *' info=' the parser context if available'/>
      <field name='node' type='void *' info=' the node in the tree'/>
    </struct>
    <typedef name='xmlErrorDomain' file='xmlerror' type='enum'/>
    <typedef name='xmlErrorLevel' file='xmlerror' type='enum'/>
    <typedef name='xmlErrorPtr' file='xmlerror' type='xmlError *'/>
    <struct name='xmlGlobalState' file='globals' type='struct _xmlGlobalState'>
      <field name='xmlParserVersion' type='const char *' info=''/>
      <field name='xmlDefaultSAXLocator' type='xmlSAXLocator' info=''/>
      <field name='xmlDefaultSAXHandler' type='xmlSAXHandlerV1' info=''/>
      <field name='docbDefaultSAXHandler' type='xmlSAXHandlerV1' info=''/>
      <field name='htmlDefaultSAXHandler' type='xmlSAXHandlerV1' info=''/>
      <field name='xmlFree' type='xmlFreeFunc' info=''/>
      <field name='xmlMalloc' type='xmlMallocFunc' info=''/>
      <field name='xmlMemStrdup' type='xmlStrdupFunc' info=''/>
      <field name='xmlRealloc' type='xmlReallocFunc' info=''/>
      <field name='xmlGenericError' type='xmlGenericErrorFunc' info=''/>
      <field name='xmlStructuredError' type='xmlStructuredErrorFunc' info=''/>
      <field name='xmlGenericErrorContext' type='void *' info=''/>
      <field name='oldXMLWDcompatibility' type='int' info=''/>
      <field name='xmlBufferAllocScheme' type='xmlBufferAllocationScheme' info=''/>
      <field name='xmlDefaultBufferSize' type='int' info=''/>
      <field name='xmlSubstituteEntitiesDefaultValue' type='int' info=''/>
      <field name='xmlDoValidityCheckingDefaultValue' type='int' info=''/>
      <field name='xmlGetWarningsDefaultValue' type='int' info=''/>
      <field name='xmlKeepBlanksDefaultValue' type='int' info=''/>
      <field name='xmlLineNumbersDefaultValue' type='int' info=''/>
      <field name='xmlLoadExtDtdDefaultValue' type='int' info=''/>
      <field name='xmlParserDebugEntities' type='int' info=''/>
      <field name='xmlPedanticParserDefaultValue' type='int' info=''/>
      <field name='xmlSaveNoEmptyTags' type='int' info=''/>
      <field name='xmlIndentTreeOutput' type='int' info=''/>
      <field name='xmlTreeIndentString' type='const char *' info=''/>
      <field name='xmlRegisterNodeDefaultValue' type='xmlRegisterNodeFunc' info=''/>
      <field name='xmlDeregisterNodeDefaultValue' type='xmlDeregisterNodeFunc' info=''/>
      <field name='xmlMallocAtomic' type='xmlMallocFunc' info=''/>
      <field name='xmlLastError' type='xmlError' info=''/>
      <field name='xmlParserInputBufferCreateFilenameValue' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
      <field name='xmlOutputBufferCreateFilenameValue' type='xmlOutputBufferCreateFilenameFunc' info=''/>
    </struct>
    <typedef name='xmlGlobalStatePtr' file='globals' type='xmlGlobalState *'/>
    <struct name='xmlHashTable' file='hash' type='struct _xmlHashTable'/>
    <typedef name='xmlHashTablePtr' file='hash' type='xmlHashTable *'/>
    <struct name='xmlID' file='tree' type='struct _xmlID'>
      <field name='next' type='struct _xmlID *' info=' next ID'/>
      <field name='value' type='const xmlChar *' info=' The ID name'/>
      <field name='attr' type='xmlAttrPtr' info=' The attribute holding it'/>
      <field name='name' type='const xmlChar *' info=' The attribute if attr is not available'/>
      <field name='lineno' type='int' info=' The line number if attr is not available'/>
      <field name='doc' type='struct _xmlDoc *' info=' The document holding the ID'/>
    </struct>
    <typedef name='xmlIDPtr' file='tree' type='xmlID *'/>
    <struct name='xmlIDTable' file='valid' type='struct _xmlHashTable'/>
    <typedef name='xmlIDTablePtr' file='valid' type='xmlIDTable *'/>
    <struct name='xmlLink' file='list' type='struct _xmlLink'/>
    <typedef name='xmlLinkPtr' file='list' type='xmlLink *'/>
    <struct name='xmlList' file='list' type='struct _xmlList'/>
    <typedef name='xmlListPtr' file='list' type='xmlList *'/>
    <struct name='xmlLocationSet' file='xpointer' type='struct _xmlLocationSet'>
      <field name='locNr' type='int' info=' number of locations in the set'/>
      <field name='locMax' type='int' info=' size of the array as allocated'/>
      <field name='locTab' type='xmlXPathObjectPtr *' info=' array of locations'/>
    </struct>
    <typedef name='xmlLocationSetPtr' file='xpointer' type='xmlLocationSet *'/>
    <struct name='xmlMutex' file='threads' type='struct _xmlMutex'/>
    <typedef name='xmlMutexPtr' file='threads' type='xmlMutex *'/>
    <struct name='xmlNode' file='tree' type='struct _xmlNode'>
      <field name='_private' type='void *' info=' application data'/>
      <field name='type' type='xmlElementType' info=' type number, must be second !'/>
      <field name='name' type='const xmlChar *' info=' the name of the node, or the entity'/>
      <field name='children' type='struct _xmlNode *' info=' parent-&gt;childs link'/>
      <field name='last' type='struct _xmlNode *' info=' last child link'/>
      <field name='parent' type='struct _xmlNode *' info=' child-&gt;parent link'/>
      <field name='next' type='struct _xmlNode *' info=' next sibling link '/>
      <field name='prev' type='struct _xmlNode *' info=' previous sibling link '/>
      <field name='doc' type='struct _xmlDoc *' info=' the containing document End of common part'/>
      <field name='ns' type='xmlNs *' info=' pointer to the associated namespace'/>
      <field name='content' type='xmlChar *' info=' the content'/>
      <field name='properties' type='struct _xmlAttr *' info=' properties list'/>
      <field name='nsDef' type='xmlNs *' info=' namespace definitions on this node'/>
      <field name='psvi' type='void *' info=' for type/PSVI informations'/>
      <field name='line' type='unsigned short' info=' line number'/>
      <field name='extra' type='unsigned short' info=' extra data for XPath/XSLT'/>
    </struct>
    <typedef name='xmlNodePtr' file='tree' type='xmlNode *'/>
    <struct name='xmlNodeSet' file='xpath' type='struct _xmlNodeSet'>
      <field name='nodeNr' type='int' info=' number of nodes in the set'/>
      <field name='nodeMax' type='int' info=' size of the array as allocated'/>
      <field name='nodeTab' type='xmlNodePtr *' info=' array of nodes in no particular order @@ with_ns to check wether namespace nodes should be looked at @@'/>
    </struct>
    <typedef name='xmlNodeSetPtr' file='xpath' type='xmlNodeSet *'/>
    <struct name='xmlNotation' file='tree' type='struct _xmlNotation'>
      <field name='name' type='const xmlChar *' info=' Notation name'/>
      <field name='PublicID' type='const xmlChar *' info=' Public identifier, if any'/>
      <field name='SystemID' type='const xmlChar *' info=' System identifier, if any'/>
    </struct>
    <typedef name='xmlNotationPtr' file='tree' type='xmlNotation *'/>
    <struct name='xmlNotationTable' file='valid' type='struct _xmlHashTable'/>
    <typedef name='xmlNotationTablePtr' file='valid' type='xmlNotationTable *'/>
    <struct name='xmlNs' file='tree' type='struct _xmlNs'>
      <field name='next' type='struct _xmlNs *' info=' next Ns link for this node '/>
      <field name='type' type='xmlNsType' info=' global or local'/>
      <field name='href' type='const xmlChar *' info=' URL for the namespace'/>
      <field name='prefix' type='const xmlChar *' info=' prefix for the namespace'/>
      <field name='_private' type='void *' info=' application data'/>
    </struct>
    <typedef name='xmlNsPtr' file='tree' type='xmlNs *'/>
    <typedef name='xmlNsType' file='tree' type='xmlElementType'/>
    <struct name='xmlOutputBuffer' file='tree' type='struct _xmlOutputBuffer'>
      <field name='context' type='void *' info=''/>
      <field name='writecallback' type='xmlOutputWriteCallback' info=''/>
      <field name='closecallback' type='xmlOutputCloseCallback' info=''/>
      <field name='encoder' type='xmlCharEncodingHandlerPtr' info=' I18N conversions to UTF-8'/>
      <field name='buffer' type='xmlBufferPtr' info=' Local buffer encoded in UTF-8 or ISOLatin'/>
      <field name='conv' type='xmlBufferPtr' info=' if encoder != NULL buffer for output'/>
      <field name='written' type='int' info=' total number of byte written'/>
      <field name='error' type='int' info=''/>
    </struct>
    <typedef name='xmlOutputBufferPtr' file='tree' type='xmlOutputBuffer *'/>
    <struct name='xmlParserCtxt' file='tree' type='struct _xmlParserCtxt'>
      <field name='sax' type='struct _xmlSAXHandler *' info=' The SAX handler'/>
      <field name='userData' type='void *' info=' For SAX interface only, used by DOM build'/>
      <field name='myDoc' type='xmlDocPtr' info=' the document being built'/>
      <field name='wellFormed' type='int' info=' is the document well formed'/>
      <field name='replaceEntities' type='int' info=' shall we replace entities ?'/>
      <field name='version' type='const xmlChar *' info=' the XML version string'/>
      <field name='encoding' type='const xmlChar *' info=' the declared encoding, if any'/>
      <field name='standalone' type='int' info=' standalone document'/>
      <field name='html' type='int' info=' an HTML(1)/Docbook(2) document Input stream stack'/>
      <field name='input' type='xmlParserInputPtr' info=' Current input stream'/>
      <field name='inputNr' type='int' info=' Number of current input streams'/>
      <field name='inputMax' type='int' info=' Max number of input streams'/>
      <field name='inputTab' type='xmlParserInputPtr *' info=' stack of inputs Node analysis stack only used for DOM building'/>
      <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='record_info' type='int' info=' Whether node info should be kept'/>
      <field name='node_seq' type='xmlParserNodeInfoSeq' info=' info about each node parsed'/>
      <field name='errNo' type='int' info=' error code'/>
      <field name='hasExternalSubset' type='int' info=' reference and external subset'/>
      <field name='hasPErefs' type='int' info=' the internal subset has PE refs'/>
      <field name='external' type='int' info=' are we parsing an external entity'/>
      <field name='valid' type='int' info=' is the document valid'/>
      <field name='validate' type='int' info=' shall we try to validate ?'/>
      <field name='vctxt' type='xmlValidCtxt' info=' The validity context'/>
      <field name='instate' type='xmlParserInputState' info=' current type of input'/>
      <field name='token' type='int' info=' next char look-ahead'/>
      <field name='directory' type='char *' info=' the data directory Node name stack'/>
      <field name='name' type='const xmlChar *' info=' Current parsed Node'/>
      <field name='nameNr' type='int' info=' Depth of the parsing stack'/>
      <field name='nameMax' type='int' info=' Max depth of the parsing stack'/>
      <field name='nameTab' type='const xmlChar * *' info=' array of nodes'/>
      <field name='nbChars' type='long' info=' number of xmlChar processed'/>
      <field name='checkIndex' type='long' info=' used by progressive parsing lookup'/>
      <field name='keepBlanks' type='int' info=' ugly but ...'/>
      <field name='disableSAX' type='int' info=' SAX callbacks are disabled'/>
      <field name='inSubset' type='int' info=' Parsing is in int 1/ext 2 subset'/>
      <field name='intSubName' type='const xmlChar *' info=' name of subset'/>
      <field name='extSubURI' type='xmlChar *' info=' URI of external subset'/>
      <field name='extSubSystem' type='xmlChar *' info=' SYSTEM ID of external subset xml:space values'/>
      <field name='space' type='int *' info=' Should the parser preserve spaces'/>
      <field name='spaceNr' type='int' info=' Depth of the parsing stack'/>
      <field name='spaceMax' type='int' info=' Max depth of the parsing stack'/>
      <field name='spaceTab' type='int *' info=' array of space infos'/>
      <field name='depth' type='int' info=' to prevent entity substitution loops'/>
      <field name='entity' type='xmlParserInputPtr' info=' used to check entities boundaries'/>
      <field name='charset' type='int' info=' encoding of the in-memory content
actually an xmlCharEncoding'/>
      <field name='nodelen' type='int' info=' Those two fields are there to'/>
      <field name='nodemem' type='int' info=' Speed up large node parsing'/>
      <field name='pedantic' type='int' info=' signal pedantic warnings'/>
      <field name='_private' type='void *' info=' For user data, libxml won&apos;t touch it'/>
      <field name='loadsubset' type='int' info=' should the external subset be loaded'/>
      <field name='linenumbers' type='int' info=' set line number in element content'/>
      <field name='catalogs' type='void *' info=' document&apos;s own catalog'/>
      <field name='recovery' type='int' info=' run in recovery mode'/>
      <field name='progressive' type='int' info=' is this a progressive parsing'/>
      <field name='dict' type='xmlDictPtr' info=' dictionnary for the parser'/>
      <field name='atts' type='const xmlChar * *' info=' array for the attributes callbacks'/>
      <field name='maxatts' type='int' info=' the size of the array'/>
      <field name='docdict' type='int' info='* pre-interned strings
*'/>
      <field name='str_xml' type='const xmlChar *' info=''/>
      <field name='str_xmlns' type='const xmlChar *' info=''/>
      <field name='str_xml_ns' type='const xmlChar *' info='* Everything below is used only by the new SAX mode
*'/>
      <field name='sax2' type='int' info=' operating in the new SAX mode'/>
      <field name='nsNr' type='int' info=' the number of inherited namespaces'/>
      <field name='nsMax' type='int' info=' the size of the arrays'/>
      <field name='nsTab' type='const xmlChar * *' info=' the array of prefix/namespace name'/>
      <field name='attallocs' type='int *' info=' which attribute were allocated'/>
      <field name='pushTab' type='void * *' info=' array of data for push'/>
      <field name='attsDefault' type='xmlHashTablePtr' info=' defaulted attributes if any'/>
      <field name='attsSpecial' type='xmlHashTablePtr' info=' non-CDATA attributes if any'/>
      <field name='nsWellFormed' type='int' info=' is the document XML Nanespace okay'/>
      <field name='options' type='int' info='* Those fields are needed only for treaming parsing so far
*'/>
      <field name='dictNames' type='int' info=' Use dictionary names for the tree'/>
      <field name='freeElemsNr' type='int' info=' number of freed element nodes'/>
      <field name='freeElems' type='xmlNodePtr' info=' List of freed element nodes'/>
      <field name='freeAttrsNr' type='int' info=' number of freed attributes nodes'/>
      <field name='freeAttrs' type='xmlAttrPtr' info='* the complete error informations for the last error.
*'/>
      <field name='lastError' type='xmlError' info=''/>
      <field name='parseMode' type='xmlParserMode' info=' the parser mode'/>
    </struct>
    <typedef name='xmlParserCtxtPtr' file='tree' type='xmlParserCtxt *'/>
    <typedef name='xmlParserErrors' file='xmlerror' type='enum'/>
    <struct name='xmlParserInput' file='tree' type='struct _xmlParserInput'>
      <field name='buf' type='xmlParserInputBufferPtr' info=' UTF-8 encoded buffer'/>
      <field name='filename' type='const char *' info=' The file analyzed, if any'/>
      <field name='directory' type='const char *' info=' the directory/base of the file'/>
      <field name='base' type='const xmlChar *' info=' Base of the array to parse'/>
      <field name='cur' type='const xmlChar *' info=' Current char being parsed'/>
      <field name='end' type='const xmlChar *' info=' end of the array to parse'/>
      <field name='length' type='int' info=' length if known'/>
      <field name='line' type='int' info=' Current line'/>
      <field name='col' type='int' info='* NOTE: consumed is only tested for equality in the parser code,
*       so even if there is an overflow this should not give troubles
*       for parsing very large instances.
*'/>
      <field name='consumed' type='unsigned long' info=' How many xmlChars already consumed'/>
      <field name='free' type='xmlParserInputDeallocate' info=' function to deallocate the base'/>
      <field name='encoding' type='const xmlChar *' info=' the encoding string for entity'/>
      <field name='version' type='const xmlChar *' info=' the version string for entity'/>
      <field name='standalone' type='int' info=' Was that entity marked standalone'/>
      <field name='id' type='int' info=' an unique identifier for the entity'/>
    </struct>
    <struct name='xmlParserInputBuffer' file='tree' type='struct _xmlParserInputBuffer'>
      <field name='context' type='void *' info=''/>
      <field name='readcallback' type='xmlInputReadCallback' info=''/>
      <field name='closecallback' type='xmlInputCloseCallback' info=''/>
      <field name='encoder' type='xmlCharEncodingHandlerPtr' info=' I18N conversions to UTF-8'/>
      <field name='buffer' type='xmlBufferPtr' info=' Local buffer encoded in UTF-8'/>
      <field name='raw' type='xmlBufferPtr' info=' if encoder != NULL buffer for raw input'/>
      <field name='compressed' type='int' info=' -1=unknown, 0=not compressed, 1=compressed'/>
      <field name='error' type='int' info=''/>
      <field name='rawconsumed' type='unsigned long' info=' amount consumed from raw'/>
    </struct>
    <typedef name='xmlParserInputBufferPtr' file='tree' type='xmlParserInputBuffer *'/>
    <typedef name='xmlParserInputPtr' file='tree' type='xmlParserInput *'/>
    <typedef name='xmlParserInputState' file='parser' type='enum'/>
    <typedef name='xmlParserMode' file='parser' type='enum'/>
    <struct name='xmlParserNodeInfo' file='parser' type='struct _xmlParserNodeInfo'>
      <field name='node' type='const struct _xmlNode *' info=' Position &amp; line # that text that created the node begins &amp; ends on'/>
      <field name='begin_pos' type='unsigned long' info=''/>
      <field name='begin_line' type='unsigned long' info=''/>
      <field name='end_pos' type='unsigned long' info=''/>
      <field name='end_line' type='unsigned long' info=''/>
    </struct>
    <typedef name='xmlParserNodeInfoPtr' file='parser' type='xmlParserNodeInfo *'/>
    <struct name='xmlParserNodeInfoSeq' file='parser' type='struct _xmlParserNodeInfoSeq'>
      <field name='maximum' type='unsigned long' info=''/>
      <field name='length' type='unsigned long' info=''/>
      <field name='buffer' type='xmlParserNodeInfo *' info=''/>
    </struct>
    <typedef name='xmlParserNodeInfoSeqPtr' file='parser' type='xmlParserNodeInfoSeq *'/>
    <typedef name='xmlParserOption' file='parser' type='enum'/>
    <typedef name='xmlParserProperties' file='xmlreader' type='enum'/>
    <typedef name='xmlParserSeverities' file='xmlreader' type='enum'/>
    <struct name='xmlPattern' file='pattern' type='struct _xmlPattern'/>
    <typedef name='xmlPatternPtr' file='pattern' type='xmlPattern *'/>
    <struct name='xmlRMutex' file='threads' type='struct _xmlRMutex'/>
    <typedef name='xmlRMutexPtr' file='threads' type='xmlRMutex *'/>
    <typedef name='xmlReaderTypes' file='xmlreader' type='enum'/>
    <struct name='xmlRef' file='tree' type='struct _xmlRef'>
      <field name='next' type='struct _xmlRef *' info=' next Ref'/>
      <field name='value' type='const xmlChar *' info=' The Ref name'/>
      <field name='attr' type='xmlAttrPtr' info=' The attribute holding it'/>
      <field name='name' type='const xmlChar *' info=' The attribute if attr is not available'/>
      <field name='lineno' type='int' info=' The line number if attr is not available'/>
    </struct>
    <typedef name='xmlRefPtr' file='tree' type='xmlRef *'/>
    <struct name='xmlRefTable' file='valid' type='struct _xmlHashTable'/>
    <typedef name='xmlRefTablePtr' file='valid' type='xmlRefTable *'/>
    <struct name='xmlRegExecCtxt' file='xmlregexp' type='struct _xmlRegExecCtxt'/>
    <typedef name='xmlRegExecCtxtPtr' file='xmlregexp' type='xmlRegExecCtxt *'/>
    <struct name='xmlRegexp' file='xmlregexp' type='struct _xmlRegexp'/>
    <typedef name='xmlRegexpPtr' file='xmlregexp' type='xmlRegexp *'/>
    <struct name='xmlRelaxNG' file='relaxng' type='struct _xmlRelaxNG'/>
    <struct name='xmlRelaxNGParserCtxt' file='relaxng' type='struct _xmlRelaxNGParserCtxt'/>
    <typedef name='xmlRelaxNGParserCtxtPtr' file='relaxng' type='xmlRelaxNGParserCtxt *'/>
    <typedef name='xmlRelaxNGParserFlag' file='relaxng' type='enum'/>
    <typedef name='xmlRelaxNGPtr' file='relaxng' type='xmlRelaxNG *'/>
    <struct name='xmlRelaxNGValidCtxt' file='relaxng' type='struct _xmlRelaxNGValidCtxt'/>
    <typedef name='xmlRelaxNGValidCtxtPtr' file='relaxng' type='xmlRelaxNGValidCtxt *'/>
    <typedef name='xmlRelaxNGValidErr' file='relaxng' type='enum'/>
    <struct name='xmlSAXHandler' file='tree' type='struct _xmlSAXHandler'>
      <field name='internalSubset' type='internalSubsetSAXFunc' info=''/>
      <field name='isStandalone' type='isStandaloneSAXFunc' info=''/>
      <field name='hasInternalSubset' type='hasInternalSubsetSAXFunc' info=''/>
      <field name='hasExternalSubset' type='hasExternalSubsetSAXFunc' info=''/>
      <field name='resolveEntity' type='resolveEntitySAXFunc' info=''/>
      <field name='getEntity' type='getEntitySAXFunc' info=''/>
      <field name='entityDecl' type='entityDeclSAXFunc' info=''/>
      <field name='notationDecl' type='notationDeclSAXFunc' info=''/>
      <field name='attributeDecl' type='attributeDeclSAXFunc' info=''/>
      <field name='elementDecl' type='elementDeclSAXFunc' info=''/>
      <field name='unparsedEntityDecl' type='unparsedEntityDeclSAXFunc' info=''/>
      <field name='setDocumentLocator' type='setDocumentLocatorSAXFunc' info=''/>
      <field name='startDocument' type='startDocumentSAXFunc' info=''/>
      <field name='endDocument' type='endDocumentSAXFunc' info=''/>
      <field name='startElement' type='startElementSAXFunc' info=''/>
      <field name='endElement' type='endElementSAXFunc' info=''/>
      <field name='reference' type='referenceSAXFunc' info=''/>
      <field name='characters' type='charactersSAXFunc' info=''/>
      <field name='ignorableWhitespace' type='ignorableWhitespaceSAXFunc' info=''/>
      <field name='processingInstruction' type='processingInstructionSAXFunc' info=''/>
      <field name='comment' type='commentSAXFunc' info=''/>
      <field name='warning' type='warningSAXFunc' info=''/>
      <field name='error' type='errorSAXFunc' info=''/>
      <field name='fatalError' type='fatalErrorSAXFunc' info=' unused error() get all the errors'/>
      <field name='getParameterEntity' type='getParameterEntitySAXFunc' info=''/>
      <field name='cdataBlock' type='cdataBlockSAXFunc' info=''/>
      <field name='externalSubset' type='externalSubsetSAXFunc' info=''/>
      <field name='initialized' type='unsigned int' info=' The following fields are extensions available only on version 2'/>
      <field name='_private' type='void *' info=''/>
      <field name='startElementNs' type='startElementNsSAX2Func' info=''/>
      <field name='endElementNs' type='endElementNsSAX2Func' info=''/>
      <field name='serror' type='xmlStructuredErrorFunc' info=''/>
    </struct>
    <typedef name='xmlSAXHandlerPtr' file='tree' type='xmlSAXHandler *'/>
    <struct name='xmlSAXHandlerV1' file='parser' type='struct _xmlSAXHandlerV1'>
      <field name='internalSubset' type='internalSubsetSAXFunc' info=''/>
      <field name='isStandalone' type='isStandaloneSAXFunc' info=''/>
      <field name='hasInternalSubset' type='hasInternalSubsetSAXFunc' info=''/>
      <field name='hasExternalSubset' type='hasExternalSubsetSAXFunc' info=''/>
      <field name='resolveEntity' type='resolveEntitySAXFunc' info=''/>
      <field name='getEntity' type='getEntitySAXFunc' info=''/>
      <field name='entityDecl' type='entityDeclSAXFunc' info=''/>
      <field name='notationDecl' type='notationDeclSAXFunc' info=''/>
      <field name='attributeDecl' type='attributeDeclSAXFunc' info=''/>
      <field name='elementDecl' type='elementDeclSAXFunc' info=''/>
      <field name='unparsedEntityDecl' type='unparsedEntityDeclSAXFunc' info=''/>
      <field name='setDocumentLocator' type='setDocumentLocatorSAXFunc' info=''/>
      <field name='startDocument' type='startDocumentSAXFunc' info=''/>
      <field name='endDocument' type='endDocumentSAXFunc' info=''/>
      <field name='startElement' type='startElementSAXFunc' info=''/>
      <field name='endElement' type='endElementSAXFunc' info=''/>
      <field name='reference' type='referenceSAXFunc' info=''/>
      <field name='characters' type='charactersSAXFunc' info=''/>
      <field name='ignorableWhitespace' type='ignorableWhitespaceSAXFunc' info=''/>
      <field name='processingInstruction' type='processingInstructionSAXFunc' info=''/>
      <field name='comment' type='commentSAXFunc' info=''/>
      <field name='warning' type='warningSAXFunc' info=''/>
      <field name='error' type='errorSAXFunc' info=''/>
      <field name='fatalError' type='fatalErrorSAXFunc' info=' unused error() get all the errors'/>
      <field name='getParameterEntity' type='getParameterEntitySAXFunc' info=''/>
      <field name='cdataBlock' type='cdataBlockSAXFunc' info=''/>
      <field name='externalSubset' type='externalSubsetSAXFunc' info=''/>
      <field name='initialized' type='unsigned int' info=''/>
    </struct>
    <typedef name='xmlSAXHandlerV1Ptr' file='parser' type='xmlSAXHandlerV1 *'/>
    <struct name='xmlSAXLocator' file='tree' type='struct _xmlSAXLocator'>
      <field name='getPublicId' type='const xmlChar *(*getPublicId)' info=''/>
      <field name='getSystemId' type='const xmlChar *(*getSystemId)' info=''/>
      <field name='getLineNumber' type='int(*getLineNumber)' info=''/>
      <field name='getColumnNumber' type='int(*getColumnNumber)' info=''/>
    </struct>
    <typedef name='xmlSAXLocatorPtr' file='tree' type='xmlSAXLocator *'/>
    <struct name='xmlSaveCtxt' file='xmlsave' type='struct _xmlSaveCtxt'/>
    <typedef name='xmlSaveCtxtPtr' file='xmlsave' type='xmlSaveCtxt *'/>
    <struct name='xmlSchema' file='xmlschemas' type='struct _xmlSchema'>
      <field name='name' type='const xmlChar *' info=' schema name'/>
      <field name='targetNamespace' type='const xmlChar *' info=' the target namespace'/>
      <field name='version' type='const xmlChar *' info=''/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='doc' type='xmlDocPtr' info=''/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='flags' type='int' info=''/>
      <field name='typeDecl' type='xmlHashTablePtr' info=''/>
      <field name='attrDecl' type='xmlHashTablePtr' info=''/>
      <field name='attrgrpDecl' type='xmlHashTablePtr' info=''/>
      <field name='elemDecl' type='xmlHashTablePtr' info=''/>
      <field name='notaDecl' type='xmlHashTablePtr' info=''/>
      <field name='schemasImports' type='xmlHashTablePtr' info=''/>
      <field name='_private' type='void *' info=' unused by the library for users or bindings'/>
      <field name='groupDecl' type='xmlHashTablePtr' info=''/>
      <field name='dict' type='xmlDictPtr' info=''/>
      <field name='includes' type='void *' info=' the includes, this is opaque for now'/>
      <field name='preserve' type='int' info=' whether to free the document'/>
      <field name='counter' type='int' info=' used to give ononymous components unique names'/>
    </struct>
    <struct name='xmlSchemaAnnot' file='schemasInternals' type='struct _xmlSchemaAnnot'>
      <field name='next' type='struct _xmlSchemaAnnot *' info=''/>
      <field name='content' type='xmlNodePtr' info=' the annotation'/>
    </struct>
    <typedef name='xmlSchemaAnnotPtr' file='schemasInternals' type='xmlSchemaAnnot *'/>
    <struct name='xmlSchemaAttribute' file='schemasInternals' type='struct _xmlSchemaAttribute'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='next' type='struct _xmlSchemaAttribute *' info=' the next attribute if in a group ...'/>
      <field name='name' type='const xmlChar *' info=' name of the declaration or empty if particle'/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='ref' type='const xmlChar *' info=' the local name of the attribute decl. if a particle'/>
      <field name='refNs' type='const xmlChar *' info=' the ns URI of the attribute decl. if a particle'/>
      <field name='typeName' type='const xmlChar *' info=' the local name of the type definition'/>
      <field name='typeNs' type='const xmlChar *' info=' the ns URI of the type definition'/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='base' type='xmlSchemaTypePtr' info=' obsolete, not used'/>
      <field name='occurs' type='int' info=''/>
      <field name='defValue' type='const xmlChar *' info=''/>
      <field name='subtypes' type='xmlSchemaTypePtr' info=' the type definition'/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='targetNamespace' type='const xmlChar *' info=''/>
      <field name='flags' type='int' info=''/>
      <field name='refPrefix' type='const xmlChar *' info=''/>
      <field name='defVal' type='xmlSchemaValPtr' info=''/>
      <field name='refDecl' type='xmlSchemaAttributePtr' info=''/>
    </struct>
    <struct name='xmlSchemaAttributeGroup' file='schemasInternals' type='struct _xmlSchemaAttributeGroup'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='next' type='struct _xmlSchemaAttribute *' info=' the next attribute if in a group ...'/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='ref' type='const xmlChar *' info=''/>
      <field name='refNs' type='const xmlChar *' info=''/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='attributes' type='xmlSchemaAttributePtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='flags' type='int' info=''/>
      <field name='attributeWildcard' type='xmlSchemaWildcardPtr' info=''/>
      <field name='refPrefix' type='const xmlChar *' info=''/>
      <field name='refItem' type='xmlSchemaAttributeGroupPtr' info=' The referenced attribute group'/>
    </struct>
    <typedef name='xmlSchemaAttributeGroupPtr' file='schemasInternals' type='xmlSchemaAttributeGroup *'/>
    <struct name='xmlSchemaAttributeLink' file='schemasInternals' type='struct _xmlSchemaAttributeLink'>
      <field name='next' type='struct _xmlSchemaAttributeLink *' info=' the next attribute link ...'/>
      <field name='attr' type='struct _xmlSchemaAttribute *' info=' the linked attribute'/>
    </struct>
    <typedef name='xmlSchemaAttributeLinkPtr' file='schemasInternals' type='xmlSchemaAttributeLink *'/>
    <typedef name='xmlSchemaAttributePtr' file='schemasInternals' type='xmlSchemaAttribute *'/>
    <typedef name='xmlSchemaContentType' file='schemasInternals' type='enum'/>
    <struct name='xmlSchemaElement' file='schemasInternals' type='struct _xmlSchemaElement'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='next' type='struct _xmlSchemaType *' info=' the next type if in a sequence ...'/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='ref' type='const xmlChar *' info=' the local name of the element declaration if a particle'/>
      <field name='refNs' type='const xmlChar *' info=' the ns URI of the element declaration if a particle'/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='subtypes' type='xmlSchemaTypePtr' info=' the type definition'/>
      <field name='attributes' type='xmlSchemaAttributePtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='minOccurs' type='int' info=''/>
      <field name='maxOccurs' type='int' info=''/>
      <field name='flags' type='int' info=''/>
      <field name='targetNamespace' type='const xmlChar *' info=''/>
      <field name='namedType' type='const xmlChar *' info=''/>
      <field name='namedTypeNs' type='const xmlChar *' info=''/>
      <field name='substGroup' type='const xmlChar *' info=''/>
      <field name='substGroupNs' type='const xmlChar *' info=''/>
      <field name='scope' type='const xmlChar *' info=''/>
      <field name='value' type='const xmlChar *' info=''/>
      <field name='refDecl' type='struct _xmlSchemaElement *' info=' the element declaration if a particle'/>
      <field name='contModel' type='xmlRegexpPtr' info=''/>
      <field name='contentType' type='xmlSchemaContentType' info=''/>
      <field name='refPrefix' type='const xmlChar *' info=''/>
      <field name='defVal' type='xmlSchemaValPtr' info=''/>
    </struct>
    <typedef name='xmlSchemaElementPtr' file='schemasInternals' type='xmlSchemaElement *'/>
    <struct name='xmlSchemaFacet' file='schemasInternals' type='struct _xmlSchemaFacet'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='next' type='struct _xmlSchemaFacet *' info=' the next type if in a sequence ...'/>
      <field name='value' type='const xmlChar *' info=''/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='fixed' type='int' info=''/>
      <field name='whitespace' type='int' info=''/>
      <field name='val' type='xmlSchemaValPtr' info=''/>
      <field name='regexp' type='xmlRegexpPtr' info=''/>
    </struct>
    <struct name='xmlSchemaFacetLink' file='schemasInternals' type='struct _xmlSchemaFacetLink'>
      <field name='next' type='struct _xmlSchemaFacetLink *' info=' the next facet link ...'/>
      <field name='facet' type='xmlSchemaFacetPtr' info=' the linked facet'/>
    </struct>
    <typedef name='xmlSchemaFacetLinkPtr' file='schemasInternals' type='xmlSchemaFacetLink *'/>
    <typedef name='xmlSchemaFacetPtr' file='schemasInternals' type='xmlSchemaFacet *'/>
    <struct name='xmlSchemaNotation' file='schemasInternals' type='struct _xmlSchemaNotation'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='identifier' type='const xmlChar *' info=''/>
    </struct>
    <typedef name='xmlSchemaNotationPtr' file='schemasInternals' type='xmlSchemaNotation *'/>
    <struct name='xmlSchemaParserCtxt' file='xmlschemas' type='struct _xmlSchemaParserCtxt'/>
    <typedef name='xmlSchemaParserCtxtPtr' file='xmlschemas' type='xmlSchemaParserCtxt *'/>
    <typedef name='xmlSchemaPtr' file='xmlschemas' type='xmlSchema *'/>
    <struct name='xmlSchemaType' file='schemasInternals' type='struct _xmlSchemaType'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='next' type='struct _xmlSchemaType *' info=' the next type if in a sequence ...'/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='ref' type='const xmlChar *' info=''/>
      <field name='refNs' type='const xmlChar *' info=''/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='subtypes' type='xmlSchemaTypePtr' info=''/>
      <field name='attributes' type='xmlSchemaAttributePtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='minOccurs' type='int' info=''/>
      <field name='maxOccurs' type='int' info=''/>
      <field name='flags' type='int' info=''/>
      <field name='contentType' type='xmlSchemaContentType' info=''/>
      <field name='base' type='const xmlChar *' info=''/>
      <field name='baseNs' type='const xmlChar *' info=''/>
      <field name='baseType' type='xmlSchemaTypePtr' info=''/>
      <field name='facets' type='xmlSchemaFacetPtr' info=''/>
      <field name='redef' type='struct _xmlSchemaType *' info=' possible redefinitions for the type'/>
      <field name='recurse' type='int' info=''/>
      <field name='attributeUses' type='xmlSchemaAttributeLinkPtr' info=''/>
      <field name='attributeWildcard' type='xmlSchemaWildcardPtr' info=''/>
      <field name='builtInType' type='int' info=''/>
      <field name='memberTypes' type='xmlSchemaTypeLinkPtr' info=''/>
      <field name='facetSet' type='xmlSchemaFacetLinkPtr' info=''/>
      <field name='refPrefix' type='const xmlChar *' info=''/>
      <field name='contentTypeDef' type='xmlSchemaTypePtr' info=''/>
      <field name='contModel' type='xmlRegexpPtr' info=''/>
    </struct>
    <struct name='xmlSchemaTypeLink' file='schemasInternals' type='struct _xmlSchemaTypeLink'>
      <field name='next' type='struct _xmlSchemaTypeLink *' info=' the next type link ...'/>
      <field name='type' type='xmlSchemaTypePtr' info=' the linked typ'/>
    </struct>
    <typedef name='xmlSchemaTypeLinkPtr' file='schemasInternals' type='xmlSchemaTypeLink *'/>
    <typedef name='xmlSchemaTypePtr' file='schemasInternals' type='xmlSchemaType *'/>
    <typedef name='xmlSchemaTypeType' file='schemasInternals' type='enum'/>
    <struct name='xmlSchemaVal' file='schemasInternals' type='struct _xmlSchemaVal'/>
    <typedef name='xmlSchemaValPtr' file='schemasInternals' type='xmlSchemaVal *'/>
    <typedef name='xmlSchemaValType' file='schemasInternals' type='enum'/>
    <struct name='xmlSchemaValidCtxt' file='xmlschemas' type='struct _xmlSchemaValidCtxt'/>
    <typedef name='xmlSchemaValidCtxtPtr' file='xmlschemas' type='xmlSchemaValidCtxt *'/>
    <typedef name='xmlSchemaValidError' file='xmlschemas' type='enum'/>
    <typedef name='xmlSchemaValidOption' file='xmlschemas' type='enum'/>
    <struct name='xmlSchemaWildcard' file='schemasInternals' type='struct _xmlSchemaWildcard'>
      <field name='type' type='xmlSchemaTypeType' info=' The kind of type'/>
      <field name='id' type='const xmlChar *' info=''/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='minOccurs' type='int' info=''/>
      <field name='maxOccurs' type='int' info=''/>
      <field name='processContents' type='int' info=''/>
      <field name='any' type='int' info=' Indicates if the ns constraint is of ##any'/>
      <field name='nsSet' type='xmlSchemaWildcardNsPtr' info=' The list of allowed namespaces'/>
      <field name='negNsSet' type='xmlSchemaWildcardNsPtr' info=' The negated namespace'/>
      <field name='flags' type='int' info=''/>
    </struct>
    <struct name='xmlSchemaWildcardNs' file='schemasInternals' type='struct _xmlSchemaWildcardNs'>
      <field name='next' type='struct _xmlSchemaWildcardNs *' info=' the next constraint link ...'/>
      <field name='value' type='const xmlChar *' info=' the value'/>
    </struct>
    <typedef name='xmlSchemaWildcardNsPtr' file='schemasInternals' type='xmlSchemaWildcardNs *'/>
    <typedef name='xmlSchemaWildcardPtr' file='schemasInternals' type='xmlSchemaWildcard *'/>
    <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='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 *'/>
    <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'/>
      <field name='fragment' type='char *' info=' the fragment identifier'/>
      <field name='cleanup' type='int' info=' parsing potentially unclean 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='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=' it 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 namespace 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 dictionnary'/>
      <field name='dict' type='xmlDictPtr' info=' dictionnary if any'/>
    </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'/>
    </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='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='xmlChRangeGroup'/>
    <variable name='xmlIsCharGroup' file='chvalid' type='xmlChRangeGroup'/>
    <variable name='xmlIsCombiningGroup' file='chvalid' type='xmlChRangeGroup'/>
    <variable name='xmlIsDigitGroup' file='chvalid' type='xmlChRangeGroup'/>
    <variable name='xmlIsExtenderGroup' file='chvalid' type='xmlChRangeGroup'/>
    <variable name='xmlIsIdeographicGroup' file='chvalid' type='xmlChRangeGroup'/>
    <variable name='xmlIsPubidChar_tab' file='chvalid' type='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='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'>
      <cond>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'>
      <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='0 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'>
      <cond>LIBXML_SAX1_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'>
      <cond>LIBXML_SAX1_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'>
      <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'>
      <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'>
      <cond>LIBXML_SAX1_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'>
      <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'>
      <cond>LIBXML_SAX1_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'>
      <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'>
      <cond>LIBXML_SAX1_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'>
      <cond>LIBXML_SAX1_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'>
      <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'>
      <cond>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'>
      <cond>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'>
      <info>Initialize the default SAX handler</info>
      <return type='void'/>
    </function>
    <function name='docbEncodeEntities' file='DOCBparser'>
      <cond>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'>
      <cond>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'>
      <cond>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'>
      <cond>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'>
      <cond>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'>
      <cond>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'>
      <cond>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'>
      <cond>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'>
      <cond>LIBXML_SAX1_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'>
      <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'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>called when the document end has been detected. DEPRECATED: use xmlSAX2EndDocument()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='endDocumentSAXFunc' file='parser'>
      <info>Called when the document end has been detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </functype>
    <function name='endElement' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>called when the end of an element has been detected. DEPRECATED: use xmlSAX2EndElement()</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'/>
    </function>
    <functype name='endElementNsSAX2Func' file='parser'>
      <info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
    </functype>
    <functype name='endElementSAXFunc' file='parser'>
      <info>Called when the end of an element has been detected.</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'/>
    </functype>
    <function name='entityDecl' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>An entity definition has been parsed DEPRECATED: use xmlSAX2EntityDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='int' info='the entity type'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
    </function>
    <functype name='entityDeclSAXFunc' file='parser'>
      <info>An entity 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 entity name'/>
      <arg name='type' type='int' info='the entity type'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
    </functype>
    <functype name='errorSAXFunc' file='parser'>
      <info>Display and format an error messages, callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </functype>
    <function name='externalSubset' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Callback on external subset declaration. DEPRECATED: use xmlSAX2ExternalSubset()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </function>
    <functype name='externalSubsetSAXFunc' file='parser'>
      <info>Callback on external subset declaration.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </functype>
    <functype name='fatalErrorSAXFunc' file='parser'>
      <info>Display and format fatal error messages, callback. Note: so far fatalError() SAX callbacks are not used, error() get all the callbacks for errors.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </functype>
    <functype name='ftpDataCallback' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>A callback for the xmlNanoFTPGet command.</info>
      <return type='void'/>
      <arg name='userData' type='void *' info='the user provided context'/>
      <arg name='data' type='const char *' info='the data received'/>
      <arg name='len' type='int' info='its size in bytes'/>
    </functype>
    <functype name='ftpListCallback' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>A callback for the xmlNanoFTPList command. Note that only one of year and day:minute are specified.</info>
      <return type='void'/>
      <arg name='userData' type='void *' info='user provided data for the callback'/>
      <arg name='filename' type='const char *' info='the file name (including &quot;-&gt;&quot; when links are shown)'/>
      <arg name='attrib' type='const char *' info='the attribute string'/>
      <arg name='owner' type='const char *' info='the owner string'/>
      <arg name='group' type='const char *' info='the group string'/>
      <arg name='size' type='unsigned long' info='the file size'/>
      <arg name='links' type='int' info='the link count'/>
      <arg name='year' type='int' info='the year'/>
      <arg name='month' type='const char *' info='the month'/>
      <arg name='day' type='int' info='the day'/>
      <arg name='hour' type='int' info='the hour'/>
      <arg name='minute' type='int' info='the minute'/>
    </functype>
    <function name='getColumnNumber' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Provide the column number of the current parsing point. DEPRECATED: use xmlSAX2GetColumnNumber()</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getEntity' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Get an entity by name DEPRECATED: use xmlSAX2GetEntity()</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <functype name='getEntitySAXFunc' file='parser'>
      <info>Get an entity by name.</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </functype>
    <function name='getLineNumber' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Provide the line number of the current parsing point. DEPRECATED: use xmlSAX2GetLineNumber()</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getNamespace' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Get the current element namespace. DEPRECATED</info>
      <return type='xmlNsPtr' info='the xmlNsPtr or NULL if none'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getParameterEntity' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Get a parameter entity by name DEPRECATED: use xmlSAX2GetParameterEntity()</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <functype name='getParameterEntitySAXFunc' file='parser'>
      <info>Get a parameter entity by name.</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </functype>
    <function name='getPublicId' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot; DEPRECATED: use xmlSAX2GetPublicId()</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='getSystemId' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd DEPRECATED: use xmlSAX2GetSystemId()</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='globalNamespace' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>An old global namespace has been parsed. DEPRECATED</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
    </function>
    <function name='hasExternalSubset' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Does this document has an external subset DEPRECATED: use xmlSAX2HasExternalSubset()</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='hasExternalSubsetSAXFunc' file='parser'>
      <info>Does this document has an external subset?</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </functype>
    <function name='hasInternalSubset' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Does this document has an internal subset DEPRECATED: use xmlSAX2HasInternalSubset()</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='hasInternalSubsetSAXFunc' file='parser'>
      <info>Does this document has an internal subset.</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </functype>
    <function name='htmlAttrAllowed' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Checks whether an attribute is valid for an element Has full knowledge of Required and Deprecated attributes</info>
      <return type='htmlStatus' info='one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
      <arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
      <arg name='attr' type='const xmlChar *' info='HTML attribute'/>
      <arg name='legacy' type='int' info='whether to allow deprecated attributes'/>
    </function>
    <function name='htmlAutoCloseTag' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it&apos;s children would autoclose the given tag.</info>
      <return type='int' info='1 if autoclose, 0 otherwise'/>
      <arg name='doc' type='htmlDocPtr' info='the HTML document'/>
      <arg name='name' type='const xmlChar *' info='The tag name'/>
      <arg name='elem' type='htmlNodePtr' info='the HTML element'/>
    </function>
    <function name='htmlCreateFileParserCtxt' file='parserInternals'>
      <cond>LIBXML_HTML_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='htmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
    </function>
    <function name='htmlCreateMemoryParserCtxt' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Create a parser context for an HTML in-memory document.</info>
      <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='htmlCreatePushParserCtxt' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_PUSH_ENABLED</cond>
      <info>Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.</info>
      <return type='htmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='sax' type='htmlSAXHandlerPtr' 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='htmlCtxtReadDoc' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlCtxtReadFd' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlCtxtReadFile' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlCtxtReadIO' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlCtxtReadMemory' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlCtxtReset' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Reset a parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlCtxtUseOptions' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Applies the options to the parser context</info>
      <return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlDefaultSAXHandlerInit' file='SAX2'>
      <info>Initialize the default SAX handler</info>
      <return type='void'/>
    </function>
    <function name='htmlDocContentDumpFormatOutput' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlDocContentDumpOutput' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document. Formating return/spaces are added.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
    </function>
    <function name='htmlDocDump' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document to an open FILE.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='f' type='FILE *' info='the FILE*'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='htmlDocDumpMemory' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document in memory and return the xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory.</info>
      <return type='void'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
      <arg name='size' type='int *' info='OUT: the memory length'/>
    </function>
    <function name='htmlElementAllowedHere' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Checks whether an HTML element may be a direct child of a parent element. Note - doesn&apos;t check for deprecated elements</info>
      <return type='int' info='1 if allowed; 0 otherwise.'/>
      <arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
      <arg name='elt' type='const xmlChar *' info='HTML element'/>
    </function>
    <function name='htmlElementStatusHere' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.</info>
      <return type='htmlStatus' info='one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID'/>
      <arg name='parent' type='const htmlElemDesc *' info='HTML parent element'/>
      <arg name='elt' type='const htmlElemDesc *' info='HTML element'/>
    </function>
    <function name='htmlEncodeEntities' file='HTMLparser'>
      <cond>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'/>
      <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
    </function>
    <function name='htmlEntityLookup' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Lookup the given entity in EntitiesTable  TODO: the linear scan is really ugly, an hash table is really needed.</info>
      <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
    </function>
    <function name='htmlEntityValueLookup' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Lookup the given entity in EntitiesTable  TODO: the linear scan is really ugly, an hash table is really needed.</info>
      <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, NULL otherwise.'/>
      <arg name='value' type='unsigned int' info='the entity&apos;s unicode value'/>
    </function>
    <function name='htmlFreeParserCtxt' file='HTMLparser'>
      <cond>LIBXML_HTML_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='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlGetMetaEncoding' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Encoding definition lookup in the Meta tags</info>
      <return type='const xmlChar *' info='the current encoding as flagged in the HTML source'/>
      <arg name='doc' type='htmlDocPtr' info='the document'/>
    </function>
    <function name='htmlHandleOmittedElem' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Set and return the previous value for handling HTML omitted tags.</info>
      <return type='int' info='the last value for 0 for no handling, 1 for auto insertion.'/>
      <arg name='val' type='int' info='int 0 or 1'/>
    </function>
    <function name='htmlInitAutoClose' file='parserInternals'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Initialize the htmlStartCloseIndex for fast lookup of closing tags names. This is not reentrant. Call xmlInitParser() once before processing in case of use in multithreaded programs.</info>
      <return type='void'/>
    </function>
    <function name='htmlIsAutoClosed' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it&apos;s child</info>
      <return type='int' info='1 if autoclosed, 0 otherwise'/>
      <arg name='doc' type='htmlDocPtr' info='the HTML document'/>
      <arg name='elem' type='htmlNodePtr' info='the HTML element'/>
    </function>
    <function name='htmlIsBooleanAttr' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Determine if a given attribute is a boolean attribute.</info>
      <return type='int' info='false if the attribute is not boolean, true otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the name of the attribute to check'/>
    </function>
    <function name='htmlIsScriptAttribute' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Check if an attribute is of content type Script</info>
      <return type='int' info='1 is the attribute is a script 0 otherwise'/>
      <arg name='name' type='const xmlChar *' info='an attribute name'/>
    </function>
    <function name='htmlNewDoc' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Creates a new HTML document</info>
      <return type='htmlDocPtr' info='a new document'/>
      <arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
    </function>
    <function name='htmlNewDocNoDtD' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Creates a new HTML document without a DTD node if @URI and @ExternalID are NULL</info>
      <return type='htmlDocPtr' info='a new document, do not initialize the DTD if not provided'/>
      <arg name='URI' type='const xmlChar *' info='URI for the dtd, or NULL'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID of the DTD, or NULL'/>
    </function>
    <function name='htmlNodeDump' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</info>
      <return type='int' info='the number of byte written or -1 in case of error'/>
      <arg name='buf' type='xmlBufferPtr' info='the HTML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
    </function>
    <function name='htmlNodeDumpFile' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns are added.</info>
      <return type='void'/>
      <arg name='out' type='FILE *' info='the FILE pointer'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
    </function>
    <function name='htmlNodeDumpFileFormat' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too.  TODO: if encoding == NULL try to save in the doc encoding</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='out' type='FILE *' info='the FILE pointer'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='encoding' type='const char *' info='the document encoding'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlNodeDumpFormatOutput' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlNodeDumpOutput' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML node, recursive behaviour,children are printed too, and formatting returns/spaces are added.</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the HTML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='encoding' type='const char *' info='the encoding string'/>
    </function>
    <function name='htmlNodeStatus' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Checks whether the tree node is valid.  Experimental (the author only uses the HTML enhancements in a SAX parser)</info>
      <return type='htmlStatus' info='for Element nodes, a return from htmlElementAllowedHere (if legacy allowed) or htmlElementStatusHere (otherwise). for Attribute nodes, a return from htmlAttrAllowed for other nodes, HTML_NA (no checks performed)'/>
      <arg name='node' type='const htmlNodePtr' info='an htmlNodePtr in a tree'/>
      <arg name='legacy' type='int' info='whether to allow deprecated elements (YES is faster here for Element nodes)'/>
    </function>
    <function name='htmlParseCharRef' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse Reference declarations  [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;</info>
      <return type='int' info='the value parsed (as an int)'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlParseChunk' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_PUSH_ENABLED</cond>
      <info>Parse a Chunk of memory</info>
      <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML 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='htmlParseDoc' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML in-memory document and build a tree.</info>
      <return type='htmlDocPtr' 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 HTML document encoding, or NULL'/>
    </function>
    <function name='htmlParseDocument' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML 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='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlParseElement' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML element, this is highly recursive  [39] element ::= EmptyElemTag | STag content ETag  [41] Attribute ::= Name Eq AttValue</info>
      <return type='void'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
    </function>
    <function name='htmlParseEntityRef' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML ENTITY references  [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;</info>
      <return type='const htmlEntityDesc *' info='the associated htmlEntityDescPtr if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.'/>
      <arg name='ctxt' type='htmlParserCtxtPtr' info='an HTML parser context'/>
      <arg name='str' type='const xmlChar **' info='location to store the entity name'/>
    </function>
    <function name='htmlParseFile' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='htmlDocPtr' 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 HTML document encoding, or NULL'/>
    </function>
    <function name='htmlReadDoc' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadFd' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML from a file descriptor and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadFile' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML file from the filesystem or the network.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadIO' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML document from I/O functions and source and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlReadMemory' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of htmlParserOption(s)'/>
    </function>
    <function name='htmlSAXParseDoc' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</info>
      <return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
      <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 HTML document encoding, or NULL'/>
      <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='htmlSAXParseFile' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>parse an HTML 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='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
      <arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='htmlSaveFile' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document to a file. If @filename is &quot;-&quot; the stdout file is used.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='htmlSaveFileEnc' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document to a file using a given encoding and formatting returns/spaces are added.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the document encoding'/>
    </function>
    <function name='htmlSaveFileFormat' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an HTML document to a file using a given encoding.</info>
      <return type='int' info='the number of byte written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the document encoding'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlSetMetaEncoding' file='HTMLtree'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Sets the current encoding in the Meta tags NOTE: this will not change the document content encoding, just the META flag associated.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='doc' type='htmlDocPtr' info='the document'/>
      <arg name='encoding' type='const xmlChar *' info='the encoding string'/>
    </function>
    <function name='htmlTagLookup' file='HTMLparser'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Lookup the HTML tag in the ElementTable</info>
      <return type='const htmlElemDesc *' info='the related htmlElemDescPtr or NULL if not found.'/>
      <arg name='tag' type='const xmlChar *' info='The tag name in lowercase'/>
    </function>
    <function name='ignorableWhitespace' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters DEPRECATED: use xmlSAX2IgnorableWhitespace()</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='ignorableWhitespaceSAXFunc' file='parser'>
      <info>Receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will use characters.</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='initGenericErrorDefaultFunc' file='xmlerror'>
      <info>Set or reset (if NULL) the default handler for generic errors to the builtin error function.</info>
      <return type='void'/>
      <arg name='handler' type='xmlGenericErrorFunc *' info='the handler'/>
    </function>
    <function name='initdocbDefaultSAXHandler' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <cond>LIBXML_DOCB_ENABLED</cond>
      <info>Initialize the default DocBook SAX version 1 handler DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
    </function>
    <function name='inithtmlDefaultSAXHandler' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Initialize the default HTML SAX version 1 handler DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
    </function>
    <function name='initxmlDefaultSAXHandler' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Initialize the default XML SAX version 1 handler DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandlerV1 *' info='the SAX handler'/>
      <arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
    </function>
    <function name='inputPop' file='parserInternals'>
      <info>Pops the top parser input from the input stack</info>
      <return type='xmlParserInputPtr' info='the input just removed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='inputPush' file='parserInternals'>
      <info>Pushes a new parser input on top of the input stack</info>
      <return type='int' info='0 in case of error, the index in the stack otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='xmlParserInputPtr' info='the parser input'/>
    </function>
    <function name='internalSubset' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Callback on internal subset declaration. DEPRECATED: use xmlSAX2InternalSubset()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </function>
    <functype name='internalSubsetSAXFunc' file='parser'>
      <info>Callback on internal subset declaration.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </functype>
    <function name='isStandalone' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Is this document tagged standalone ? DEPRECATED: use xmlSAX2IsStandalone()</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='isStandaloneSAXFunc' file='parser'>
      <info>Is this document tagged standalone?</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </functype>
    <function name='isolat1ToUTF8' file='encoding'>
      <info>Take a block of ISO Latin 1 chars in and try to convert it to an UTF-8 block of chars out.</info>
      <return type='int' info='0 if success, 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 ISO Latin 1 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </function>
    <function name='namePop' file='parserInternals'>
      <info>Pops the top element name from the name stack</info>
      <return type='const xmlChar *' info='the name just removed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='namePush' file='parserInternals'>
      <info>Pushes a new element name on top of the name stack</info>
      <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='const xmlChar *' info='the element name'/>
    </function>
    <function name='namespaceDecl' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>A namespace has been parsed. DEPRECATED</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='href' type='const xmlChar *' info='the namespace associated URN'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
    </function>
    <function name='nodePop' file='parserInternals'>
      <info>Pops the top element node from the node stack</info>
      <return type='xmlNodePtr' info='the node just removed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='nodePush' file='parserInternals'>
      <info>Pushes a new element node on top of the node stack</info>
      <return type='int' info='0 in case of error, the index in the stack otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='xmlNodePtr' info='the element node'/>
    </function>
    <function name='notationDecl' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>What to do when a notation declaration has been parsed. DEPRECATED: use xmlSAX2NotationDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The name of the notation'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </function>
    <functype name='notationDeclSAXFunc' file='parser'>
      <info>What to do when a notation declaration 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 name of the notation'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </functype>
    <function name='processingInstruction' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>A processing instruction has been parsed. DEPRECATED: use xmlSAX2ProcessingInstruction()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='target' type='const xmlChar *' info='the target name'/>
      <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
    </function>
    <functype name='processingInstructionSAXFunc' file='parser'>
      <info>A processing instruction has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='target' type='const xmlChar *' info='the target name'/>
      <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
    </functype>
    <function name='reference' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>called when an entity reference is detected. DEPRECATED: use xmlSAX2Reference()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <functype name='referenceSAXFunc' file='parser'>
      <info>Called when an entity reference is detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </functype>
    <function name='resolveEntity' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine DEPRECATED: use xmlSAX2ResolveEntity()</info>
      <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </function>
    <functype name='resolveEntitySAXFunc' file='parser'>
      <info>Callback: The entity loader, to control the loading of external entities, the application can either: - override this resolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
      <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </functype>
    <function name='setDocumentLocator' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case. DEPRECATED</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
    </function>
    <functype name='setDocumentLocatorSAXFunc' file='parser'>
      <info>Receive the document locator at startup, actually xmlDefaultSAXLocator. Everything is available on the context, so this is useless in our case.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
    </functype>
    <function name='setNamespace' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>Set the current element namespace. DEPRECATED</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the namespace prefix'/>
    </function>
    <function name='startDocument' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>called when the document start being processed. DEPRECATED: use xmlSAX2StartDocument()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <functype name='startDocumentSAXFunc' file='parser'>
      <info>Called when the document start being processed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </functype>
    <function name='startElement' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>called when an opening tag has been processed. DEPRECATED: use xmlSAX2StartElement()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
      <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
    </function>
    <functype name='startElementNsSAX2Func' file='parser'>
      <info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
      <arg name='nb_namespaces' type='int' info='number of namespace definitions on that node'/>
      <arg name='namespaces' type='const xmlChar **' info='pointer to the array of prefix/URI pairs namespace definitions'/>
      <arg name='nb_attributes' type='int' info='the number of attributes on that node'/>
      <arg name='nb_defaulted' type='int' info='the number of defaulted attributes. The defaulted ones are at the end of the array'/>
      <arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
    </functype>
    <functype name='startElementSAXFunc' file='parser'>
      <info>Called when an opening tag has been processed.</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, including namespace prefix'/>
      <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
    </functype>
    <function name='unparsedEntityDecl' file='SAX'>
      <cond>LIBXML_SAX1_ENABLED</cond>
      <info>What to do when an unparsed entity declaration is parsed DEPRECATED: use xmlSAX2UnparsedEntityDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The name of the entity'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
    </function>
    <functype name='unparsedEntityDeclSAXFunc' file='parser'>
      <info>What to do when an unparsed entity declaration is 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 name of the entity'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
    </functype>
    <function name='valuePop' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pops the top XPath object from the value stack</info>
      <return type='xmlXPathObjectPtr' info='the XPath object just removed'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
    </function>
    <function name='valuePush' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pushes a new XPath object on top of the value stack</info>
      <return type='int' info='the number of items on the value stack'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath evaluation context'/>
      <arg name='value' type='xmlXPathObjectPtr' info='the XPath object'/>
    </function>
    <functype name='warningSAXFunc' file='parser'>
      <info>Display and format a warning messages, callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </functype>
    <functype name='xlinkExtendedLinkFunk' file='xlink'>
      <info>This is the prototype for a extended link detection callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
      <arg name='nbLocators' type='int' info='the number of locators detected on the link'/>
      <arg name='hrefs' type='const xlinkHRef *' info='pointer to the array of locator hrefs'/>
      <arg name='roles' type='const xlinkRole *' info='pointer to the array of locator roles'/>
      <arg name='nbArcs' type='int' info='the number of arcs detected on the link'/>
      <arg name='from' type='const xlinkRole *' info='pointer to the array of source roles found on the arcs'/>
      <arg name='to' type='const xlinkRole *' info='pointer to the array of target roles found on the arcs'/>
      <arg name='show' type='xlinkShow *' info='array of values for the show attributes found on the arcs'/>
      <arg name='actuate' type='xlinkActuate *' info='array of values for the actuate attributes found on the arcs'/>
      <arg name='nbTitles' type='int' info='the number of titles detected on the link'/>
      <arg name='titles' type='const xlinkTitle *' info=''/>
      <arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
    </functype>
    <functype name='xlinkExtendedLinkSetFunk' file='xlink'>
      <info>This is the prototype for a extended link set detection callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
      <arg name='nbLocators' type='int' info='the number of locators detected on the link'/>
      <arg name='hrefs' type='const xlinkHRef *' info='pointer to the array of locator hrefs'/>
      <arg name='roles' type='const xlinkRole *' info='pointer to the array of locator roles'/>
      <arg name='nbTitles' type='int' info='the number of titles detected on the link'/>
      <arg name='titles' type='const xlinkTitle *' info=''/>
      <arg name='langs' type='const xmlChar **' info='array of xml:lang values for the titles'/>
    </functype>
    <function name='xlinkGetDefaultDetect' file='xlink'>
      <info>Get the default xlink detection routine</info>
      <return type='xlinkNodeDetectFunc' info='the current function or NULL;'/>
    </function>
    <function name='xlinkGetDefaultHandler' file='xlink'>
      <info>Get the default xlink handler.</info>
      <return type='xlinkHandlerPtr' info='the current xlinkHandlerPtr value.'/>
    </function>
    <function name='xlinkIsLink' file='xlink'>
      <info>Check whether the given node carries the attributes needed to be a link element (or is one of the linking elements issued from the (X)HTML DtDs). This routine don&apos;t try to do full checking of the link validity but tries to detect and return the appropriate link type.</info>
      <return type='xlinkType' info='the xlinkType of the node (XLINK_TYPE_NONE if there is no link detected.'/>
      <arg name='doc' type='xmlDocPtr' info='the document containing the node'/>
      <arg name='node' type='xmlNodePtr' info='the node pointer itself'/>
    </function>
    <functype name='xlinkNodeDetectFunc' file='xlink'>
      <info>This is the prototype for the link detection routine. It calls the default link detection callbacks upon link detection.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node to check'/>
    </functype>
    <function name='xlinkSetDefaultDetect' file='xlink'>
      <info>Set the default xlink detection routine</info>
      <return type='void'/>
      <arg name='func' type='xlinkNodeDetectFunc' info='pointer to the new detection routine.'/>
    </function>
    <function name='xlinkSetDefaultHandler' file='xlink'>
      <info>Set the default xlink handlers</info>
      <return type='void'/>
      <arg name='handler' type='xlinkHandlerPtr' info='the new value for the xlink handler block'/>
    </function>
    <functype name='xlinkSimpleLinkFunk' file='xlink'>
      <info>This is the prototype for a simple link detection callback.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='user data pointer'/>
      <arg name='node' type='xmlNodePtr' info='the node carrying the link'/>
      <arg name='href' type='const xlinkHRef' info='the target of the link'/>
      <arg name='role' type='const xlinkRole' info='the role string'/>
      <arg name='title' type='const xlinkTitle' info='the link title'/>
    </functype>
    <function name='xmlACatalogAdd' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Add an entry in the catalog, it may overwrite existing but different entries.</info>
      <return type='int' info='0 if successful, -1 otherwise'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='type' type='const xmlChar *' info='the type of record to add to the catalog'/>
      <arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
      <arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
    </function>
    <function name='xmlACatalogDump' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump the given catalog to the given file.</info>
      <return type='void'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='out' type='FILE *' info='the file.'/>
    </function>
    <function name='xmlACatalogRemove' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Remove an entry from the catalog</info>
      <return type='int' info='the number of entries removed if successful, -1 otherwise'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='value' type='const xmlChar *' info='the value to remove'/>
    </function>
    <function name='xmlACatalogResolve' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do a complete resolution lookup of an External Identifier</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlACatalogResolvePublic' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Try to lookup the catalog local reference associated to a public ID in that catalog</info>
      <return type='xmlChar *' info='the local resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
    </function>
    <function name='xmlACatalogResolveSystem' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Try to lookup the catalog resource for a system ID</info>
      <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlACatalogResolveURI' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do a complete resolution lookup of an URI</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
      <arg name='URI' type='const xmlChar *' info='the URI'/>
    </function>
    <function name='xmlAddAttributeDecl' file='valid'>
      <info>Register a new attribute declaration Note that @tree becomes the ownership of the DTD</info>
      <return type='xmlAttributePtr' info='NULL if not new, otherwise the attribute decl'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
      <arg name='elem' type='const xmlChar *' info='the element name'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='ns' type='const xmlChar *' info='the attribute namespace prefix'/>
      <arg name='type' type='xmlAttributeType' info='the attribute type'/>
      <arg name='def' type='xmlAttributeDefault' info='the attribute default type'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='if it&apos;s an enumeration, the associated list'/>
    </function>
    <function name='xmlAddChild' file='tree'>
      <info>Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed) If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
      <return type='xmlNodePtr' info='the child or NULL in case of error.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
    </function>
    <function name='xmlAddChildList' file='tree'>
      <info>Add a list of node at the end of the child list of the parent merging adjacent TEXT nodes (@cur may be freed)</info>
      <return type='xmlNodePtr' info='the last child or NULL in case of error.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
      <arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
    </function>
    <function name='xmlAddDocEntity' file='entities'>
      <info>Register a new entity for this document.</info>
      <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
      <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
      <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
      <arg name='content' type='const xmlChar *' info='the entity content'/>
    </function>
    <function name='xmlAddDtdEntity' file='entities'>
      <info>Register a new entity for this document DTD external subset.</info>
      <return type='xmlEntityPtr' info='a pointer to the entity or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='int' info='the entity type XML_xxx_yyy_ENTITY'/>
      <arg name='ExternalID' type='const xmlChar *' info='the entity external ID if available'/>
      <arg name='SystemID' type='const xmlChar *' info='the entity system ID if available'/>
      <arg name='content' type='const xmlChar *' info='the entity content'/>
    </function>
    <function name='xmlAddElementDecl' file='valid'>
      <info>Register a new element declaration</info>
      <return type='xmlElementPtr' info='NULL if not, otherwise the entity'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='type' type='xmlElementTypeVal' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element content tree or NULL'/>
    </function>
    <function name='xmlAddEncodingAlias' file='encoding'>
      <info>Registers an alias @alias for an encoding named @name. Existing alias will be overwritten.</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
      <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
    </function>
    <function name='xmlAddID' file='valid'>
      <info>Register a new id declaration</info>
      <return type='xmlIDPtr' info='NULL if not, otherwise the new xmlIDPtr'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
      <arg name='value' type='const xmlChar *' info='the value name'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute holding the ID'/>
    </function>
    <function name='xmlAddNextSibling' file='tree'>
      <info>Add a new node @elem as the next sibling of @cur If the new node was already inserted in a document it is first unlinked from its existing context. As a result of text merging @elem may be freed. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
      <return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
      <arg name='elem' type='xmlNodePtr' info='the new node'/>
    </function>
    <function name='xmlAddNotationDecl' file='valid'>
      <info>Register a new notation declaration</info>
      <return type='xmlNotationPtr' info='NULL if not, otherwise the entity'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='dtd' type='xmlDtdPtr' info='pointer to the DTD'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
      <arg name='PublicID' type='const xmlChar *' info='the public identifier or NULL'/>
      <arg name='SystemID' type='const xmlChar *' info='the system identifier or NULL'/>
    </function>
    <function name='xmlAddPrevSibling' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Add a new node @elem as the previous sibling of @cur merging adjacent TEXT nodes (@elem may be freed) If the new node was already inserted in a document it is first unlinked from its existing context. If the new node is ATTRIBUTE, it is added into properties instead of children. If there is an attribute with equal name, it is first destroyed.</info>
      <return type='xmlNodePtr' info='the new node or NULL in case of error.'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
      <arg name='elem' type='xmlNodePtr' info='the new node'/>
    </function>
    <function name='xmlAddRef' file='valid'>
      <info>Register a new ref declaration</info>
      <return type='xmlRefPtr' info='NULL if not, otherwise the new xmlRefPtr'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
      <arg name='value' type='const xmlChar *' info='the value name'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute holding the Ref'/>
    </function>
    <function name='xmlAddSibling' file='tree'>
      <info>Add a new element @elem to the list of siblings of @cur merging adjacent TEXT nodes (@elem may be freed) If the new element was already inserted in a document it is first unlinked from its existing context.</info>
      <return type='xmlNodePtr' info='the new element or NULL in case of error.'/>
      <arg name='cur' type='xmlNodePtr' info='the child node'/>
      <arg name='elem' type='xmlNodePtr' info='the new node'/>
    </function>
    <function name='xmlAllocOutputBuffer' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a buffered parser output</info>
      <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
    </function>
    <function name='xmlAllocParserInputBuffer' file='xmlIO'>
      <info>Create a buffered parser input for progressive parsing</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlAttrSerializeTxtContent' file='tree'>
      <info>Serialize text attribute values to an xml simple buffer</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute node'/>
      <arg name='string' type='const xmlChar *' info='the text content'/>
    </function>
    <function name='xmlAutomataCompile' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.</info>
      <return type='xmlRegexpPtr' info='the compiled regexp or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataGetInitState' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Initial state lookup</info>
      <return type='xmlAutomataStatePtr' info='the initial state of the automata'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataIsDeterminist' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Checks if an automata is determinist.</info>
      <return type='int' info='1 if true, 0 if not, and -1 in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataNewAllTrans' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='lax' type='int' info='allow to transition if not all all transitions have been activated'/>
    </function>
    <function name='xmlAutomataNewCountTrans' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <arg name='max' type='int' info='the maximum successive occurences of token'/>
      <arg name='data' type='void *' info='data associated to the transition'/>
    </function>
    <function name='xmlAutomataNewCountTrans2' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <arg name='max' type='int' info='the maximum successive occurences of token'/>
      <arg name='data' type='void *' info='data associated to the transition'/>
    </function>
    <function name='xmlAutomataNewCountedTrans' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='counter' type='int' info='the counter associated to that transition'/>
    </function>
    <function name='xmlAutomataNewCounter' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Create a new counter</info>
      <return type='int' info='the counter number or -1 in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='min' type='int' info='the minimal value on the counter'/>
      <arg name='max' type='int' info='the maximal value on the counter'/>
    </function>
    <function name='xmlAutomataNewCounterTrans' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='counter' type='int' info='the counter associated to that transition'/>
    </function>
    <function name='xmlAutomataNewEpsilon' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
    </function>
    <function name='xmlAutomataNewOnceTrans' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <arg name='max' type='int' info='the maximum successive occurences of token'/>
      <arg name='data' type='void *' info='data associated to the transition'/>
    </function>
    <function name='xmlAutomataNewOnceTrans2' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='min' type='int' info='the minimum successive occurences of token'/>
      <arg name='max' type='int' info='the maximum successive occurences of token'/>
      <arg name='data' type='void *' info='data associated to the transition'/>
    </function>
    <function name='xmlAutomataNewState' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Create a new disconnected state in the automata</info>
      <return type='xmlAutomataStatePtr' info='the new state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlAutomataNewTransition' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the input string associated to that transition'/>
      <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
    </function>
    <function name='xmlAutomataNewTransition2' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token</info>
      <return type='xmlAutomataStatePtr' info='the target state or NULL in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='from' type='xmlAutomataStatePtr' info='the starting point of the transition'/>
      <arg name='to' type='xmlAutomataStatePtr' info='the target point of the transition or NULL'/>
      <arg name='token' type='const xmlChar *' info='the first input string associated to that transition'/>
      <arg name='token2' type='const xmlChar *' info='the second input string associated to that transition'/>
      <arg name='data' type='void *' info='data passed to the callback function if the transition is activated'/>
    </function>
    <function name='xmlAutomataSetFinalState' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Makes that state a final state</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
      <arg name='state' type='xmlAutomataStatePtr' info='a state in this automata'/>
    </function>
    <function name='xmlBoolToText' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Convenient way to turn bool into text</info>
      <return type='const char *' info='a pointer to either &quot;True&quot; or &quot;False&quot;'/>
      <arg name='boolval' type='int' info='a bool to turn into text'/>
    </function>
    <function name='xmlBufferAdd' file='tree'>
      <info>Add a string range to an XML buffer. if len == -1, the length of str is recomputed.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
      <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
      <arg name='len' type='int' info='the number of #xmlChar to add'/>
    </function>
    <function name='xmlBufferAddHead' file='tree'>
      <info>Add a string range to the beginning of an XML buffer. if len == -1, the length of @str is recomputed.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
      <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
      <arg name='len' type='int' info='the number of #xmlChar to add'/>
    </function>
    <function name='xmlBufferCCat' file='tree'>
      <info>Append a zero terminated C string to an XML buffer.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
      <arg name='str' type='const char *' info='the C char string'/>
    </function>
    <function name='xmlBufferCat' file='tree'>
      <info>Append a zero terminated string to an XML buffer.</info>
      <return type='int' info='0 successful, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to add to'/>
      <arg name='str' type='const xmlChar *' info='the #xmlChar string'/>
    </function>
    <function name='xmlBufferContent' file='tree'>
      <info>Function to extract the content of a buffer</info>
      <return type='const xmlChar *' info='the internal content'/>
      <arg name='buf' type='const xmlBufferPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferCreate' file='tree'>
      <info>routine to create an XML buffer.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
    </function>
    <function name='xmlBufferCreateSize' file='tree'>
      <info>routine to create an XML buffer.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
      <arg name='size' type='size_t' info='initial size of buffer'/>
    </function>
    <function name='xmlBufferCreateStatic' file='tree'>
      <info>routine to create an XML buffer from an immutable memory area. The area won&apos;t be modified nor copied, and is expected to be present until the end of the buffer lifetime.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
      <arg name='mem' type='void *' info='the memory area'/>
      <arg name='size' type='size_t' info='the size in byte'/>
    </function>
    <function name='xmlBufferDump' file='tree'>
      <info>Dumps an XML buffer to  a FILE *.</info>
      <return type='int' info='the number of #xmlChar written'/>
      <arg name='file' type='FILE *' info='the file output'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
    </function>
    <function name='xmlBufferEmpty' file='tree'>
      <info>empty a buffer.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferFree' file='tree'>
      <info>Frees an XML buffer. It frees both the content and the structure which encapsulate it.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to free'/>
    </function>
    <function name='xmlBufferGrow' file='tree'>
      <info>Grow the available space of an XML buffer.</info>
      <return type='int' info='the new available space or -1 in case of error'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
      <arg name='len' type='unsigned int' info='the minimum free size to allocate'/>
    </function>
    <function name='xmlBufferLength' file='tree'>
      <info>Function to get the length of a buffer</info>
      <return type='int' info='the length of data in the internal content'/>
      <arg name='buf' type='const xmlBufferPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferResize' file='tree'>
      <info>Resize a buffer to accommodate minimum size of @size.</info>
      <return type='int' info='0 in case of problems, 1 otherwise'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to resize'/>
      <arg name='size' type='unsigned int' info='the desired size'/>
    </function>
    <function name='xmlBufferSetAllocationScheme' file='tree'>
      <info>Sets the allocation scheme for this buffer</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to tune'/>
      <arg name='scheme' type='xmlBufferAllocationScheme' info='allocation scheme to use'/>
    </function>
    <function name='xmlBufferShrink' file='tree'>
      <info>Remove the beginning of an XML buffer.</info>
      <return type='int' info='the number of #xmlChar removed, or -1 in case of failure.'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer to dump'/>
      <arg name='len' type='unsigned int' info='the number of xmlChar to remove'/>
    </function>
    <function name='xmlBufferWriteCHAR' file='tree'>
      <info>routine which manages and grows an output buffer. This one adds xmlChars at the end of the buffer.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer'/>
      <arg name='string' type='const xmlChar *' info='the string to add'/>
    </function>
    <function name='xmlBufferWriteChar' file='tree'>
      <info>routine which manage and grows an output buffer. This one add C chars at the end of the array.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='string' type='const char *' info='the string to add'/>
    </function>
    <function name='xmlBufferWriteQuotedString' file='tree'>
      <info>routine which manage and grows an output buffer. This one writes a quoted or double quoted #xmlChar string, checking first if it holds quote or double-quotes internally</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='string' type='const xmlChar *' info='the string to add'/>
    </function>
    <function name='xmlBuildQName' file='tree'>
      <info>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</info>
      <return type='xmlChar *' info='the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error'/>
      <arg name='ncname' type='const xmlChar *' info='the Name'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix'/>
      <arg name='memory' type='xmlChar *' info='preallocated memory'/>
      <arg name='len' type='int' info='preallocated memory length'/>
    </function>
    <function name='xmlBuildRelativeURI' file='uri'>
      <info>Expresses the URI of the reference in terms relative to the base.  Some examples of this operation include: base = &quot;http://site1.com/docs/book1.html&quot; URI input                        URI returned docs/pic1.gif                    pic1.gif docs/img/pic1.gif                img/pic1.gif img/pic1.gif                     ../img/pic1.gif http://site1.com/docs/pic1.gif   pic1.gif http://site2.com/docs/pic1.gif   http://site2.com/docs/pic1.gif  base = &quot;docs/book1.html&quot; URI input                        URI returned docs/pic1.gif                    pic1.gif docs/img/pic1.gif                img/pic1.gif img/pic1.gif                     ../img/pic1.gif http://site1.com/docs/pic1.gif   http://site1.com/docs/pic1.gif   Note: if the URI reference is really wierd or complicated, it may be worthwhile to first convert it into a &quot;nice&quot; one by calling xmlBuildURI (using &apos;base&apos;) before calling this routine, since this routine (for reasonable efficiency) assumes URI has already been through some validation.</info>
      <return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case error.'/>
      <arg name='URI' type='const xmlChar *' info='the URI reference under consideration'/>
      <arg name='base' type='const xmlChar *' info='the base value'/>
    </function>
    <function name='xmlBuildURI' file='uri'>
      <info>Computes he final URI of the reference done by checking that the given URI is valid, and building the final URI using the base URI. This is processed according to section 5.2 of the RFC 2396  5.2. Resolving Relative References to Absolute Form</info>
      <return type='xmlChar *' info='a new URI string (to be freed by the caller) or NULL in case of error.'/>
      <arg name='URI' type='const xmlChar *' info='the URI instance found in the document'/>
      <arg name='base' type='const xmlChar *' info='the base value'/>
    </function>
    <function name='xmlByteConsumed' file='parser'>
      <info>This function provides the current index of the parser relative to the start of the current entity. This function is computed in bytes from the beginning starting at zero and finishing at the size in byte of the file if parsing a file. The function is of constant cost if the input is UTF-8 but can be costly if run on non-UTF-8 input.</info>
      <return type='long' info='the index in bytes from the beginning of the entity or -1 in case the index could not be computed.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlC14NDocDumpMemory' file='c14n'>
      <cond>LIBXML_C14N_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dumps the canonized image of given XML document into memory. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='the number of bytes written on success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
      <arg name='exclusive' type='int' info='the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='doc_txt_ptr' type='xmlChar **' info='the memory pointer for allocated canonical XML text; the caller of this functions is responsible for calling xmlFree() to free allocated memory'/>
    </function>
    <function name='xmlC14NDocSave' file='c14n'>
      <cond>LIBXML_C14N_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dumps the canonized image of given XML document into the file. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='the number of bytes written success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
      <arg name='exclusive' type='int' info='the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='filename' type='const char *' info='the filename to store canonical XML image'/>
      <arg name='compression' type='int' info='the compression level (zlib requred): -1 - libxml default, 0 - uncompressed, &gt;0 - compression level'/>
    </function>
    <function name='xmlC14NDocSaveTo' file='c14n'>
      <cond>LIBXML_C14N_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='non-negative value on success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='the nodes set to be included in the canonized image or NULL if all document nodes should be included'/>
      <arg name='exclusive' type='int' info='the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
    </function>
    <function name='xmlC14NExecute' file='c14n'>
      <cond>LIBXML_C14N_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dumps the canonized image of given XML document into the provided buffer. For details see &quot;Canonical XML&quot; (http://www.w3.org/TR/xml-c14n) or &quot;Exclusive XML Canonicalization&quot; (http://www.w3.org/TR/xml-exc-c14n)</info>
      <return type='int' info='non-negative value on success or a negative value on fail'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document for canonization'/>
      <arg name='is_visible_callback' type='xmlC14NIsVisibleCallback' info='the function to use to determine is node visible or not'/>
      <arg name='user_data' type='void *' info='the first parameter for @is_visible_callback function (in most cases, it is nodes set)'/>
      <arg name='exclusive' type='int' info='the exclusive flag (0 - non-exclusive canonicalization; otherwise - exclusive canonicalization)'/>
      <arg name='inclusive_ns_prefixes' type='xmlChar **' info='the list of inclusive namespace prefixes ended with a NULL or NULL if there is no inclusive namespaces (only for exclusive canonicalization, ignored otherwise)'/>
      <arg name='with_comments' type='int' info='include comments in the result (!=0) or not (==0)'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the output buffer to store canonical XML; this buffer MUST have encoder==NULL because C14N requires UTF-8 output'/>
    </function>
    <functype name='xmlC14NIsVisibleCallback' file='c14n'>
      <cond>LIBXML_C14N_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info></info>
      <return type='int' info=''/>
      <arg name='user_data' type='void *' info=''/>
      <arg name='node' type='xmlNodePtr' info=''/>
      <arg name='parent' type='xmlNodePtr' info=''/>
    </functype>
    <function name='xmlCanonicPath' file='uri'>
      <info>Constructs a canonic path from the specified path.</info>
      <return type='xmlChar *' info='a new canonic path, or a duplicate of the path parameter if the construction fails. The caller is responsible for freeing the memory occupied by the returned string. If there is insufficient memory available, or the argument is NULL, the function returns NULL.'/>
      <arg name='path' type='const xmlChar *' info='the resource locator in a filesystem notation'/>
    </function>
    <function name='xmlCatalogAdd' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Add an entry in the catalog, it may overwrite existing but different entries. If called before any other catalog routine, allows to override the default shared catalog put in place by xmlInitializeCatalog();</info>
      <return type='int' info='0 if successful, -1 otherwise'/>
      <arg name='type' type='const xmlChar *' info='the type of record to add to the catalog'/>
      <arg name='orig' type='const xmlChar *' info='the system, public or prefix to match'/>
      <arg name='replace' type='const xmlChar *' info='the replacement value for the match'/>
    </function>
    <function name='xmlCatalogAddLocal' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Add the new entry to the catalog list</info>
      <return type='void *' info='the updated list'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
      <arg name='URL' type='const xmlChar *' info='the URL to a new local catalog'/>
    </function>
    <function name='xmlCatalogCleanup' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Free up all the memory associated with catalogs</info>
      <return type='void'/>
    </function>
    <function name='xmlCatalogConvert' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Convert all the SGML catalog entries as XML ones</info>
      <return type='int' info='the number of entries converted if successful, -1 otherwise'/>
    </function>
    <function name='xmlCatalogDump' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump all the global catalog content to the given file.</info>
      <return type='void'/>
      <arg name='out' type='FILE *' info='the file.'/>
    </function>
    <function name='xmlCatalogFreeLocal' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Free up the memory associated to the catalog list</info>
      <return type='void'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
    </function>
    <function name='xmlCatalogGetDefaults' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Used to get the user preference w.r.t. to what catalogs should be accepted</info>
      <return type='xmlCatalogAllow' info='the current xmlCatalogAllow value'/>
    </function>
    <function name='xmlCatalogGetPublic' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Try to lookup the catalog reference associated to a public ID DEPRECATED, use xmlCatalogResolvePublic()</info>
      <return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
    </function>
    <function name='xmlCatalogGetSystem' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Try to lookup the catalog reference associated to a system ID DEPRECATED, use xmlCatalogResolveSystem()</info>
      <return type='const xmlChar *' info='the resource if found or NULL otherwise.'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogIsEmpty' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Check is a catalog is empty</info>
      <return type='int' info='1 if the catalog is empty, 0 if not, amd -1 in case of error.'/>
      <arg name='catal' type='xmlCatalogPtr' info='should this create an SGML catalog'/>
    </function>
    <function name='xmlCatalogLocalResolve' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do a complete resolution lookup of an External Identifier using a document&apos;s private catalog list</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogLocalResolveURI' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do a complete resolution lookup of an URI using a document&apos;s private catalog list</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='catalogs' type='void *' info='a document&apos;s list of catalogs'/>
      <arg name='URI' type='const xmlChar *' info='the URI'/>
    </function>
    <function name='xmlCatalogRemove' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Remove an entry from the catalog</info>
      <return type='int' info='the number of entries removed if successful, -1 otherwise'/>
      <arg name='value' type='const xmlChar *' info='the value to remove'/>
    </function>
    <function name='xmlCatalogResolve' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do a complete resolution lookup of an External Identifier</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogResolvePublic' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Try to lookup the catalog reference associated to a public ID</info>
      <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='pubID' type='const xmlChar *' info='the public ID string'/>
    </function>
    <function name='xmlCatalogResolveSystem' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Try to lookup the catalog resource for a system ID</info>
      <return type='xmlChar *' info='the resource if found or NULL otherwise, the value returned must be freed by the caller.'/>
      <arg name='sysID' type='const xmlChar *' info='the system ID string'/>
    </function>
    <function name='xmlCatalogResolveURI' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do a complete resolution lookup of an URI</info>
      <return type='xmlChar *' info='the URI of the resource or NULL if not found, it must be freed by the caller.'/>
      <arg name='URI' type='const xmlChar *' info='the URI'/>
    </function>
    <function name='xmlCatalogSetDebug' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Used to set the debug level for catalog operation, 0 disable debugging, 1 enable it</info>
      <return type='int' info='the previous value of the catalog debugging level'/>
      <arg name='level' type='int' info='the debug level of catalogs required'/>
    </function>
    <function name='xmlCatalogSetDefaultPrefer' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Allows to set the preference between public and system for deletion in XML Catalog resolution. C.f. section 4.1.1 of the spec Values accepted are XML_CATA_PREFER_PUBLIC or XML_CATA_PREFER_SYSTEM</info>
      <return type='xmlCatalogPrefer' info='the previous value of the default preference for delegation'/>
      <arg name='prefer' type='xmlCatalogPrefer' info='the default preference for delegation'/>
    </function>
    <function name='xmlCatalogSetDefaults' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Used to set the user preference w.r.t. to what catalogs should be accepted</info>
      <return type='void'/>
      <arg name='allow' type='xmlCatalogAllow' info='what catalogs should be accepted'/>
    </function>
    <function name='xmlCharEncCloseFunc' file='encoding'>
      <info>Generic front-end for encoding handler close function</info>
      <return type='int' info='0 if success, or -1 in case of error'/>
      <arg name='handler' type='xmlCharEncodingHandler *' info='char enconding transformation data structure'/>
    </function>
    <function name='xmlCharEncFirstLine' file='encoding'>
      <info>Front-end for the encoding handler input function, but handle only the very first line, i.e. limit itself to 45 chars.</info>
      <return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
      <arg name='handler' type='xmlCharEncodingHandler *' info='char enconding transformation data structure'/>
      <arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
      <arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
    </function>
    <function name='xmlCharEncInFunc' file='encoding'>
      <info>Generic front-end for the encoding handler input function</info>
      <return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
      <arg name='handler' type='xmlCharEncodingHandler *' info='char encoding transformation data structure'/>
      <arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
      <arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
    </function>
    <function name='xmlCharEncOutFunc' file='encoding'>
      <info>Generic front-end for the encoding handler output function a first call with @in == NULL has to be made firs to initiate the output in case of non-stateless encoding needing to initiate their state or the output (like the BOM in UTF16). In case of UTF8 sequence conversion errors for the given encoder, the content will be automatically remapped to a CharRef sequence.</info>
      <return type='int' info='the number of byte written if success, or -1 general error -2 if the transcoding fails (for *in is not valid utf8 string or the result of transformation can&apos;t fit into the encoding we want), or'/>
      <arg name='handler' type='xmlCharEncodingHandler *' info='char enconding transformation data structure'/>
      <arg name='out' type='xmlBufferPtr' info='an xmlBuffer for the output.'/>
      <arg name='in' type='xmlBufferPtr' info='an xmlBuffer for the input'/>
    </function>
    <functype name='xmlCharEncodingInputFunc' file='encoding'>
      <info>Take a block of chars in the original encoding and try to convert it to an UTF-8 block of chars out.</info>
      <return type='int' info='the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. 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 UTF-8 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 chars in the original encoding'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </functype>
    <functype name='xmlCharEncodingOutputFunc' file='encoding'>
      <info>Take a block of UTF-8 chars in and try to convert it to another encoding. Note: a first call designed to produce heading info is called with in = NULL. If stateful this should also initialize the encoder state.</info>
      <return type='int' info='the number of bytes written, -1 if lack of space, or -2 if the transcoding failed. The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictiable. The value of @outlen after return is the number of octets produced.'/>
      <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'/>
    </functype>
    <function name='xmlCharInRange' file='chvalid'>
      <info>Does a binary search of the range table to determine if char is valid</info>
      <return type='int' info='true if character valid, false otherwise'/>
      <arg name='val' type='unsigned int' info='character to be validated'/>
      <arg name='rptr' type='const xmlChRangeGroupPtr' info='pointer to range to be used to validate'/>
    </function>
    <function name='xmlCharStrdup' file='xmlstring'>
      <info>a strdup for char&apos;s to xmlChar&apos;s</info>
      <return type='xmlChar *' info='a new xmlChar * or NULL'/>
      <arg name='cur' type='const char *' info='the input char *'/>
    </function>
    <function name='xmlCharStrndup' file='xmlstring'>
      <info>a strndup for char&apos;s to xmlChar&apos;s</info>
      <return type='xmlChar *' info='a new xmlChar * or NULL'/>
      <arg name='cur' type='const char *' info='the input char *'/>
      <arg name='len' type='int' info='the len of @cur'/>
    </function>
    <function name='xmlCheckFilename' file='xmlIO'>
      <info>function checks to see if @path is a valid source (file, socket...) for XML.  if stat is not available on the target machine,</info>
      <return type='int' info='1.  if stat fails, returns 0 (if calling stat on the filename fails, it can&apos;t be right). if stat succeeds and the file is a directory, returns 2.  otherwise returns 1.'/>
      <arg name='path' type='const char *' info='the path to check'/>
    </function>
    <function name='xmlCheckHTTPInput' file='xmlIO'>
      <info>Check an input in case it was created from an HTTP stream, in that case it will handle encoding and update of the base URL in case of redirection. It also checks for HTTP errors in which case the input is cleanly freed up and an appropriate error is raised in context</info>
      <return type='xmlParserInputPtr' info='the input or NULL in case of HTTP error.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='ret' type='xmlParserInputPtr' info='an XML parser input'/>
    </function>
    <function name='xmlCheckLanguageID' file='parserInternals'>
      <info>Checks that the value conforms to the LanguageID production:  NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition.  [33] LanguageID ::= Langcode (&apos;-&apos; Subcode)* [34] Langcode ::= ISO639Code |  IanaCode |  UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= (&apos;i&apos; | &apos;I&apos;) &apos;-&apos; ([a-z] | [A-Z])+ [37] UserCode ::= (&apos;x&apos; | &apos;X&apos;) &apos;-&apos; ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+</info>
      <return type='int' info='1 if correct 0 otherwise'/>
      <arg name='lang' type='const xmlChar *' info='pointer to the string value'/>
    </function>
    <function name='xmlCheckUTF8' file='xmlstring'>
      <info>Checks @utf for being valid UTF-8. @utf is assumed to be null-terminated. This function is not super-strict, as it will allow longer UTF-8 sequences than necessary. Note that Java is capable of producing these sequences if provoked. Also note, this routine checks for the 4-byte maximum size, but does not check for 0x10ffff maximum value.</info>
      <return type='int' info='value: true if @utf is valid.'/>
      <arg name='utf' type='const unsigned char *' info='Pointer to putative UTF-8 encoded string.'/>
    </function>
    <function name='xmlCheckVersion' file='xmlversion'>
      <info>check the compiled lib version against the include one. This can warn or immediately kill the application</info>
      <return type='void'/>
      <arg name='version' type='int' info='the include version number'/>
    </function>
    <function name='xmlCleanupCharEncodingHandlers' file='encoding'>
      <info>Cleanup the memory allocated for the char encoding support, it unregisters all the encoding handlers and the aliases.</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupEncodingAliases' file='encoding'>
      <info>Unregisters all aliases</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupGlobals' file='globals'>
      <info>Additional cleanup for multi-threading</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupInputCallbacks' file='xmlIO'>
      <info>clears the entire input callback table. this includes the compiled-in I/O.</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupMemory' file='xmlmemory'>
      <info>Free up all the memory associated with memorys</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupOutputCallbacks' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>clears the entire output callback table. this includes the compiled-in I/O callbacks.</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupParser' file='parser'>
      <info>Cleanup function for the XML library. It tries to reclaim all parsing related global memory allocated for the library processing. It doesn&apos;t deallocate any document related memory. Calling this function should not prevent reusing the library but one should call xmlCleanupParser() only when the process has finished using the library or XML document built with it.</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupPredefinedEntities' file='entities'>
      <info>Cleanup up the predefined entities table. Deprecated call</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupThreads' file='threads'>
      <info>xmlCleanupThreads() is used to to cleanup all the thread related data of the libxml2 library once processing has ended.</info>
      <return type='void'/>
    </function>
    <function name='xmlClearNodeInfoSeq' file='parser'>
      <info>-- Clear (release memory and reinitialize) node info sequence</info>
      <return type='void'/>
      <arg name='seq' type='xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
    </function>
    <function name='xmlClearParserCtxt' file='parser'>
      <info>Clear (release owned resources) and reinitialize a parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlConvertSGMLCatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Convert all the SGML catalog entries as XML ones</info>
      <return type='int' info='the number of entries converted if successful, -1 otherwise'/>
      <arg name='catal' type='xmlCatalogPtr' info='the catalog'/>
    </function>
    <function name='xmlCopyAttributeTable' file='valid'>
      <info>Build a copy of an attribute table.</info>
      <return type='xmlAttributeTablePtr' info='the new xmlAttributeTablePtr or NULL in case of error.'/>
      <arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
    </function>
    <function name='xmlCopyChar' file='parserInternals'>
      <info>append the char value in the array</info>
      <return type='int' info='the number of xmlChar written'/>
      <arg name='len' type='int' info='Ignored, compatibility'/>
      <arg name='out' type='xmlChar *' info='pointer to an array of xmlChar'/>
      <arg name='val' type='int' info='the char value'/>
    </function>
    <function name='xmlCopyCharMultiByte' file='parserInternals'>
      <info>append the char value in the array</info>
      <return type='int' info='the number of xmlChar written'/>
      <arg name='out' type='xmlChar *' info='pointer to an array of xmlChar'/>
      <arg name='val' type='int' info='the char value'/>
    </function>
    <function name='xmlCopyDoc' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</info>
      <return type='xmlDocPtr' info='a new #xmlDocPtr, or NULL in case of error.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='recursive' type='int' info='if not zero do a recursive copy.'/>
    </function>
    <function name='xmlCopyDtd' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Do a copy of the dtd.</info>
      <return type='xmlDtdPtr' info='a new #xmlDtdPtr, or NULL in case of error.'/>
      <arg name='dtd' type='xmlDtdPtr' info='the dtd'/>
    </function>
    <function name='xmlCopyElementContent' file='valid'>
      <info>Build a copy of an element content description.</info>
      <return type='xmlElementContentPtr' info='the new xmlElementContentPtr or NULL in case of error.'/>
      <arg name='cur' type='xmlElementContentPtr' info='An element content pointer.'/>
    </function>
    <function name='xmlCopyElementTable' file='valid'>
      <info>Build a copy of an element table.</info>
      <return type='xmlElementTablePtr' info='the new xmlElementTablePtr or NULL in case of error.'/>
      <arg name='table' type='xmlElementTablePtr' info='An element table'/>
    </function>
    <function name='xmlCopyEntitiesTable' file='entities'>
      <info>Build a copy of an entity table.</info>
      <return type='xmlEntitiesTablePtr' info='the new xmlEntitiesTablePtr or NULL in case of error.'/>
      <arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
    </function>
    <function name='xmlCopyEnumeration' file='valid'>
      <info>Copy an enumeration attribute node (recursive).</info>
      <return type='xmlEnumerationPtr' info='the xmlEnumerationPtr just created or NULL in case of error.'/>
      <arg name='cur' type='xmlEnumerationPtr' info='the tree to copy.'/>
    </function>
    <function name='xmlCopyError' file='xmlerror'>
      <info>Save the original error to the new place.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='from' type='xmlErrorPtr' info='a source error'/>
      <arg name='to' type='xmlErrorPtr' info='a target error'/>
    </function>
    <function name='xmlCopyNamespace' file='tree'>
      <info>Do a copy of the namespace.</info>
      <return type='xmlNsPtr' info='a new #xmlNsPtr, or NULL in case of error.'/>
      <arg name='cur' type='xmlNsPtr' info='the namespace'/>
    </function>
    <function name='xmlCopyNamespaceList' file='tree'>
      <info>Do a copy of an namespace list.</info>
      <return type='xmlNsPtr' info='a new #xmlNsPtr, or NULL in case of error.'/>
      <arg name='cur' type='xmlNsPtr' info='the first namespace'/>
    </function>
    <function name='xmlCopyNode' file='tree'>
      <info>Do a copy of the node.</info>
      <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
      <arg name='node' type='const xmlNodePtr' info='the node'/>
      <arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
    </function>
    <function name='xmlCopyNodeList' file='tree'>
      <info>Do a recursive copy of the node list.</info>
      <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
      <arg name='node' type='const xmlNodePtr' info='the first node in the list.'/>
    </function>
    <function name='xmlCopyNotationTable' file='valid'>
      <info>Build a copy of a notation table.</info>
      <return type='xmlNotationTablePtr' info='the new xmlNotationTablePtr or NULL in case of error.'/>
      <arg name='table' type='xmlNotationTablePtr' info='A notation table'/>
    </function>
    <function name='xmlCopyProp' file='tree'>
      <info>Do a copy of the attribute.</info>
      <return type='xmlAttrPtr' info='a new #xmlAttrPtr, or NULL in case of error.'/>
      <arg name='target' type='xmlNodePtr' info='the element where the attribute will be grafted'/>
      <arg name='cur' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlCopyPropList' file='tree'>
      <info>Do a copy of an attribute list.</info>
      <return type='xmlAttrPtr' info='a new #xmlAttrPtr, or NULL in case of error.'/>
      <arg name='target' type='xmlNodePtr' info='the element where the attributes will be grafted'/>
      <arg name='cur' type='xmlAttrPtr' info='the first attribute'/>
    </function>
    <function name='xmlCreateDocParserCtxt' file='parser'>
      <info>Creates a parser context for an XML in-memory document.</info>
      <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
    </function>
    <function name='xmlCreateEntitiesTable' file='entities'>
      <info>create and initialize an empty entities hash table.</info>
      <return type='xmlEntitiesTablePtr' info='the xmlEntitiesTablePtr just created or NULL in case of error.'/>
    </function>
    <function name='xmlCreateEntityParserCtxt' file='parserInternals'>
      <info>Create a parser context for an external entity Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='URL' type='const xmlChar *' info='the entity URL'/>
      <arg name='ID' type='const xmlChar *' info='the entity PUBLIC ID'/>
      <arg name='base' type='const xmlChar *' info='a possible base for the target URI'/>
    </function>
    <function name='xmlCreateEnumeration' file='valid'>
      <info>create and initialize an enumeration attribute node.</info>
      <return type='xmlEnumerationPtr' info='the xmlEnumerationPtr just created or NULL in case of error.'/>
      <arg name='name' type='const xmlChar *' info='the enumeration name or NULL'/>
    </function>
    <function name='xmlCreateFileParserCtxt' file='parserInternals'>
      <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='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlCreateIOParserCtxt' file='parser'>
      <info>Create a parser context for using the XML parser with an existing I/O stream</info>
      <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlCreateIntSubset' file='tree'>
      <info>Create the internal subset of a document</info>
      <return type='xmlDtdPtr' info='a pointer to the new DTD structure'/>
      <arg name='doc' type='xmlDocPtr' info='the document pointer'/>
      <arg name='name' type='const xmlChar *' info='the DTD name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external (PUBLIC) ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the system ID'/>
    </function>
    <function name='xmlCreateMemoryParserCtxt' file='parserInternals'>
      <info>Create a parser context for an XML in-memory document.</info>
      <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlCreatePushParserCtxt' file='parser'>
      <cond>LIBXML_PUSH_ENABLED</cond>
      <info>Create a parser context for using the XML parser in push mode. If @buffer and @size are non-NULL, the data is used to detect the encoding.  The remaining characters will be parsed so they don&apos;t need to be fed in again through xmlParseChunk. 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='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='sax' type='xmlSAXHandlerPtr' 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'/>
    </function>
    <function name='xmlCreateURI' file='uri'>
      <info>Simply creates an empty xmlURI</info>
      <return type='xmlURIPtr' info='the new structure or NULL in case of error'/>
    </function>
    <function name='xmlCreateURLParserCtxt' file='parserInternals'>
      <info>Create a parser context for a file or URL content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time and for file accesses</info>
      <return type='xmlParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='filename' type='const char *' info='the filename or URL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCtxtGetLastError' file='xmlerror'>
      <info>Get the last parsing error registered.</info>
      <return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
    </function>
    <function name='xmlCtxtReadDoc' file='parser'>
      <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCtxtReadFd' file='parser'>
      <info>parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCtxtReadFile' file='parser'>
      <info>parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCtxtReadIO' file='parser'>
      <info>parse an XML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCtxtReadMemory' file='parser'>
      <info>parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCtxtReset' file='parser'>
      <info>Reset a parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlCtxtResetLastError' file='xmlerror'>
      <info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
    </function>
    <function name='xmlCtxtResetPush' file='parser'>
      <info>Reset a push parser context</info>
      <return type='int' info='0 in case of success and 1 in case of error'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <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='encoding' type='const char *' info='the document encoding, or NULL'/>
    </function>
    <function name='xmlCtxtUseOptions' file='parser'>
      <info>Applies the options to the parser context</info>
      <return type='int' info='0 in case of success, the set of unknown or unimplemented options in case of error.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlCurrentChar' file='parserInternals'>
      <info>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer. Implement the end of line normalization: 2.11 End-of-Line Handling Wherever an external parsed entity or the literal entity value of an internal parsed entity contains either the literal two-character sequence &quot;#xD#xA&quot; or a standalone literal #xD, an XML processor must pass to the application the single character #xA. This behavior can conveniently be produced by normalizing all line breaks to #xA on input, before parsing.)</info>
      <return type='int' info='the current char value and its length'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
      <arg name='len' type='int *' info='pointer to the length of the char read'/>
    </function>
    <function name='xmlDebugDumpAttr' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the attribute</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
      <arg name='depth' type='int' info='the indentation level.'/>
    </function>
    <function name='xmlDebugDumpAttrList' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the attribute list</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute list'/>
      <arg name='depth' type='int' info='the indentation level.'/>
    </function>
    <function name='xmlDebugDumpDTD' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the DTD</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='dtd' type='xmlDtdPtr' info='the DTD'/>
    </function>
    <function name='xmlDebugDumpDocument' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the document, it&apos;s recursive</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlDebugDumpDocumentHead' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information cncerning the document, not recursive</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlDebugDumpEntities' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for all the entities in use by the document</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlDebugDumpNode' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the element node, it is recursive</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='depth' type='int' info='the indentation level.'/>
    </function>
    <function name='xmlDebugDumpNodeList' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the list of element node, it is recursive</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='node' type='xmlNodePtr' info='the node list'/>
      <arg name='depth' type='int' info='the indentation level.'/>
    </function>
    <function name='xmlDebugDumpOneNode' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps debug information for the element node, it is not recursive</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='depth' type='int' info='the indentation level.'/>
    </function>
    <function name='xmlDebugDumpString' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps informations about the string, shorten it if necessary</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='str' type='const xmlChar *' info='the string'/>
    </function>
    <function name='xmlDecodeEntities' file='parserInternals'>
      <info>This function is deprecated, we now always process entities content through xmlStringDecodeEntities  TODO: remove it in next major release.  [67] Reference ::= EntityRef | CharRef  [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
      <return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
      <arg name='len' type='int' info='the len to decode (in bytes !), -1 for no size limit'/>
      <arg name='what' type='int' info='combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF'/>
      <arg name='end' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
      <arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
      <arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
    </function>
    <function name='xmlDefaultSAXHandlerInit' file='SAX2'>
      <info>Initialize the default SAX2 handler</info>
      <return type='void'/>
    </function>
    <function name='xmlDelEncodingAlias' file='encoding'>
      <info>Unregisters an encoding alias @alias</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
    </function>
    <function name='xmlDeregisterNodeDefault' file='globals'>
      <info>Registers a callback for node destruction</info>
      <return type='xmlDeregisterNodeFunc' info='the previous value of the deregistration function'/>
      <arg name='func' type='xmlDeregisterNodeFunc' info='function pointer to the new DeregisterNodeFunc'/>
    </function>
    <functype name='xmlDeregisterNodeFunc' file='globals'>
      <info></info>
      <return type='void'/>
      <arg name='node' type='xmlNodePtr' info=''/>
    </functype>
    <function name='xmlDetectCharEncoding' file='encoding'>
      <info>Guess the encoding of the entity using the first bytes of the entity content according to the non-normative appendix F of the XML-1.0 recommendation.</info>
      <return type='xmlCharEncoding' info='one of the XML_CHAR_ENCODING_... values.'/>
      <arg name='in' type='const unsigned char *' info='a pointer to the first bytes of the XML entity, must be at least 2 bytes long (at least 4 if encoding is UTF4 variant).'/>
      <arg name='len' type='int' info='pointer to the length of the buffer'/>
    </function>
    <function name='xmlDictCreate' file='dict'>
      <info>Create a new dictionary</info>
      <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
    </function>
    <function name='xmlDictCreateSub' file='dict'>
      <info>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</info>
      <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
      <arg name='sub' type='xmlDictPtr' info='an existing dictionnary'/>
    </function>
    <function name='xmlDictFree' file='dict'>
      <info>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</info>
      <return type='void'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
    </function>
    <function name='xmlDictLookup' file='dict'>
      <info>Add the @name to the hash @dict if not present.</info>
      <return type='const xmlChar *' info='the internal copy of the name or NULL in case of internal error'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
    </function>
    <function name='xmlDictOwns' file='dict'>
      <info>check if a string is owned by the disctionary</info>
      <return type='int' info='1 if true, 0 if false and -1 in case of error -1 in case of error'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
      <arg name='str' type='const xmlChar *' info='the string'/>
    </function>
    <function name='xmlDictQLookup' file='dict'>
      <info>Add the QName @prefix:@name to the hash @dict if not present.</info>
      <return type='const xmlChar *' info='the internal copy of the QName or NULL in case of internal error'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix'/>
      <arg name='name' type='const xmlChar *' info='the name'/>
    </function>
    <function name='xmlDictReference' file='dict'>
      <info>Increment the reference counter of a dictionary</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
    </function>
    <function name='xmlDictSize' file='dict'>
      <info>Query the number of elements installed in the hash @dict.</info>
      <return type='int' info='the number of elements in the dictionnary or -1 in case of error'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
    </function>
    <function name='xmlDocCopyNode' file='tree'>
      <info>Do a copy of the node to a given document.</info>
      <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
      <arg name='node' type='const xmlNodePtr' info='the node'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
    </function>
    <function name='xmlDocDump' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to an open FILE.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='f' type='FILE *' info='the FILE*'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlDocDumpFormatMemory' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document in memory and return the #xmlChar * and it&apos;s size. It&apos;s up to the caller to free the memory with xmlFree(). Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='void'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
      <arg name='size' type='int *' info='OUT: the memory length'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlDocDumpFormatMemoryEnc' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump the current DOM tree into memory using the character encoding specified by the caller.  Note it is up to the caller of this function to free the allocated memory with xmlFree(). Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='void'/>
      <arg name='out_doc' type='xmlDocPtr' info='Document to generate XML text from'/>
      <arg name='doc_txt_ptr' type='xmlChar **' info='Memory pointer for allocated XML text'/>
      <arg name='doc_txt_len' type='int *' info='Length of the generated XML text'/>
      <arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlDocDumpMemory' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document in memory and return the #xmlChar * and it&apos;s size in bytes. It&apos;s up to the caller to free the memory with xmlFree(). The resulting byte array is zero terminated, though the last 0 is not included in the returned size.</info>
      <return type='void'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='mem' type='xmlChar **' info='OUT: the memory pointer'/>
      <arg name='size' type='int *' info='OUT: the memory length'/>
    </function>
    <function name='xmlDocDumpMemoryEnc' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump the current DOM tree into memory using the character encoding specified by the caller.  Note it is up to the caller of this function to free the allocated memory with xmlFree().</info>
      <return type='void'/>
      <arg name='out_doc' type='xmlDocPtr' info='Document to generate XML text from'/>
      <arg name='doc_txt_ptr' type='xmlChar **' info='Memory pointer for allocated XML text'/>
      <arg name='doc_txt_len' type='int *' info='Length of the generated XML text'/>
      <arg name='txt_encoding' type='const char *' info='Character encoding to use when generating XML text'/>
    </function>
    <function name='xmlDocFormatDump' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to an open FILE.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
      <arg name='f' type='FILE *' info='the FILE*'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlDocGetRootElement' file='tree'>
      <info>Get the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</info>
      <return type='xmlNodePtr' info='the #xmlNodePtr for the root or NULL'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlDocSetRootElement' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set the root element of the document (doc-&gt;children is a list containing possibly comments, PIs, etc ...).</info>
      <return type='xmlNodePtr' info='the old root element if any was found'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='root' type='xmlNodePtr' info='the new document root element'/>
    </function>
    <function name='xmlDumpAttributeDecl' file='valid'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the attribute declaration as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='attr' type='xmlAttributePtr' info='An attribute declaration'/>
    </function>
    <function name='xmlDumpAttributeTable' file='valid'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the attribute table as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
    </function>
    <function name='xmlDumpElementDecl' file='valid'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the element declaration as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='elem' type='xmlElementPtr' info='An element table'/>
    </function>
    <function name='xmlDumpElementTable' file='valid'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the element table as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='table' type='xmlElementTablePtr' info='An element table'/>
    </function>
    <function name='xmlDumpEntitiesTable' file='entities'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the entity table as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='An XML buffer.'/>
      <arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
    </function>
    <function name='xmlDumpEntityDecl' file='entities'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the entity table as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='An XML buffer.'/>
      <arg name='ent' type='xmlEntityPtr' info='An entity table'/>
    </function>
    <function name='xmlDumpNotationDecl' file='valid'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content the notation declaration as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='nota' type='xmlNotationPtr' info='A notation declaration'/>
    </function>
    <function name='xmlDumpNotationTable' file='valid'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This will dump the content of the notation table as an XML DTD definition</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='table' type='xmlNotationTablePtr' info='A notation table'/>
    </function>
    <function name='xmlElemDump' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML/HTML node, recursive behaviour, children are printed too.</info>
      <return type='void'/>
      <arg name='f' type='FILE *' info='the FILE * for the output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
    </function>
    <function name='xmlEncodeEntities' file='entities'>
      <info>TODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility  People must migrate their code to xmlEncodeEntitiesReentrant ! This routine will issue a warning when encountered.</info>
      <return type='const xmlChar *' info='NULL'/>
      <arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
      <arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
    </function>
    <function name='xmlEncodeEntitiesReentrant' file='entities'>
      <info>Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated.</info>
      <return type='xmlChar *' info='A newly allocated string with the substitution done.'/>
      <arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
      <arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
    </function>
    <function name='xmlEncodeSpecialChars' file='entities'>
      <info>Do a global encoding of a string, replacing the predefined entities this routine is reentrant, and result must be deallocated.</info>
      <return type='xmlChar *' info='A newly allocated string with the substitution done.'/>
      <arg name='doc' type='xmlDocPtr' info='the document containing the string'/>
      <arg name='input' type='const xmlChar *' info='A string to convert to XML.'/>
    </function>
    <functype name='xmlEntityReferenceFunc' file='parserInternals'>
      <info>Callback function used when one needs to be able to track back the provenance of a chunk of nodes inherited from an entity replacement.</info>
      <return type='void'/>
      <arg name='ent' type='xmlEntityPtr' info='the entity'/>
      <arg name='firstNode' type='xmlNodePtr' info='the fist node in the chunk'/>
      <arg name='lastNode' type='xmlNodePtr' info='the last nod in the chunk'/>
    </functype>
    <function name='xmlErrMemory' file='parserInternals'>
      <info>Handle a redefinition of attribute error</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='extra' type='const char *' info='extra informations'/>
    </function>
    <functype name='xmlExternalEntityLoader' file='parser'>
      <info>External entity loaders types.</info>
      <return type='xmlParserInputPtr' info='the entity input parser.'/>
      <arg name='URL' type='const char *' info='The System ID of the resource requested'/>
      <arg name='ID' type='const char *' info='The Public ID of the resource requested'/>
      <arg name='context' type='xmlParserCtxtPtr' info='the XML parser context'/>
    </functype>
    <function name='xmlFileClose' file='xmlIO'>
      <info>Close an I/O channel</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='context' type='void *' info='the I/O context'/>
    </function>
    <function name='xmlFileMatch' file='xmlIO'>
      <info>input from FILE *</info>
      <return type='int' info='1 if matches, 0 otherwise'/>
      <arg name='filename' type='const char *' info='the URI for matching'/>
    </function>
    <function name='xmlFileOpen' file='xmlIO'>
      <info>Wrapper around xmlFileOpen_real that try it with an unescaped version of @filename, if this fails fallback to @filename</info>
      <return type='void *' info='a handler or NULL in case or failure'/>
      <arg name='filename' type='const char *' info='the URI for matching'/>
    </function>
    <function name='xmlFileRead' file='xmlIO'>
      <info>Read @len bytes to @buffer from the I/O channel.</info>
      <return type='int' info='the number of bytes written'/>
      <arg name='context' type='void *' info='the I/O context'/>
      <arg name='buffer' type='char *' info='where to drop data'/>
      <arg name='len' type='int' info='number of bytes to write'/>
    </function>
    <function name='xmlFindCharEncodingHandler' file='encoding'>
      <info>Search in the registered set the handler able to read/write that encoding.</info>
      <return type='xmlCharEncodingHandlerPtr' info='the handler or NULL if not found'/>
      <arg name='name' type='const char *' info='a string describing the char encoding.'/>
    </function>
    <function name='xmlFreeAttributeTable' file='valid'>
      <info>Deallocate the memory used by an entities hash table.</info>
      <return type='void'/>
      <arg name='table' type='xmlAttributeTablePtr' info='An attribute table'/>
    </function>
    <function name='xmlFreeAutomata' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Free an automata</info>
      <return type='void'/>
      <arg name='am' type='xmlAutomataPtr' info='an automata'/>
    </function>
    <function name='xmlFreeCatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Free the memory allocated to a Catalog</info>
      <return type='void'/>
      <arg name='catal' type='xmlCatalogPtr' info='a Catalog'/>
    </function>
    <function name='xmlFreeDoc' file='tree'>
      <info>Free up all the structures used by a document, tree included.</info>
      <return type='void'/>
      <arg name='cur' type='xmlDocPtr' info='pointer to the document'/>
    </function>
    <function name='xmlFreeDtd' file='tree'>
      <info>Free a DTD structure.</info>
      <return type='void'/>
      <arg name='cur' type='xmlDtdPtr' info='the DTD structure to free up'/>
    </function>
    <function name='xmlFreeElementContent' file='valid'>
      <info>Free an element content structure. This is a recursive call !</info>
      <return type='void'/>
      <arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
    </function>
    <function name='xmlFreeElementTable' file='valid'>
      <info>Deallocate the memory used by an element hash table.</info>
      <return type='void'/>
      <arg name='table' type='xmlElementTablePtr' info='An element table'/>
    </function>
    <function name='xmlFreeEntitiesTable' file='entities'>
      <info>Deallocate the memory used by an entities hash table.</info>
      <return type='void'/>
      <arg name='table' type='xmlEntitiesTablePtr' info='An entity table'/>
    </function>
    <function name='xmlFreeEnumeration' file='valid'>
      <info>free an enumeration attribute node (recursive).</info>
      <return type='void'/>
      <arg name='cur' type='xmlEnumerationPtr' info='the tree to free.'/>
    </function>
    <functype name='xmlFreeFunc' file='xmlmemory'>
      <info>Signature for a free() implementation.</info>
      <return type='void'/>
      <arg name='mem' type='void *' info='an already allocated block of memory'/>
    </functype>
    <function name='xmlFreeIDTable' file='valid'>
      <info>Deallocate the memory used by an ID hash table.</info>
      <return type='void'/>
      <arg name='table' type='xmlIDTablePtr' info='An id table'/>
    </function>
    <function name='xmlFreeInputStream' file='parserInternals'>
      <info>Free up an input stream.</info>
      <return type='void'/>
      <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr'/>
    </function>
    <function name='xmlFreeMutex' file='threads'>
      <info>xmlFreeMutex() is used to reclaim resources associated with a libxml2 token struct.</info>
      <return type='void'/>
      <arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
    </function>
    <function name='xmlFreeNode' file='tree'>
      <info>Free a node, this is a recursive behaviour, all the children are freed too. This doesn&apos;t unlink the child from the list, use xmlUnlinkNode() first.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlFreeNodeList' file='tree'>
      <info>Free a node and all its siblings, this is a recursive behaviour, all the children are freed too.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the first node in the list'/>
    </function>
    <function name='xmlFreeNotationTable' file='valid'>
      <info>Deallocate the memory used by an entities hash table.</info>
      <return type='void'/>
      <arg name='table' type='xmlNotationTablePtr' info='An notation table'/>
    </function>
    <function name='xmlFreeNs' file='tree'>
      <info>Free up the structures associated to a namespace</info>
      <return type='void'/>
      <arg name='cur' type='xmlNsPtr' info='the namespace pointer'/>
    </function>
    <function name='xmlFreeNsList' file='tree'>
      <info>Free up all the structures associated to the chained namespaces.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNsPtr' info='the first namespace pointer'/>
    </function>
    <function name='xmlFreeParserCtxt' file='parser'>
      <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='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlFreeParserInputBuffer' file='xmlIO'>
      <info>Free up the memory used by a buffered parser input</info>
      <return type='void'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
    </function>
    <function name='xmlFreePattern' file='pattern'>
      <cond>LIBXML_PATTERN_ENABLED</cond>
      <info>Free up the memory allocated by @comp</info>
      <return type='void'/>
      <arg name='comp' type='xmlPatternPtr' info='an XSLT comp'/>
    </function>
    <function name='xmlFreePatternList' file='pattern'>
      <cond>LIBXML_PATTERN_ENABLED</cond>
      <info>Free up the memory allocated by all the elements of @comp</info>
      <return type='void'/>
      <arg name='comp' type='xmlPatternPtr' info='an XSLT comp list'/>
    </function>
    <function name='xmlFreeProp' file='tree'>
      <info>Free one attribute, all the content is freed too</info>
      <return type='void'/>
      <arg name='cur' type='xmlAttrPtr' info='an attribute'/>
    </function>
    <function name='xmlFreePropList' file='tree'>
      <info>Free a property and all its siblings, all the children are freed too.</info>
      <return type='void'/>
      <arg name='cur' type='xmlAttrPtr' info='the first property in the list'/>
    </function>
    <function name='xmlFreeRMutex' file='threads'>
      <info>xmlRFreeMutex() is used to reclaim resources associated with a reentrant mutex.</info>
      <return type='void'/>
      <arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
    </function>
    <function name='xmlFreeRefTable' file='valid'>
      <info>Deallocate the memory used by an Ref hash table.</info>
      <return type='void'/>
      <arg name='table' type='xmlRefTablePtr' info='An ref table'/>
    </function>
    <function name='xmlFreeTextReader' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Deallocate all the resources associated to the reader</info>
      <return type='void'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr'/>
    </function>
    <function name='xmlFreeTextWriter' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Deallocate all the resources associated to the writer</info>
      <return type='void'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlFreeURI' file='uri'>
      <info>Free up the xmlURI struct</info>
      <return type='void'/>
      <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
    </function>
    <function name='xmlFreeValidCtxt' file='valid'>
      <info>Free a validation context structure.</info>
      <return type='void'/>
      <arg name='cur' type='xmlValidCtxtPtr' info='the validation context to free'/>
    </function>
    <function name='xmlGcMemGet' file='xmlmemory'>
      <info>Provides the memory access functions set currently in use The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas  useful for garbage collected memory allocators</info>
      <return type='int' info='0 on success'/>
      <arg name='freeFunc' type='xmlFreeFunc *' info='place to save the free() function in use'/>
      <arg name='mallocFunc' type='xmlMallocFunc *' info='place to save the malloc() function in use'/>
      <arg name='mallocAtomicFunc' type='xmlMallocFunc *' info='place to save the atomic malloc() function in use'/>
      <arg name='reallocFunc' type='xmlReallocFunc *' info='place to save the realloc() function in use'/>
      <arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
    </function>
    <function name='xmlGcMemSetup' file='xmlmemory'>
      <info>Override the default memory access functions with a new set This has to be called before any other libxml routines ! The mallocAtomicFunc is specialized for atomic block allocations (i.e. of areas  useful for garbage collected memory allocators  Should this be blocked if there was already some allocations done ?</info>
      <return type='int' info='0 on success'/>
      <arg name='freeFunc' type='xmlFreeFunc' info='the free() function to use'/>
      <arg name='mallocFunc' type='xmlMallocFunc' info='the malloc() function to use'/>
      <arg name='mallocAtomicFunc' type='xmlMallocFunc' info='the malloc() function to use for atomic allocations'/>
      <arg name='reallocFunc' type='xmlReallocFunc' info='the realloc() function to use'/>
      <arg name='strdupFunc' type='xmlStrdupFunc' info='the strdup() function to use'/>
    </function>
    <functype name='xmlGenericErrorFunc' file='xmlerror'>
      <info>Signature of the function to use when there is an error and no parsing or validity context available .</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='a parsing context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='the extra arguments of the varags to format the message'/>
    </functype>
    <function name='xmlGetBufferAllocationScheme' file='tree'>
      <info>Types are XML_BUFFER_ALLOC_EXACT - use exact sizes, keeps memory usage down XML_BUFFER_ALLOC_DOUBLEIT - double buffer when extra needed, improves performance</info>
      <return type='xmlBufferAllocationScheme' info='the current allocation scheme'/>
    </function>
    <function name='xmlGetCharEncodingHandler' file='encoding'>
      <info>Search in the registered set the handler able to read/write that encoding.</info>
      <return type='xmlCharEncodingHandlerPtr' info='the handler or NULL if not found'/>
      <arg name='enc' type='xmlCharEncoding' info='an xmlCharEncoding value.'/>
    </function>
    <function name='xmlGetCharEncodingName' file='encoding'>
      <info>The &quot;canonical&quot; name for XML encoding. C.f. http://www.w3.org/TR/REC-xml#charencoding Section 4.3.3  Character Encoding in Entities</info>
      <return type='const char *' info='the canonical name for the given encoding'/>
      <arg name='enc' type='xmlCharEncoding' info='the encoding'/>
    </function>
    <function name='xmlGetCompressMode' file='tree'>
      <info>get the default compression mode used, ZLIB based.</info>
      <return type='int' info='0 (uncompressed) to 9 (max compression)'/>
    </function>
    <function name='xmlGetDocCompressMode' file='tree'>
      <info>get the compression ratio for a document, ZLIB based</info>
      <return type='int' info='0 (uncompressed) to 9 (max compression)'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlGetDocEntity' file='entities'>
      <info>Do an entity lookup in the document entity hash table and</info>
      <return type='xmlEntityPtr' info='the corresponding entity, otherwise a lookup is done in the predefined entities too.  Returns A pointer to the entity structure or NULL if not found.'/>
      <arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
    </function>
    <function name='xmlGetDtdAttrDesc' file='valid'>
      <info>Search the DTD for the description of this attribute on this element.</info>
      <return type='xmlAttributePtr' info='the xmlAttributePtr if found or NULL'/>
      <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
      <arg name='elem' type='const xmlChar *' info='the element name'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlGetDtdElementDesc' file='valid'>
      <info>Search the DTD for the description of this element</info>
      <return type='xmlElementPtr' info='the xmlElementPtr if found or NULL'/>
      <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
    </function>
    <function name='xmlGetDtdEntity' file='entities'>
      <info>Do an entity lookup in the DTD entity hash table and</info>
      <return type='xmlEntityPtr' info='the corresponding entity, if found. Note: the first argument is the document node, not the DTD node.  Returns A pointer to the entity structure or NULL if not found.'/>
      <arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
    </function>
    <function name='xmlGetDtdNotationDesc' file='valid'>
      <info>Search the DTD for the description of this notation</info>
      <return type='xmlNotationPtr' info='the xmlNotationPtr if found or NULL'/>
      <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
      <arg name='name' type='const xmlChar *' info='the notation name'/>
    </function>
    <function name='xmlGetDtdQAttrDesc' file='valid'>
      <info>Search the DTD for the description of this qualified attribute on this element.</info>
      <return type='xmlAttributePtr' info='the xmlAttributePtr if found or NULL'/>
      <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
      <arg name='elem' type='const xmlChar *' info='the element name'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='prefix' type='const xmlChar *' info='the attribute namespace prefix'/>
    </function>
    <function name='xmlGetDtdQElementDesc' file='valid'>
      <info>Search the DTD for the description of this element</info>
      <return type='xmlElementPtr' info='the xmlElementPtr if found or NULL'/>
      <arg name='dtd' type='xmlDtdPtr' info='a pointer to the DtD to search'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix'/>
    </function>
    <function name='xmlGetEncodingAlias' file='encoding'>
      <info>Lookup an encoding name for the given alias.</info>
      <return type='const char *' info='NULL if not found, otherwise the original name'/>
      <arg name='alias' type='const char *' info='the alias name as parsed, in UTF-8 format (ASCII actually)'/>
    </function>
    <function name='xmlGetExternalEntityLoader' file='parser'>
      <info>Get the default external entity resolver function for the application</info>
      <return type='xmlExternalEntityLoader' info='the xmlExternalEntityLoader function pointer'/>
    </function>
    <function name='xmlGetFeature' file='parser'>
      <info>Read the current value of one feature of this parser instance</info>
      <return type='int' info='-1 in case or error, 0 otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML/HTML parser context'/>
      <arg name='name' type='const char *' info='the feature name'/>
      <arg name='result' type='void *' info='location to store the result'/>
    </function>
    <function name='xmlGetFeaturesList' file='parser'>
      <info>Copy at most *@len feature names into the @result array</info>
      <return type='int' info='-1 in case or error, or the total number of features, len is updated with the number of strings copied, strings must not be deallocated'/>
      <arg name='len' type='int *' info='the length of the features name array (input/output)'/>
      <arg name='result' type='const char **' info='an array of string to be filled with the features name.'/>
    </function>
    <function name='xmlGetGlobalState' file='threads'>
      <info>xmlGetGlobalState() is called to retrieve the global state for a thread.</info>
      <return type='xmlGlobalStatePtr' info='the thread global state or NULL in case of error'/>
    </function>
    <function name='xmlGetID' file='valid'>
      <info>Search the attribute declaring the given ID</info>
      <return type='xmlAttrPtr' info='NULL if not found, otherwise the xmlAttrPtr defining the ID'/>
      <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
      <arg name='ID' type='const xmlChar *' info='the ID value'/>
    </function>
    <function name='xmlGetIntSubset' file='tree'>
      <info>Get the internal subset of a document</info>
      <return type='xmlDtdPtr' info='a pointer to the DTD structure or NULL if not found'/>
      <arg name='doc' type='xmlDocPtr' info='the document pointer'/>
    </function>
    <function name='xmlGetLastChild' file='tree'>
      <info>Search the last child of a node.</info>
      <return type='xmlNodePtr' info='the last child or NULL if none.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
    </function>
    <function name='xmlGetLastError' file='xmlerror'>
      <info>Get the last global error registered. This is per thread if compiled with thread support.</info>
      <return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
    </function>
    <function name='xmlGetLineNo' file='tree'>
      <info>Get line number of @node. This requires activation of this option before invoking the parser by calling xmlLineNumbersDefault(1)</info>
      <return type='long' info='the line number if successful, -1 otherwise'/>
      <arg name='node' type='xmlNodePtr' info='valid node'/>
    </function>
    <function name='xmlGetNoNsProp' file='tree'>
      <info>Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. This function is similar to xmlGetProp except it will accept only an attribute in no namespace.</info>
      <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlGetNodePath' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Build a structure based Path for the given node</info>
      <return type='xmlChar *' info='the new path or NULL in case of error. The caller must free the returned string'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlGetNsList' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Search all the namespace applying to a given element.</info>
      <return type='xmlNsPtr *' info='an NULL terminated array of all the #xmlNsPtr found that need to be freed by the caller or NULL if no namespace if defined'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='node' type='xmlNodePtr' info='the current node'/>
    </function>
    <function name='xmlGetNsProp' file='tree'>
      <info>Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
      <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
    </function>
    <function name='xmlGetParameterEntity' file='entities'>
      <info>Do an entity lookup in the internal and external subsets and</info>
      <return type='xmlEntityPtr' info='the corresponding parameter entity, if found.  Returns A pointer to the entity structure or NULL if not found.'/>
      <arg name='doc' type='xmlDocPtr' info='the document referencing the entity'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
    </function>
    <function name='xmlGetPredefinedEntity' file='entities'>
      <info>Check whether this name is an predefined entity.</info>
      <return type='xmlEntityPtr' info='NULL if not, otherwise the entity'/>
      <arg name='name' type='const xmlChar *' info='the entity name'/>
    </function>
    <function name='xmlGetProp' file='tree'>
      <info>Search and get the value of an attribute associated to a node This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. NOTE: this function acts independently of namespaces associated to the attribute. Use xmlGetNsProp() or xmlGetNoNsProp() for namespace aware processing.</info>
      <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory with xmlFree().'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlGetRefs' file='valid'>
      <info>Find the set of references for the supplied ID.</info>
      <return type='xmlListPtr' info='NULL if not found, otherwise node set for the ID.'/>
      <arg name='doc' type='xmlDocPtr' info='pointer to the document'/>
      <arg name='ID' type='const xmlChar *' info='the ID value'/>
    </function>
    <function name='xmlGetThreadId' file='threads'>
      <info>xmlGetThreadId() find the current thread ID number</info>
      <return type='int' info='the current thread ID number'/>
    </function>
    <function name='xmlGetUTF8Char' file='xmlstring'>
      <info>Read the first UTF8 character from @utf</info>
      <return type='int' info='the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)'/>
      <arg name='utf' type='const unsigned char *' info='a sequence of UTF-8 encoded bytes'/>
      <arg name='len' type='int *' info='a pointer to the minimum number of bytes present in the sequence.  This is used to assure the next character is completely contained within the sequence.'/>
    </function>
    <function name='xmlHandleEntity' file='parserInternals'>
      <info>Default handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ?  OBSOLETE: to be removed at some point.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='entity' type='xmlEntityPtr' info='an XML entity pointer.'/>
    </function>
    <function name='xmlHasNsProp' file='tree'>
      <info>Search for an attribute associated to a node This attribute has to be anchored in the namespace specified. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
      <return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
    </function>
    <function name='xmlHasProp' file='tree'>
      <info>Search an attribute associated to a node This function also looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
      <return type='xmlAttrPtr' info='the attribute or the attribute declaration or NULL if neither was found.'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlHashAddEntry' file='hash'>
      <info>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.</info>
      <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='userdata' type='void *' info='a pointer to the userdata'/>
    </function>
    <function name='xmlHashAddEntry2' file='hash'>
      <info>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Duplicate tuples generate errors.</info>
      <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='userdata' type='void *' info='a pointer to the userdata'/>
    </function>
    <function name='xmlHashAddEntry3' file='hash'>
      <info>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</info>
      <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
      <arg name='userdata' type='void *' info='a pointer to the userdata'/>
    </function>
    <functype name='xmlHashCopier' file='hash'>
      <info>Callback to copy data from a hash.</info>
      <return type='void *' info='a copy of the data or NULL in case of error.'/>
      <arg name='payload' type='void *' info='the data in the hash'/>
      <arg name='name' type='xmlChar *' info='the name associated'/>
    </functype>
    <function name='xmlHashCopy' file='hash'>
      <info>Scan the hash @table and applied @f to each value.</info>
      <return type='xmlHashTablePtr' info='the new table or NULL in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='f' type='xmlHashCopier' info='the copier function for items in the hash'/>
    </function>
    <function name='xmlHashCreate' file='hash'>
      <info>Create a new xmlHashTablePtr.</info>
      <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
      <arg name='size' type='int' info='the size of the hash table'/>
    </function>
    <functype name='xmlHashDeallocator' file='hash'>
      <info>Callback to free data from a hash.</info>
      <return type='void'/>
      <arg name='payload' type='void *' info='the data in the hash'/>
      <arg name='name' type='xmlChar *' info='the name associated'/>
    </functype>
    <function name='xmlHashFree' file='hash'>
      <info>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</info>
      <return type='void'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for items in the hash'/>
    </function>
    <function name='xmlHashLookup' file='hash'>
      <info>Find the userdata specified by the @name.</info>
      <return type='void *' info='the pointer to the userdata'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
    </function>
    <function name='xmlHashLookup2' file='hash'>
      <info>Find the userdata specified by the (@name, @name2) tuple.</info>
      <return type='void *' info='the pointer to the userdata'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
    </function>
    <function name='xmlHashLookup3' file='hash'>
      <info>Find the userdata specified by the (@name, @name2, @name3) tuple.</info>
      <return type='void *' info='the a pointer to the userdata'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
    </function>
    <function name='xmlHashQLookup' file='hash'>
      <info>Find the userdata specified by the QName @prefix:@name/@name.</info>
      <return type='void *' info='the pointer to the userdata'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
    </function>
    <function name='xmlHashQLookup2' file='hash'>
      <info>Find the userdata specified by the QNames tuple</info>
      <return type='void *' info='the pointer to the userdata'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='prefix2' type='const xmlChar *' info='the second prefix of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
    </function>
    <function name='xmlHashQLookup3' file='hash'>
      <info>Find the userdata specified by the (@name, @name2, @name3) tuple.</info>
      <return type='void *' info='the a pointer to the userdata'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix of the userdata'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='prefix2' type='const xmlChar *' info='the second prefix of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='prefix3' type='const xmlChar *' info='the third prefix of the userdata'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
    </function>
    <function name='xmlHashRemoveEntry' file='hash'>
      <info>Find the userdata specified by the @name and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
      <return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
    </function>
    <function name='xmlHashRemoveEntry2' file='hash'>
      <info>Find the userdata specified by the (@name, @name2) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
      <return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
    </function>
    <function name='xmlHashRemoveEntry3' file='hash'>
      <info>Find the userdata specified by the (@name, @name2, @name3) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.</info>
      <return type='int' info='0 if the removal succeeded and -1 in case of error or not found.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for removed item (if any)'/>
    </function>
    <function name='xmlHashScan' file='hash'>
      <info>Scan the hash @table and applied @f to each value.</info>
      <return type='void'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='f' type='xmlHashScanner' info='the scanner function for items in the hash'/>
      <arg name='data' type='void *' info='extra data passed to f'/>
    </function>
    <function name='xmlHashScan3' file='hash'>
      <info>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</info>
      <return type='void'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata or NULL'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata or NULL'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata or NULL'/>
      <arg name='f' type='xmlHashScanner' info='the scanner function for items in the hash'/>
      <arg name='data' type='void *' info='extra data passed to f'/>
    </function>
    <function name='xmlHashScanFull' file='hash'>
      <info>Scan the hash @table and applied @f to each value.</info>
      <return type='void'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='f' type='xmlHashScannerFull' info='the scanner function for items in the hash'/>
      <arg name='data' type='void *' info='extra data passed to f'/>
    </function>
    <function name='xmlHashScanFull3' file='hash'>
      <info>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</info>
      <return type='void'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata or NULL'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata or NULL'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata or NULL'/>
      <arg name='f' type='xmlHashScannerFull' info='the scanner function for items in the hash'/>
      <arg name='data' type='void *' info='extra data passed to f'/>
    </function>
    <functype name='xmlHashScanner' file='hash'>
      <info>Callback when scanning data in a hash with the simple scanner.</info>
      <return type='void'/>
      <arg name='payload' type='void *' info='the data in the hash'/>
      <arg name='data' type='void *' info='extra scannner data'/>
      <arg name='name' type='xmlChar *' info='the name associated'/>
    </functype>
    <functype name='xmlHashScannerFull' file='hash'>
      <info>Callback when scanning data in a hash with the full scanner.</info>
      <return type='void'/>
      <arg name='payload' type='void *' info='the data in the hash'/>
      <arg name='data' type='void *' info='extra scannner data'/>
      <arg name='name' type='const xmlChar *' info='the name associated'/>
      <arg name='name2' type='const xmlChar *' info='the second name associated'/>
      <arg name='name3' type='const xmlChar *' info='the third name associated'/>
    </functype>
    <function name='xmlHashSize' file='hash'>
      <info>Query the number of elements installed in the hash @table.</info>
      <return type='int' info='the number of elements in the hash table or -1 in case of error'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
    </function>
    <function name='xmlHashUpdateEntry' file='hash'>
      <info>Add the @userdata to the hash @table. This can later be retrieved by using the @name. Existing entry for this @name will be removed and freed with @f if found.</info>
      <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='userdata' type='void *' info='a pointer to the userdata'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
    </function>
    <function name='xmlHashUpdateEntry2' file='hash'>
      <info>Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Existing entry for this tuple will be removed and freed with @f if found.</info>
      <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='userdata' type='void *' info='a pointer to the userdata'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
    </function>
    <function name='xmlHashUpdateEntry3' file='hash'>
      <info>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Existing entry for this tuple will be removed and freed with @f if found.</info>
      <return type='int' info='0 the addition succeeded and -1 in case of error.'/>
      <arg name='table' type='xmlHashTablePtr' info='the hash table'/>
      <arg name='name' type='const xmlChar *' info='the name of the userdata'/>
      <arg name='name2' type='const xmlChar *' info='a second name of the userdata'/>
      <arg name='name3' type='const xmlChar *' info='a third name of the userdata'/>
      <arg name='userdata' type='void *' info='a pointer to the userdata'/>
      <arg name='f' type='xmlHashDeallocator' info='the deallocator function for replaced item (if any)'/>
    </function>
    <function name='xmlIOFTPClose' file='xmlIO'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Close an FTP I/O channel</info>
      <return type='int' info='0'/>
      <arg name='context' type='void *' info='the I/O context'/>
    </function>
    <function name='xmlIOFTPMatch' file='xmlIO'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>check if the URI matches an FTP one</info>
      <return type='int' info='1 if matches, 0 otherwise'/>
      <arg name='filename' type='const char *' info='the URI for matching'/>
    </function>
    <function name='xmlIOFTPOpen' file='xmlIO'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>open an FTP I/O channel</info>
      <return type='void *' info='an I/O context or NULL in case of error'/>
      <arg name='filename' type='const char *' info='the URI for matching'/>
    </function>
    <function name='xmlIOFTPRead' file='xmlIO'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Read @len bytes to @buffer from the I/O channel.</info>
      <return type='int' info='the number of bytes written'/>
      <arg name='context' type='void *' info='the I/O context'/>
      <arg name='buffer' type='char *' info='where to drop data'/>
      <arg name='len' type='int' info='number of bytes to write'/>
    </function>
    <function name='xmlIOHTTPClose' file='xmlIO'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Close an HTTP I/O channel</info>
      <return type='int' info='0'/>
      <arg name='context' type='void *' info='the I/O context'/>
    </function>
    <function name='xmlIOHTTPMatch' file='xmlIO'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>check if the URI matches an HTTP one</info>
      <return type='int' info='1 if matches, 0 otherwise'/>
      <arg name='filename' type='const char *' info='the URI for matching'/>
    </function>
    <function name='xmlIOHTTPOpen' file='xmlIO'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>open an HTTP I/O channel</info>
      <return type='void *' info='an I/O context or NULL in case of error'/>
      <arg name='filename' type='const char *' info='the URI for matching'/>
    </function>
    <function name='xmlIOHTTPOpenW' file='xmlIO'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Open a temporary buffer to collect the document for a subsequent HTTP POST request.  Non-static as is called from the output buffer creation routine.</info>
      <return type='void *' info='an I/O context or NULL in case of error.'/>
      <arg name='post_uri' type='const char *' info='The destination URI for the document'/>
      <arg name='compression' type='int' info='The compression desired for the document.'/>
    </function>
    <function name='xmlIOHTTPRead' file='xmlIO'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Read @len bytes to @buffer from the I/O channel.</info>
      <return type='int' info='the number of bytes written'/>
      <arg name='context' type='void *' info='the I/O context'/>
      <arg name='buffer' type='char *' info='where to drop data'/>
      <arg name='len' type='int' info='number of bytes to write'/>
    </function>
    <function name='xmlIOParseDTD' file='parser'>
      <info>Load and parse a DTD</info>
      <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error. @input will be freed at parsing end.'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block or NULL'/>
      <arg name='input' type='xmlParserInputBufferPtr' info='an Input Buffer'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlInitCharEncodingHandlers' file='encoding'>
      <info>Initialize the char encoding support, it registers the default encoding supported. NOTE: while public, this function usually doesn&apos;t need to be called in normal processing.</info>
      <return type='void'/>
    </function>
    <function name='xmlInitGlobals' file='globals'>
      <info>Additional initialisation for multi-threading</info>
      <return type='void'/>
    </function>
    <function name='xmlInitMemory' file='xmlmemory'>
      <info>Initialize the memory layer.</info>
      <return type='int' info='0 on success'/>
    </function>
    <function name='xmlInitNodeInfoSeq' file='parser'>
      <info>-- Initialize (set to initial state) node info sequence</info>
      <return type='void'/>
      <arg name='seq' type='xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
    </function>
    <function name='xmlInitParser' file='parser'>
      <info>Initialization function for the XML parser. This is not reentrant. Call once before processing in case of use in multithreaded programs.</info>
      <return type='void'/>
    </function>
    <function name='xmlInitParserCtxt' file='parser'>
      <info>Initialize a parser context</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlInitThreads' file='threads'>
      <info>xmlInitThreads() is used to to initialize all the thread related data of the libxml2 library.</info>
      <return type='void'/>
    </function>
    <function name='xmlInitializeCatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Do the catalog initialization. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
      <return type='void'/>
    </function>
    <function name='xmlInitializeGlobalState' file='globals'>
      <info>xmlInitializeGlobalState() initialize a global state with all the default values of the library.</info>
      <return type='void'/>
      <arg name='gs' type='xmlGlobalStatePtr' info='a pointer to a newly allocated global state'/>
    </function>
    <function name='xmlInitializePredefinedEntities' file='entities'>
      <info>Set up the predefined entities. Deprecated call</info>
      <return type='void'/>
    </function>
    <functype name='xmlInputCloseCallback' file='xmlIO'>
      <info>Callback used in the I/O Input API to close the resource</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='context' type='void *' info='an Input context'/>
    </functype>
    <functype name='xmlInputMatchCallback' file='xmlIO'>
      <info>Callback used in the I/O Input API to detect if the current handler can provide input fonctionnalities for this resource.</info>
      <return type='int' info='1 if yes and 0 if another Input module should be used'/>
      <arg name='filename' type='char const *' info='the filename or URI'/>
    </functype>
    <functype name='xmlInputOpenCallback' file='xmlIO'>
      <info>Callback used in the I/O Input API to open the resource</info>
      <return type='void *' info='an Input context or NULL in case or error'/>
      <arg name='filename' type='char const *' info='the filename or URI'/>
    </functype>
    <functype name='xmlInputReadCallback' file='xmlIO'>
      <info>Callback used in the I/O Input API to read the resource</info>
      <return type='int' info='the number of bytes read or -1 in case of error'/>
      <arg name='context' type='void *' info='an Input context'/>
      <arg name='buffer' type='char *' info='the buffer to store data read'/>
      <arg name='len' type='int' info='the length of the buffer in bytes'/>
    </functype>
    <function name='xmlIsBaseChar' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsBaseChar_ch or xmlIsBaseCharQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsBlank' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsBlank_ch or xmlIsBlankQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsBlankNode' file='tree'>
      <info>Checks whether this node is an empty or whitespace only (and possibly ignorable) text-node.</info>
      <return type='int' info='1 yes, 0 no'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlIsChar' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsChar_ch or xmlIsCharQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsCombining' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsCombiningQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsDigit' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsDigit_ch or xmlIsDigitQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsExtender' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsExtender_ch or xmlIsExtenderQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsID' file='valid'>
      <info>Determine whether an attribute is of type ID. In case we have DTD(s) then this is done if DTD loading has been requested. In the case of HTML documents parsed with the HTML parser, then ID detection is done systematically.</info>
      <return type='int' info='0 or 1 depending on the lookup result'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='elem' type='xmlNodePtr' info='the element carrying the attribute'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlIsIdeographic' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsIdeographicQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsLetter' file='parserInternals'>
      <info>Check whether the character is allowed by the production [84] Letter ::= BaseChar | Ideographic</info>
      <return type='int' info='0 if not, non-zero otherwise'/>
      <arg name='c' type='int' info='an unicode character (int)'/>
    </function>
    <function name='xmlIsMainThread' file='threads'>
      <info>xmlIsMainThread() check whether the current thread is the main thread.</info>
      <return type='int' info='1 if the current thread is the main thread, 0 otherwise'/>
    </function>
    <function name='xmlIsMixedElement' file='valid'>
      <info>Search in the DtDs whether an element accept Mixed content (or ANY) basically if it is supposed to accept text childs</info>
      <return type='int' info='0 if no, 1 if yes, and -1 if no element description is available'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
    </function>
    <function name='xmlIsPubidChar' file='chvalid'>
      <info>This function is DEPRECATED. Use xmlIsPubidChar_ch or xmlIsPubidCharQ instead</info>
      <return type='int' info='true if argument valid, false otherwise'/>
      <arg name='ch' type='unsigned int' info='character to validate'/>
    </function>
    <function name='xmlIsRef' file='valid'>
      <info>Determine whether an attribute is of type Ref. In case we have DTD(s) then this is simple, otherwise we use an heuristic: name Ref (upper or lowercase).</info>
      <return type='int' info='0 or 1 depending on the lookup result'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='elem' type='xmlNodePtr' info='the element carrying the attribute'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlIsXHTML' file='tree'>
      <info>Try to find if the document correspond to an XHTML DTD</info>
      <return type='int' info='1 if true, 0 if not and -1 in case of error'/>
      <arg name='systemID' type='const xmlChar *' info='the system identifier'/>
      <arg name='publicID' type='const xmlChar *' info='the public identifier'/>
    </function>
    <function name='xmlKeepBlanksDefault' file='parser'>
      <info>Set and return the previous value for default blanks text nodes support. The 1.x version of the parser used an heuristic to try to detect ignorable white spaces. As a result the SAX callback was generating xmlSAX2IgnorableWhitespace() callbacks instead of characters() one, and when using the DOM output text nodes containing those blanks were not generated. The 2.x and later version will switch to the XML standard way and ignorableWhitespace() are only generated when running the parser in validating mode and when the current element doesn&apos;t allow CDATA or mixed content. This function is provided as a way to force the standard behavior on 1.X libs and to switch back to the old mode for compatibility when running 1.X client code on 2.X . Upgrade of 1.X code should be done by using xmlIsBlankNode() commodity function to detect the &quot;empty&quot; nodes generated. This value also affect autogeneration of indentation when saving code if blanks sections are kept, indentation is not generated.</info>
      <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
      <arg name='val' type='int' info='int 0 or 1'/>
    </function>
    <function name='xmlLineNumbersDefault' file='parser'>
      <info>Set and return the previous value for enabling line numbers in elements contents. This may break on old application and is turned off by default.</info>
      <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
      <arg name='val' type='int' info='int 0 or 1'/>
    </function>
    <function name='xmlLinkGetData' file='list'>
      <info>See Returns.</info>
      <return type='void *' info='a pointer to the data referenced from this link'/>
      <arg name='lk' type='xmlLinkPtr' info='a link'/>
    </function>
    <function name='xmlListAppend' file='list'>
      <info>Insert data in the ordered list at the end for this value</info>
      <return type='int' info='0 in case of success, 1 in case of failure'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='the data'/>
    </function>
    <function name='xmlListClear' file='list'>
      <info>Remove the all data in the list</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListCopy' file='list'>
      <info>Move all the element from the old list in the new list</info>
      <return type='int' info='0 in case of success 1 in case of error'/>
      <arg name='cur' type='xmlListPtr' info='the new list'/>
      <arg name='old' type='const xmlListPtr' info='the old list'/>
    </function>
    <function name='xmlListCreate' file='list'>
      <info>Create a new list</info>
      <return type='xmlListPtr' info='the new list or NULL in case of error'/>
      <arg name='deallocator' type='xmlListDeallocator' info='an optional deallocator function'/>
      <arg name='compare' type='xmlListDataCompare' info='an optional comparison function'/>
    </function>
    <functype name='xmlListDataCompare' file='list'>
      <info>Callback function used to compare 2 data.</info>
      <return type='int' info='0 is equality, -1 or 1 otherwise depending on the ordering.'/>
      <arg name='data0' type='const void *' info='the first data'/>
      <arg name='data1' type='const void *' info='the second data'/>
    </functype>
    <functype name='xmlListDeallocator' file='list'>
      <info>Callback function used to free data from a list.</info>
      <return type='void'/>
      <arg name='lk' type='xmlLinkPtr' info='the data to deallocate'/>
    </functype>
    <function name='xmlListDelete' file='list'>
      <info>Deletes the list and its associated data</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListDup' file='list'>
      <info>Duplicate the list</info>
      <return type='xmlListPtr' info='a new copy of the list or NULL in case of error'/>
      <arg name='old' type='const xmlListPtr' info='the list'/>
    </function>
    <function name='xmlListEmpty' file='list'>
      <info>Is the list empty ?</info>
      <return type='int' info='1 if the list is empty, 0 otherwise'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListEnd' file='list'>
      <info>Get the last element in the list</info>
      <return type='xmlLinkPtr' info='the last element in the list, or NULL'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListFront' file='list'>
      <info>Get the first element in the list</info>
      <return type='xmlLinkPtr' info='the first element in the list, or NULL'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListInsert' file='list'>
      <info>Insert data in the ordered list at the beginning for this value</info>
      <return type='int' info='0 in case of success, 1 in case of failure'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='the data'/>
    </function>
    <function name='xmlListMerge' file='list'>
      <info>include all the elements of the second list in the first one and clear the second list</info>
      <return type='void'/>
      <arg name='l1' type='xmlListPtr' info='the original list'/>
      <arg name='l2' type='xmlListPtr' info='the new list'/>
    </function>
    <function name='xmlListPopBack' file='list'>
      <info>Removes the last element in the list</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListPopFront' file='list'>
      <info>Removes the first element in the list</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListPushBack' file='list'>
      <info>add the new data at the end of the list</info>
      <return type='int' info='1 if successful, 0 otherwise'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='new data'/>
    </function>
    <function name='xmlListPushFront' file='list'>
      <info>add the new data at the beginning of the list</info>
      <return type='int' info='1 if successful, 0 otherwise'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='new data'/>
    </function>
    <function name='xmlListRemoveAll' file='list'>
      <info>Remove the all instance associated to data in the list</info>
      <return type='int' info='the number of deallocation, or 0 if not found'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='list data'/>
    </function>
    <function name='xmlListRemoveFirst' file='list'>
      <info>Remove the first instance associated to data in the list</info>
      <return type='int' info='1 if a deallocation occured, or 0 if not found'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='list data'/>
    </function>
    <function name='xmlListRemoveLast' file='list'>
      <info>Remove the last instance associated to data in the list</info>
      <return type='int' info='1 if a deallocation occured, or 0 if not found'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='list data'/>
    </function>
    <function name='xmlListReverse' file='list'>
      <info>Reverse the order of the elements in the list</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListReverseSearch' file='list'>
      <info>Search the list in reverse order for an existing value of @data</info>
      <return type='void *' info='the value associated to @data or NULL in case of error'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='a search value'/>
    </function>
    <function name='xmlListReverseWalk' file='list'>
      <info>Walk all the element of the list in reverse order and apply the walker function to it</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='walker' type='xmlListWalker' info='a processing function'/>
      <arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
    </function>
    <function name='xmlListSearch' file='list'>
      <info>Search the list for an existing value of @data</info>
      <return type='void *' info='the value associated to @data or NULL in case of error'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='data' type='void *' info='a search value'/>
    </function>
    <function name='xmlListSize' file='list'>
      <info>Get the number of elements in the list</info>
      <return type='int' info='the number of elements in the list'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListSort' file='list'>
      <info>Sort all the elements in the list</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListWalk' file='list'>
      <info>Walk all the element of the first from first to last and apply the walker function to it</info>
      <return type='void'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
      <arg name='walker' type='xmlListWalker' info='a processing function'/>
      <arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
    </function>
    <functype name='xmlListWalker' file='list'>
      <info>Callback function used when walking a list with xmlListWalk().</info>
      <return type='int' info='0 to stop walking the list, 1 otherwise.'/>
      <arg name='data' type='const void *' info='the data found in the list'/>
      <arg name='user' type='const void *' info='extra user provided data to the walker'/>
    </functype>
    <function name='xmlLoadACatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Load the catalog and build the associated data structures. This can be either an XML Catalog or an SGML Catalog It will recurse in SGML CATALOG entries. On the other hand XML Catalogs are not handled recursively.</info>
      <return type='xmlCatalogPtr' info='the catalog parsed or NULL in case of error'/>
      <arg name='filename' type='const char *' info='a file path'/>
    </function>
    <function name='xmlLoadCatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Load the catalog and makes its definitions effective for the default external entity loader. It will recurse in SGML CATALOG entries. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
      <return type='int' info='0 in case of success -1 in case of error'/>
      <arg name='filename' type='const char *' info='a file path'/>
    </function>
    <function name='xmlLoadCatalogs' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Load the catalogs and makes their definitions effective for the default external entity loader. this function is not thread safe, catalog initialization should preferably be done once at startup</info>
      <return type='void'/>
      <arg name='pathss' type='const char *' info='a list of directories separated by a colon or a space.'/>
    </function>
    <function name='xmlLoadExternalEntity' file='parser'>
      <info>Load an external entity, note that the use of this function for unparsed entities may generate problems TODO: a more generic External entity API must be designed</info>
      <return type='xmlParserInputPtr' info='the xmlParserInputPtr or NULL'/>
      <arg name='URL' type='const char *' info='the URL for the entity to load'/>
      <arg name='ID' type='const char *' info='the Public ID for the entity to load'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
    </function>
    <function name='xmlLoadSGMLSuperCatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>Load an SGML super catalog. It won&apos;t expand CATALOG or DELEGATE references. This is only needed for manipulating SGML Super Catalogs like adding and removing CATALOG or DELEGATE entries.</info>
      <return type='xmlCatalogPtr' info='the catalog parsed or NULL in case of error'/>
      <arg name='filename' type='const char *' info='a file path'/>
    </function>
    <function name='xmlLockLibrary' file='threads'>
      <info>xmlLockLibrary() is used to take out a re-entrant lock on the libxml2 library.</info>
      <return type='void'/>
    </function>
    <function name='xmlLsCountNode' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Count the children of @node.</info>
      <return type='int' info='the number of children of @node.'/>
      <arg name='node' type='xmlNodePtr' info='the node to count'/>
    </function>
    <function name='xmlLsOneNode' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dump to @output the type and name of @node.</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='node' type='xmlNodePtr' info='the node to dump'/>
    </function>
    <function name='xmlMallocAtomicLoc' file='xmlmemory'>
      <info>a malloc() equivalent, with logging of the allocation info.</info>
      <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
      <arg name='file' type='const char *' info='the file name or NULL'/>
      <arg name='line' type='int' info='the line number'/>
    </function>
    <functype name='xmlMallocFunc' file='xmlmemory'>
      <info>Signature for a malloc() implementation.</info>
      <return type='void *' info='a pointer to the newly allocated block or NULL in case of error.'/>
      <arg name='size' type='size_t' info='the size requested in bytes'/>
    </functype>
    <function name='xmlMallocLoc' file='xmlmemory'>
      <info>a malloc() equivalent, with logging of the allocation info.</info>
      <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
      <arg name='file' type='const char *' info='the file name or NULL'/>
      <arg name='line' type='int' info='the line number'/>
    </function>
    <function name='xmlMemDisplay' file='xmlmemory'>
      <info>show in-extenso the memory blocks allocated</info>
      <return type='void'/>
      <arg name='fp' type='FILE *' info='a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist'/>
    </function>
    <function name='xmlMemFree' file='xmlmemory'>
      <info></info>
      <return type='void'/>
      <arg name='ptr' type='void *' info=''/>
    </function>
    <function name='xmlMemGet' file='xmlmemory'>
      <info>Provides the memory access functions set currently in use</info>
      <return type='int' info='0 on success'/>
      <arg name='freeFunc' type='xmlFreeFunc *' info='place to save the free() function in use'/>
      <arg name='mallocFunc' type='xmlMallocFunc *' info='place to save the malloc() function in use'/>
      <arg name='reallocFunc' type='xmlReallocFunc *' info='place to save the realloc() function in use'/>
      <arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
    </function>
    <function name='xmlMemMalloc' file='xmlmemory'>
      <info></info>
      <return type='void *' info=''/>
      <arg name='size' type='size_t' info=''/>
    </function>
    <function name='xmlMemRealloc' file='xmlmemory'>
      <info></info>
      <return type='void *' info=''/>
      <arg name='ptr' type='void *' info=''/>
      <arg name='size' type='size_t' info=''/>
    </function>
    <function name='xmlMemSetup' file='xmlmemory'>
      <info>Override the default memory access functions with a new set This has to be called before any other libxml routines !  Should this be blocked if there was already some allocations done ?</info>
      <return type='int' info='0 on success'/>
      <arg name='freeFunc' type='xmlFreeFunc' info='the free() function to use'/>
      <arg name='mallocFunc' type='xmlMallocFunc' info='the malloc() function to use'/>
      <arg name='reallocFunc' type='xmlReallocFunc' info='the realloc() function to use'/>
      <arg name='strdupFunc' type='xmlStrdupFunc' info='the strdup() function to use'/>
    </function>
    <function name='xmlMemShow' file='xmlmemory'>
      <info>show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed</info>
      <return type='void'/>
      <arg name='fp' type='FILE *' info='a FILE descriptor used as the output file'/>
      <arg name='nr' type='int' info='number of entries to dump'/>
    </function>
    <function name='xmlMemStrdupLoc' file='xmlmemory'>
      <info>a strdup() equivalent, with logging of the allocation info.</info>
      <return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
      <arg name='str' type='const char *' info='the initial string pointer'/>
      <arg name='file' type='const char *' info='the file name or NULL'/>
      <arg name='line' type='int' info='the line number'/>
    </function>
    <function name='xmlMemUsed' file='xmlmemory'>
      <info>Provides the amount of memory currently allocated</info>
      <return type='int' info='an int representing the amount of memory allocated.'/>
    </function>
    <function name='xmlMemoryDump' file='xmlmemory'>
      <info>Dump in-extenso the memory blocks allocated to the file .memorylist</info>
      <return type='void'/>
    </function>
    <function name='xmlMemoryStrdup' file='xmlmemory'>
      <info></info>
      <return type='char *' info=''/>
      <arg name='str' type='const char *' info=''/>
    </function>
    <function name='xmlMutexLock' file='threads'>
      <info>xmlMutexLock() is used to lock a libxml2 token.</info>
      <return type='void'/>
      <arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
    </function>
    <function name='xmlMutexUnlock' file='threads'>
      <info>xmlMutexUnlock() is used to unlock a libxml2 token.</info>
      <return type='void'/>
      <arg name='tok' type='xmlMutexPtr' info='the simple mutex'/>
    </function>
    <function name='xmlNamespaceParseNCName' file='parserInternals'>
      <info>parse an XML namespace name.  TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input.  [NS 3] NCName ::= (Letter | &apos;_&apos;) (NCNameChar)*  [NS 4] NCNameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | CombiningChar | Extender</info>
      <return type='xmlChar *' info='the namespace name or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlNamespaceParseNSDef' file='parserInternals'>
      <info>parse a namespace prefix declaration  TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input.  [NS 1] NSDef ::= PrefixDef Eq SystemLiteral  [NS 2] PrefixDef ::= &apos;xmlns&apos; (&apos;:&apos; NCName)?</info>
      <return type='xmlChar *' info='the namespace name'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlNamespaceParseQName' file='parserInternals'>
      <info>TODO: this seems not in use anymore, the namespace handling is done on top of the SAX interfaces, i.e. not on raw input.  parse an XML qualified name  [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart  [NS 6] Prefix ::= NCName  [NS 7] LocalPart ::= NCName</info>
      <return type='xmlChar *' info='the local part, and prefix is updated to get the Prefix if any.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
    </function>
    <function name='xmlNanoFTPCheckResponse' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Check if there is a response from the FTP server after a command.</info>
      <return type='int' info='the code number, or 0'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPCleanup' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Cleanup the FTP protocol layer. This cleanup proxy informations.</info>
      <return type='void'/>
    </function>
    <function name='xmlNanoFTPClose' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Close the connection and both control and transport</info>
      <return type='int' info='-1 incase of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPCloseConnection' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Close the data connection from the server</info>
      <return type='int' info='-1 incase of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPConnect' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Tries to open a control connection</info>
      <return type='int' info='-1 in case of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPConnectTo' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Tries to open a control connection to the given server/port</info>
      <return type='void *' info='an fTP context or NULL if it failed'/>
      <arg name='server' type='const char *' info='an FTP server name'/>
      <arg name='port' type='int' info='the port (use 21 if 0)'/>
    </function>
    <function name='xmlNanoFTPCwd' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Tries to change the remote directory</info>
      <return type='int' info='-1 incase of error, 1 if CWD worked, 0 if it failed'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
      <arg name='directory' type='char *' info='a directory on the server'/>
    </function>
    <function name='xmlNanoFTPDele' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Tries to delete an item (file or directory) from server</info>
      <return type='int' info='-1 incase of error, 1 if DELE worked, 0 if it failed'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
      <arg name='file' type='char *' info='a file or directory on the server'/>
    </function>
    <function name='xmlNanoFTPFreeCtxt' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Frees the context after closing the connection.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPGet' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Fetch the given file from the server. All data are passed back in the callbacks. The last callback has a size of 0 block.</info>
      <return type='int' info='-1 incase of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
      <arg name='callback' type='ftpDataCallback' info='the user callback'/>
      <arg name='userData' type='void *' info='the user callback data'/>
      <arg name='filename' type='const char *' info='the file to retrieve'/>
    </function>
    <function name='xmlNanoFTPGetConnection' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Try to open a data connection to the server. Currently only passive mode is supported.</info>
      <return type='int' info='-1 incase of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPGetResponse' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Get the response from the FTP server after a command.</info>
      <return type='int' info='the code number'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPGetSocket' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Initiate fetch of the given file from the server.</info>
      <return type='int' info='the socket for the data connection, or &lt;0 in case of error'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
      <arg name='filename' type='const char *' info='the file to retrieve (or NULL if path is in context).'/>
    </function>
    <function name='xmlNanoFTPInit' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Initialize the FTP protocol layer. Currently it just checks for proxy informations, and get the hostname</info>
      <return type='void'/>
    </function>
    <function name='xmlNanoFTPList' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Do a listing on the server. All files info are passed back in the callbacks.</info>
      <return type='int' info='-1 incase of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
      <arg name='callback' type='ftpListCallback' info='the user callback'/>
      <arg name='userData' type='void *' info='the user callback data'/>
      <arg name='filename' type='char *' info='optional files to list'/>
    </function>
    <function name='xmlNanoFTPNewCtxt' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Allocate and initialize a new FTP context.</info>
      <return type='void *' info='an FTP context or NULL in case of error.'/>
      <arg name='URL' type='const char *' info='The URL used to initialize the context'/>
    </function>
    <function name='xmlNanoFTPOpen' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Start to fetch the given ftp:// resource</info>
      <return type='void *' info='an FTP context, or NULL'/>
      <arg name='URL' type='const char *' info='the URL to the resource'/>
    </function>
    <function name='xmlNanoFTPProxy' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Setup the FTP proxy informations. This can also be done by using ftp_proxy ftp_proxy_user and ftp_proxy_password environment variables.</info>
      <return type='void'/>
      <arg name='host' type='const char *' info='the proxy host name'/>
      <arg name='port' type='int' info='the proxy port'/>
      <arg name='user' type='const char *' info='the proxy user name'/>
      <arg name='passwd' type='const char *' info='the proxy password'/>
      <arg name='type' type='int' info='the type of proxy 1 for using SITE, 2 for USER a@b'/>
    </function>
    <function name='xmlNanoFTPQuit' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Send a QUIT command to the server</info>
      <return type='int' info='-1 in case of error, 0 otherwise'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
    </function>
    <function name='xmlNanoFTPRead' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>This function tries to read @len bytes from the existing FTP connection and saves them in @dest. This is a blocking call.</info>
      <return type='int' info='the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.'/>
      <arg name='ctx' type='void *' info='the FTP context'/>
      <arg name='dest' type='void *' info='a buffer'/>
      <arg name='len' type='int' info='the buffer length'/>
    </function>
    <function name='xmlNanoFTPScanProxy' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>(Re)Initialize the FTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like ftp://myproxy/ or ftp://myproxy:3128/ A NULL URL cleans up proxy informations.</info>
      <return type='void'/>
      <arg name='URL' type='const char *' info='The proxy URL used to initialize the proxy context'/>
    </function>
    <function name='xmlNanoFTPUpdateURL' file='nanoftp'>
      <cond>LIBXML_FTP_ENABLED</cond>
      <info>Update an FTP context by parsing the URL and finding new path it indicates. If there is an error in the protocol, hostname, port or other information, the error is raised. It indicates a new connection has to be established.</info>
      <return type='int' info='0 if Ok, -1 in case of error (other host).'/>
      <arg name='ctx' type='void *' info='an FTP context'/>
      <arg name='URL' type='const char *' info='The URL used to update the context'/>
    </function>
    <function name='xmlNanoHTTPAuthHeader' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Get the authentication header of an HTTP context</info>
      <return type='const char *' info='the stashed value of the WWW-Authenticate or Proxy-Authenticate header.'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPCleanup' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Cleanup the HTTP protocol layer.</info>
      <return type='void'/>
    </function>
    <function name='xmlNanoHTTPClose' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function closes an HTTP context, it ends up the connection and free all data related to it.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPContentLength' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Provides the specified content length from the HTTP header.</info>
      <return type='int' info='the specified content length from the HTTP header.  Note that a value of -1 indicates that the content length element was not included in the response header.'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPEncoding' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Provides the specified encoding if specified in the HTTP headers.</info>
      <return type='const char *' info='the specified encoding or NULL if not available'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPFetch' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function try to fetch the indicated resource via HTTP GET and save it&apos;s content in the file.</info>
      <return type='int' info='-1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller'/>
      <arg name='URL' type='const char *' info='The URL to load'/>
      <arg name='filename' type='const char *' info='the filename where the content should be saved'/>
      <arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
    </function>
    <function name='xmlNanoHTTPInit' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Initialize the HTTP protocol layer. Currently it just checks for proxy informations</info>
      <return type='void'/>
    </function>
    <function name='xmlNanoHTTPMethod' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</info>
      <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
      <arg name='URL' type='const char *' info='The URL to load'/>
      <arg name='method' type='const char *' info='the HTTP method to use'/>
      <arg name='input' type='const char *' info='the input string if any'/>
      <arg name='contentType' type='char **' info='the Content-Type information IN and OUT'/>
      <arg name='headers' type='const char *' info='the extra headers'/>
      <arg name='ilen' type='int' info='input length'/>
    </function>
    <function name='xmlNanoHTTPMethodRedir' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.</info>
      <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller'/>
      <arg name='URL' type='const char *' info='The URL to load'/>
      <arg name='method' type='const char *' info='the HTTP method to use'/>
      <arg name='input' type='const char *' info='the input string if any'/>
      <arg name='contentType' type='char **' info='the Content-Type information IN and OUT'/>
      <arg name='redir' type='char **' info='the redirected URL OUT'/>
      <arg name='headers' type='const char *' info='the extra headers'/>
      <arg name='ilen' type='int' info='input length'/>
    </function>
    <function name='xmlNanoHTTPMimeType' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Provides the specified Mime-Type if specified in the HTTP headers.</info>
      <return type='const char *' info='the specified Mime-Type or NULL if not available'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPOpen' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function try to open a connection to the indicated resource via HTTP GET.</info>
      <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
      <arg name='URL' type='const char *' info='The URL to load'/>
      <arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
    </function>
    <function name='xmlNanoHTTPOpenRedir' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function try to open a connection to the indicated resource via HTTP GET.</info>
      <return type='void *' info='NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller'/>
      <arg name='URL' type='const char *' info='The URL to load'/>
      <arg name='contentType' type='char **' info='if available the Content-Type information will be returned at that location'/>
      <arg name='redir' type='char **' info='if available the redirected URL will be returned'/>
    </function>
    <function name='xmlNanoHTTPRead' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.</info>
      <return type='int' info='the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
      <arg name='dest' type='void *' info='a buffer'/>
      <arg name='len' type='int' info='the buffer length'/>
    </function>
    <function name='xmlNanoHTTPRedir' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Provides the specified redirection URL if available from the HTTP header.</info>
      <return type='const char *' info='the specified redirection URL or NULL if not redirected.'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPReturnCode' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>Get the latest HTTP return code received</info>
      <return type='int' info='the HTTP return code for the request.'/>
      <arg name='ctx' type='void *' info='the HTTP context'/>
    </function>
    <function name='xmlNanoHTTPSave' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>This function saves the output of the HTTP transaction to a file It closes and free the context at the end</info>
      <return type='int' info='-1 in case of failure, 0 incase of success.'/>
      <arg name='ctxt' type='void *' info='the HTTP context'/>
      <arg name='filename' type='const char *' info='the filename where the content should be saved'/>
    </function>
    <function name='xmlNanoHTTPScanProxy' file='nanohttp'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>(Re)Initialize the HTTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like http://myproxy/ or http://myproxy:3128/ A NULL URL cleans up proxy informations.</info>
      <return type='void'/>
      <arg name='URL' type='const char *' info='The proxy URL used to initialize the proxy context'/>
    </function>
    <function name='xmlNewAutomata' file='xmlautomata'>
      <cond>LIBXML_AUTOMATA_ENABLED</cond>
      <info>Create a new automata</info>
      <return type='xmlAutomataPtr' info='the new object or NULL in case of failure'/>
    </function>
    <function name='xmlNewCDataBlock' file='tree'>
      <info>Creation of a new node containing a CDATA block.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='content' type='const xmlChar *' info='the CDATA block content content'/>
      <arg name='len' type='int' info='the length of the block'/>
    </function>
    <function name='xmlNewCatalog' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>create a new Catalog.</info>
      <return type='xmlCatalogPtr' info='the xmlCatalogPtr or NULL in case of error'/>
      <arg name='sgml' type='int' info='should this create an SGML catalog'/>
    </function>
    <function name='xmlNewCharEncodingHandler' file='encoding'>
      <info>Create and registers an xmlCharEncodingHandler.</info>
      <return type='xmlCharEncodingHandlerPtr' info='the xmlCharEncodingHandlerPtr created (or NULL in case of error).'/>
      <arg name='name' type='const char *' info='the encoding name, in UTF-8 format (ASCII actually)'/>
      <arg name='input' type='xmlCharEncodingInputFunc' info='the xmlCharEncodingInputFunc to read that encoding'/>
      <arg name='output' type='xmlCharEncodingOutputFunc' info='the xmlCharEncodingOutputFunc to write that encoding'/>
    </function>
    <function name='xmlNewCharRef' file='tree'>
      <info>Creation of a new character reference node.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the char ref string, starting with # or &quot;&amp;# ... ;&quot;'/>
    </function>
    <function name='xmlNewChild' file='tree'>
      <info>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child list containing the TEXTs and ENTITY_REFs node will be created. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references. XML special chars must be escaped first by using xmlEncodeEntitiesReentrant(), or xmlNewTextChild() should be used.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
      <arg name='ns' type='xmlNsPtr' info='a namespace if any'/>
      <arg name='name' type='const xmlChar *' info='the name of the child'/>
      <arg name='content' type='const xmlChar *' info='the XML content of the child if any.'/>
    </function>
    <function name='xmlNewComment' file='tree'>
      <info>Creation of a new node containing a comment.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='content' type='const xmlChar *' info='the comment content'/>
    </function>
    <function name='xmlNewDoc' file='tree'>
      <info>Creates a new XML document</info>
      <return type='xmlDocPtr' info='a new document'/>
      <arg name='version' type='const xmlChar *' info='xmlChar string giving the version of XML &quot;1.0&quot;'/>
    </function>
    <function name='xmlNewDocComment' file='tree'>
      <info>Creation of a new node containing a comment within a document.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='content' type='const xmlChar *' info='the comment content'/>
    </function>
    <function name='xmlNewDocFragment' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Creation of a new Fragment node.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document owning the fragment'/>
    </function>
    <function name='xmlNewDocNode' file='tree'>
      <info>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don&apos;t need entities support.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
      <arg name='name' type='const xmlChar *' info='the node name'/>
      <arg name='content' type='const xmlChar *' info='the XML text content if any'/>
    </function>
    <function name='xmlNewDocNodeEatName' file='tree'>
      <info>Creation of a new node element within a document. @ns and @content are optional (NULL). NOTE: @content is supposed to be a piece of XML CDATA, so it allow entities references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant(). Use xmlNewDocRawNode() if you don&apos;t need entities support.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
      <arg name='name' type='xmlChar *' info='the node name'/>
      <arg name='content' type='const xmlChar *' info='the XML text content if any'/>
    </function>
    <function name='xmlNewDocProp' file='tree'>
      <info>Create a new property carried by a document.</info>
      <return type='xmlAttrPtr' info='a pointer to the attribute'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the name of the attribute'/>
      <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
    </function>
    <function name='xmlNewDocRawNode' file='tree'>
      <info>Creation of a new node element within a document. @ns and @content are optional (NULL).</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
      <arg name='name' type='const xmlChar *' info='the node name'/>
      <arg name='content' type='const xmlChar *' info='the text content if any'/>
    </function>
    <function name='xmlNewDocText' file='tree'>
      <info>Creation of a new text node within a document.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='content' type='const xmlChar *' info='the text content'/>
    </function>
    <function name='xmlNewDocTextLen' file='tree'>
      <info>Creation of a new text node with an extra content length parameter. The text node pertain to a given document.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='content' type='const xmlChar *' info='the text content'/>
      <arg name='len' type='int' info='the text len.'/>
    </function>
    <function name='xmlNewDtd' file='tree'>
      <info>Creation of a new DTD for the external subset. To create an internal subset, use xmlCreateIntSubset().</info>
      <return type='xmlDtdPtr' info='a pointer to the new DTD structure'/>
      <arg name='doc' type='xmlDocPtr' info='the document pointer'/>
      <arg name='name' type='const xmlChar *' info='the DTD name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the system ID'/>
    </function>
    <function name='xmlNewElementContent' file='valid'>
      <info>Allocate an element content structure.</info>
      <return type='xmlElementContentPtr' info='NULL if not, otherwise the new element content structure'/>
      <arg name='name' type='const xmlChar *' info='the subelement name or NULL'/>
      <arg name='type' type='xmlElementContentType' info='the type of element content decl'/>
    </function>
    <function name='xmlNewEntityInputStream' file='parserInternals'>
      <info>Create a new input stream based on an xmlEntityPtr</info>
      <return type='xmlParserInputPtr' info='the new input stream or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='entity' type='xmlEntityPtr' info='an Entity pointer'/>
    </function>
    <function name='xmlNewGlobalNs' file='tree'>
      <info>Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!! It now create a namespace on the root element of the document if found.</info>
      <return type='xmlNsPtr' info='NULL this functionality had been removed'/>
      <arg name='doc' type='xmlDocPtr' info='the document carrying the namespace'/>
      <arg name='href' type='const xmlChar *' info='the URI associated'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix for the namespace'/>
    </function>
    <function name='xmlNewIOInputStream' file='parser'>
      <info>Create a new input stream structure encapsulating the @input into a stream suitable for the parser.</info>
      <return type='xmlParserInputPtr' info='the new input stream or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='input' type='xmlParserInputBufferPtr' info='an I/O Input'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlNewInputFromFile' file='parserInternals'>
      <info>Create a new input stream based on a file or an URL.</info>
      <return type='xmlParserInputPtr' info='the new input stream or NULL in case of error'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='filename' type='const char *' info='the filename to use as entity'/>
    </function>
    <function name='xmlNewInputStream' file='parserInternals'>
      <info>Create a new input stream structure</info>
      <return type='xmlParserInputPtr' info='the new input stream or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlNewMutex' file='threads'>
      <info>xmlNewMutex() is used to allocate a libxml2 token struct for use in synchronizing access to data.</info>
      <return type='xmlMutexPtr' info='a new simple mutex pointer or NULL in case of error'/>
    </function>
    <function name='xmlNewNode' file='tree'>
      <info>Creation of a new node element. @ns is optional (NULL).</info>
      <return type='xmlNodePtr' info='a pointer to the new node object. Uses xmlStrdup() to make copy of @name.'/>
      <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
      <arg name='name' type='const xmlChar *' info='the node name'/>
    </function>
    <function name='xmlNewNodeEatName' file='tree'>
      <info>Creation of a new node element. @ns is optional (NULL).</info>
      <return type='xmlNodePtr' info='a pointer to the new node object, with pointer @name as new node&apos;s name. Use xmlNewNode() if a copy of @name string is is needed as new node&apos;s name.'/>
      <arg name='ns' type='xmlNsPtr' info='namespace if any'/>
      <arg name='name' type='xmlChar *' info='the node name'/>
    </function>
    <function name='xmlNewNs' file='tree'>
      <info>Creation of a new Namespace. This function will refuse to create a namespace with a similar prefix than an existing one present on this node. We use href==NULL in the case of an element creation where the namespace was not defined.</info>
      <return type='xmlNsPtr' info='a new namespace pointer or NULL'/>
      <arg name='node' type='xmlNodePtr' info='the element carrying the namespace'/>
      <arg name='href' type='const xmlChar *' info='the URI associated'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix for the namespace'/>
    </function>
    <function name='xmlNewNsProp' file='tree'>
      <info>Create a new property tagged with a namespace and carried by a node.</info>
      <return type='xmlAttrPtr' info='a pointer to the attribute'/>
      <arg name='node' type='xmlNodePtr' info='the holding node'/>
      <arg name='ns' type='xmlNsPtr' info='the namespace'/>
      <arg name='name' type='const xmlChar *' info='the name of the attribute'/>
      <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
    </function>
    <function name='xmlNewNsPropEatName' file='tree'>
      <info>Create a new property tagged with a namespace and carried by a node.</info>
      <return type='xmlAttrPtr' info='a pointer to the attribute'/>
      <arg name='node' type='xmlNodePtr' info='the holding node'/>
      <arg name='ns' type='xmlNsPtr' info='the namespace'/>
      <arg name='name' type='xmlChar *' info='the name of the attribute'/>
      <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
    </function>
    <function name='xmlNewPI' file='tree'>
      <info>Creation of a processing instruction element.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='name' type='const xmlChar *' info='the processing instruction name'/>
      <arg name='content' type='const xmlChar *' info='the PI content'/>
    </function>
    <function name='xmlNewParserCtxt' file='parser'>
      <info>Allocate and initialize a new parser context.</info>
      <return type='xmlParserCtxtPtr' info='the xmlParserCtxtPtr or NULL'/>
    </function>
    <function name='xmlNewProp' file='tree'>
      <info>Create a new property carried by a node.</info>
      <return type='xmlAttrPtr' info='a pointer to the attribute'/>
      <arg name='node' type='xmlNodePtr' info='the holding node'/>
      <arg name='name' type='const xmlChar *' info='the name of the attribute'/>
      <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
    </function>
    <function name='xmlNewRMutex' file='threads'>
      <info>xmlRNewMutex() is used to allocate a reentrant mutex for use in synchronizing access to data. token_r is a re-entrant lock and thus useful for synchronizing access to data structures that may be manipulated in a recursive fashion.</info>
      <return type='xmlRMutexPtr' info='the new reentrant mutex pointer or NULL in case of error'/>
    </function>
    <function name='xmlNewReference' file='tree'>
      <info>Creation of a new reference node.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='name' type='const xmlChar *' info='the reference name, or the reference string with &amp; and ;'/>
    </function>
    <function name='xmlNewStringInputStream' file='parserInternals'>
      <info>Create a new input stream based on a memory buffer.</info>
      <return type='xmlParserInputPtr' info='the new input stream'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='buffer' type='const xmlChar *' info='an memory buffer'/>
    </function>
    <function name='xmlNewText' file='tree'>
      <info>Creation of a new text node.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='content' type='const xmlChar *' info='the text content'/>
    </function>
    <function name='xmlNewTextChild' file='tree'>
      <info>Creation of a new child element, added at the end of @parent children list. @ns and @content parameters are optional (NULL). If @ns is NULL, the newly created element inherits the namespace of @parent. If @content is non NULL, a child TEXT node will be created containing the string @content. NOTE: Use xmlNewChild() if @content will contain entities that need to be preserved. Use this function, xmlNewTextChild(), if you need to ensure that reserved XML chars that might appear in @content, such as the ampersand, greater-than or less-than signs, are automatically replaced by their XML escaped entity representations.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
      <arg name='ns' type='xmlNsPtr' info='a namespace if any'/>
      <arg name='name' type='const xmlChar *' info='the name of the child'/>
      <arg name='content' type='const xmlChar *' info='the text content of the child if any.'/>
    </function>
    <function name='xmlNewTextLen' file='tree'>
      <info>Creation of a new text node with an extra parameter for the content&apos;s length</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='content' type='const xmlChar *' info='the text content'/>
      <arg name='len' type='int' info='the text len.'/>
    </function>
    <function name='xmlNewTextReader' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmlTextReader structure fed with @input</info>
      <return type='xmlTextReaderPtr' info='the new xmlTextReaderPtr or NULL in case of error'/>
      <arg name='input' type='xmlParserInputBufferPtr' info='the xmlParserInputBufferPtr used to read data'/>
      <arg name='URI' type='const char *' info='the URI information for the source if available'/>
    </function>
    <function name='xmlNewTextReaderFilename' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmlTextReader structure fed with the resource at @URI</info>
      <return type='xmlTextReaderPtr' info='the new xmlTextReaderPtr or NULL in case of error'/>
      <arg name='URI' type='const char *' info='the URI of the resource to process'/>
    </function>
    <function name='xmlNewTextWriter' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Create a new xmlNewTextWriter structure using an xmlOutputBufferPtr</info>
      <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
      <arg name='out' type='xmlOutputBufferPtr' info='an xmlOutputBufferPtr'/>
    </function>
    <function name='xmlNewTextWriterDoc' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Create a new xmlNewTextWriter structure with @*doc as output</info>
      <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr *' info='address of a xmlDocPtr to hold the new XML document tree'/>
      <arg name='compression' type='int' info='compress the output?'/>
    </function>
    <function name='xmlNewTextWriterFilename' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Create a new xmlNewTextWriter structure with @uri as output</info>
      <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
      <arg name='uri' type='const char *' info='the URI of the resource for the output'/>
      <arg name='compression' type='int' info='compress the output?'/>
    </function>
    <function name='xmlNewTextWriterMemory' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Create a new xmlNewTextWriter structure with @buf as output TODO: handle compression</info>
      <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
      <arg name='buf' type='xmlBufferPtr' info='xmlBufferPtr'/>
      <arg name='compression' type='int' info='compress the output?'/>
    </function>
    <function name='xmlNewTextWriterPushParser' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Create a new xmlNewTextWriter structure with @ctxt as output TODO: handle compression</info>
      <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='xmlParserCtxtPtr to hold the new XML document tree'/>
      <arg name='compression' type='int' info='compress the output?'/>
    </function>
    <function name='xmlNewTextWriterTree' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Create a new xmlNewTextWriter structure with @doc as output starting at @node</info>
      <return type='xmlTextWriterPtr' info='the new xmlTextWriterPtr or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='xmlDocPtr'/>
      <arg name='node' type='xmlNodePtr' info='xmlNodePtr or NULL for doc-&gt;children'/>
      <arg name='compression' type='int' info='compress the output?'/>
    </function>
    <function name='xmlNewValidCtxt' file='valid'>
      <info>Allocate a validation context structure.</info>
      <return type='xmlValidCtxtPtr' info='NULL if not, otherwise the new validation context structure'/>
    </function>
    <function name='xmlNextChar' file='parserInternals'>
      <info>Skip to the next char input char.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
    </function>
    <function name='xmlNoNetExternalEntityLoader' file='xmlIO'>
      <info>A specific entity loader disabling network accesses, though still allowing local catalog accesses for resolution.</info>
      <return type='xmlParserInputPtr' info='a new allocated xmlParserInputPtr, or NULL.'/>
      <arg name='URL' type='const char *' info='the URL for the entity to load'/>
      <arg name='ID' type='const char *' info='the System ID for the entity to load'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the context in which the entity is called or NULL'/>
    </function>
    <function name='xmlNodeAddContent' file='tree'>
      <info>Append the extra substring to the node content.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
      <arg name='content' type='const xmlChar *' info='extra content'/>
    </function>
    <function name='xmlNodeAddContentLen' file='tree'>
      <info>Append the extra substring to the node content.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
      <arg name='content' type='const xmlChar *' info='extra content'/>
      <arg name='len' type='int' info='the size of @content'/>
    </function>
    <function name='xmlNodeBufGetContent' file='tree'>
      <info>Read the value of a node @cur, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted. Fills up the buffer @buffer with this value</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='buffer' type='xmlBufferPtr' info='a buffer'/>
      <arg name='cur' type='xmlNodePtr' info='the node being read'/>
    </function>
    <function name='xmlNodeDump' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML node, recursive behaviour,children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='int' info='the number of bytes written to the buffer or -1 in case of error'/>
      <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='level' type='int' info='the imbrication level for indenting'/>
      <arg name='format' type='int' info='is formatting allowed'/>
    </function>
    <function name='xmlNodeDumpOutput' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML node, recursive behaviour, children are printed too. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='void'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='the XML buffer output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='cur' type='xmlNodePtr' info='the current node'/>
      <arg name='level' type='int' info='the imbrication level for indenting'/>
      <arg name='format' type='int' info='is formatting allowed'/>
      <arg name='encoding' type='const char *' info='an optional encoding string'/>
    </function>
    <function name='xmlNodeGetBase' file='tree'>
      <info>Searches for the BASE URL. The code should work on both XML and HTML document even if base mechanisms are completely different. It returns the base as defined in RFC 2396 sections 5.1.1. Base URI within Document Content and 5.1.2. Base URI from the Encapsulating Entity However it does not return the document base (5.1.3), use xmlDocumentGetBase() for this</info>
      <return type='xmlChar *' info='a pointer to the base URL, or NULL if not found It&apos;s up to the caller to free the memory with xmlFree().'/>
      <arg name='doc' type='xmlDocPtr' info='the document the node pertains to'/>
      <arg name='cur' type='xmlNodePtr' info='the node being checked'/>
    </function>
    <function name='xmlNodeGetContent' file='tree'>
      <info>Read the value of a node, this can be either the text carried directly by this node if it&apos;s a TEXT node or the aggregate string of the values carried by this node child&apos;s (TEXT and ENTITY_REF). Entity references are substituted.</info>
      <return type='xmlChar *' info='a new #xmlChar * or NULL if no content is available. It&apos;s up to the caller to free the memory with xmlFree().'/>
      <arg name='cur' type='xmlNodePtr' info='the node being read'/>
    </function>
    <function name='xmlNodeGetLang' file='tree'>
      <info>Searches the language of a node, i.e. the values of the xml:lang attribute or the one carried by the nearest ancestor.</info>
      <return type='xmlChar *' info='a pointer to the lang value, or NULL if not found It&apos;s up to the caller to free the memory with xmlFree().'/>
      <arg name='cur' type='xmlNodePtr' info='the node being checked'/>
    </function>
    <function name='xmlNodeGetSpacePreserve' file='tree'>
      <info>Searches the space preserving behaviour of a node, i.e. the values of the xml:space attribute or the one carried by the nearest ancestor.</info>
      <return type='int' info='-1 if xml:space is not inherited, 0 if &quot;default&quot;, 1 if &quot;preserve&quot;'/>
      <arg name='cur' type='xmlNodePtr' info='the node being checked'/>
    </function>
    <function name='xmlNodeIsText' file='tree'>
      <info>Is this node a Text node ?</info>
      <return type='int' info='1 yes, 0 no'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlNodeListGetRawString' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Builds the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs, contrary to xmlNodeListGetString() this function doesn&apos;t do any character encoding handling.</info>
      <return type='xmlChar *' info='a pointer to the string copy, the caller must free it with xmlFree().'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='list' type='xmlNodePtr' info='a Node list'/>
      <arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
    </function>
    <function name='xmlNodeListGetString' file='tree'>
      <info>Build the string equivalent to the text contained in the Node list made of TEXTs and ENTITY_REFs</info>
      <return type='xmlChar *' info='a pointer to the string copy, the caller must free it with xmlFree().'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='list' type='xmlNodePtr' info='a Node list'/>
      <arg name='inLine' type='int' info='should we replace entity contents or show their external form'/>
    </function>
    <function name='xmlNodeSetBase' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set (or reset) the base URI of a node, i.e. the value of the xml:base attribute.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
      <arg name='uri' type='const xmlChar *' info='the new base URI'/>
    </function>
    <function name='xmlNodeSetContent' file='tree'>
      <info>Replace the content of a node.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
      <arg name='content' type='const xmlChar *' info='the new value of the content'/>
    </function>
    <function name='xmlNodeSetContentLen' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Replace the content of a node.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being modified'/>
      <arg name='content' type='const xmlChar *' info='the new value of the content'/>
      <arg name='len' type='int' info='the size of @content'/>
    </function>
    <function name='xmlNodeSetLang' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set the language of a node, i.e. the values of the xml:lang attribute.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
      <arg name='lang' type='const xmlChar *' info='the language description'/>
    </function>
    <function name='xmlNodeSetName' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set (or reset) the name of a node.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
      <arg name='name' type='const xmlChar *' info='the new tag name'/>
    </function>
    <function name='xmlNodeSetSpacePreserve' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set (or reset) the space preserving behaviour of a node, i.e. the value of the xml:space attribute.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node being changed'/>
      <arg name='val' type='int' info='the xml:space value (&quot;0&quot;: default, 1: &quot;preserve&quot;)'/>
    </function>
    <function name='xmlNormalizeURIPath' file='uri'>
      <info>Applies the 5 normalization steps to a path string--that is, RFC 2396 Section 5.2, steps 6.c through 6.g.  Normalization occurs directly on the string, no new allocation is done</info>
      <return type='int' info='0 or an error code'/>
      <arg name='path' type='char *' info='pointer to the path string'/>
    </function>
    <function name='xmlNormalizeWindowsPath' file='xmlIO'>
      <info>This function is obsolete. Please see xmlURIFromPath in uri.c for a better solution.</info>
      <return type='xmlChar *' info='a canonicalized version of the path'/>
      <arg name='path' type='const xmlChar *' info='the input file path'/>
    </function>
    <function name='xmlOutputBufferClose' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>flushes and close the output I/O channel and free up all the associated resources</info>
      <return type='int' info='the number of byte written or -1 in case of error.'/>
      <arg name='out' type='xmlOutputBufferPtr' info='a buffered output'/>
    </function>
    <function name='xmlOutputBufferCreateFd' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a buffered output for the progressive saving to a file descriptor</info>
      <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
      <arg name='fd' type='int' info='a file descriptor number'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
    </function>
    <function name='xmlOutputBufferCreateFile' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a buffered output for the progressive saving to a FILE * buffered C I/O</info>
      <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
      <arg name='file' type='FILE *' info='a FILE*'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
    </function>
    <function name='xmlOutputBufferCreateFilename' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a buffered  output for the progressive saving of a file If filename is &quot;-&apos; then we use stdout as the output. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. TODO: currently if compression is set, the library only support writing to a local file.</info>
      <return type='xmlOutputBufferPtr' info='the new output or NULL'/>
      <arg name='URI' type='const char *' info='a C string containing the URI or filename'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
      <arg name='compression' type='int' info='the compression ration (0 none, 9 max).'/>
    </function>
    <function name='xmlOutputBufferCreateFilenameDefault' file='globals'>
      <info>Registers a callback for URI output file handling</info>
      <return type='xmlOutputBufferCreateFilenameFunc' info='the old value of the registration function'/>
      <arg name='func' type='xmlOutputBufferCreateFilenameFunc' info='function pointer to the new OutputBufferCreateFilenameFunc'/>
    </function>
    <functype name='xmlOutputBufferCreateFilenameFunc' file='globals'>
      <info></info>
      <return type='xmlOutputBufferPtr' info=''/>
      <arg name='URI' type='const char *' info=''/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info=''/>
      <arg name='compression' type='int' info=''/>
    </functype>
    <function name='xmlOutputBufferCreateIO' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a buffered output for the progressive saving to an I/O handler</info>
      <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
      <arg name='iowrite' type='xmlOutputWriteCallback' info='an I/O write function'/>
      <arg name='ioclose' type='xmlOutputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the charset encoding if known'/>
    </function>
    <function name='xmlOutputBufferFlush' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>flushes the output I/O channel</info>
      <return type='int' info='the number of byte written or -1 in case of error.'/>
      <arg name='out' type='xmlOutputBufferPtr' info='a buffered output'/>
    </function>
    <function name='xmlOutputBufferWrite' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Write the content of the array in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
      <return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
      <arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
      <arg name='len' type='int' info='the size in bytes of the array.'/>
      <arg name='buf' type='const char *' info='an char array'/>
    </function>
    <function name='xmlOutputBufferWriteEscape' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Write the content of the string in the output I/O buffer This routine escapes the caracters and then handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
      <return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
      <arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
      <arg name='str' type='const xmlChar *' info='a zero terminated UTF-8 string'/>
      <arg name='escaping' type='xmlCharEncodingOutputFunc' info='an optional escaping function (or NULL)'/>
    </function>
    <function name='xmlOutputBufferWriteString' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Write the content of the string in the output I/O buffer This routine handle the I18N transcoding from internal UTF-8 The buffer is lossless, i.e. will store in case of partial or delayed writes.</info>
      <return type='int' info='the number of chars immediately written, or -1 in case of error.'/>
      <arg name='out' type='xmlOutputBufferPtr' info='a buffered parser output'/>
      <arg name='str' type='const char *' info='a zero terminated C string'/>
    </function>
    <functype name='xmlOutputCloseCallback' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Callback used in the I/O Output API to close the resource</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='context' type='void *' info='an Output context'/>
    </functype>
    <functype name='xmlOutputMatchCallback' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Callback used in the I/O Output API to detect if the current handler can provide output fonctionnalities for this resource.</info>
      <return type='int' info='1 if yes and 0 if another Output module should be used'/>
      <arg name='filename' type='char const *' info='the filename or URI'/>
    </functype>
    <functype name='xmlOutputOpenCallback' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Callback used in the I/O Output API to open the resource</info>
      <return type='void *' info='an Output context or NULL in case or error'/>
      <arg name='filename' type='char const *' info='the filename or URI'/>
    </functype>
    <functype name='xmlOutputWriteCallback' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Callback used in the I/O Output API to write to the resource</info>
      <return type='int' info='the number of bytes written or -1 in case of error'/>
      <arg name='context' type='void *' info='an Output context'/>
      <arg name='buffer' type='const char *' info='the buffer of data to write'/>
      <arg name='len' type='int' info='the length of the buffer in bytes'/>
    </functype>
    <function name='xmlParseAttValue' file='parserInternals'>
      <info>parse a value for an attribute Note: the parser won&apos;t do substitution of entities here, this will be handled later in xmlStringGetNodeList  [10] AttValue ::= &apos;&quot;&apos; ([^&lt;&amp;&quot;] | Reference)* &apos;&quot;&apos; | &quot;&apos;&quot; ([^&lt;&amp;&apos;] | Reference)* &quot;&apos;&quot;  3.3.3 Attribute-Value Normalization: Before the value of an attribute is passed to the application or checked for validity, the XML processor must normalize it as follows: - a character reference is processed by appending the referenced character to the attribute value - an entity reference is processed by recursively processing the replacement text of the entity - a whitespace character (#x20, #xD, #xA, #x9) is processed by appending #x20 to the normalized value, except that only a single #x20 is appended for a &quot;#xD#xA&quot; sequence that is part of an external parsed entity or the literal entity value of an internal parsed entity - other characters are processed by appending them to the normalized value If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by a single space (#x20) character. All attributes for which no declaration has been read should be treated by a non-validating parser as if declared CDATA.</info>
      <return type='xmlChar *' info='the AttValue parsed or NULL. The value has to be freed by the caller.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseAttribute' file='parserInternals'>
      <info>parse an attribute  [41] Attribute ::= Name Eq AttValue  [ WFC: No External Entity References ] Attribute values cannot contain direct or indirect entity references to external entities.  [ WFC: No &lt; in Attribute Values ] The replacement text of any entity referred to directly or indirectly in an attribute value (other than &quot;&amp;lt;&quot;) must not contain a &lt;.  [ VC: Attribute Value Type ] The attribute must have been declared; the value must be of the type declared for it.  [25] Eq ::= S? &apos;=&apos; S?  With namespace:  [NS 11] Attribute ::= QName Eq AttValue  Also the case QName == xmlns:??? is handled independently as a namespace definition.</info>
      <return type='const xmlChar *' info='the attribute name, and the value in *value.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='xmlChar **' info='a xmlChar ** used to store the value of the attribute'/>
    </function>
    <function name='xmlParseAttributeListDecl' file='parserInternals'>
      <info>: parse the Attribute list def for an element  [52] AttlistDecl ::= &apos;&lt;!ATTLIST&apos; S Name AttDef* S? &apos;&gt;&apos;  [53] AttDef ::= S Name S AttType S DefaultDecl</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseAttributeType' file='parserInternals'>
      <info>parse the Attribute list def for an element  [54] AttType ::= StringType | TokenizedType | EnumeratedType  [55] StringType ::= &apos;CDATA&apos;  [56] TokenizedType ::= &apos;ID&apos; | &apos;IDREF&apos; | &apos;IDREFS&apos; | &apos;ENTITY&apos; | &apos;ENTITIES&apos; | &apos;NMTOKEN&apos; | &apos;NMTOKENS&apos;  Validity constraints for attribute values syntax are checked in xmlValidateAttributeValue()  [ VC: ID ] Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them.  [ VC: One ID per Element Type ] No element type may have more than one ID attribute specified.  [ VC: ID Attribute Default ] An ID attribute must have a declared default of #IMPLIED or #REQUIRED.  [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names; each IDREF Name must match the value of an ID attribute on some element in the XML document; i.e. IDREF values must match the value of some ID attribute.  [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names; each Entity Name must match the name of an unparsed entity declared in the DTD.  [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
      <return type='int' info='the attribute type'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='tree' type='xmlEnumerationPtr *' info='the enumeration tree built while parsing'/>
    </function>
    <function name='xmlParseBalancedChunkMemory' file='parser'>
      <info>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar:  [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
      <return type='int' info='0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise'/>
      <arg name='doc' type='xmlDocPtr' info='the document the chunk pertains to'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler bloc (possibly NULL)'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks (possibly NULL)'/>
      <arg name='depth' type='int' info='Used for loop detection, use 0'/>
      <arg name='string' type='const xmlChar *' info='the input string in UTF8 or ISO-Latin (zero terminated)'/>
      <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
    </function>
    <function name='xmlParseBalancedChunkMemoryRecover' file='parser'>
      <info>Parse a well-balanced chunk of an XML document called by the parser The allowed sequence for the Well Balanced Chunk is the one defined by the content production in the XML grammar:  [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
      <return type='int' info='0 if the chunk is well balanced, -1 in case of args problem and the parser error code otherwise  In case recover is set to 1, the nodelist will not be empty even if the parsed chunk is not well balanced.'/>
      <arg name='doc' type='xmlDocPtr' info='the document the chunk pertains to'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler bloc (possibly NULL)'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks (possibly NULL)'/>
      <arg name='depth' type='int' info='Used for loop detection, use 0'/>
      <arg name='string' type='const xmlChar *' info='the input string in UTF8 or ISO-Latin (zero terminated)'/>
      <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
      <arg name='recover' type='int' info='return nodes even if the data is broken (use 0)'/>
    </function>
    <function name='xmlParseCDSect' file='parserInternals'>
      <info>Parse escaped pure raw content.  [18] CDSect ::= CDStart CData CDEnd  [19] CDStart ::= &apos;&lt;![CDATA[&apos;  [20] Data ::= (Char* - (Char* &apos;]]&gt;&apos; Char*))  [21] CDEnd ::= &apos;]]&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseCatalogFile' file='catalog'>
      <cond>LIBXML_CATALOG_ENABLED</cond>
      <info>parse an XML file and build a tree. It&apos;s like xmlParseFile() except it bypass all catalog lookups.</info>
      <return type='xmlDocPtr' info='the resulting document tree or NULL in case of error'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlParseCharData' file='parserInternals'>
      <info>parse a CharData section. if we are within a CDATA section &apos;]]&gt;&apos; marks an end of section.  The right angle bracket (&gt;) may be represented using the string &quot;&amp;gt;&quot;, and must, for compatibility, be escaped using &quot;&amp;gt;&quot; or a character reference when it appears in the string &quot;]]&gt;&quot; in content, when that string is not marking the end of a CDATA section.  [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* &apos;]]&gt;&apos; [^&lt;&amp;]*)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='cdata' type='int' info='int indicating whether we are within a CDATA section'/>
    </function>
    <function name='xmlParseCharEncoding' file='encoding'>
      <info>Compare the string to the encoding schemes already known. Note that the comparison is case insensitive accordingly to the section [XML] 4.3.3 Character Encoding in Entities.</info>
      <return type='xmlCharEncoding' info='one of the XML_CHAR_ENCODING_... values or XML_CHAR_ENCODING_NONE if not recognized.'/>
      <arg name='name' type='const char *' info='the encoding name as parsed, in UTF-8 format (ASCII actually)'/>
    </function>
    <function name='xmlParseCharRef' file='parserInternals'>
      <info>parse Reference declarations  [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;  [ WFC: Legal Character ] Characters referred to using character references must match the production for Char.</info>
      <return type='int' info='the value parsed (as an int), 0 in case of error'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseChunk' file='parser'>
      <cond>LIBXML_PUSH_ENABLED</cond>
      <info>Parse a Chunk of memory</info>
      <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' 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='xmlParseComment' file='parserInternals'>
      <info>Skip an XML (SGML) comment &lt;!-- .... --&gt; The spec says that &quot;For compatibility, the string &quot;--&quot; (double-hyphen) must not occur within comments. &quot;  [15] Comment ::= &apos;&lt;!--&apos; ((Char - &apos;-&apos;) | (&apos;-&apos; (Char - &apos;-&apos;)))* &apos;--&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseContent' file='parserInternals'>
      <info>Parse a content:  [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseCtxtExternalEntity' file='parser'>
      <info>Parse an external general entity within an existing parsing context An external general parsed entity is well-formed if it matches the production labeled extParsedEnt.  [78] extParsedEnt ::= TextDecl? content</info>
      <return type='int' info='0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise'/>
      <arg name='ctx' type='xmlParserCtxtPtr' info='the existing parsing context'/>
      <arg name='URL' type='const xmlChar *' info='the URL for the entity to load'/>
      <arg name='ID' type='const xmlChar *' info='the System ID for the entity to load'/>
      <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
    </function>
    <function name='xmlParseDTD' file='parser'>
      <info>Load and parse an external subset.</info>
      <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
      <arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
      <arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
    </function>
    <function name='xmlParseDefaultDecl' file='parserInternals'>
      <info>Parse an attribute default declaration  [60] DefaultDecl ::= &apos;#REQUIRED&apos; | &apos;#IMPLIED&apos; | ((&apos;#FIXED&apos; S)? AttValue)  [ VC: Required Attribute ] if the default declaration is the keyword #REQUIRED, then the attribute must be specified for all elements of the type in the attribute-list declaration.  [ VC: Attribute Default Legal ] The declared default value must meet the lexical constraints of the declared attribute type c.f. xmlValidateAttributeDecl()  [ VC: Fixed Attribute Default ] if an attribute has a default value declared with the #FIXED keyword, instances of that attribute must match the default value.  [ WFC: No &lt; in Attribute Values ] handled in xmlParseAttValue()</info>
      <return type='int' info='XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, XML_ATTRIBUTE_IMPLIED or XML_ATTRIBUTE_FIXED.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='value' type='xmlChar **' info='Receive a possible fixed default value for the attribute'/>
    </function>
    <function name='xmlParseDoc' file='parser'>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
    </function>
    <function name='xmlParseDocTypeDecl' file='parserInternals'>
      <info>parse a DOCTYPE declaration  [28] doctypedecl ::= &apos;&lt;!DOCTYPE&apos; S Name (S ExternalID)? S? (&apos;[&apos; (markupdecl | PEReference | S)* &apos;]&apos; S?)? &apos;&gt;&apos;  [ VC: Root Element Type ] The Name in the document type declaration must match the element type of the root element.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseDocument' file='parser'>
      <info>parse an XML document (and build a tree if using the standard SAX interface).  [1] document ::= prolog element Misc*  [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</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='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseElement' file='parserInternals'>
      <info>parse an XML element, this is highly recursive  [39] element ::= EmptyElemTag | STag content ETag  [ WFC: Element Type Match ] The Name in an element&apos;s end-tag must match the element type in the start-tag.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseElementChildrenContentDecl' file='parserInternals'>
      <info>parse the declaration for a Mixed Element content The leading &apos;(&apos; and spaces have been skipped in xmlParseElementContentDecl   [47] children ::= (choice | seq) (&apos;?&apos; | &apos;*&apos; | &apos;+&apos;)?  [48] cp ::= (Name | choice | seq) (&apos;?&apos; | &apos;*&apos; | &apos;+&apos;)?  [49] choice ::= &apos;(&apos; S? cp ( S? &apos;|&apos; S? cp )* S? &apos;)&apos;  [50] seq ::= &apos;(&apos; S? cp ( S? &apos;,&apos; S? cp )* S? &apos;)&apos;  [ VC: Proper Group/PE Nesting ] applies to [49] and [50] TODO Parameter-entity replacement text must be properly nested with parenthesized groups. That is to say, if either of the opening or closing parentheses in a choice, seq, or Mixed construct is contained in the replacement text for a parameter entity, both must be contained in the same replacement text. For interoperability, if a parameter-entity reference appears in a choice, seq, or Mixed construct, its replacement text should not be empty, and neither the first nor last non-blank character of the replacement text should be a connector (| or ,).</info>
      <return type='xmlElementContentPtr' info='the tree of xmlElementContentPtr describing the element hierarchy.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='inputchk' type='int' info='the input used for the current entity, needed for boundary checks'/>
    </function>
    <function name='xmlParseElementContentDecl' file='parserInternals'>
      <info>parse the declaration for an Element content either Mixed or Children, the cases EMPTY and ANY are handled directly in xmlParseElementDecl  [46] contentspec ::= &apos;EMPTY&apos; | &apos;ANY&apos; | Mixed | children</info>
      <return type='int' info='the type of element content XML_ELEMENT_TYPE_xxx'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='name' type='const xmlChar *' info='the name of the element being defined.'/>
      <arg name='result' type='xmlElementContentPtr *' info='the Element Content pointer will be stored here if any'/>
    </function>
    <function name='xmlParseElementDecl' file='parserInternals'>
      <info>parse an Element declaration.  [45] elementdecl ::= &apos;&lt;!ELEMENT&apos; S Name S contentspec S? &apos;&gt;&apos;  [ VC: Unique Element Type Declaration ] No element type may be declared more than once</info>
      <return type='int' info='the type of the element, or -1 in case of error'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseElementMixedContentDecl' file='parserInternals'>
      <info>parse the declaration for a Mixed Element content The leading &apos;(&apos; and spaces have been skipped in xmlParseElementContentDecl  [51] Mixed ::= &apos;(&apos; S? &apos;#PCDATA&apos; (S? &apos;|&apos; S? Name)* S? &apos;)*&apos; | &apos;(&apos; S? &apos;#PCDATA&apos; S? &apos;)&apos;  [ VC: Proper Group/PE Nesting ] applies to [51] too (see [49])  [ VC: No Duplicate Types ] The same name must not appear more than once in a single mixed-content declaration.</info>
      <return type='xmlElementContentPtr' info='the list of the xmlElementContentPtr describing the element choices'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='inputchk' type='int' info='the input used for the current entity, needed for boundary checks'/>
    </function>
    <function name='xmlParseEncName' file='parserInternals'>
      <info>parse the XML encoding name  [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | &apos;-&apos;)*</info>
      <return type='xmlChar *' info='the encoding name value or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseEncodingDecl' file='parserInternals'>
      <info>parse the XML encoding declaration  [80] EncodingDecl ::= S &apos;encoding&apos; Eq (&apos;&quot;&apos; EncName &apos;&quot;&apos; |  &quot;&apos;&quot; EncName &quot;&apos;&quot;)  this setups the conversion filters.</info>
      <return type='const xmlChar *' info='the encoding value or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseEndTag' file='parserInternals'>
      <info>parse an end of tag  [42] ETag ::= &apos;&lt;/&apos; Name S? &apos;&gt;&apos;  With namespace  [NS 9] ETag ::= &apos;&lt;/&apos; QName S? &apos;&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseEntity' file='parser'>
      <info>parse an XML external entity out of context and build a tree.  [78] extParsedEnt ::= TextDecl? content  This correspond to a &quot;Well Balanced&quot; chunk</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlParseEntityDecl' file='parserInternals'>
      <info>parse &lt;!ENTITY declarations  [70] EntityDecl ::= GEDecl | PEDecl  [71] GEDecl ::= &apos;&lt;!ENTITY&apos; S Name S EntityDef S? &apos;&gt;&apos;  [72] PEDecl ::= &apos;&lt;!ENTITY&apos; S &apos;%&apos; S Name S PEDef S? &apos;&gt;&apos;  [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)  [74] PEDef ::= EntityValue | ExternalID  [76] NDataDecl ::= S &apos;NDATA&apos; S Name  [ VC: Notation Declared ] The Name must match the declared name of a notation.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseEntityRef' file='parserInternals'>
      <info>parse ENTITY references declarations  [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;  [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot.  The declaration of a parameter entity must precede any reference to it.  Similarly, the declaration of a general entity must precede any reference to it which appears in a default value in an attribute-list declaration. Note that if entities are declared in the external subset or in external parameter entities, a non-validating processor is not obligated to read and process their declarations; for such documents, the rule that an entity must be declared is a well-formedness constraint only if standalone=&apos;yes&apos;.  [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found, or NULL otherwise.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseEntityValue' file='parserInternals'>
      <info>parse a value for ENTITY declarations  [9] EntityValue ::= &apos;&quot;&apos; ([^%&amp;&quot;] | PEReference | Reference)* &apos;&quot;&apos; | &quot;&apos;&quot; ([^%&amp;&apos;] | PEReference | Reference)* &quot;&apos;&quot;</info>
      <return type='xmlChar *' info='the EntityValue parsed with reference substituted or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='orig' type='xmlChar **' info='if non-NULL store a copy of the original entity value'/>
    </function>
    <function name='xmlParseEnumeratedType' file='parserInternals'>
      <info>parse an Enumerated attribute type.  [57] EnumeratedType ::= NotationType | Enumeration  [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos;</info>
      <return type='int' info='XML_ATTRIBUTE_ENUMERATION or XML_ATTRIBUTE_NOTATION'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='tree' type='xmlEnumerationPtr *' info='the enumeration tree built while parsing'/>
    </function>
    <function name='xmlParseEnumerationType' file='parserInternals'>
      <info>parse an Enumeration attribute type.  [59] Enumeration ::= &apos;(&apos; S? Nmtoken (S? &apos;|&apos; S? Nmtoken)* S? &apos;)&apos;  [ VC: Enumeration ] Values of this type must match one of the Nmtoken tokens in the declaration</info>
      <return type='xmlEnumerationPtr' info='the enumeration attribute tree built while parsing'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseExtParsedEnt' file='parser'>
      <info>parse a general parsed entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt.  [78] extParsedEnt ::= TextDecl? content</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='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseExternalEntity' file='parser'>
      <info>Parse an external general entity An external general parsed entity is well-formed if it matches the production labeled extParsedEnt.  [78] extParsedEnt ::= TextDecl? content</info>
      <return type='int' info='0 if the entity is well formed, -1 in case of args problem and the parser error code otherwise'/>
      <arg name='doc' type='xmlDocPtr' info='the document the chunk pertains to'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler bloc (possibly NULL)'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks (possibly NULL)'/>
      <arg name='depth' type='int' info='Used for loop detection, use 0'/>
      <arg name='URL' type='const xmlChar *' info='the URL for the entity to load'/>
      <arg name='ID' type='const xmlChar *' info='the System ID for the entity to load'/>
      <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
    </function>
    <function name='xmlParseExternalID' file='parserInternals'>
      <info>Parse an External ID or a Public ID  NOTE: Productions [75] and [83] interact badly since [75] can generate &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral  [75] ExternalID ::= &apos;SYSTEM&apos; S SystemLiteral | &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral  [83] PublicID ::= &apos;PUBLIC&apos; S PubidLiteral</info>
      <return type='xmlChar *' info='the function returns SystemLiteral and in the second case publicID receives PubidLiteral, is strict is off it is possible to return NULL and have publicID set.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='publicID' type='xmlChar **' info='a xmlChar** receiving PubidLiteral'/>
      <arg name='strict' type='int' info='indicate whether we should restrict parsing to only production [75], see NOTE below'/>
    </function>
    <function name='xmlParseExternalSubset' file='parserInternals'>
      <info>parse Markup declarations from an external subset  [30] extSubset ::= textDecl? extSubsetDecl  [31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external identifier'/>
      <arg name='SystemID' type='const xmlChar *' info='the system identifier (or URL)'/>
    </function>
    <function name='xmlParseFile' file='parser'>
      <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='xmlDocPtr' info='the resulting document tree if the file was wellformed, NULL otherwise.'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlParseInNodeContext' file='parser'>
      <info>Parse a well-balanced chunk of an XML document within the context (DTD, namespaces, etc ...) of the given node.  The allowed sequence for the data is a Well Balanced Chunk defined by the content production in the XML grammar:  [43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*</info>
      <return type='xmlParserErrors' info='XML_ERR_OK if the chunk is well balanced, and the parser error code otherwise'/>
      <arg name='node' type='xmlNodePtr' info='the context node'/>
      <arg name='data' type='const char *' info='the input string'/>
      <arg name='datalen' type='int' info='the input string length in bytes'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
      <arg name='lst' type='xmlNodePtr *' info='the return value for the set of parsed nodes'/>
    </function>
    <function name='xmlParseMarkupDecl' file='parserInternals'>
      <info>parse Markup declarations  [29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment  [ VC: Proper Declaration/PE Nesting ] Parameter-entity replacement text must be properly nested with markup declarations. That is to say, if either the first character or the last character of a markup declaration (markupdecl above) is contained in the replacement text for a parameter-entity reference, both must be contained in the same replacement text.  [ WFC: PEs in Internal Subset ] In the internal DTD subset, parameter-entity references can occur only where markup declarations can occur, not within markup declarations. (This does not apply to references that occur in external parameter entities or to the external subset.)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseMemory' file='parser'>
      <info>parse an XML in-memory block and build a tree.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlParseMisc' file='parserInternals'>
      <info>parse an XML Misc* optional field.  [27] Misc ::= Comment | PI |  S</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseName' file='parserInternals'>
      <info>parse an XML name.  [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender  [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*  [6] Names ::= Name (#x20 Name)*</info>
      <return type='const xmlChar *' info='the Name parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNamespace' file='parserInternals'>
      <info>xmlParseNamespace: parse specific PI &apos;&lt;?namespace ...&apos; constructs.  This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if it was declared on the root of the Tree:-(  TODO: remove from library  To be removed at next drop of binary compatibility</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNmtoken' file='parserInternals'>
      <info>parse an XML Nmtoken.  [7] Nmtoken ::= (NameChar)+  [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*</info>
      <return type='xmlChar *' info='the Nmtoken parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNotationDecl' file='parserInternals'>
      <info>parse a notation declaration  [82] NotationDecl ::= &apos;&lt;!NOTATION&apos; S Name S (ExternalID |  PublicID) S? &apos;&gt;&apos;  Hence there is actually 3 choices: &apos;PUBLIC&apos; S PubidLiteral &apos;PUBLIC&apos; S PubidLiteral S SystemLiteral and &apos;SYSTEM&apos; S SystemLiteral  See the NOTE on xmlParseExternalID().</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseNotationType' file='parserInternals'>
      <info>parse an Notation attribute type.  Note: the leading &apos;NOTATION&apos; S part has already being parsed...  [58] NotationType ::= &apos;NOTATION&apos; S &apos;(&apos; S? Name (S? &apos;|&apos; S? Name)* S? &apos;)&apos;  [ VC: Notation Attributes ] Values of this type must match one of the notation names included in the declaration; all notation names in the declaration must be declared.</info>
      <return type='xmlEnumerationPtr' info='the notation attribute tree built while parsing'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePEReference' file='parserInternals'>
      <info>parse PEReference declarations The entity content is handled directly by pushing it&apos;s content as a new input stream.  [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;  [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly.  [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePI' file='parserInternals'>
      <info>parse an XML Processing Instruction.  [16] PI ::= &apos;&lt;?&apos; PITarget (S (Char* - (Char* &apos;?&gt;&apos; Char*)))? &apos;?&gt;&apos;  The processing is transfered to SAX once parsed.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePITarget' file='parserInternals'>
      <info>parse the name of a PI  [17] PITarget ::= Name - ((&apos;X&apos; | &apos;x&apos;) (&apos;M&apos; | &apos;m&apos;) (&apos;L&apos; | &apos;l&apos;))</info>
      <return type='const xmlChar *' info='the PITarget name or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParsePubidLiteral' file='parserInternals'>
      <info>parse an XML public literal  [12] PubidLiteral ::= &apos;&quot;&apos; PubidChar* &apos;&quot;&apos; | &quot;&apos;&quot; (PubidChar - &quot;&apos;&quot;)* &quot;&apos;&quot;</info>
      <return type='xmlChar *' info='the PubidLiteral parsed or NULL.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseQuotedString' file='parserInternals'>
      <info>Parse and return a string between quotes or doublequotes  TODO: Deprecated, to  be removed at next drop of binary compatibility</info>
      <return type='xmlChar *' info='the string parser or NULL.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseReference' file='parserInternals'>
      <info>parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode.  [67] Reference ::= EntityRef | CharRef</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseSDDecl' file='parserInternals'>
      <info>parse the XML standalone declaration  [32] SDDecl ::= S &apos;standalone&apos; Eq ((&quot;&apos;&quot; (&apos;yes&apos; | &apos;no&apos;) &quot;&apos;&quot;) | (&apos;&quot;&apos; (&apos;yes&apos; | &apos;no&apos;)&apos;&quot;&apos;))  [ VC: Standalone Document Declaration ] TODO The standalone document declaration must have the value &quot;no&quot; if any external markup declarations contain declarations of: - attributes with default values, if elements to which these attributes apply appear in the document without specifications of values for these attributes, or - entities (other than amp, lt, gt, apos, quot), if references to those entities appear in the document, or - attributes with values subject to normalization, where the attribute appears in the document with a value which will change as a result of normalization, or - element types with element content, if white space occurs directly within any instance of those types.</info>
      <return type='int' info='1 if standalone, 0 otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseStartTag' file='parserInternals'>
      <info>parse a start of tag either for rule element or EmptyElement. In both case we don&apos;t parse the tag closing chars.  [40] STag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;&gt;&apos;  [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag.  [44] EmptyElemTag ::= &apos;&lt;&apos; Name (S Attribute)* S? &apos;/&gt;&apos;  [ WFC: Unique Att Spec ] No attribute name may appear more than once in the same start-tag or empty-element tag.  With namespace:  [NS 8] STag ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;&gt;&apos;  [NS 10] EmptyElement ::= &apos;&lt;&apos; QName (S Attribute)* S? &apos;/&gt;&apos;</info>
      <return type='const xmlChar *' info='the element name parsed'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseSystemLiteral' file='parserInternals'>
      <info>parse an XML Literal  [11] SystemLiteral ::= (&apos;&quot;&apos; [^&quot;]* &apos;&quot;&apos;) | (&quot;&apos;&quot; [^&apos;]* &quot;&apos;&quot;)</info>
      <return type='xmlChar *' info='the SystemLiteral parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseTextDecl' file='parserInternals'>
      <info>parse an XML declaration header for external entities  [77] TextDecl ::= &apos;&lt;?xml&apos; VersionInfo? EncodingDecl S? &apos;?&gt;&apos;  Question: Seems that EncodingDecl is mandatory ? Is that a typo ?</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseURI' file='uri'>
      <info>Parse an URI  URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
      <return type='xmlURIPtr' info='a newly build xmlURIPtr or NULL in case of error'/>
      <arg name='str' type='const char *' info='the URI string to analyze'/>
    </function>
    <function name='xmlParseURIReference' file='uri'>
      <info>Parse an URI reference string and fills in the appropriate fields of the @uri structure  URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
      <return type='int' info='0 or the error code'/>
      <arg name='uri' type='xmlURIPtr' info='pointer to an URI structure'/>
      <arg name='str' type='const char *' info='the string to analyze'/>
    </function>
    <function name='xmlParseVersionInfo' file='parserInternals'>
      <info>parse the XML version.  [24] VersionInfo ::= S &apos;version&apos; Eq (&apos; VersionNum &apos; | &quot; VersionNum &quot;)  [25] Eq ::= S? &apos;=&apos; S?</info>
      <return type='xmlChar *' info='the version string, e.g. &quot;1.0&quot;'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseVersionNum' file='parserInternals'>
      <info>parse the XML version value.  [26] VersionNum ::= ([a-zA-Z0-9_.:] | &apos;-&apos;)+</info>
      <return type='xmlChar *' info='the string giving the XML version number, or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseXMLDecl' file='parserInternals'>
      <info>parse an XML declaration header  [23] XMLDecl ::= &apos;&lt;?xml&apos; VersionInfo EncodingDecl? SDDecl? S? &apos;?&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParserAddNodeInfo' file='parser'>
      <info>Insert node info record into the sorted sequence</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='info' type='const xmlParserNodeInfoPtr' info='a node info sequence pointer'/>
    </function>
    <function name='xmlParserError' file='xmlerror'>
      <info>Display and format an error messages, gives file, line, position and extra parameters.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </function>
    <function name='xmlParserFindNodeInfo' file='parser'>
      <info>Find the parser node info struct for a given node</info>
      <return type='const xmlParserNodeInfo *' info='an xmlParserNodeInfo block pointer or NULL'/>
      <arg name='ctx' type='const xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='node' type='const xmlNodePtr' info='an XML node within the tree'/>
    </function>
    <function name='xmlParserFindNodeInfoIndex' file='parser'>
      <info>xmlParserFindNodeInfoIndex : Find the index that the info record for the given node is or should be at in a sorted sequence</info>
      <return type='unsigned long' info='a long indicating the position of the record'/>
      <arg name='seq' type='const xmlParserNodeInfoSeqPtr' info='a node info sequence pointer'/>
      <arg name='node' type='const xmlNodePtr' info='an XML node pointer'/>
    </function>
    <function name='xmlParserGetDirectory' file='xmlIO'>
      <info>lookup the directory for that file</info>
      <return type='char *' info='a new allocated string containing the directory, or NULL.'/>
      <arg name='filename' type='const char *' info='the path to a file'/>
    </function>
    <function name='xmlParserHandlePEReference' file='parserInternals'>
      <info>[69] PEReference ::= &apos;%&apos; Name &apos;;&apos;  [ WFC: No Recursion ] A parsed entity must not contain a recursive reference to itself, either directly or indirectly.  [ WFC: Entity Declared ] In a document without any DTD, a document with only an internal DTD subset which contains no parameter entity references, or a document with &quot;standalone=&apos;yes&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ VC: Entity Declared ] In a document with an external subset or external parameter entities with &quot;standalone=&apos;no&apos;&quot;, ...  ... The declaration of a parameter entity must precede any reference to it...  [ WFC: In DTD ] Parameter-entity references may only appear in the DTD. NOTE: misleading but this is handled.  A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc i.e. - Included in literal in entity values - Included as Parameter Entity reference within DTDs</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
    </function>
    <function name='xmlParserHandleReference' file='parserInternals'>
      <info>TODO: Remove, now deprecated ... the test is done directly in the content parsing routines.  [67] Reference ::= EntityRef | CharRef  [68] EntityRef ::= &apos;&amp;&apos; Name &apos;;&apos;  [ WFC: Entity Declared ] the Name given in the entity reference must match that in an entity declaration, except that well-formed documents need not declare any of the following entities: amp, lt, gt, apos, quot.  [ WFC: Parsed Entity ] An entity reference must not contain the name of an unparsed entity  [66] CharRef ::= &apos;&amp;#&apos; [0-9]+ &apos;;&apos; | &apos;&amp;#x&apos; [0-9a-fA-F]+ &apos;;&apos;  A PEReference may have been detected in the current input stream the handling is done accordingly to http://www.w3.org/TR/REC-xml#entproc</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
    </function>
    <function name='xmlParserInputBufferCreateFd' file='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from a file descriptor</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='fd' type='int' info='a file descriptor number'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateFile' file='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing of a FILE * buffered C I/O</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='file' type='FILE *' info='a FILE*'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateFilename' file='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing of a file If filename is &quot;-&apos; then we use stdin as the input. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. Do an encoding check if enc == XML_CHAR_ENCODING_NONE</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='URI' type='const char *' info='a C string containing the URI or filename'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateFilenameDefault' file='globals'>
      <info>Registers a callback for URI input file handling</info>
      <return type='xmlParserInputBufferCreateFilenameFunc' info='the old value of the registration function'/>
      <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info='function pointer to the new ParserInputBufferCreateFilenameFunc'/>
    </function>
    <functype name='xmlParserInputBufferCreateFilenameFunc' file='globals'>
      <info></info>
      <return type='xmlParserInputBufferPtr' info=''/>
      <arg name='URI' type='const char *' info=''/>
      <arg name='enc' type='xmlCharEncoding' info=''/>
    </functype>
    <function name='xmlParserInputBufferCreateIO' file='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from an I/O handler</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateMem' file='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from a memory area.</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='mem' type='const char *' info='the memory input'/>
      <arg name='size' type='int' info='the length of the memory block'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferCreateStatic' file='xmlIO'>
      <info>Create a buffered parser input for the progressive parsing for the input from an immutable memory area. This will not copy the memory area to the buffer, but the memory is expected to be available until the end of the parsing, this is useful for example when using mmap&apos;ed file.</info>
      <return type='xmlParserInputBufferPtr' info='the new parser input or NULL'/>
      <arg name='mem' type='const char *' info='the memory input'/>
      <arg name='size' type='int' info='the length of the memory block'/>
      <arg name='enc' type='xmlCharEncoding' info='the charset encoding if known'/>
    </function>
    <function name='xmlParserInputBufferGrow' file='xmlIO'>
      <info>Grow up the content of the input buffer, the old data are preserved This routine handle the I18N transcoding to internal UTF-8 This routine is used when operating the parser in normal (pull) mode  TODO: one should be able to remove one extra copy by copying directly onto in-&gt;buffer or in-&gt;raw</info>
      <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
      <arg name='len' type='int' info='indicative value of the amount of chars to read'/>
    </function>
    <function name='xmlParserInputBufferPush' file='xmlIO'>
      <info>Push the content of the arry in the input buffer This routine handle the I18N transcoding to internal UTF-8 This is used when operating the parser in progressive (push) mode.</info>
      <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
      <arg name='len' type='int' info='the size in bytes of the array.'/>
      <arg name='buf' type='const char *' info='an char array'/>
    </function>
    <function name='xmlParserInputBufferRead' file='xmlIO'>
      <info>Refresh the content of the input buffer, the old data are considered consumed This routine handle the I18N transcoding to internal UTF-8</info>
      <return type='int' info='the number of chars read and stored in the buffer, or -1 in case of error.'/>
      <arg name='in' type='xmlParserInputBufferPtr' info='a buffered parser input'/>
      <arg name='len' type='int' info='indicative value of the amount of chars to read'/>
    </function>
    <functype name='xmlParserInputDeallocate' file='parser'>
      <info>Callback for freeing some parser input allocations.</info>
      <return type='void'/>
      <arg name='str' type='xmlChar *' info='the string to deallocate'/>
    </functype>
    <function name='xmlParserInputGrow' file='parser'>
      <info>This function increase the input for the parser. It tries to preserve pointers to the input buffer, and keep already read data</info>
      <return type='int' info='the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity'/>
      <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
      <arg name='len' type='int' info='an indicative size for the lookahead'/>
    </function>
    <function name='xmlParserInputRead' file='parser'>
      <info>This function refresh the input for the parser. It doesn&apos;t try to preserve pointers to the input buffer, and discard already read data</info>
      <return type='int' info='the number of xmlChars read, or -1 in case of error, 0 indicate the end of this entity'/>
      <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
      <arg name='len' type='int' info='an indicative size for the lookahead'/>
    </function>
    <function name='xmlParserInputShrink' file='parserInternals'>
      <info>This function removes used input for the parser.</info>
      <return type='void'/>
      <arg name='in' type='xmlParserInputPtr' info='an XML parser input'/>
    </function>
    <function name='xmlParserPrintFileContext' file='xmlerror'>
      <info>Displays current context within the input content for error tracking</info>
      <return type='void'/>
      <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
    </function>
    <function name='xmlParserPrintFileInfo' file='xmlerror'>
      <info>Displays the associated file and line informations for the current input</info>
      <return type='void'/>
      <arg name='input' type='xmlParserInputPtr' info='an xmlParserInputPtr input'/>
    </function>
    <function name='xmlParserValidityError' file='xmlerror'>
      <info>Display and format an validity error messages, gives file, line, position and extra parameters.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </function>
    <function name='xmlParserValidityWarning' file='xmlerror'>
      <info>Display and format a validity warning messages, gives file, line, position and extra parameters.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </function>
    <function name='xmlParserWarning' file='xmlerror'>
      <info>Display and format a warning messages, gives file, line, position and extra parameters.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='an XML parser context'/>
      <arg name='msg' type='const char *' info='the message to display/transmit'/>
      <arg name='...' type='...' info='extra parameters for the message display'/>
    </function>
    <function name='xmlPatternMatch' file='pattern'>
      <cond>LIBXML_PATTERN_ENABLED</cond>
      <info>Test wether the node matches the pattern</info>
      <return type='int' info='1 if it matches, 0 if it doesn&apos;t and -1 in case of failure'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlPatterncompile' file='pattern'>
      <cond>LIBXML_PATTERN_ENABLED</cond>
      <info>Compile a pattern.</info>
      <return type='xmlPatternPtr' info='the compiled for of the pattern or NULL in case of error'/>
      <arg name='pattern' type='const xmlChar *' info='the pattern to compile'/>
      <arg name='dict' type='xmlDict *' info='an optional dictionnary for interned strings'/>
      <arg name='flags' type='int' info='compilation flags, undefined yet'/>
      <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
    </function>
    <function name='xmlPedanticParserDefault' file='parser'>
      <info>Set and return the previous value for enabling pedantic warnings.</info>
      <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
      <arg name='val' type='int' info='int 0 or 1'/>
    </function>
    <function name='xmlPopInput' file='parserInternals'>
      <info>xmlPopInput: the current input pointed by ctxt-&gt;input came to an end pop it and return the next char.</info>
      <return type='xmlChar' info='the current xmlChar in the parser context'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlPopInputCallbacks' file='xmlIO'>
      <info>Clear the top input callback from the input stack. this includes the compiled-in I/O.</info>
      <return type='int' info='the number of input callback registered or -1 in case of error.'/>
    </function>
    <function name='xmlPrintURI' file='uri'>
      <info>Prints the URI in the stream @steam.</info>
      <return type='void'/>
      <arg name='stream' type='FILE *' info='a FILE* for the output'/>
      <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
    </function>
    <function name='xmlPushInput' file='parserInternals'>
      <info>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='input' type='xmlParserInputPtr' info='an XML parser input fragment (entity, XML fragment ...).'/>
    </function>
    <function name='xmlRMutexLock' file='threads'>
      <info>xmlRMutexLock() is used to lock a libxml2 token_r.</info>
      <return type='void'/>
      <arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
    </function>
    <function name='xmlRMutexUnlock' file='threads'>
      <info>xmlRMutexUnlock() is used to unlock a libxml2 token_r.</info>
      <return type='void'/>
      <arg name='tok' type='xmlRMutexPtr' info='the reentrant mutex'/>
    </function>
    <function name='xmlReadDoc' file='parser'>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReadFd' file='parser'>
      <info>parse an XML from a file descriptor and build a tree. NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReadFile' file='parser'>
      <info>parse an XML file from the filesystem or the network.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReadIO' file='parser'>
      <info>parse an XML document from I/O functions and source and build a tree.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReadMemory' file='parser'>
      <info>parse an XML in-memory document and build a tree.</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderForDoc' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</info>
      <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderForFd' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmltextReader for an XML from a file descriptor. The parsing flags @options are a combination of xmlParserOption. NOTE that the file descriptor will not be closed when the reader is closed or reset.</info>
      <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderForFile' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption.</info>
      <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderForIO' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmltextReader for an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption.</info>
      <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderForMemory' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmltextReader for an XML in-memory document. The parsing flags @options are a combination of xmlParserOption.</info>
      <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderNewDoc' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
      <arg name='cur' type='const xmlChar *' info='a pointer to a zero terminated string'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderNewFd' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Setup an xmltextReader to parse an XML from a file descriptor. NOTE that the file descriptor will not be closed when the reader is closed or reset. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
      <arg name='fd' type='int' info='an open file descriptor'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderNewFile' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>parse an XML file from the filesystem or the network. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
      <arg name='filename' type='const char *' info='a file or URL'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderNewIO' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Setup an xmltextReader to parse an XML document from I/O functions and source. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
      <arg name='ioread' type='xmlInputReadCallback' info='an I/O read function'/>
      <arg name='ioclose' type='xmlInputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderNewMemory' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Setup an xmltextReader to parse an XML in-memory document. The parsing flags @options are a combination of xmlParserOption. This reuses the existing @reader xmlTextReader.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='URL' type='const char *' info='the base URL to use for the document'/>
      <arg name='encoding' type='const char *' info='the document encoding, or NULL'/>
      <arg name='options' type='int' info='a combination of xmlParserOption'/>
    </function>
    <function name='xmlReaderNewWalker' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Setup an xmltextReader to parse a preparsed XML document. This reuses the existing @reader xmlTextReader.</info>
      <return type='int' info='0 in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='an XML reader'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document'/>
    </function>
    <function name='xmlReaderWalker' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Create an xmltextReader for a preparsed document.</info>
      <return type='xmlTextReaderPtr' info='the new reader or NULL in case of error.'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document'/>
    </function>
    <functype name='xmlReallocFunc' file='xmlmemory'>
      <info>Signature for a realloc() implementation.</info>
      <return type='void *' info='a pointer to the newly reallocated block or NULL in case of error.'/>
      <arg name='mem' type='void *' info='an already allocated block of memory'/>
      <arg name='size' type='size_t' info='the new size requested in bytes'/>
    </functype>
    <function name='xmlReallocLoc' file='xmlmemory'>
      <info>a realloc() equivalent, with logging of the allocation info.</info>
      <return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
      <arg name='ptr' type='void *' info='the initial memory block pointer'/>
      <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
      <arg name='file' type='const char *' info='the file name or NULL'/>
      <arg name='line' type='int' info='the line number'/>
    </function>
    <function name='xmlReconciliateNs' file='tree'>
      <info>This function checks that all the namespaces declared within the given tree are properly declared. This is needed for example after Copy or Cut and then paste operations. The subtree may still hold pointers to namespace declarations outside the subtree or invalid/masked. As much as possible the function try to reuse the existing namespaces found in the new environment. If not possible the new namespaces are redeclared on @tree at the top of the given subtree.</info>
      <return type='int' info='the number of namespace declarations created or -1 in case of error.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='tree' type='xmlNodePtr' info='a node defining the subtree to reconciliate'/>
    </function>
    <function name='xmlRecoverDoc' file='parser'>
      <info>parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a tree is built anyway</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
    </function>
    <function name='xmlRecoverFile' file='parser'>
      <info>parse an XML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. In the case the document is not Well Formed, a tree is built anyway</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlRecoverMemory' file='parser'>
      <info>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, a tree is built anyway</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <functype name='xmlRegExecCallbacks' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info></info>
      <return type='void'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info=''/>
      <arg name='token' type='const xmlChar *' info=''/>
      <arg name='transdata' type='void *' info=''/>
      <arg name='inputdata' type='void *' info=''/>
    </functype>
    <function name='xmlRegExecPushString' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Push one input token in the execution context</info>
      <return type='int' info='1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context or NULL to indicate the end'/>
      <arg name='value' type='const xmlChar *' info='a string token input'/>
      <arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
    </function>
    <function name='xmlRegExecPushString2' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Push one input token in the execution context</info>
      <return type='int' info='1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context or NULL to indicate the end'/>
      <arg name='value' type='const xmlChar *' info='the first string token input'/>
      <arg name='value2' type='const xmlChar *' info='the second string token input'/>
      <arg name='data' type='void *' info='data associated to the token to reuse in callbacks'/>
    </function>
    <function name='xmlRegFreeExecCtxt' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Free the structures associated to a regular expression evaulation context.</info>
      <return type='void'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info='a regular expression evaulation context'/>
    </function>
    <function name='xmlRegFreeRegexp' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Free a regexp</info>
      <return type='void'/>
      <arg name='regexp' type='xmlRegexpPtr' info='the regexp'/>
    </function>
    <function name='xmlRegNewExecCtxt' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Build a context used for progressive evaluation of a regexp.</info>
      <return type='xmlRegExecCtxtPtr' info='the new context'/>
      <arg name='comp' type='xmlRegexpPtr' info='a precompiled regular expression'/>
      <arg name='callback' type='xmlRegExecCallbacks' info='a callback function used for handling progresses in the automata matching phase'/>
      <arg name='data' type='void *' info='the context data associated to the callback in this context'/>
    </function>
    <function name='xmlRegexpCompile' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and builds an automata suitable for testing strings against that regular expression</info>
      <return type='xmlRegexpPtr' info='the compiled expression or NULL in case of error'/>
      <arg name='regexp' type='const xmlChar *' info='a regular expression string'/>
    </function>
    <function name='xmlRegexpExec' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Check if the regular expression generates the value</info>
      <return type='int' info='1 if it matches, 0 if not and a negative value in case of error'/>
      <arg name='comp' type='xmlRegexpPtr' info='the compiled regular expression'/>
      <arg name='content' type='const xmlChar *' info='the value to check against the regular expression'/>
    </function>
    <function name='xmlRegexpIsDeterminist' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Check if the regular expression is determinist</info>
      <return type='int' info='1 if it yes, 0 if not and a negative value in case of error'/>
      <arg name='comp' type='xmlRegexpPtr' info='the compiled regular expression'/>
    </function>
    <function name='xmlRegexpPrint' file='xmlregexp'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Print the content of the compiled regular expression</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the file for the output debug'/>
      <arg name='regexp' type='xmlRegexpPtr' info='the compiled regexp'/>
    </function>
    <function name='xmlRegisterCharEncodingHandler' file='encoding'>
      <info>Register the char encoding handler, surprising, isn&apos;t it ?</info>
      <return type='void'/>
      <arg name='handler' type='xmlCharEncodingHandlerPtr' info='the xmlCharEncodingHandlerPtr handler block'/>
    </function>
    <function name='xmlRegisterDefaultInputCallbacks' file='xmlIO'>
      <info>Registers the default compiled-in I/O handlers.</info>
      <return type='void'/>
    </function>
    <function name='xmlRegisterDefaultOutputCallbacks' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Registers the default compiled-in I/O handlers.</info>
      <return type='void'/>
    </function>
    <function name='xmlRegisterHTTPPostCallbacks' file='xmlIO'>
      <cond>LIBXML_HTTP_ENABLED</cond>
      <info>By default, libxml submits HTTP output requests using the &quot;PUT&quot; method. Calling this method changes the HTTP output method to use the &quot;POST&quot; method instead.</info>
      <return type='void'/>
    </function>
    <function name='xmlRegisterInputCallbacks' file='xmlIO'>
      <info>Register a new set of I/O callback for handling parser input.</info>
      <return type='int' info='the registered handler number or -1 in case of error'/>
      <arg name='matchFunc' type='xmlInputMatchCallback' info='the xmlInputMatchCallback'/>
      <arg name='openFunc' type='xmlInputOpenCallback' info='the xmlInputOpenCallback'/>
      <arg name='readFunc' type='xmlInputReadCallback' info='the xmlInputReadCallback'/>
      <arg name='closeFunc' type='xmlInputCloseCallback' info='the xmlInputCloseCallback'/>
    </function>
    <function name='xmlRegisterNodeDefault' file='globals'>
      <info>Registers a callback for node creation</info>
      <return type='xmlRegisterNodeFunc' info='the old value of the registration function'/>
      <arg name='func' type='xmlRegisterNodeFunc' info='function pointer to the new RegisterNodeFunc'/>
    </function>
    <functype name='xmlRegisterNodeFunc' file='globals'>
      <info></info>
      <return type='void'/>
      <arg name='node' type='xmlNodePtr' info=''/>
    </functype>
    <function name='xmlRegisterOutputCallbacks' file='xmlIO'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Register a new set of I/O callback for handling output.</info>
      <return type='int' info='the registered handler number or -1 in case of error'/>
      <arg name='matchFunc' type='xmlOutputMatchCallback' info='the xmlOutputMatchCallback'/>
      <arg name='openFunc' type='xmlOutputOpenCallback' info='the xmlOutputOpenCallback'/>
      <arg name='writeFunc' type='xmlOutputWriteCallback' info='the xmlOutputWriteCallback'/>
      <arg name='closeFunc' type='xmlOutputCloseCallback' info='the xmlOutputCloseCallback'/>
    </function>
    <function name='xmlRelaxNGCleanupTypes' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Cleanup the default Schemas type library associated to RelaxNG</info>
      <return type='void'/>
    </function>
    <function name='xmlRelaxNGDump' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump a RelaxNG structure back</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the file output'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
    </function>
    <function name='xmlRelaxNGDumpTree' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump the transformed RelaxNG tree.</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the file output'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
    </function>
    <function name='xmlRelaxNGFree' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Deallocate a RelaxNG structure.</info>
      <return type='void'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a schema structure'/>
    </function>
    <function name='xmlRelaxNGFreeParserCtxt' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Free the resources associated to the schema parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='the schema parser context'/>
    </function>
    <function name='xmlRelaxNGFreeValidCtxt' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Free the resources associated to the schema validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the schema validation context'/>
    </function>
    <function name='xmlRelaxNGGetParserErrors' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Get the callback information used to handle errors for a validation context</info>
      <return type='int' info='-1 in case of failure, 0 otherwise.'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc *' info='the error callback result'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning callback result'/>
      <arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
    </function>
    <function name='xmlRelaxNGGetValidErrors' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Get the error and warning callback informations</info>
      <return type='int' info='-1 in case of error and 0 otherwise'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc *' info='the error function result'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc *' info='the warning function result'/>
      <arg name='ctx' type='void **' info='the functions context result'/>
    </function>
    <function name='xmlRelaxNGNewDocParserCtxt' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally.</info>
      <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
    </function>
    <function name='xmlRelaxNGNewMemParserCtxt' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.</info>
      <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlRelaxNGNewParserCtxt' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.</info>
      <return type='xmlRelaxNGParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='URL' type='const char *' info='the location of the schema'/>
    </function>
    <function name='xmlRelaxNGNewValidCtxt' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML RelaxNGs validation context based on the given schema</info>
      <return type='xmlRelaxNGValidCtxtPtr' info='the validation context or NULL in case of error'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a precompiled XML RelaxNGs'/>
    </function>
    <function name='xmlRelaxNGParse' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances. *WARNING* this interface is highly subject to change</info>
      <return type='xmlRelaxNGPtr' info='the internal XML RelaxNG structure built from the resource or NULL in case of error'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG parser context'/>
    </function>
    <function name='xmlRelaxNGSetParserErrors' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Set the callback functions used to handle errors for a validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc' info='the error callback'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning callback'/>
      <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
    </function>
    <function name='xmlRelaxNGSetValidErrors' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Set the error and warning callback informations</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='err' type='xmlRelaxNGValidityErrorFunc' info='the error function'/>
      <arg name='warn' type='xmlRelaxNGValidityWarningFunc' info='the warning function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlRelaxNGValidateDoc' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Validate a document tree in memory.</info>
      <return type='int' info='0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
    </function>
    <function name='xmlRelaxNGValidateFullElement' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.</info>
      <return type='int' info='1 if no validation problem was found or -1 in case of error.'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlRelaxNGValidatePopElement' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Pop the element end from the RelaxNG validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlRelaxNGValidatePushCData' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>check the CData parsed for validation in the current stack</info>
      <return type='int' info='1 if no validation problem was found or -1 otherwise'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the RelaxNG validation context'/>
      <arg name='data' type='const xmlChar *' info='some character data read'/>
      <arg name='len' type='int' info='the lenght of the data'/>
    </function>
    <function name='xmlRelaxNGValidatePushElement' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Push a new element start on the RelaxNG validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <functype name='xmlRelaxNGValidityErrorFunc' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='msg' type='const char *' info=''/>
      <arg name='...' type='...' info=''/>
    </functype>
    <functype name='xmlRelaxNGValidityWarningFunc' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='msg' type='const char *' info=''/>
      <arg name='...' type='...' info=''/>
    </functype>
    <function name='xmlRelaxParserSetFlag' file='relaxng'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Semi private function used to pass informations to a parser context which are a combination of xmlRelaxNGParserFlag .</info>
      <return type='int' info='0 if success and -1 in case of error'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a RelaxNG parser context'/>
      <arg name='flags' type='int' info='a set of flags values'/>
    </function>
    <function name='xmlRemoveID' file='valid'>
      <info>Remove the given attribute from the ID table maintained internally.</info>
      <return type='int' info='-1 if the lookup failed and 0 otherwise'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlRemoveProp' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Unlink and free one attribute, all the content is freed too Note this doesn&apos;t work for namespace definition attributes</info>
      <return type='int' info='0 if success and -1 in case of error.'/>
      <arg name='cur' type='xmlAttrPtr' info='an attribute'/>
    </function>
    <function name='xmlRemoveRef' file='valid'>
      <info>Remove the given attribute from the Ref table maintained internally.</info>
      <return type='int' info='-1 if the lookup failed and 0 otherwise'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='attr' type='xmlAttrPtr' info='the attribute'/>
    </function>
    <function name='xmlReplaceNode' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Unlink the old node from its current context, prune the new one at the same place. If @cur was already inserted in a document it is first unlinked from its existing context.</info>
      <return type='xmlNodePtr' info='the @old node'/>
      <arg name='old' type='xmlNodePtr' info='the old node'/>
      <arg name='cur' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlResetError' file='xmlerror'>
      <info>Cleanup the error.</info>
      <return type='void'/>
      <arg name='err' type='xmlErrorPtr' info='pointer to the error.'/>
    </function>
    <function name='xmlResetLastError' file='xmlerror'>
      <info>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</info>
      <return type='void'/>
    </function>
    <function name='xmlSAX2AttributeDecl' file='SAX2'>
      <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'/>
    </function>
    <function name='xmlSAX2CDataBlock' file='SAX2'>
      <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'/>
    </function>
    <function name='xmlSAX2Characters' file='SAX2'>
      <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'/>
    </function>
    <function name='xmlSAX2Comment' file='SAX2'>
      <info>A xmlSAX2Comment 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 xmlSAX2Comment content'/>
    </function>
    <function name='xmlSAX2ElementDecl' file='SAX2'>
      <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'/>
    </function>
    <function name='xmlSAX2EndDocument' file='SAX2'>
      <info>called when the document end has been detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2EndElement' file='SAX2'>
      <info>called when the end of an element has been detected.</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'/>
    </function>
    <function name='xmlSAX2EndElementNs' file='SAX2'>
      <info>SAX2 callback when an element end has been detected by the parser. It provides the namespace informations for the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
    </function>
    <function name='xmlSAX2EntityDecl' file='SAX2'>
      <info>An entity 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 entity name'/>
      <arg name='type' type='int' info='the entity type'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='content' type='xmlChar *' info='the entity value (without processing).'/>
    </function>
    <function name='xmlSAX2ExternalSubset' file='SAX2'>
      <info>Callback on external subset declaration.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </function>
    <function name='xmlSAX2GetColumnNumber' file='SAX2'>
      <info>Provide the column number of the current parsing point.</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2GetEntity' file='SAX2'>
      <info>Get an entity by name</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <function name='xmlSAX2GetLineNumber' file='SAX2'>
      <info>Provide the line number of the current parsing point.</info>
      <return type='int' info='an int'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2GetParameterEntity' file='SAX2'>
      <info>Get a parameter entity by name</info>
      <return type='xmlEntityPtr' info='the xmlEntityPtr if found.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <function name='xmlSAX2GetPublicId' file='SAX2'>
      <info>Provides the public ID e.g. &quot;-//SGMLSOURCE//DTD DEMO//EN&quot;</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2GetSystemId' file='SAX2'>
      <info>Provides the system ID, basically URL or filename e.g. http://www.sgmlsource.com/dtds/memo.dtd</info>
      <return type='const xmlChar *' info='a xmlChar *'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2HasExternalSubset' file='SAX2'>
      <info>Does this document has an external subset</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2HasInternalSubset' file='SAX2'>
      <info>Does this document has an internal subset</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2IgnorableWhitespace' file='SAX2'>
      <info>receiving some ignorable whitespaces from the parser. UNUSED: by default the DOM building will 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>
    <function name='xmlSAX2InitDefaultSAXHandler' file='SAX2'>
      <info>Initialize the default XML SAX2 handler</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
      <arg name='warning' type='int' info='flag if non-zero sets the handler warning procedure'/>
    </function>
    <function name='xmlSAX2InitDocbDefaultSAXHandler' file='SAX2'>
      <cond>LIBXML_DOCB_ENABLED</cond>
      <info>Initialize the default DocBook SAX2 handler</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
    </function>
    <function name='xmlSAX2InitHtmlDefaultSAXHandler' file='SAX2'>
      <cond>LIBXML_HTML_ENABLED</cond>
      <info>Initialize the default HTML SAX2 handler</info>
      <return type='void'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
    </function>
    <function name='xmlSAX2InternalSubset' file='SAX2'>
      <info>Callback on internal subset declaration.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the root element name'/>
      <arg name='ExternalID' type='const xmlChar *' info='the external ID'/>
      <arg name='SystemID' type='const xmlChar *' info='the SYSTEM ID (e.g. filename or URL)'/>
    </function>
    <function name='xmlSAX2IsStandalone' file='SAX2'>
      <info>Is this document tagged standalone ?</info>
      <return type='int' info='1 if true'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2NotationDecl' file='SAX2'>
      <info>What to do when a notation declaration 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 name of the notation'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </function>
    <function name='xmlSAX2ProcessingInstruction' file='SAX2'>
      <info>A processing instruction has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='target' type='const xmlChar *' info='the target name'/>
      <arg name='data' type='const xmlChar *' info='the PI data&apos;s'/>
    </function>
    <function name='xmlSAX2Reference' file='SAX2'>
      <info>called when an entity xmlSAX2Reference is detected.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The entity name'/>
    </function>
    <function name='xmlSAX2ResolveEntity' file='SAX2'>
      <info>The entity loader, to control the loading of external entities, the application can either: - override this xmlSAX2ResolveEntity() callback in the SAX block - or better use the xmlSetExternalEntityLoader() function to set up it&apos;s own entity resolution routine</info>
      <return type='xmlParserInputPtr' info='the xmlParserInputPtr if inlined or NULL for DOM behaviour.'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
    </function>
    <function name='xmlSAX2SetDocumentLocator' file='SAX2'>
      <info>Receive the document locator at startup, actually xmlDefaultSAXLocator Everything is available on the context, so this is useless in our case.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='loc' type='xmlSAXLocatorPtr' info='A SAX Locator'/>
    </function>
    <function name='xmlSAX2StartDocument' file='SAX2'>
      <info>called when the document start being processed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
    </function>
    <function name='xmlSAX2StartElement' file='SAX2'>
      <info>called when an opening tag has been processed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='fullname' type='const xmlChar *' info='The element name, including namespace prefix'/>
      <arg name='atts' type='const xmlChar **' info='An array of name/value attributes pairs, NULL terminated'/>
    </function>
    <function name='xmlSAX2StartElementNs' file='SAX2'>
      <info>SAX2 callback when an element start has been detected by the parser. It provides the namespace informations for the element, as well as the new namespace declarations on the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='localname' type='const xmlChar *' info='the local name of the element'/>
      <arg name='prefix' type='const xmlChar *' info='the element namespace prefix if available'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace name if available'/>
      <arg name='nb_namespaces' type='int' info='number of namespace definitions on that node'/>
      <arg name='namespaces' type='const xmlChar **' info='pointer to the array of prefix/URI pairs namespace definitions'/>
      <arg name='nb_attributes' type='int' info='the number of attributes on that node'/>
      <arg name='nb_defaulted' type='int' info='the number of defaulted attributes.'/>
      <arg name='attributes' type='const xmlChar **' info='pointer to the array of (localname/prefix/URI/value/end) attribute values.'/>
    </function>
    <function name='xmlSAX2UnparsedEntityDecl' file='SAX2'>
      <info>What to do when an unparsed entity declaration is 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 name of the entity'/>
      <arg name='publicId' type='const xmlChar *' info='The public ID of the entity'/>
      <arg name='systemId' type='const xmlChar *' info='The system ID of the entity'/>
      <arg name='notationName' type='const xmlChar *' info='the name of the notation'/>
    </function>
    <function name='xmlSAXDefaultVersion' file='SAX2'>
      <info>Set the default version of SAX used globally by the library. By default, during initialization the default is set to 2. Note that it is generally a better coding style to use xmlSAXVersion() to set up the version explicitly for a given parsing context.</info>
      <return type='int' info='the previous value in case of success and -1 in case of error.'/>
      <arg name='version' type='int' info='the version, 1 or 2'/>
    </function>
    <function name='xmlSAXParseDTD' file='parser'>
      <info>Load and parse an external subset.</info>
      <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error.'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='ExternalID' type='const xmlChar *' info='a NAME* containing the External ID of the DTD'/>
      <arg name='SystemID' type='const xmlChar *' info='a NAME* containing the URL to the DTD'/>
    </function>
    <function name='xmlSAXParseDoc' file='parser'>
      <info>parse an XML 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='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
    </function>
    <function name='xmlSAXParseEntity' file='parser'>
      <info>parse an XML external entity out of context 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.  [78] extParsedEnt ::= TextDecl? content  This correspond to a &quot;Well Balanced&quot; chunk</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlSAXParseFile' file='parser'>
      <info>parse an XML 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='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
    </function>
    <function name='xmlSAXParseFileWithData' file='parser'>
      <info>parse an XML 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.  User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
      <arg name='data' type='void *' info='the userdata'/>
    </function>
    <function name='xmlSAXParseMemory' file='parser'>
      <info>parse an XML in-memory block and 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='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read not Well Formed documents'/>
    </function>
    <function name='xmlSAXParseMemoryWithData' file='parser'>
      <info>parse an XML in-memory block and use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.  User data (void *) is stored within the parser context in the context&apos;s _private member, so it is available nearly everywhere in libxml</info>
      <return type='xmlDocPtr' info='the resulting document tree'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='buffer' type='const char *' info='an pointer to a char array'/>
      <arg name='size' type='int' info='the size of the array'/>
      <arg name='recovery' type='int' info='work in recovery mode, i.e. tries to read no Well Formed documents'/>
      <arg name='data' type='void *' info='the userdata'/>
    </function>
    <function name='xmlSAXUserParseFile' file='parser'>
      <info>parse an XML file and call the given SAX handler routines. Automatic support for ZLIB/Compress compressed document is provided</info>
      <return type='int' info='0 in case of success or a error number otherwise'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='filename' type='const char *' info='a file name'/>
    </function>
    <function name='xmlSAXUserParseMemory' file='parser'>
      <info>A better SAX parsing routine. parse an XML in-memory buffer and call the given SAX handler routines.</info>
      <return type='int' info='0 in case of success or a error number otherwise'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='buffer' type='const char *' info='an in-memory XML document input'/>
      <arg name='size' type='int' info='the length of the XML document in bytes'/>
    </function>
    <function name='xmlSAXVersion' file='SAX2'>
      <info>Initialize the default XML SAX handler according to the version</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='hdlr' type='xmlSAXHandler *' info='the SAX handler'/>
      <arg name='version' type='int' info='the version, 1 or 2'/>
    </function>
    <function name='xmlSaveClose' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Close a document saving context, i.e. make sure that all bytes have been output and free the associated data.</info>
      <return type='int' info='the number of byte written or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
    </function>
    <function name='xmlSaveDoc' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Save a full document to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
      <return type='long' info='the number of byte written or -1 in case of error'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='doc' type='xmlDocPtr' info='a document'/>
    </function>
    <function name='xmlSaveFile' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlSaveFileEnc' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document, converting it to the given encoding</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the name of an encoding (or NULL)'/>
    </function>
    <function name='xmlSaveFileTo' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to an I/O buffer.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
    </function>
    <function name='xmlSaveFlush' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Flush a document saving context, i.e. make sure that all bytes have been output.</info>
      <return type='int' info='the number of byte written or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
    </function>
    <function name='xmlSaveFormatFile' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to a file. Will use compression if compiled in and enabled. If @filename is &quot;-&quot; the stdout file is used. If @format is set then the document will be indented on output. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='filename' type='const char *' info='the filename (or URL)'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlSaveFormatFileEnc' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to a file or an URL.</info>
      <return type='int' info='the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
      <arg name='filename' type='const char *' info='the filename or URL to output'/>
      <arg name='cur' type='xmlDocPtr' info='the document being saved'/>
      <arg name='encoding' type='const char *' info='the name of the encoding to use or NULL.'/>
      <arg name='format' type='int' info='should formatting spaces be added.'/>
    </function>
    <function name='xmlSaveFormatFileTo' file='tree'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump an XML document to an I/O buffer. NOTE: the I/O buffer is closed as part of the call.</info>
      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
      <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
      <arg name='cur' type='xmlDocPtr' info='the document'/>
      <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='xmlSaveSetAttrEscape' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Set a custom escaping function to be used for text in attribute content</info>
      <return type='int' info='0 if successful or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
    </function>
    <function name='xmlSaveSetEscape' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Set a custom escaping function to be used for text in element content</info>
      <return type='int' info='0 if successful or -1 in case of error.'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='escape' type='xmlCharEncodingOutputFunc' info='the escaping function'/>
    </function>
    <function name='xmlSaveToFd' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a document saving context serializing to a file descriptor with the encoding and the options given.</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='fd' type='int' info='a file descriptor number'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveToFilename' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a document saving context serializing to a filename or possibly to an URL (but this is less reliable) with the encoding and the options given.</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='filename' type='const char *' info='a file name or an URL'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveToIO' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Create a document saving context serializing to a file descriptor with the encoding and the options given</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='iowrite' type='xmlOutputWriteCallback' info='an I/O write function'/>
      <arg name='ioclose' type='xmlOutputCloseCallback' info='an I/O close function'/>
      <arg name='ioctx' type='void *' info='an I/O handler'/>
      <arg name='encoding' type='const char *' info='the encoding name to use or NULL'/>
      <arg name='options' type='int' info='a set of xmlSaveOptions'/>
    </function>
    <function name='xmlSaveTree' file='xmlsave'>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Save a subtree starting at the node parameter to a saving context TODO: The function is not fully implemented yet as it does not return the byte count but 0 instead</info>
      <return type='long' info='the number of byte written or -1 in case of error'/>
      <arg name='ctxt' type='xmlSaveCtxtPtr' info='a document saving context'/>
      <arg name='node' type='xmlNodePtr' info='a document'/>
    </function>
    <function name='xmlSaveUri' file='uri'>
      <info>Save the URI as an escaped string</info>
      <return type='xmlChar *' info='a new string (to be deallocated by caller)'/>
      <arg name='uri' type='xmlURIPtr' info='pointer to an xmlURI'/>
    </function>
    <function name='xmlScanName' file='parserInternals'>
      <info>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references.  TODO: seems deprecated now, only used in the default part of xmlParserHandleReference  [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender  [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*  [6] Names ::= Name (S Name)*</info>
      <return type='xmlChar *' info='the Name parsed or NULL'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlSchemaCheckFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Checks the default values types, especially for facets</info>
      <return type='int' info='0 if okay or -1 in cae of error'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='the facet'/>
      <arg name='typeDecl' type='xmlSchemaTypePtr' info='the schema type definition'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context or NULL'/>
      <arg name='name' type='const xmlChar *' info='name of the type'/>
    </function>
    <function name='xmlSchemaCleanupTypes' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Cleanup the default XML Schemas type library</info>
      <return type='void'/>
    </function>
    <function name='xmlSchemaCollapseString' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Removes and normalize white spaces in the string</info>
      <return type='xmlChar *' info='the new string or NULL if no change was required.'/>
      <arg name='value' type='const xmlChar *' info='a value'/>
    </function>
    <function name='xmlSchemaCompareValues' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Compare 2 values</info>
      <return type='int' info='-1 if x &lt; y, 0 if x == y, 1 if x &gt; y, 2 if x &lt;&gt; y, and -2 in case of error'/>
      <arg name='x' type='xmlSchemaValPtr' info='a first value'/>
      <arg name='y' type='xmlSchemaValPtr' info='a second value'/>
    </function>
    <function name='xmlSchemaDump' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Dump a Schema structure.</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the file output'/>
      <arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
    </function>
    <function name='xmlSchemaFree' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Deallocate a Schema structure.</info>
      <return type='void'/>
      <arg name='schema' type='xmlSchemaPtr' info='a schema structure'/>
    </function>
    <function name='xmlSchemaFreeFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Deallocate a Schema Facet structure.</info>
      <return type='void'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='a schema facet structure'/>
    </function>
    <function name='xmlSchemaFreeParserCtxt' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Free the resources associated to the schema parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context'/>
    </function>
    <function name='xmlSchemaFreeType' file='schemasInternals'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Deallocate a Schema Type structure.</info>
      <return type='void'/>
      <arg name='type' type='xmlSchemaTypePtr' info='a schema type structure'/>
    </function>
    <function name='xmlSchemaFreeValidCtxt' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Free the resources associated to the schema validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
    </function>
    <function name='xmlSchemaFreeValue' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Cleanup the default XML Schemas type library</info>
      <return type='void'/>
      <arg name='value' type='xmlSchemaValPtr' info='the value to free'/>
    </function>
    <function name='xmlSchemaFreeWildcard' file='schemasInternals'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Deallocates a wildcard structure.</info>
      <return type='void'/>
      <arg name='wildcard' type='xmlSchemaWildcardPtr' info='a wildcard structure'/>
    </function>
    <function name='xmlSchemaGetBuiltInListSimpleTypeItemType' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='xmlSchemaTypePtr' info='the item type of @type as defined by the built-in datatype hierarchy of XML Schema Part 2: Datatypes, or NULL in case of an error.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the built-in simple type.'/>
    </function>
    <function name='xmlSchemaGetBuiltInType' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Gives you the type struct for a built-in type by its type id.</info>
      <return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise.'/>
      <arg name='type' type='xmlSchemaValType' info='the type of the built in type'/>
    </function>
    <function name='xmlSchemaGetFacetValueAsULong' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='unsigned long' info=''/>
      <arg name='facet' type='xmlSchemaFacetPtr' info=''/>
    </function>
    <function name='xmlSchemaGetParserErrors' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Get the callback information used to handle errors for a parser context</info>
      <return type='int' info='-1 in case of failure, 0 otherwise'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a XMl-Schema parser context'/>
      <arg name='err' type='xmlSchemaValidityErrorFunc *' info='the error callback result'/>
      <arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning callback result'/>
      <arg name='ctx' type='void **' info='contextual data for the callbacks result'/>
    </function>
    <function name='xmlSchemaGetPredefinedType' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Lookup a type in the default XML Schemas type library</info>
      <return type='xmlSchemaTypePtr' info='the type if found, NULL otherwise'/>
      <arg name='name' type='const xmlChar *' info='the type name'/>
      <arg name='ns' type='const xmlChar *' info='the URI of the namespace usually &quot;http://www.w3.org/2001/XMLSchema&quot;'/>
    </function>
    <function name='xmlSchemaGetValidErrors' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Get the error and warning callback informations</info>
      <return type='int' info='-1 in case of error and 0 otherwise'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a XML-Schema validation context'/>
      <arg name='err' type='xmlSchemaValidityErrorFunc *' info='the error function result'/>
      <arg name='warn' type='xmlSchemaValidityWarningFunc *' info='the warning function result'/>
      <arg name='ctx' type='void **' info='the functions context result'/>
    </function>
    <function name='xmlSchemaInitTypes' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Initialize the default XML Schemas type library</info>
      <return type='void'/>
    </function>
    <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='int' info=''/>
      <arg name='type' type='xmlSchemaTypePtr' info=''/>
      <arg name='facetType' type='int' info=''/>
    </function>
    <function name='xmlSchemaNewDocParserCtxt' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML Schemas parse context for that document. NB. The document may be modified during the parsing process.</info>
      <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
    </function>
    <function name='xmlSchemaNewFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Allocate a new Facet structure.</info>
      <return type='xmlSchemaFacetPtr' info='the newly allocated structure or NULL in case or error'/>
    </function>
    <function name='xmlSchemaNewMemParserCtxt' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML Schemas parse context for that memory buffer expected to contain an XML Schemas file.</info>
      <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='buffer' type='const char *' info='a pointer to a char array containing the schemas'/>
      <arg name='size' type='int' info='the size of the array'/>
    </function>
    <function name='xmlSchemaNewParserCtxt' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML Schemas parse context for that file/resource expected to contain an XML Schemas file.</info>
      <return type='xmlSchemaParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='URL' type='const char *' info='the location of the schema'/>
    </function>
    <function name='xmlSchemaNewValidCtxt' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Create an XML Schemas validation context based on the given schema</info>
      <return type='xmlSchemaValidCtxtPtr' info='the validation context or NULL in case of error'/>
      <arg name='schema' type='xmlSchemaPtr' info='a precompiled XML Schemas'/>
    </function>
    <function name='xmlSchemaParse' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances. *WARNING* this interface is highly subject to change</info>
      <return type='xmlSchemaPtr' info='the internal XML Schema structure built from the resource or NULL in case of error'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema validation context'/>
    </function>
    <function name='xmlSchemaSetParserErrors' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Set the callback functions used to handle errors for a validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema validation context'/>
      <arg name='err' type='xmlSchemaValidityErrorFunc' info='the error callback'/>
      <arg name='warn' type='xmlSchemaValidityWarningFunc' info='the warning callback'/>
      <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
    </function>
    <function name='xmlSchemaSetValidErrors' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Set the error and warning callback informations</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='err' type='xmlSchemaValidityErrorFunc' info='the error function'/>
      <arg name='warn' type='xmlSchemaValidityWarningFunc' info='the warning function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlSchemaSetValidOptions' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='int' info=''/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info=''/>
      <arg name='options' type='int' info=''/>
    </function>
    <function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the predefined type'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
      <arg name='node' type='xmlNodePtr' info='the node containing the value'/>
    </function>
    <function name='xmlSchemaValPredefTypeNodeNoNorm' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val. This one does apply any normalization to the value.</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the predefined type'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
      <arg name='node' type='xmlNodePtr' info='the node containing the value'/>
    </function>
    <function name='xmlSchemaValidCtxtGetOptions' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='int' info=''/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info=''/>
    </function>
    <function name='xmlSchemaValidateDoc' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Validate a document tree in memory.</info>
      <return type='int' info='0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a parsed document tree'/>
    </function>
    <function name='xmlSchemaValidateFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Check a value against a facet condition</info>
      <return type='int' info='0 if the element is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='base' type='xmlSchemaTypePtr' info='the base type'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
      <arg name='value' type='const xmlChar *' info='the lexical repr of the value to validate'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
    </function>
    <function name='xmlSchemaValidateLengthFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='int' info=''/>
      <arg name='type' type='xmlSchemaTypePtr' info=''/>
      <arg name='facet' type='xmlSchemaFacetPtr' info=''/>
      <arg name='value' type='const xmlChar *' info=''/>
      <arg name='val' type='xmlSchemaValPtr' info=''/>
      <arg name='length' type='unsigned long *' info=''/>
    </function>
    <function name='xmlSchemaValidateListSimpleTypeFacet' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Checks the value of a list simple type against a facet.</info>
      <return type='int' info='0 if the value is valid, a positive error code number otherwise and -1 in case of an internal error.'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
      <arg name='value' type='const xmlChar *' info='the lexical repr of the value to validate'/>
      <arg name='actualLen' type='unsigned long' info='the number of list items'/>
      <arg name='expectedLen' type='unsigned long *' info='the resulting expected number of list items'/>
    </function>
    <function name='xmlSchemaValidateOneElement' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Validate a branch of a tree, starting with the given @elem.</info>
      <return type='int' info='0 if the element and its subtree is valid, a positive error code number otherwise and -1 in case of an internal or API error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='elem' type='xmlNodePtr' info='an element node'/>
    </function>
    <function name='xmlSchemaValidatePredefinedType' file='xmlschemastypes'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Check that a value conforms to the lexical space of the predefined type. if true a value is computed and returned in @val.</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the predefined type'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='val' type='xmlSchemaValPtr *' info='the return computed value'/>
    </function>
    <function name='xmlSchemaValidateStream' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Validate a document tree in memory.</info>
      <return type='int' info='0 if the document is schemas valid, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='input' type='xmlParserInputBufferPtr' info='the input to use for reading the data'/>
      <arg name='enc' type='xmlCharEncoding' info='an optional encoding information'/>
      <arg name='sax' type='xmlSAXHandlerPtr' info='a SAX handler for the resulting events'/>
      <arg name='user_data' type='void *' info='the context to provide to the SAX handler.'/>
    </function>
    <functype name='xmlSchemaValidityErrorFunc' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='msg' type='const char *' info=''/>
      <arg name='...' type='...' info=''/>
    </functype>
    <functype name='xmlSchemaValidityWarningFunc' file='xmlschemas'>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='msg' type='const char *' info=''/>
      <arg name='...' type='...' info=''/>
    </functype>
    <function name='xmlSearchNs' file='tree'>
      <info>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don&apos;t allow to cross entities boundaries. If you don&apos;t declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</info>
      <return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='node' type='xmlNodePtr' info='the current node'/>
      <arg name='nameSpace' type='const xmlChar *' info='the namespace prefix'/>
    </function>
    <function name='xmlSearchNsByHref' file='tree'>
      <info>Search a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return NULL otherwise.</info>
      <return type='xmlNsPtr' info='the namespace pointer or NULL.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='node' type='xmlNodePtr' info='the current node'/>
      <arg name='href' type='const xmlChar *' info='the namespace value'/>
    </function>
    <function name='xmlSetBufferAllocationScheme' file='tree'>
      <info>Set the buffer allocation method.  Types are XML_BUFFER_ALLOC_EXACT - use exact sizes, keeps memory usage down XML_BUFFER_ALLOC_DOUBLEIT - double buffer when extra needed, improves performance</info>
      <return type='void'/>
      <arg name='scheme' type='xmlBufferAllocationScheme' info='allocation method to use'/>
    </function>
    <function name='xmlSetCompressMode' file='tree'>
      <info>set the default compression mode used, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</info>
      <return type='void'/>
      <arg name='mode' type='int' info='the compression ratio'/>
    </function>
    <function name='xmlSetDocCompressMode' file='tree'>
      <info>set the compression ratio for a document, ZLIB based Correct values: 0 (uncompressed) to 9 (max compression)</info>
      <return type='void'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='mode' type='int' info='the compression ratio'/>
    </function>
    <function name='xmlSetEntityReferenceFunc' file='parserInternals'>
      <info>Set the function to call call back when a xml reference has been made</info>
      <return type='void'/>
      <arg name='func' type='xmlEntityReferenceFunc' info='A valid function'/>
    </function>
    <function name='xmlSetExternalEntityLoader' file='parser'>
      <info>Changes the defaultexternal entity resolver function for the application</info>
      <return type='void'/>
      <arg name='f' type='xmlExternalEntityLoader' info='the new entity resolver function'/>
    </function>
    <function name='xmlSetFeature' file='parser'>
      <info>Change the current value of one feature of this parser instance</info>
      <return type='int' info='-1 in case or error, 0 otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML/HTML parser context'/>
      <arg name='name' type='const char *' info='the feature name'/>
      <arg name='value' type='void *' info='pointer to the location of the new value'/>
    </function>
    <function name='xmlSetGenericErrorFunc' file='xmlerror'>
      <info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. For multi-threaded applications, this must be set separately for each thread.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the new error handling context'/>
      <arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
    </function>
    <function name='xmlSetListDoc' file='tree'>
      <info>update all nodes in the list to point to the right document</info>
      <return type='void'/>
      <arg name='list' type='xmlNodePtr' info='the first element'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlSetNs' file='tree'>
      <info>Associate a namespace to a node, a posteriori.</info>
      <return type='void'/>
      <arg name='node' type='xmlNodePtr' info='a node in the document'/>
      <arg name='ns' type='xmlNsPtr' info='a namespace pointer'/>
    </function>
    <function name='xmlSetNsProp' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set (or reset) an attribute carried by a node. The ns structure must be in scope, this is not checked.</info>
      <return type='xmlAttrPtr' info='the attribute pointer.'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='ns' type='xmlNsPtr' info='the namespace definition'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlSetProp' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Set (or reset) an attribute carried by a node.</info>
      <return type='xmlAttrPtr' info='the attribute pointer.'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlSetStructuredErrorFunc' file='xmlerror'>
      <info>Function to reset the handler and the error context for out of context structured error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler For multi-threaded applications, this must be set separately for each thread.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the new error handling context'/>
      <arg name='handler' type='xmlStructuredErrorFunc' info='the new handler function'/>
    </function>
    <function name='xmlSetTreeDoc' file='tree'>
      <info>update all nodes under the tree to point to the right document</info>
      <return type='void'/>
      <arg name='tree' type='xmlNodePtr' info='the top element'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlSetupParserForBuffer' file='parser'>
      <info>Setup the parser context to parse a new buffer; Clears any prior contents from the parser context. The buffer parameter must not be NULL, but the filename parameter can be</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='buffer' type='const xmlChar *' info='a xmlChar * buffer'/>
      <arg name='filename' type='const char *' info='a file name'/>
    </function>
    <function name='xmlShell' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell This allow to load, validate, view, modify and save a document using a environment similar to a UNIX commandline.</info>
      <return type='void'/>
      <arg name='doc' type='xmlDocPtr' info='the initial document'/>
      <arg name='filename' type='char *' info='the output buffer'/>
      <arg name='input' type='xmlShellReadlineFunc' info='the line reading function'/>
      <arg name='output' type='FILE *' info='the output FILE*, defaults to stdout if NULL'/>
    </function>
    <function name='xmlShellBase' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;base&quot; dumps the current XML base of the node</info>
      <return type='int' info='0'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='arg' type='char *' info='unused'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellCat' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;cat&quot; dumps the serialization node content (XML or HTML).</info>
      <return type='int' info='0'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='arg' type='char *' info='unused'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <functype name='xmlShellCmd' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>This is a generic signature for the XML shell functions.</info>
      <return type='int' info='an int, negative returns indicating errors.'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='a shell context'/>
      <arg name='arg' type='char *' info='a string argument'/>
      <arg name='node' type='xmlNodePtr' info='a first node'/>
      <arg name='node2' type='xmlNodePtr' info='a second node'/>
    </functype>
    <function name='xmlShellDir' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;dir&quot; dumps informations about the node (namespace, attributes, content).</info>
      <return type='int' info='0'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='arg' type='char *' info='unused'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellDu' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;du&quot; show the structure of the subtree under node @tree If @tree is null, the command works on the current node.</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='arg' type='char *' info='unused'/>
      <arg name='tree' type='xmlNodePtr' info='a node defining a subtree'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellList' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;ls&quot; Does an Unix like listing of the given node (like a directory)</info>
      <return type='int' info='0'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='arg' type='char *' info='unused'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellLoad' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;load&quot; loads a new document specified by the filename</info>
      <return type='int' info='0 or -1 if loading failed'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='filename' type='char *' info='the file name'/>
      <arg name='node' type='xmlNodePtr' info='unused'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellPrintNode' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Print node to the output FILE</info>
      <return type='void'/>
      <arg name='node' type='xmlNodePtr' info='a non-null node to print to the output FILE'/>
    </function>
    <function name='xmlShellPrintXPathError' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Print the xpath error to libxml default error channel</info>
      <return type='void'/>
      <arg name='errorType' type='int' info='valid xpath error id'/>
      <arg name='arg' type='const char *' info='the argument that cause xpath to fail'/>
    </function>
    <function name='xmlShellPrintXPathResult' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Prints result to the output FILE</info>
      <return type='void'/>
      <arg name='list' type='xmlXPathObjectPtr' info='a valid result generated by an xpath evaluation'/>
    </function>
    <function name='xmlShellPwd' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;pwd&quot; Show the full path from the root to the node, if needed building thumblers when similar elements exists at a given ancestor level. The output is compatible with XPath commands.</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='buffer' type='char *' info='the output buffer'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <functype name='xmlShellReadlineFunc' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>This is a generic signature for the XML shell input function.</info>
      <return type='char *' info='a string which will be freed by the Shell.'/>
      <arg name='prompt' type='char *' info='a string prompt'/>
    </functype>
    <function name='xmlShellSave' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Implements the XML shell function &quot;save&quot; Write the current document to the filename, or it&apos;s original name</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='filename' type='char *' info='the file name (optional)'/>
      <arg name='node' type='xmlNodePtr' info='unused'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellValidate' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Implements the XML shell function &quot;validate&quot; Validate the document, if a DTD path is provided, then the validation is done against the given DTD.</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='dtd' type='char *' info='the DTD URI (optional)'/>
      <arg name='node' type='xmlNodePtr' info='unused'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlShellWrite' file='debugXML'>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <cond>LIBXML_OUTPUT_ENABLED</cond>
      <info>Implements the XML shell function &quot;write&quot; Write the current node to the filename, it saves the serialization of the subtree under the @node specified</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='ctxt' type='xmlShellCtxtPtr' info='the shell context'/>
      <arg name='filename' type='char *' info='the file name'/>
      <arg name='node' type='xmlNodePtr' info='a node in the tree'/>
      <arg name='node2' type='xmlNodePtr' info='unused'/>
    </function>
    <function name='xmlSkipBlankChars' file='parserInternals'>
      <info>skip all blanks character found at that point in the input streams. It pops up finished entities in the process if allowable at that point.</info>
      <return type='int' info='the number of space chars skipped'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
    </function>
    <function name='xmlSnprintfElementContent' file='valid'>
      <info>This will dump the content of the element content definition Intended just for the debug routine</info>
      <return type='void'/>
      <arg name='buf' type='char *' info='an output buffer'/>
      <arg name='size' type='int' info='the buffer size'/>
      <arg name='content' type='xmlElementContentPtr' info='An element table'/>
      <arg name='glob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
    </function>
    <function name='xmlSplitQName' file='parserInternals'>
      <info>parse an UTF8 encoded XML qualified name string  [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart  [NS 6] Prefix ::= NCName  [NS 7] LocalPart ::= NCName</info>
      <return type='xmlChar *' info='the local part, and prefix is updated to get the Prefix if any.'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
      <arg name='name' type='const xmlChar *' info='an XML parser context'/>
      <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
    </function>
    <function name='xmlSplitQName2' file='tree'>
      <info>parse an XML qualified name string  [NS 5] QName ::= (Prefix &apos;:&apos;)? LocalPart  [NS 6] Prefix ::= NCName  [NS 7] LocalPart ::= NCName</info>
      <return type='xmlChar *' info='NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.'/>
      <arg name='name' type='const xmlChar *' info='the full QName'/>
      <arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
    </function>
    <function name='xmlSplitQName3' file='tree'>
      <info>parse an XML qualified name string,i</info>
      <return type='const xmlChar *' info='NULL if it is not a Qualified Name, otherwise, update len with the lenght in byte of the prefix and return a pointer'/>
      <arg name='name' type='const xmlChar *' info='the full QName'/>
      <arg name='len' type='int *' info='an int *'/>
    </function>
    <function name='xmlSprintfElementContent' file='valid'>
      <info>Deprecated, unsafe, use xmlSnprintfElementContent</info>
      <return type='void'/>
      <arg name='buf' type='char *' info='an output buffer'/>
      <arg name='content' type='xmlElementContentPtr' info='An element table'/>
      <arg name='glob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
    </function>
    <function name='xmlStopParser' file='parser'>
      <info>Blocks further parser processing</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlStrEqual' file='xmlstring'>
      <info>Check if both string are equal of have same content Should be a bit more readable and faster than xmlStrEqual()</info>
      <return type='int' info='1 if they are equal, 0 if they are different'/>
      <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
      <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
    </function>
    <function name='xmlStrPrintf' file='xmlstring'>
      <info>Formats @msg and places result into @buf.</info>
      <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
      <arg name='buf' type='xmlChar *' info='the result buffer.'/>
      <arg name='len' type='int' info='the result buffer length.'/>
      <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
      <arg name='...' type='...' info='extra parameters for the message.'/>
    </function>
    <function name='xmlStrQEqual' file='xmlstring'>
      <info>Check if a QName is Equal to a given string</info>
      <return type='int' info='1 if they are equal, 0 if they are different'/>
      <arg name='pref' type='const xmlChar *' info='the prefix of the QName'/>
      <arg name='name' type='const xmlChar *' info='the localname of the QName'/>
      <arg name='str' type='const xmlChar *' info='the second xmlChar *'/>
    </function>
    <function name='xmlStrVPrintf' file='xmlstring'>
      <info>Formats @msg and places result into @buf.</info>
      <return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
      <arg name='buf' type='xmlChar *' info='the result buffer.'/>
      <arg name='len' type='int' info='the result buffer length.'/>
      <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
      <arg name='ap' type='va_list' info='extra parameters for the message.'/>
    </function>
    <function name='xmlStrcasecmp' file='xmlstring'>
      <info>a strcasecmp for xmlChar&apos;s</info>
      <return type='int' info='the integer result of the comparison'/>
      <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
      <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
    </function>
    <function name='xmlStrcasestr' file='xmlstring'>
      <info>a case-ignoring strstr for xmlChar&apos;s</info>
      <return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
      <arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
      <arg name='val' type='xmlChar *' info='the xmlChar to search (needle)'/>
    </function>
    <function name='xmlStrcat' file='xmlstring'>
      <info>a strcat for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
      <return type='xmlChar *' info='a new xmlChar * containing the concatenated string.'/>
      <arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
      <arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
    </function>
    <function name='xmlStrchr' file='xmlstring'>
      <info>a strchr for xmlChar&apos;s</info>
      <return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
      <arg name='str' type='const xmlChar *' info='the xmlChar * array'/>
      <arg name='val' type='xmlChar' info='the xmlChar to search'/>
    </function>
    <function name='xmlStrcmp' file='xmlstring'>
      <info>a strcmp for xmlChar&apos;s</info>
      <return type='int' info='the integer result of the comparison'/>
      <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
      <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
    </function>
    <function name='xmlStrdup' file='xmlstring'>
      <info>a strdup for array of xmlChar&apos;s. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of &apos;0&apos;.</info>
      <return type='xmlChar *' info='a new xmlChar * or NULL'/>
      <arg name='cur' type='const xmlChar *' info='the input xmlChar *'/>
    </function>
    <functype name='xmlStrdupFunc' file='xmlmemory'>
      <info>Signature for an strdup() implementation.</info>
      <return type='char *' info='the copy of the string or NULL in case of error.'/>
      <arg name='str' type='const char *' info='a zero terminated string'/>
    </functype>
    <function name='xmlStringCurrentChar' file='parserInternals'>
      <info>The current char value, if using UTF-8 this may actually span multiple bytes in the input buffer.</info>
      <return type='int' info='the current char value and its length'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the XML parser context'/>
      <arg name='cur' type='const xmlChar *' info='pointer to the beginning of the char'/>
      <arg name='len' type='int *' info='pointer to the length of the char read'/>
    </function>
    <function name='xmlStringDecodeEntities' file='parserInternals'>
      <info>Takes a entity string content and process to do the adequate substitutions.  [67] Reference ::= EntityRef | CharRef  [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
      <return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
      <arg name='str' type='const xmlChar *' info='the input string'/>
      <arg name='what' type='int' info='combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF'/>
      <arg name='end' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
      <arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
      <arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
    </function>
    <function name='xmlStringGetNodeList' file='tree'>
      <info>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</info>
      <return type='xmlNodePtr' info='a pointer to the first child'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='value' type='const xmlChar *' info='the value of the attribute'/>
    </function>
    <function name='xmlStringLenDecodeEntities' file='parserInternals'>
      <info>Takes a entity string content and process to do the adequate substitutions.  [67] Reference ::= EntityRef | CharRef  [69] PEReference ::= &apos;%&apos; Name &apos;;&apos;</info>
      <return type='xmlChar *' info='A newly allocated string with the substitution done. The caller must deallocate it !'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
      <arg name='str' type='const xmlChar *' info='the input string'/>
      <arg name='len' type='int' info='the string length'/>
      <arg name='what' type='int' info='combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF'/>
      <arg name='end' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
      <arg name='end2' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
      <arg name='end3' type='xmlChar' info='an end marker xmlChar, 0 if none'/>
    </function>
    <function name='xmlStringLenGetNodeList' file='tree'>
      <info>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</info>
      <return type='xmlNodePtr' info='a pointer to the first child'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='value' type='const xmlChar *' info='the value of the text'/>
      <arg name='len' type='int' info='the length of the string value'/>
    </function>
    <function name='xmlStrlen' file='xmlstring'>
      <info>length of a xmlChar&apos;s string</info>
      <return type='int' info='the number of xmlChar contained in the ARRAY.'/>
      <arg name='str' type='const xmlChar *' info='the xmlChar * array'/>
    </function>
    <function name='xmlStrncasecmp' file='xmlstring'>
      <info>a strncasecmp for xmlChar&apos;s</info>
      <return type='int' info='the integer result of the comparison'/>
      <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
      <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
      <arg name='len' type='int' info='the max comparison length'/>
    </function>
    <function name='xmlStrncat' file='xmlstring'>
      <info>a strncat for array of xmlChar&apos;s, it will extend @cur with the len first bytes of @add.</info>
      <return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated if needed and should not be freed'/>
      <arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
      <arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
      <arg name='len' type='int' info='the length of @add'/>
    </function>
    <function name='xmlStrncatNew' file='xmlstring'>
      <info>same as xmlStrncat, but creates a new string.  The original two strings are not freed.</info>
      <return type='xmlChar *' info='a new xmlChar * or NULL'/>
      <arg name='str1' type='const xmlChar *' info='first xmlChar string'/>
      <arg name='str2' type='const xmlChar *' info='second xmlChar string'/>
      <arg name='len' type='int' info='the len of @str2'/>
    </function>
    <function name='xmlStrncmp' file='xmlstring'>
      <info>a strncmp for xmlChar&apos;s</info>
      <return type='int' info='the integer result of the comparison'/>
      <arg name='str1' type='const xmlChar *' info='the first xmlChar *'/>
      <arg name='str2' type='const xmlChar *' info='the second xmlChar *'/>
      <arg name='len' type='int' info='the max comparison length'/>
    </function>
    <function name='xmlStrndup' file='xmlstring'>
      <info>a strndup for array of xmlChar&apos;s</info>
      <return type='xmlChar *' info='a new xmlChar * or NULL'/>
      <arg name='cur' type='const xmlChar *' info='the input xmlChar *'/>
      <arg name='len' type='int' info='the len of @cur'/>
    </function>
    <function name='xmlStrstr' file='xmlstring'>
      <info>a strstr for xmlChar&apos;s</info>
      <return type='const xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
      <arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
      <arg name='val' type='const xmlChar *' info='the xmlChar to search (needle)'/>
    </function>
    <function name='xmlStrsub' file='xmlstring'>
      <info>Extract a substring of a given string</info>
      <return type='xmlChar *' info='the xmlChar * for the first occurrence or NULL.'/>
      <arg name='str' type='const xmlChar *' info='the xmlChar * array (haystack)'/>
      <arg name='start' type='int' info='the index of the first char (zero based)'/>
      <arg name='len' type='int' info='the length of the substring'/>
    </function>
    <functype name='xmlStructuredErrorFunc' file='xmlerror'>
      <info>Signature of the function to use when there is an error and the module handles the new error reporting mechanism.</info>
      <return type='void'/>
      <arg name='userData' type='void *' info='user provided data for the error callback'/>
      <arg name='error' type='xmlErrorPtr' info='the error being raised.'/>
    </functype>
    <function name='xmlSubstituteEntitiesDefault' file='parser'>
      <info>Set and return the previous value for default entity support. Initially the parser always keep entity references instead of substituting entity values in the output. This function has to be used to change the default parser behavior SAX::substituteEntities() has to be used for changing that on a file by file basis.</info>
      <return type='int' info='the last value for 0 for no substitution, 1 for substitution.'/>
      <arg name='val' type='int' info='int 0 or 1'/>
    </function>
    <function name='xmlSwitchEncoding' file='parserInternals'>
      <info>change the input functions when discovering the character encoding of a given entity.</info>
      <return type='int' info='0 in case of success, -1 otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
      <arg name='enc' type='xmlCharEncoding' info='the encoding value (number)'/>
    </function>
    <function name='xmlSwitchInputEncoding' file='parserInternals'>
      <info>change the input functions when discovering the character encoding of a given entity.</info>
      <return type='int' info='0 in case of success, -1 otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
      <arg name='input' type='xmlParserInputPtr' info='the input stream'/>
      <arg name='handler' type='xmlCharEncodingHandlerPtr' info='the encoding handler'/>
    </function>
    <function name='xmlSwitchToEncoding' file='parserInternals'>
      <info>change the input functions when discovering the character encoding of a given entity.</info>
      <return type='int' info='0 in case of success, -1 otherwise'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='the parser context'/>
      <arg name='handler' type='xmlCharEncodingHandlerPtr' info='the encoding handler'/>
    </function>
    <function name='xmlTextConcat' file='tree'>
      <info>Concat the given string at the end of the existing node content</info>
      <return type='int' info='-1 in case of error, 0 otherwise'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='content' type='const xmlChar *' info='the content'/>
      <arg name='len' type='int' info='@content length'/>
    </function>
    <function name='xmlTextMerge' file='tree'>
      <info>Merge two text nodes into one</info>
      <return type='xmlNodePtr' info='the first text node augmented'/>
      <arg name='first' type='xmlNodePtr' info='the first text node'/>
      <arg name='second' type='xmlNodePtr' info='the second text node being merged'/>
    </function>
    <function name='xmlTextReaderAttributeCount' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Provides the number of attributes of the current node</info>
      <return type='int' info='0 i no attributes, -1 in case of error or the attribute count'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderBaseUri' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The base URI of the node.</info>
      <return type='xmlChar *' info='the base URI or NULL if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderClose' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>This method releases any resources allocated by the current instance changes the state to Closed and close any underlying input.</info>
      <return type='int' info='0 or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstBaseUri' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The base URI of the node.</info>
      <return type='const xmlChar *' info='the base URI or NULL if not available, the string will be deallocated with the reader'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstLocalName' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The local name of the node.</info>
      <return type='const xmlChar *' info='the local name or NULL if not available, the string will be deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstName' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The qualified name of the node, equal to Prefix :LocalName.</info>
      <return type='const xmlChar *' info='the local name or NULL if not available, the string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstNamespaceUri' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The URI defining the namespace associated with the node.</info>
      <return type='const xmlChar *' info='the namespace URI or NULL if not available, the string will be deallocated with the reader'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstPrefix' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>A shorthand reference to the namespace associated with the node.</info>
      <return type='const xmlChar *' info='the prefix or NULL if not available, the string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstString' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Get an interned string from the reader, allows for example to speedup string name comparisons</info>
      <return type='const xmlChar *' info='an interned copy of the string or NULL in case of error. The string will be deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='str' type='const xmlChar *' info='the string to intern.'/>
    </function>
    <function name='xmlTextReaderConstValue' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Provides the text value of the node if present</info>
      <return type='const xmlChar *' info='the string or NULL if not available. The result will be deallocated on the next Read() operation.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstXmlLang' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The xml:lang scope within which the node resides.</info>
      <return type='const xmlChar *' info='the xml:lang value or NULL if none exists.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderCurrentDoc' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Hacking interface allowing to get the xmlDocPtr correponding to the current document being accessed by the xmlTextReader. NOTE: as a result of this call, the reader will not destroy the associated XML document and calling xmlFreeDoc() on the result is needed once the reader parsing has finished.</info>
      <return type='xmlDocPtr' info='the xmlDocPtr or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderCurrentNode' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Hacking interface allowing to get the xmlNodePtr correponding to the current node being accessed by the xmlTextReader. This is dangerous because the underlying node may be destroyed on the next Reads.</info>
      <return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderDepth' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The depth of the node in the tree.</info>
      <return type='int' info='the depth or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <functype name='xmlTextReaderErrorFunc' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info></info>
      <return type='void'/>
      <arg name='arg' type='void *' info=''/>
      <arg name='msg' type='const char *' info=''/>
      <arg name='severity' type='xmlParserSeverities' info=''/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info=''/>
    </functype>
    <function name='xmlTextReaderExpand' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</info>
      <return type='xmlNodePtr' info='a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderGetAttribute' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Provides the value of the attribute with the specified qualified name.</info>
      <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
    </function>
    <function name='xmlTextReaderGetAttributeNo' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Provides the value of the attribute with the specified index relative to the containing element.</info>
      <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element'/>
    </function>
    <function name='xmlTextReaderGetAttributeNs' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Provides the value of the specified attribute</info>
      <return type='xmlChar *' info='a string containing the value of the specified attribute, or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
      <arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
    </function>
    <function name='xmlTextReaderGetErrorHandler' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Retrieve the error callback function and user argument.</info>
      <return type='void'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='f' type='xmlTextReaderErrorFunc *' info='the callback function or NULL is no callback has been registered'/>
      <arg name='arg' type='void **' info='a user argument'/>
    </function>
    <function name='xmlTextReaderGetParserProp' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Read the parser internal property.</info>
      <return type='int' info='the value, usually 0 or 1, or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='prop' type='int' info='the xmlParserProperties to get'/>
    </function>
    <function name='xmlTextReaderGetRemainder' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Method to get the remainder of the buffered XML. this method stops the parser, set its state to End Of File and return the input stream with what is left that the parser did not use.  The implementation is not good, the parser certainly procgressed past what&apos;s left in reader-&gt;input, and there is an allocation problem. Best would be to rewrite it differently.</info>
      <return type='xmlParserInputBufferPtr' info='the xmlParserInputBufferPtr attached to the XML or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderHasAttributes' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Whether the node has attributes.</info>
      <return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderHasValue' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Whether the node can have a text value.</info>
      <return type='int' info='1 if true, 0 if false, and -1 in case or error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsDefault' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Whether an Attribute  node was generated from the default value defined in the DTD or schema.</info>
      <return type='int' info='0 if not defaulted, 1 if defaulted, and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsEmptyElement' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Check if the current node is empty</info>
      <return type='int' info='1 if empty, 0 if not and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsValid' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Retrieve the validity status from the parser context</info>
      <return type='int' info='the flag value 1 if valid, 0 if no, and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderLocalName' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The local name of the node.</info>
      <return type='xmlChar *' info='the local name or NULL if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderLocatorBaseURI' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Obtain the base URI for the given locator.</info>
      <return type='xmlChar *' info='the base URI or NULL in case of error.'/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
    </function>
    <function name='xmlTextReaderLocatorLineNumber' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Obtain the line number for the given locator.</info>
      <return type='int' info='the line number or -1 in case of error.'/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info='the xmlTextReaderLocatorPtr used'/>
    </function>
    <function name='xmlTextReaderLookupNamespace' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Resolves a namespace prefix in the scope of the current element.</info>
      <return type='xmlChar *' info='a string containing the namespace URI to which the prefix maps or NULL in case of error. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='prefix' type='const xmlChar *' info='the prefix whose namespace URI is to be resolved. To return the default namespace, specify NULL'/>
    </function>
    <function name='xmlTextReaderMoveToAttribute' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the attribute with the specified qualified name.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='name' type='const xmlChar *' info='the qualified name of the attribute.'/>
    </function>
    <function name='xmlTextReaderMoveToAttributeNo' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the attribute with the specified index relative to the containing element.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='no' type='int' info='the zero-based index of the attribute relative to the containing element.'/>
    </function>
    <function name='xmlTextReaderMoveToAttributeNs' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the attribute with the specified local name and namespace URI.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='localName' type='const xmlChar *' info='the local name of the attribute.'/>
      <arg name='namespaceURI' type='const xmlChar *' info='the namespace URI of the attribute.'/>
    </function>
    <function name='xmlTextReaderMoveToElement' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the node that contains the current Attribute  node.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not moved'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderMoveToFirstAttribute' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the first attribute associated with the current node.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderMoveToNextAttribute' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the next attribute associated with the current node.</info>
      <return type='int' info='1 in case of success, -1 in case of error, 0 if not found'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderName' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The qualified name of the node, equal to Prefix :LocalName.</info>
      <return type='xmlChar *' info='the local name or NULL if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNamespaceUri' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The URI defining the namespace associated with the node.</info>
      <return type='xmlChar *' info='the namespace URI or NULL if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNext' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Skip to the node following the current one in document order while avoiding the subtree if any.</info>
      <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNextSibling' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Skip to the node following the current one in document order while avoiding the subtree if any. Currently implemented only for Readers built on a document</info>
      <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNodeType' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Get the node type of the current node Reference: http://dotgnu.org/pnetlib-doc/System/Xml/XmlNodeType.html</info>
      <return type='int' info='the xmlNodeType of the current node or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderNormalization' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The value indicating whether to normalize white space and attribute values. Since attribute value and end of line normalizations are a MUST in the XML specification only the value true is accepted. The broken bahaviour of accepting out of range character entities like &amp;#0; is of course not supported either.</info>
      <return type='int' info='1 or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderPrefix' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>A shorthand reference to the namespace associated with the node.</info>
      <return type='xmlChar *' info='the prefix or NULL if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderPreserve' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
      <return type='xmlNodePtr' info='the xmlNodePtr or NULL in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderPreservePattern' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
      <return type='int' info='a positive number in case of success and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='pattern' type='const xmlChar *' info='an XPath subset pattern'/>
      <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
    </function>
    <function name='xmlTextReaderQuoteChar' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The quotation mark character used to enclose the value of an attribute.</info>
      <return type='int' info='&quot; or &apos; and -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderRead' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Moves the position of the current instance to the next node in the stream, exposing its properties.</info>
      <return type='int' info='1 if the node was read successfully, 0 if there is no more nodes to read, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadAttributeValue' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Parses an attribute value into one or more Text and EntityReference nodes.</info>
      <return type='int' info='1 in case of success, 0 if the reader was not positionned on an ttribute node or all the attribute values have been read, or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadInnerXml' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Reads the contents of the current node, including child nodes and markup.</info>
      <return type='xmlChar *' info='a string containing the XML content, or NULL if the current node is neither an element nor attribute, or has no child nodes. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadOuterXml' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Reads the contents of the current node, including child nodes and markup.</info>
      <return type='xmlChar *' info='a string containing the XML content, or NULL if the current node is neither an element nor attribute, or has no child nodes. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadState' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Gets the read state of the reader.</info>
      <return type='int' info='the state value, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderReadString' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Reads the contents of an element or a text node as a string.</info>
      <return type='xmlChar *' info='a string containing the contents of the Element or Text node, or NULL if the reader is positioned on any other type of node. The string must be deallocated by the caller.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderRelaxNGSetSchema' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then RelaxNG validation is desactivated. @ The @schema should not be freed until the reader is deallocated or its use has been deactivated.</info>
      <return type='int' info='0 in case the RelaxNG validation could be (des)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='schema' type='xmlRelaxNGPtr' info='a precompiled RelaxNG schema'/>
    </function>
    <function name='xmlTextReaderRelaxNGValidate' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <cond>LIBXML_SCHEMAS_ENABLED</cond>
      <info>Use RelaxNG to validate the document as it is processed. Activation is only possible before the first Read(). if @rng is NULL, then RelaxNG validation is desactivated.</info>
      <return type='int' info='0 in case the RelaxNG validation could be (des)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='rng' type='const char *' info='the path to a RelaxNG schema or NULL'/>
    </function>
    <function name='xmlTextReaderSetErrorHandler' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Register a callback function that will be called on error and warnings.  If @f is NULL, the default error and warning handlers are restored.</info>
      <return type='void'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='f' type='xmlTextReaderErrorFunc' info='the callback function to call on error and warnings'/>
      <arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
    </function>
    <function name='xmlTextReaderSetParserProp' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Change the parser processing behaviour by changing some of its internal properties. Note that some properties can only be changed before any read has been done.</info>
      <return type='int' info='0 if the call was successful, or -1 in case of error'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='prop' type='int' info='the xmlParserProperties to set'/>
      <arg name='value' type='int' info='usually 0 or 1 to (de)activate it'/>
    </function>
    <function name='xmlTextReaderSetStructuredErrorHandler' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Register a callback function that will be called on error and warnings.  If @f is NULL, the default error and warning handlers are restored.</info>
      <return type='void'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='f' type='xmlStructuredErrorFunc' info='the callback function to call on error and warnings'/>
      <arg name='arg' type='void *' info='a user argument to pass to the callback function'/>
    </function>
    <function name='xmlTextReaderValue' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>Provides the text value of the node if present</info>
      <return type='xmlChar *' info='the string or NULL if not available. The result must be deallocated with xmlFree()'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderXmlLang' file='xmlreader'>
      <cond>LIBXML_READER_ENABLED</cond>
      <info>The xml:lang scope within which the node resides.</info>
      <return type='xmlChar *' info='the xml:lang value or NULL if none exists.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextWriterEndAttribute' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End the current xml element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndCDATA' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End an xml CDATA section.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndComment' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End the current xml coment.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndDTD' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End an xml DTD.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndDTDAttlist' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End an xml DTD attribute list.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndDTDElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End an xml DTD element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndDTDEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End an xml DTD entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndDocument' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End an xml document. All open elements are closed</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End the current xml element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndPI' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End the current xml PI.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterFlush' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Flush the output buffer.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterFullEndElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>End the current xml element. Writes an end tag even if the element is empty</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterSetIndent' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Set indentation output. indent = 0 do not indentation. indent &gt; 0 do indentation.</info>
      <return type='int' info='-1 on error or 0 otherwise.'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='indent' type='int' info='do indentation?'/>
    </function>
    <function name='xmlTextWriterSetIndentString' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Set string indentation.</info>
      <return type='int' info='-1 on error or 0 otherwise.'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='str' type='const xmlChar *' info='the xmlChar string'/>
    </function>
    <function name='xmlTextWriterStartAttribute' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml attribute.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='element name'/>
    </function>
    <function name='xmlTextWriterStartAttributeNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml attribute with namespace support.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix or NULL'/>
      <arg name='name' type='const xmlChar *' info='element local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
    </function>
    <function name='xmlTextWriterStartCDATA' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml CDATA section.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterStartComment' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml comment.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterStartDTD' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml DTD.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
    </function>
    <function name='xmlTextWriterStartDTDAttlist' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml DTD ATTLIST.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
    </function>
    <function name='xmlTextWriterStartDTDElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml DTD element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
    </function>
    <function name='xmlTextWriterStartDTDEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml DTD ATTLIST.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
    </function>
    <function name='xmlTextWriterStartDocument' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start a new xml document</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='version' type='const char *' info='the xml version (&quot;1.0&quot;) or NULL for default (&quot;1.0&quot;)'/>
      <arg name='encoding' type='const char *' info='the encoding or NULL for default'/>
      <arg name='standalone' type='const char *' info='&quot;yes&quot; or &quot;no&quot; or NULL for default'/>
    </function>
    <function name='xmlTextWriterStartElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='element name'/>
    </function>
    <function name='xmlTextWriterStartElementNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml element with namespace support.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix or NULL'/>
      <arg name='name' type='const xmlChar *' info='element local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI or NULL'/>
    </function>
    <function name='xmlTextWriterStartPI' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Start an xml PI.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='target' type='const xmlChar *' info='PI target'/>
    </function>
    <function name='xmlTextWriterWriteAttribute' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml attribute.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='attribute name'/>
      <arg name='content' type='const xmlChar *' info='attribute content'/>
    </function>
    <function name='xmlTextWriterWriteAttributeNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml attribute.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
      <arg name='name' type='const xmlChar *' info='attribute local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
      <arg name='content' type='const xmlChar *' info='attribute content'/>
    </function>
    <function name='xmlTextWriterWriteBase64' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an base64 encoded xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='data' type='const char *' info='binary data'/>
      <arg name='start' type='int' info='the position within the data of the first byte to encode'/>
      <arg name='len' type='int' info='the number of bytes to encode'/>
    </function>
    <function name='xmlTextWriterWriteBinHex' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a BinHex encoded xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='data' type='const char *' info='binary data'/>
      <arg name='start' type='int' info='the position within the data of the first byte to encode'/>
      <arg name='len' type='int' info='the number of bytes to encode'/>
    </function>
    <function name='xmlTextWriterWriteCDATA' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml CDATA.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='content' type='const xmlChar *' info='CDATA content'/>
    </function>
    <function name='xmlTextWriterWriteComment' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml comment.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='content' type='const xmlChar *' info='comment string'/>
    </function>
    <function name='xmlTextWriterWriteDTD' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
      <arg name='subset' type='const xmlChar *' info='string content of the DTD'/>
    </function>
    <function name='xmlTextWriterWriteDTDAttlist' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD ATTLIST.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
      <arg name='content' type='const xmlChar *' info='content of the ATTLIST'/>
    </function>
    <function name='xmlTextWriterWriteDTDElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
      <arg name='content' type='const xmlChar *' info='content of the element'/>
    </function>
    <function name='xmlTextWriterWriteDTDEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
      <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
      <arg name='content' type='const xmlChar *' info='content of the entity'/>
    </function>
    <function name='xmlTextWriterWriteDTDExternalEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD external entity. The entity must have been started with xmlTextWriterStartDTDEntity</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
      <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
    </function>
    <function name='xmlTextWriterWriteDTDExternalEntityContents' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write the contents of a DTD external entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
      <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
    </function>
    <function name='xmlTextWriterWriteDTDInternalEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD internal entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
      <arg name='content' type='const xmlChar *' info='content of the entity'/>
    </function>
    <function name='xmlTextWriterWriteDTDNotation' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the xml notation'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
    </function>
    <function name='xmlTextWriterWriteElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='element name'/>
      <arg name='content' type='const xmlChar *' info='element content'/>
    </function>
    <function name='xmlTextWriterWriteElementNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml element with namespace support.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
      <arg name='name' type='const xmlChar *' info='element local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
      <arg name='content' type='const xmlChar *' info='element content'/>
    </function>
    <function name='xmlTextWriterWriteFormatAttribute' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml attribute.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='attribute name'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatAttributeNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml attribute.with namespace support</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
      <arg name='name' type='const xmlChar *' info='attribute local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatCDATA' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml CDATA.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatComment' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml comment.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatDTD' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD with a formatted markup declarations part.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatDTDAttlist' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted DTD ATTLIST.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatDTDElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted DTD element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatDTDInternalEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted DTD internal entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='element name'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatElementNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml element with namespace support.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
      <arg name='name' type='const xmlChar *' info='element local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatPI' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted PI.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='target' type='const xmlChar *' info='PI target'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatRaw' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted raw xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWriteFormatString' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='...' type='...' info='extra parameters for the format'/>
    </function>
    <function name='xmlTextWriterWritePI' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml PI.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='target' type='const xmlChar *' info='PI target'/>
      <arg name='content' type='const xmlChar *' info='PI content'/>
    </function>
    <function name='xmlTextWriterWriteRaw' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a raw xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='content' type='const xmlChar *' info='text string'/>
    </function>
    <function name='xmlTextWriterWriteRawLen' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml text. TODO: what about entities and special chars??</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='content' type='const xmlChar *' info='text string'/>
      <arg name='len' type='int' info='length of the text string'/>
    </function>
    <function name='xmlTextWriterWriteString' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='content' type='const xmlChar *' info='text string'/>
    </function>
    <function name='xmlTextWriterWriteVFormatAttribute' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml attribute.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='attribute name'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatAttributeNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml attribute.with namespace support</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
      <arg name='name' type='const xmlChar *' info='attribute local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatCDATA' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml CDATA.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatComment' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write an xml comment.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatDTD' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a DTD with a formatted markup declarations part.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD'/>
      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatDTDAttlist' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted DTD ATTLIST.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD ATTLIST'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatDTDElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted DTD element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD element'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatDTDInternalEntity' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted DTD internal entity.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
      <arg name='name' type='const xmlChar *' info='the name of the DTD entity'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatElement' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml element.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='name' type='const xmlChar *' info='element name'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatElementNS' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml element with namespace support.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='prefix' type='const xmlChar *' info='namespace prefix'/>
      <arg name='name' type='const xmlChar *' info='element local name'/>
      <arg name='namespaceURI' type='const xmlChar *' info='namespace URI'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatPI' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml PI.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='target' type='const xmlChar *' info='PI target'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatRaw' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted raw xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlTextWriterWriteVFormatString' file='xmlwriter'>
      <cond>LIBXML_WRITER_ENABLED</cond>
      <info>Write a formatted xml text.</info>
      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
      <arg name='format' type='const char *' info='format string (see printf)'/>
      <arg name='argptr' type='va_list' info='pointer to the first member of the variable argument list.'/>
    </function>
    <function name='xmlThrDefBufferAllocScheme' file='globals'>
      <info></info>
      <return type='xmlBufferAllocationScheme' info=''/>
      <arg name='v' type='xmlBufferAllocationScheme' info=''/>
    </function>
    <function name='xmlThrDefDefaultBufferSize' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefDeregisterNodeDefault' file='globals'>
      <info></info>
      <return type='xmlDeregisterNodeFunc' info=''/>
      <arg name='func' type='xmlDeregisterNodeFunc' info=''/>
    </function>
    <function name='xmlThrDefDoValidityCheckingDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefGetWarningsDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefIndentTreeOutput' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefKeepBlanksDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefLineNumbersDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefLoadExtDtdDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefOutputBufferCreateFilenameDefault' file='globals'>
      <info></info>
      <return type='xmlOutputBufferCreateFilenameFunc' info=''/>
      <arg name='func' type='xmlOutputBufferCreateFilenameFunc' info=''/>
    </function>
    <function name='xmlThrDefParserDebugEntities' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefParserInputBufferCreateFilenameDefault' file='globals'>
      <info></info>
      <return type='xmlParserInputBufferCreateFilenameFunc' info=''/>
      <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
    </function>
    <function name='xmlThrDefPedanticParserDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefRegisterNodeDefault' file='globals'>
      <info></info>
      <return type='xmlRegisterNodeFunc' info=''/>
      <arg name='func' type='xmlRegisterNodeFunc' info=''/>
    </function>
    <function name='xmlThrDefSaveNoEmptyTags' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefSetGenericErrorFunc' file='globals'>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='handler' type='xmlGenericErrorFunc' info=''/>
    </function>
    <function name='xmlThrDefSetStructuredErrorFunc' file='globals'>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='handler' type='xmlStructuredErrorFunc' info=''/>
    </function>
    <function name='xmlThrDefSubstituteEntitiesDefaultValue' file='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefTreeIndentString' file='globals'>
      <info></info>
      <return type='const char *' info=''/>
      <arg name='v' type='const char *' info=''/>
    </function>
    <function name='xmlUCSIsAegeanNumbers' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of AegeanNumbers UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsAlphabeticPresentationForms' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of AlphabeticPresentationForms UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsArabic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Arabic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsArabicPresentationFormsA' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of ArabicPresentationForms-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsArabicPresentationFormsB' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of ArabicPresentationForms-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsArmenian' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Armenian UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsArrows' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Arrows UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBasicLatin' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of BasicLatin UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBengali' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Bengali UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBlock' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of the UCS Block</info>
      <return type='int' info='1 if true, 0 if false and -1 on unknown block'/>
      <arg name='code' type='int' info='UCS code point'/>
      <arg name='block' type='const char *' info='UCS block name'/>
    </function>
    <function name='xmlUCSIsBlockElements' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of BlockElements UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBopomofo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Bopomofo UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBopomofoExtended' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of BopomofoExtended UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBoxDrawing' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of BoxDrawing UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBraillePatterns' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of BraillePatterns UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsBuhid' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Buhid UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsByzantineMusicalSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of ByzantineMusicalSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKCompatibility' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKCompatibility UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKCompatibilityForms' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKCompatibilityForms UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKCompatibilityIdeographs' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKCompatibilityIdeographs UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKCompatibilityIdeographsSupplement' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKCompatibilityIdeographsSupplement UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKRadicalsSupplement' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKRadicalsSupplement UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKSymbolsandPunctuation' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKSymbolsandPunctuation UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKUnifiedIdeographs' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKUnifiedIdeographs UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKUnifiedIdeographsExtensionA' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKUnifiedIdeographsExtensionA UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCJKUnifiedIdeographsExtensionB' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CJKUnifiedIdeographsExtensionB UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCat' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of the UCS Category</info>
      <return type='int' info='1 if true, 0 if false and -1 on unknown category'/>
      <arg name='code' type='int' info='UCS code point'/>
      <arg name='cat' type='const char *' info='UCS Category name'/>
    </function>
    <function name='xmlUCSIsCatC' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of C UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatCc' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Cc UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatCf' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Cf UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatCo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Co UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatCs' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Cs UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatL' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of L UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatLl' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Ll UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatLm' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Lm UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatLo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Lo UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatLt' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Lt UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatLu' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Lu UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatM' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of M UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatMc' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Mc UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatMe' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Me UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatMn' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Mn UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatN' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of N UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatNd' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Nd UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatNl' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Nl UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatNo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of No UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatP' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of P UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPc' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Pc UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPd' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Pd UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPe' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Pe UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPf' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Pf UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPi' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Pi UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Po UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatPs' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Ps UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatS' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of S UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatSc' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Sc UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatSk' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Sk UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatSm' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Sm UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatSo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of So UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatZ' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Z UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatZl' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Zl UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatZp' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Zp UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCatZs' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Zs UCS Category</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCherokee' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Cherokee UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCombiningDiacriticalMarks' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CombiningDiacriticalMarks UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCombiningDiacriticalMarksforSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CombiningDiacriticalMarksforSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCombiningHalfMarks' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CombiningHalfMarks UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCombiningMarksforSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CombiningMarksforSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsControlPictures' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of ControlPictures UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCurrencySymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CurrencySymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCypriotSyllabary' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CypriotSyllabary UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCyrillic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Cyrillic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsCyrillicSupplement' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of CyrillicSupplement UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsDeseret' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Deseret UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsDevanagari' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Devanagari UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsDingbats' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Dingbats UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsEnclosedAlphanumerics' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of EnclosedAlphanumerics UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsEnclosedCJKLettersandMonths' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of EnclosedCJKLettersandMonths UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsEthiopic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Ethiopic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGeneralPunctuation' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of GeneralPunctuation UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGeometricShapes' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of GeometricShapes UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGeorgian' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Georgian UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGothic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Gothic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGreek' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Greek UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGreekExtended' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of GreekExtended UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGreekandCoptic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of GreekandCoptic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGujarati' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Gujarati UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsGurmukhi' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Gurmukhi UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHalfwidthandFullwidthForms' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of HalfwidthandFullwidthForms UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHangulCompatibilityJamo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of HangulCompatibilityJamo UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHangulJamo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of HangulJamo UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHangulSyllables' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of HangulSyllables UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHanunoo' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Hanunoo UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHebrew' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Hebrew UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHighPrivateUseSurrogates' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of HighPrivateUseSurrogates UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHighSurrogates' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of HighSurrogates UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsHiragana' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Hiragana UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsIPAExtensions' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of IPAExtensions UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsIdeographicDescriptionCharacters' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of IdeographicDescriptionCharacters UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKanbun' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Kanbun UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKangxiRadicals' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of KangxiRadicals UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKannada' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Kannada UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKatakana' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Katakana UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKatakanaPhoneticExtensions' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of KatakanaPhoneticExtensions UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKhmer' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Khmer UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsKhmerSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of KhmerSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLao' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Lao UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLatin1Supplement' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Latin-1Supplement UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLatinExtendedA' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LatinExtended-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLatinExtendedAdditional' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LatinExtendedAdditional UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLatinExtendedB' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LatinExtended-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLetterlikeSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LetterlikeSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLimbu' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Limbu UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLinearBIdeograms' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LinearBIdeograms UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLinearBSyllabary' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LinearBSyllabary UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsLowSurrogates' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of LowSurrogates UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMalayalam' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Malayalam UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMathematicalAlphanumericSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MathematicalAlphanumericSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMathematicalOperators' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MathematicalOperators UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousMathematicalSymbolsA' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MiscellaneousMathematicalSymbols-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousMathematicalSymbolsB' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MiscellaneousMathematicalSymbols-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MiscellaneousSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousSymbolsandArrows' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MiscellaneousSymbolsandArrows UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMiscellaneousTechnical' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MiscellaneousTechnical UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMongolian' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Mongolian UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMusicalSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of MusicalSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsMyanmar' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Myanmar UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsNumberForms' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of NumberForms UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOgham' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Ogham UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOldItalic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of OldItalic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOpticalCharacterRecognition' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of OpticalCharacterRecognition UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOriya' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Oriya UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsOsmanya' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Osmanya UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsPhoneticExtensions' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of PhoneticExtensions UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsPrivateUse' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of PrivateUse UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsPrivateUseArea' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of PrivateUseArea UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsRunic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Runic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsShavian' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Shavian UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSinhala' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Sinhala UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSmallFormVariants' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SmallFormVariants UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSpacingModifierLetters' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SpacingModifierLetters UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSpecials' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Specials UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSuperscriptsandSubscripts' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SuperscriptsandSubscripts UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementalArrowsA' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SupplementalArrows-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementalArrowsB' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SupplementalArrows-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementalMathematicalOperators' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SupplementalMathematicalOperators UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementaryPrivateUseAreaA' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SupplementaryPrivateUseArea-A UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSupplementaryPrivateUseAreaB' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of SupplementaryPrivateUseArea-B UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsSyriac' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Syriac UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTagalog' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Tagalog UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTagbanwa' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Tagbanwa UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTags' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Tags UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTaiLe' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of TaiLe UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTaiXuanJingSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of TaiXuanJingSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTamil' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Tamil UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTelugu' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Telugu UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsThaana' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Thaana UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsThai' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Thai UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsTibetan' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Tibetan UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsUgaritic' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of Ugaritic UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsUnifiedCanadianAboriginalSyllabics' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of UnifiedCanadianAboriginalSyllabics UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsVariationSelectors' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of VariationSelectors UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsVariationSelectorsSupplement' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of VariationSelectorsSupplement UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsYiRadicals' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of YiRadicals UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsYiSyllables' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of YiSyllables UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlUCSIsYijingHexagramSymbols' file='xmlunicode'>
      <cond>LIBXML_UNICODE_ENABLED</cond>
      <info>Check whether the character is part of YijingHexagramSymbols UCS Block</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='code' type='int' info='UCS code point'/>
    </function>
    <function name='xmlURIEscape' file='uri'>
      <info>Escaping routine, does not do validity checks ! It will try to escape the chars needing this, but this is heuristic based it&apos;s impossible to be sure.</info>
      <return type='xmlChar *' info='an copy of the string, but escaped  25 May 2001 Uses xmlParseURI and xmlURIEscapeStr to try to escape correctly according to RFC2396. - Carl Douglas'/>
      <arg name='str' type='const xmlChar *' info='the string of the URI to escape'/>
    </function>
    <function name='xmlURIEscapeStr' file='uri'>
      <info>This routine escapes a string to hex, ignoring reserved characters (a-z) and the characters in the exception list.</info>
      <return type='xmlChar *' info='a new escaped string or NULL in case of error.'/>
      <arg name='str' type='const xmlChar *' info='string to escape'/>
      <arg name='list' type='const xmlChar *' info='exception list string of chars not to escape'/>
    </function>
    <function name='xmlURIUnescapeString' file='uri'>
      <info>Unescaping routine, does not do validity checks ! Output is direct unsigned char translation of %XX values (no encoding)</info>
      <return type='char *' info='an copy of the string, but unescaped'/>
      <arg name='str' type='const char *' info='the string to unescape'/>
      <arg name='len' type='int' info='the length in bytes to unescape (or &lt;= 0 to indicate full string)'/>
      <arg name='target' type='char *' info='optional destination buffer'/>
    </function>
    <function name='xmlUTF8Charcmp' file='xmlstring'>
      <info>compares the two UCS4 values</info>
      <return type='int' info='result of the compare as with xmlStrncmp'/>
      <arg name='utf1' type='const xmlChar *' info='pointer to first UTF8 char'/>
      <arg name='utf2' type='const xmlChar *' info='pointer to second UTF8 char'/>
    </function>
    <function name='xmlUTF8Size' file='xmlstring'>
      <info>calculates the internal size of a UTF8 character</info>
      <return type='int' info='the numbers of bytes in the character, -1 on format error'/>
      <arg name='utf' type='const xmlChar *' info='pointer to the UTF8 character'/>
    </function>
    <function name='xmlUTF8Strlen' file='xmlstring'>
      <info>compute the length of an UTF8 string, it doesn&apos;t do a full UTF8 checking of the content of the string.</info>
      <return type='int' info='the number of characters in the string or -1 in case of error'/>
      <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
    </function>
    <function name='xmlUTF8Strloc' file='xmlstring'>
      <info>a function to provide the relative location of a UTF8 char</info>
      <return type='int' info='the relative character position of the desired char or -1 if not found'/>
      <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
      <arg name='utfchar' type='const xmlChar *' info='the UTF8 character to be found'/>
    </function>
    <function name='xmlUTF8Strndup' file='xmlstring'>
      <info>a strndup for array of UTF8&apos;s</info>
      <return type='xmlChar *' info='a new UTF8 * or NULL'/>
      <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
      <arg name='len' type='int' info='the len of @utf (in chars)'/>
    </function>
    <function name='xmlUTF8Strpos' file='xmlstring'>
      <info>a function to provide the equivalent of fetching a character from a string array</info>
      <return type='xmlChar *' info='a pointer to the UTF8 character or NULL'/>
      <arg name='utf' type='const xmlChar *' info='the input UTF8 *'/>
      <arg name='pos' type='int' info='the position of the desired UTF8 char (in chars)'/>
    </function>
    <function name='xmlUTF8Strsize' file='xmlstring'>
      <info>storage size of an UTF8 string</info>
      <return type='int' info='the storage size of the first &apos;len&apos; characters of ARRAY'/>
      <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
      <arg name='len' type='int' info='the number of characters in the array'/>
    </function>
    <function name='xmlUTF8Strsub' file='xmlstring'>
      <info>Create a substring from a given UTF-8 string Note:  positions are given in units of UTF-8 chars</info>
      <return type='xmlChar *' info='a pointer to a newly created string or NULL if any problem'/>
      <arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
      <arg name='start' type='int' info='relative pos of first char'/>
      <arg name='len' type='int' info='total number to copy'/>
    </function>
    <function name='xmlUnlinkNode' file='tree'>
      <info>Unlink a node from it&apos;s current context, the node is not freed</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlUnlockLibrary' file='threads'>
      <info>xmlUnlockLibrary() is used to release a re-entrant lock on the libxml2 library.</info>
      <return type='void'/>
    </function>
    <function name='xmlUnsetNsProp' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Remove an attribute carried by a node.</info>
      <return type='int' info='0 if successful, -1 if not found'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='ns' type='xmlNsPtr' info='the namespace definition'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlUnsetProp' file='tree'>
      <cond>LIBXML_TREE_ENABLED</cond>
      <info>Remove an attribute carried by a node.</info>
      <return type='int' info='0 if successful, -1 if not found'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
    </function>
    <function name='xmlValidBuildContentModel' file='valid'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>(Re)Build the automata associated to the content model of this element</info>
      <return type='int' info='1 in case of success, 0 in case of error'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='a validation context'/>
      <arg name='elem' type='xmlElementPtr' info='an element declaration node'/>
    </function>
    <function name='xmlValidCtxtNormalizeAttributeValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Does the validation related extra step of the normalization of attribute values:  If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character.  Also  check VC: Standalone Document Declaration in P32, and update ctxt-&gt;valid accordingly</info>
      <return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context or NULL'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='elem' type='xmlNodePtr' info='the parent'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlValidGetPotentialChildren' file='valid'>
      <info>Build/extend a list of  potential children allowed by the content tree</info>
      <return type='int' info='the number of element in the list, or -1 in case of error.'/>
      <arg name='ctree' type='xmlElementContent *' info='an element content tree'/>
      <arg name='list' type='const xmlChar **' info='an array to store the list of child names'/>
      <arg name='len' type='int *' info='a pointer to the number of element in the list'/>
      <arg name='max' type='int' info='the size of the array'/>
    </function>
    <function name='xmlValidGetValidElements' file='valid'>
      <info>This function returns the list of authorized children to insert within an existing tree while respecting the validity constraints forced by the Dtd. The insertion point is defined using @prev and @next in the following ways: to insert before &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node, ... to insert next &apos;node&apos;: xmlValidGetValidElements(node, node-&gt;next, ... to replace &apos;node&apos;: xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ... to prepend a child to &apos;node&apos;: xmlValidGetValidElements(NULL, node-&gt;childs, to append a child to &apos;node&apos;: xmlValidGetValidElements(node-&gt;last, NULL, ...  pointers to the element names are inserted at the beginning of the array and do not need to be freed.</info>
      <return type='int' info='the number of element in the list, or -1 in case of error. If the function returns the value @max the caller is invited to grow the receiving array and retry.'/>
      <arg name='prev' type='xmlNode *' info='an element to insert after'/>
      <arg name='next' type='xmlNode *' info='an element to insert next'/>
      <arg name='names' type='const xmlChar **' info='an array to store the list of child names'/>
      <arg name='max' type='int' info='the size of the array'/>
    </function>
    <function name='xmlValidNormalizeAttributeValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Does the validation related extra step of the normalization of attribute values:  If the declared value is not CDATA, then the XML processor must further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by single space (#x20) character.</info>
      <return type='xmlChar *' info='a new normalized string if normalization is needed, NULL otherwise the caller must free the returned value.'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='elem' type='xmlNodePtr' info='the parent'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlValidateAttributeDecl' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a single attribute definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Default Legal ] - [ VC: Enumeration ] - [ VC: ID Attribute Default ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='attr' type='xmlAttributePtr' info='an attribute definition'/>
    </function>
    <function name='xmlValidateAttributeValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Validate that the given attribute value match  the proper production  [ VC: ID ] Values of type ID must match the Name production....  [ VC: IDREF ] Values of type IDREF must match the Name production, and values of type IDREFS must match Names ...  [ VC: Entity Name ] Values of type ENTITY must match the Name production, values of type ENTITIES must match Names ...  [ VC: Name Token ] Values of type NMTOKEN must match the Nmtoken production; values of type NMTOKENS must match Nmtokens.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='type' type='xmlAttributeType' info='an attribute type'/>
      <arg name='value' type='const xmlChar *' info='an attribute value'/>
    </function>
    <function name='xmlValidateDocument' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate the document instance  basically it does the all the checks described by the XML Rec i.e. validates the internal and external subset (if present) and validate the document tree.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateDocumentFinal' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Does the final step for the document validation once all the incremental validation steps have been completed  basically it does the following checks described by the XML Rec  Check all the IDREF/IDREFS attributes definition for validity</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateDtd' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate the document against the dtd instance  basically it does check all the definitions in the DtD.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='dtd' type='xmlDtdPtr' info='a dtd instance'/>
    </function>
    <function name='xmlValidateDtdFinal' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Does the final step for the dtds validation once all the subsets have been parsed  basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</info>
      <return type='int' info='1 if valid or 0 if invalid and -1 if not well-formed'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateElement' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate the subtree under an element</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlValidateElementDecl' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlElementPtr' info='an element definition'/>
    </function>
    <function name='xmlValidateNCName' file='tree'>
      <info>Check that a value conforms to the lexical space of NCName</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateNMToken' file='tree'>
      <info>Check that a value conforms to the lexical space of NMToken</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateName' file='tree'>
      <info>Check that a value conforms to the lexical space of Name</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateNameValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Validate that the given value match Name production</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Name value'/>
    </function>
    <function name='xmlValidateNamesValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Validate that the given value match Names production</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Names value'/>
    </function>
    <function name='xmlValidateNmtokenValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Validate that the given value match Nmtoken production  [ VC: Name Token ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Nmtoken value'/>
    </function>
    <function name='xmlValidateNmtokensValue' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Validate that the given value match Nmtokens production  [ VC: Name Token ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Nmtokens value'/>
    </function>
    <function name='xmlValidateNotationDecl' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='nota' type='xmlNotationPtr' info='a notation definition'/>
    </function>
    <function name='xmlValidateNotationUse' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='notationName' type='const xmlChar *' info='the notation name to check'/>
    </function>
    <function name='xmlValidateOneAttribute' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a single attribute for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='attr' type='xmlAttrPtr' info='an attribute instance'/>
      <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
    </function>
    <function name='xmlValidateOneElement' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a single element and it&apos;s attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each attribute present.  The ID/IDREF checkings are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlValidateOneNamespace' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
      <arg name='ns' type='xmlNsPtr' info='an namespace declaration instance'/>
      <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
    </function>
    <function name='xmlValidatePopElement' file='valid'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Pop the element end from the validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
    </function>
    <function name='xmlValidatePushCData' file='valid'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>check the CData parsed for validation in the current stack</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='data' type='const xmlChar *' info='some character data read'/>
      <arg name='len' type='int' info='the lenght of the data'/>
    </function>
    <function name='xmlValidatePushElement' file='valid'>
      <cond>LIBXML_REGEXP_ENABLED</cond>
      <info>Push a new element start on the validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
    </function>
    <function name='xmlValidateQName' file='tree'>
      <info>Check that a value conforms to the lexical space of QName</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateRoot' file='valid'>
      <cond>LIBXML_VALID_ENABLED</cond>
      <info>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn&apos;t try to recurse or apply other check to the element</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <functype name='xmlValidityErrorFunc' file='valid'>
      <info>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
      <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
      <arg name='...' type='...' info='remaining arguments to the format'/>
    </functype>
    <functype name='xmlValidityWarningFunc' file='valid'>
      <info>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
      <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
      <arg name='...' type='...' info='remaining arguments to the format'/>
    </functype>
    <function name='xmlXIncludeFreeContext' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Free an XInclude context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='the XInclude context'/>
    </function>
    <function name='xmlXIncludeNewContext' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Creates a new XInclude context</info>
      <return type='xmlXIncludeCtxtPtr' info='the new set'/>
      <arg name='doc' type='xmlDocPtr' info='an XML Document'/>
    </function>
    <function name='xmlXIncludeProcess' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
    </function>
    <function name='xmlXIncludeProcessFlags' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXIncludeProcessNode' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an existing XInclude context'/>
      <arg name='node' type='xmlNodePtr' info='a node in an XML document'/>
    </function>
    <function name='xmlXIncludeProcessTree' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Implement the XInclude substitution for the given subtree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
    </function>
    <function name='xmlXIncludeProcessTreeFlags' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Implement the XInclude substitution for the given subtree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXIncludeSetFlags' file='xinclude'>
      <cond>LIBXML_XINCLUDE_ENABLED</cond>
      <info>Set the flags used for further processing of XML resources.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an XInclude processing context'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXPathAddValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <functype name='xmlXPathAxisFunc' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>An axis traversal function. To traverse an axis, the engine calls the first time with cur == NULL and repeat until the function returns NULL indicating the end of the axis traversal.</info>
      <return type='xmlXPathObjectPtr' info='the next node in that axis or NULL if at the end of the axis.'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interpreter context'/>
      <arg name='cur' type='xmlXPathObjectPtr' info='the previous node being explored on that axis'/>
    </functype>
    <function name='xmlXPathBooleanFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathCastBooleanToNumber' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a boolean to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='int' info='a boolean'/>
    </function>
    <function name='xmlXPathCastBooleanToString' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a boolean to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='val' type='int' info='a boolean'/>
    </function>
    <function name='xmlXPathCastNodeSetToBoolean' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a node-set to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeSetToNumber' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a node-set to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeSetToString' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a node-set to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeToNumber' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a node to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathCastNodeToString' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a node to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathCastNumberToBoolean' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a number to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='double' info='a number'/>
    </function>
    <function name='xmlXPathCastNumberToString' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a number to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='val' type='double' info='a number'/>
    </function>
    <function name='xmlXPathCastStringToBoolean' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a string to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='const xmlChar *' info='a string'/>
    </function>
    <function name='xmlXPathCastStringToNumber' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts a string to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='const xmlChar *' info='a string'/>
    </function>
    <function name='xmlXPathCastToBoolean' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts an XPath object to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCastToNumber' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts an XPath object to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCastToString' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts an existing object to its string() equivalent</info>
      <return type='xmlChar *' info='the string value of the object, NULL in case of error. A new string is allocated only if needed (@val isn&apos;t a string object).'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCeilingFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathCmpNodes' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Compare two nodes w.r.t document order</info>
      <return type='int' info='-2 in case of error 1 if first point &lt; second point, 0 if it&apos;s the same node, -1 otherwise'/>
      <arg name='node1' type='xmlNodePtr' info='the first node'/>
      <arg name='node2' type='xmlNodePtr' info='the second node'/>
    </function>
    <function name='xmlXPathCompareValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the compare operation on XPath objects: @arg1 &lt; @arg2    (1, 1, ... @arg1 &lt;= @arg2   (1, 0, ... @arg1 &gt; @arg2    (0, 1, ... @arg1 &gt;= @arg2   (0, 0, ...  When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</info>
      <return type='int' info='1 if the comparison succeeded, 0 if it failed'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='inf' type='int' info='less than (1) or greater than (0)'/>
      <arg name='strict' type='int' info='is the comparison strict'/>
    </function>
    <function name='xmlXPathCompile' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Compile an XPath expression</info>
      <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
    </function>
    <function name='xmlXPathCompiledEval' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Evaluate the Precompiled XPath expression in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathConcatFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathContainsFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathConvertBoolean' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts an existing object to its boolean() equivalent</info>
      <return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <functype name='xmlXPathConvertFunc' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>A conversion function is associated to a type and used to cast the new type to primitive values.</info>
      <return type='int' info='-1 in case of error, 0 otherwise'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='an XPath object'/>
      <arg name='type' type='int' info='the number of the target type'/>
    </functype>
    <function name='xmlXPathConvertNumber' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts an existing object to its number() equivalent</info>
      <return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathConvertString' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Converts an existing object to its string() equivalent</info>
      <return type='xmlXPathObjectPtr' info='the new object, the old one is freed (or the operation is done directly on @val)'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCountFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the count() XPath function number count(node-set)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathCtxtCompile' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Compile an XPath expression</info>
      <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='an XPath context'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
    </function>
    <function name='xmlXPathDebugDumpCompExpr' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dumps the tree of the compiled XPath expression.</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the precompiled XPath expression'/>
      <arg name='depth' type='int' info='the indentation level.'/>
    </function>
    <function name='xmlXPathDebugDumpObject' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <cond>LIBXML_DEBUG_ENABLED</cond>
      <info>Dump the content of the object for debugging purposes</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * to dump the output'/>
      <arg name='cur' type='xmlXPathObjectPtr' info='the object to inspect'/>
      <arg name='depth' type='int' info='indentation level'/>
    </function>
    <function name='xmlXPathDifference' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets difference() function: node-set set:difference (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the difference between the two node sets, or nodes1 if nodes2 is empty'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathDistinct' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set) @nodes is sorted by document order, then #exslSetsDistinctSorted is called with the sorted node-set</info>
      <return type='xmlNodeSetPtr' info='a subset of the nodes contained in @nodes, or @nodes if it is empty'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathDistinctSorted' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets distinct() function: node-set set:distinct (node-set)</info>
      <return type='xmlNodeSetPtr' info='a subset of the nodes contained in @nodes, or @nodes if it is empty'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
    </function>
    <function name='xmlXPathDivValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the div operation on XPath objects @arg1 / @arg2: The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathEqualValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the equal operation on XPath objects content: @arg1 == @arg2</info>
      <return type='int' info='0 or 1 depending on the results of the test.'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathErr' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Handle a Relax NG Parsing error</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='a XPath parser context'/>
      <arg name='error' type='int' info='the error code'/>
    </function>
    <function name='xmlXPathEval' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Evaluate the XPath Location Path in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathEvalExpr' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Parse and evaluate an XPath expression in the given context, then push the result on the context stack</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathEvalExpression' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Evaluate the XPath expression in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <functype name='xmlXPathEvalFunc' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>An XPath evaluation function, the parameters are on the XPath context stack.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
      <arg name='nargs' type='int' info='the number of arguments passed to the function'/>
    </functype>
    <function name='xmlXPathEvalPredicate' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</info>
      <return type='int' info='1 if predicate is true, 0 otherwise'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='res' type='xmlXPathObjectPtr' info='the Predicate Expression evaluation result'/>
    </function>
    <function name='xmlXPathEvaluatePredicateResult' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Evaluate a predicate result for the current node. A PredicateExpr is evaluated by evaluating the Expr and converting the result to a boolean. If the result is a number, the result will be converted to true if the number is equal to the position of the context node in the context node list (as returned by the position function) and will be converted to false otherwise; if the result is not a number, then the result will be converted as if by a call to the boolean function.</info>
      <return type='int' info='1 if predicate is true, 0 otherwise'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='res' type='xmlXPathObjectPtr' info='the Predicate Expression evaluation result'/>
    </function>
    <function name='xmlXPathFalseFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the false() XPath function boolean false()</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathFloorFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the floor() XPath function number floor(number) The floor function returns the largest (closest to positive infinity) number that is not greater than the argument and that is an integer.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathFreeCompExpr' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Free up the memory allocated by @comp</info>
      <return type='void'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='an XPATH comp'/>
    </function>
    <function name='xmlXPathFreeContext' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Free up an xmlXPathContext</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the context to free'/>
    </function>
    <function name='xmlXPathFreeNodeSet' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Free the NodeSet compound (not the actual nodes !).</info>
      <return type='void'/>
      <arg name='obj' type='xmlNodeSetPtr' info='the xmlNodeSetPtr to free'/>
    </function>
    <function name='xmlXPathFreeNodeSetList' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Free up the xmlXPathObjectPtr @obj but don&apos;t deallocate the objects in the list contrary to xmlXPathFreeObject().</info>
      <return type='void'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='an existing NodeSetList object'/>
    </function>
    <function name='xmlXPathFreeObject' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Free up an xmlXPathObjectPtr object.</info>
      <return type='void'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='the object to free'/>
    </function>
    <function name='xmlXPathFreeParserContext' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Free up an xmlXPathParserContext</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the context to free'/>
    </function>
    <functype name='xmlXPathFuncLookupFunc' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Prototype for callbacks used to plug function lookup in the XPath engine.</info>
      <return type='xmlXPathFunction' info='the XPath function or NULL if not found.'/>
      <arg name='ctxt' type='void *' info='an XPath context'/>
      <arg name='name' type='const xmlChar *' info='name of the function'/>
      <arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this function'/>
    </functype>
    <functype name='xmlXPathFunction' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interprestation context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </functype>
    <function name='xmlXPathFunctionLookup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Search in the Function array of the context for the given function.</info>
      <return type='xmlXPathFunction' info='the xmlXPathFunction or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the function name'/>
    </function>
    <function name='xmlXPathFunctionLookupNS' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Search in the Function array of the context for the given function.</info>
      <return type='xmlXPathFunction' info='the xmlXPathFunction or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the function name'/>
      <arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
    </function>
    <function name='xmlXPathHasSameNodes' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets has-same-nodes function: boolean set:has-same-node(node-set, node-set)</info>
      <return type='int' info='true (1) if @nodes1 shares any node with @nodes2, false (0) otherwise'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathIdFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the id() XPath function node-set id(object) The id function selects elements by their unique ID (see [5.2.1 Unique IDs]). When the argument to id is of type node-set, then the result is the union of the result of applying id to the string value of each of the nodes in the argument node-set. When the argument to id is of any other type, the argument is converted to a string as if by a call to the string function; the string is split into a whitespace-separated list of tokens (whitespace is any sequence of characters matching the production S); the result is a node-set containing the elements in the same document as the context node that have a unique ID equal to any of the tokens in the list.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathInit' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Initialize the XPath environment</info>
      <return type='void'/>
    </function>
    <function name='xmlXPathIntersection' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets intersection() function: node-set set:intersection (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='a node set comprising the nodes that are within both the node sets passed as arguments'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathIsInf' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</info>
      <return type='int' info='1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
      <arg name='val' type='double' info='a double value'/>
    </function>
    <function name='xmlXPathIsNaN' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</info>
      <return type='int' info='1 if the value is a NaN, 0 otherwise'/>
      <arg name='val' type='double' info='a double value'/>
    </function>
    <function name='xmlXPathIsNodeType' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Is the name given a NodeType one.  [38]   NodeType ::=   &apos;comment&apos; | &apos;text&apos; | &apos;processing-instruction&apos; | &apos;node&apos;</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='name' type='const xmlChar *' info='a name string'/>
    </function>
    <function name='xmlXPathLangFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the lang() XPath function boolean lang(string) The lang function returns true or false depending on whether the language of the context node as specified by xml:lang attributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of the xml:lang attribute on the context node, or, if the context node has no xml:lang attribute, by the value of the xml:lang attribute on the nearest ancestor of the context node that has an xml:lang attribute. If there is no such attribute, then lang</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathLastFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the last() XPath function number last() The last function returns the number of nodes in the context node list.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathLeading' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #exslSetsLeadingSorted is called.</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathLeadingSorted' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that precede the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
    </function>
    <function name='xmlXPathLocalNameFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the local-name() XPath function string local-name(node-set?) The local-name function returns a string containing the local part of the name of the node in the argument node-set that is first in document order. If the node-set is empty or the first node has no name, an empty string is returned. If the argument is omitted it defaults to the context node.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathModValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the mod operation on XPath objects: @arg1 / @arg2 The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathMultValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the multiply operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathNamespaceURIFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the namespace-uri() XPath function string namespace-uri(node-set?) The namespace-uri function returns a string containing the namespace URI of the expanded name of the node in the argument node-set that is first in document order. If the node-set is empty, the first node has no name, or the expanded name has no namespace URI, an empty string is returned. If the argument is omitted it defaults to the context node.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathNewBoolean' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type boolean and of value @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='int' info='the boolean value'/>
    </function>
    <function name='xmlXPathNewCString' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type string and of value @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='const char *' info='the char * value'/>
    </function>
    <function name='xmlXPathNewContext' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathContext</info>
      <return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated. The caller will need to free it.'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document'/>
    </function>
    <function name='xmlXPathNewFloat' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type double and of value @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='double' info='the double value'/>
    </function>
    <function name='xmlXPathNewNodeSet' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type NodeSet and initialize it with the single Node @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodePtr' info='the NodePtr value'/>
    </function>
    <function name='xmlXPathNewNodeSetList' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type NodeSet and initialize it with the Nodeset @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodeSetPtr' info='an existing NodeSet'/>
    </function>
    <function name='xmlXPathNewParserContext' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathParserContext</info>
      <return type='xmlXPathParserContextPtr' info='the xmlXPathParserContext just allocated.'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathNewString' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type string and of value @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='const xmlChar *' info='the xmlChar * value'/>
    </function>
    <function name='xmlXPathNewValueTree' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type Value Tree (XSLT) and initialize it with the tree root @val</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodePtr' info='the NodePtr value'/>
    </function>
    <function name='xmlXPathNextAncestor' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;ancestor&quot; direction the ancestor axis contains the ancestors of the context node; the ancestors of the context node consist of the parent of context node and the parent&apos;s parent and so on; the nodes are ordered in reverse document order; thus the parent is the first node on the axis, and the parent&apos;s parent is the second node on the axis</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextAncestorOrSelf' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;ancestor-or-self&quot; direction he ancestor-or-self axis contains the context node and ancestors of the context node in reverse document order; thus the context node is the first node on the axis, and the context node&apos;s parent the second; parent here is defined the same as with the parent axis.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextAttribute' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;attribute&quot; direction TODO: support DTD inherited default attributes</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current attribute in the traversal'/>
    </function>
    <function name='xmlXPathNextChild' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;child&quot; direction The child axis contains the children of the context node in document order.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextDescendant' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;descendant&quot; direction the descendant axis contains the descendants of the context node in document order; a descendant is a child or a child of a child and so on.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextDescendantOrSelf' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;descendant-or-self&quot; direction the descendant-or-self axis contains the context node and the descendants of the context node in document order; thus the context node is the first node on the axis, and the first child of the context node is the second node on the axis</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextFollowing' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;following&quot; direction The following axis contains all nodes in the same document as the context node that are after the context node in document order, excluding any descendants and excluding attribute nodes and namespace nodes; the nodes are ordered in document order</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextFollowingSibling' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;following-sibling&quot; direction The following-sibling axis contains the following siblings of the context node in document order.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextNamespace' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;namespace&quot; direction the namespace axis contains the namespace nodes of the context node; the order of nodes on this axis is implementation-defined; the axis will be empty unless the context node is an element  We keep the XML namespace node at the end of the list.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current attribute in the traversal'/>
    </function>
    <function name='xmlXPathNextParent' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;parent&quot; direction The parent axis contains the parent of the context node, if there is one.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextPreceding' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;preceding&quot; direction the preceding axis contains all nodes in the same document as the context node that are before the context node in document order, excluding any ancestors and excluding attribute nodes and namespace nodes; the nodes are ordered in reverse document order</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextPrecedingSibling' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;preceding-sibling&quot; direction The preceding-sibling axis contains the preceding siblings of the context node in reverse document order; the first preceding sibling is first on the axis; the sibling preceding that node is the second on the axis and so on.</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNextSelf' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Traversal function for the &quot;self&quot; direction The self axis contains just the context node itself</info>
      <return type='xmlNodePtr' info='the next element following that axis'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='cur' type='xmlNodePtr' info='the current node in the traversal'/>
    </function>
    <function name='xmlXPathNodeLeading' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set) @nodes is sorted by document order, then #exslSetsNodeLeadingSorted is called.</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathNodeLeadingSorted' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets leading() function: node-set set:leading (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes that precede @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathNodeSetAdd' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>add a new xmlNodePtr to an existing NodeSet</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
      <arg name='val' type='xmlNodePtr' info='a new xmlNodePtr'/>
    </function>
    <function name='xmlXPathNodeSetAddNs' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>add a new namespace node to an existing NodeSet</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
      <arg name='node' type='xmlNodePtr' info='the hosting node'/>
      <arg name='ns' type='xmlNsPtr' info='a the namespace node'/>
    </function>
    <function name='xmlXPathNodeSetAddUnique' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>add a new xmlNodePtr to an existing NodeSet, optimized version when we are sure the node is not already in the set.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
      <arg name='val' type='xmlNodePtr' info='a new xmlNodePtr'/>
    </function>
    <function name='xmlXPathNodeSetContains' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>checks whether @cur contains @val</info>
      <return type='int' info='true (1) if @cur contains @val, false (0) otherwise'/>
      <arg name='cur' type='xmlNodeSetPtr' info='the node-set'/>
      <arg name='val' type='xmlNodePtr' info='the node'/>
    </function>
    <function name='xmlXPathNodeSetCreate' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Create a new xmlNodeSetPtr of type double and of value @val</info>
      <return type='xmlNodeSetPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodePtr' info='an initial xmlNodePtr, or NULL'/>
    </function>
    <function name='xmlXPathNodeSetDel' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Removes an xmlNodePtr from an existing NodeSet</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
      <arg name='val' type='xmlNodePtr' info='an xmlNodePtr'/>
    </function>
    <function name='xmlXPathNodeSetFreeNs' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Namespace nodes in libxml don&apos;t match the XPath semantic. In a node set the namespace nodes are duplicated and the next pointer is set to the parent node in the XPath semantic. Check if such a node needs to be freed</info>
      <return type='void'/>
      <arg name='ns' type='xmlNsPtr' info='the XPath namespace node found in a nodeset.'/>
    </function>
    <function name='xmlXPathNodeSetMerge' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Merges two nodesets, all nodes from @val2 are added to @val1 if @val1 is NULL, a new set is created and copied from @val2</info>
      <return type='xmlNodeSetPtr' info='@val1 once extended or NULL in case of error.'/>
      <arg name='val1' type='xmlNodeSetPtr' info='the first NodeSet or NULL'/>
      <arg name='val2' type='xmlNodeSetPtr' info='the second NodeSet'/>
    </function>
    <function name='xmlXPathNodeSetRemove' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Removes an entry from an existing NodeSet list.</info>
      <return type='void'/>
      <arg name='cur' type='xmlNodeSetPtr' info='the initial node set'/>
      <arg name='val' type='int' info='the index to remove'/>
    </function>
    <function name='xmlXPathNodeSetSort' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Sort the node set in document order</info>
      <return type='void'/>
      <arg name='set' type='xmlNodeSetPtr' info='the node set'/>
    </function>
    <function name='xmlXPathNodeTrailing' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes is sorted by document order, then #xmlXPathNodeTrailingSorted is called.</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathNodeTrailingSorted' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes that follow @node in document order, @nodes if @node is NULL or an empty node-set if @nodes doesn&apos;t contain @node'/>
      <arg name='nodes' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathNormalizeFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the normalize-space() XPath function string normalize-space(string?) The normalize-space function returns the argument string with white space normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space. Whitespace characters are the same allowed by the S production in XML. If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathNotEqualValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the equal operation on XPath objects content: @arg1 == @arg2</info>
      <return type='int' info='0 or 1 depending on the results of the test.'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathNotFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the not() XPath function boolean not(boolean) The not function returns true if its argument is false, and false otherwise.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathNsLookup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Search in the namespace declaration array of the context for the given namespace name associated to the given prefix</info>
      <return type='const xmlChar *' info='the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix value'/>
    </function>
    <function name='xmlXPathNumberFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the number() XPath function number number(object?)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathObjectCopy' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>allocate a new copy of a given object</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlXPathObjectPtr' info='the original object'/>
    </function>
    <function name='xmlXPathOrderDocElems' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Call this routine to speed up XPath computation on static documents. This stamps all the element nodes with the document order Like for line information, the order is kept in the element-&gt;content field, the value stored is actually - the node number (starting at -1) to be able to differentiate from line numbers.</info>
      <return type='long' info='the number of elements found in the document or -1 in case of error.'/>
      <arg name='doc' type='xmlDocPtr' info='an input document'/>
    </function>
    <function name='xmlXPathParseNCName' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>parse an XML namespace non qualified name.  [NS 3] NCName ::= (Letter | &apos;_&apos;) (NCNameChar)*  [NS 4] NCNameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | CombiningChar | Extender</info>
      <return type='xmlChar *' info='the namespace name or NULL'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathParseName' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>parse an XML name  [4] NameChar ::= Letter | Digit | &apos;.&apos; | &apos;-&apos; | &apos;_&apos; | &apos;:&apos; | CombiningChar | Extender  [5] Name ::= (Letter | &apos;_&apos; | &apos;:&apos;) (NameChar)*</info>
      <return type='xmlChar *' info='the namespace name or NULL'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathPopBoolean' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pops a boolean from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
      <return type='int' info='the boolean'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
    </function>
    <function name='xmlXPathPopExternal' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pops an external object from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
      <return type='void *' info='the object'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
    </function>
    <function name='xmlXPathPopNodeSet' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pops a node-set from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
      <return type='xmlNodeSetPtr' info='the node-set'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
    </function>
    <function name='xmlXPathPopNumber' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pops a number from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
      <return type='double' info='the number'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
    </function>
    <function name='xmlXPathPopString' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Pops a string from the stack, handling conversion if needed. Check error with #xmlXPathCheckError.</info>
      <return type='xmlChar *' info='the string'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath parser context'/>
    </function>
    <function name='xmlXPathPositionFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the position() XPath function number position() The position function returns the position of the context node in the context node list. The first position is 1, and so the last position will be equal to last().</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathRegisterAllFunctions' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Registers all default XPath functions in this context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathRegisterFunc' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Register a new function. If @f is NULL it unregisters the function</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the function name'/>
      <arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
    </function>
    <function name='xmlXPathRegisterFuncLookup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Registers an external mechanism to do function lookup.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='f' type='xmlXPathFuncLookupFunc' info='the lookup function'/>
      <arg name='funcCtxt' type='void *' info='the lookup data'/>
    </function>
    <function name='xmlXPathRegisterFuncNS' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Register a new function. If @f is NULL it unregisters the function</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the function name'/>
      <arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
      <arg name='f' type='xmlXPathFunction' info='the function implementation or NULL'/>
    </function>
    <function name='xmlXPathRegisterNs' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Register a new namespace. If @ns_uri is NULL it unregisters the namespace</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
      <arg name='ns_uri' type='const xmlChar *' info='the namespace name'/>
    </function>
    <function name='xmlXPathRegisterVariable' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Register a new variable value. If @value is NULL it unregisters the variable</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
      <arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
    </function>
    <function name='xmlXPathRegisterVariableLookup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>register an external mechanism to do variable lookup</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='f' type='xmlXPathVariableLookupFunc' info='the lookup function'/>
      <arg name='data' type='void *' info='the lookup data'/>
    </function>
    <function name='xmlXPathRegisterVariableNS' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Register a new variable value. If @value is NULL it unregisters the variable</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
      <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
      <arg name='value' type='xmlXPathObjectPtr' info='the variable value or NULL'/>
    </function>
    <function name='xmlXPathRegisteredFuncsCleanup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Cleanup the XPath context data associated to registered functions</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathRegisteredNsCleanup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Cleanup the XPath context data associated to registered variables</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathRegisteredVariablesCleanup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Cleanup the XPath context data associated to registered variables</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathRoot' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Initialize the context to the root of the document</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathRoundFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathStartsWithFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathStringEvalNumber' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>[30a]  Float  ::= Number (&apos;e&apos; Digits?)?  [30]   Number ::=   Digits (&apos;.&apos; Digits?)? | &apos;.&apos; Digits [31]   Digits ::=   [0-9]+  Compile a Number in the string In complement of the Number expression, this function also handles negative values : &apos;-&apos; Number.</info>
      <return type='double' info='the double value.'/>
      <arg name='str' type='const xmlChar *' info='A string to scan'/>
    </function>
    <function name='xmlXPathStringFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the string() XPath function string string(object?) The string function converts an object to a string as follows: - A node-set is converted to a string by returning the value of the node in the node-set that is first in document order. If the node-set is empty, an empty string is returned. - A number is converted to a string as follows + NaN is converted to the string NaN + positive zero is converted to the string 0 + negative zero is converted to the string 0 + positive infinity is converted to the string Infinity + negative infinity is converted to the string -Infinity + if the number is an integer, the number is represented in decimal form as a Number with no decimal point and no leading zeros, preceded by a minus sign (-) if the number is negative + otherwise, the number is represented in decimal form as a Number including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign (-) if the number is negative; there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point; beyond the one required digit after the decimal point there must be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values. - The boolean false value is converted to the string false. The boolean true value is converted to the string true.  If the argument is omitted, it defaults to a node-set with the context node as its only member.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathStringLengthFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the string-length() XPath function number string-length(string?) The string-length returns the number of characters in the string (see [3.6 Strings]). If the argument is omitted, it defaults to the context node converted to a string, in other words the value of the context node.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathSubValues' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the subtraction operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathSubstringAfterFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the substring-after() XPath function string substring-after(string, string) The substring-after function returns the substring of the first argument string that follows the first occurrence of the second argument string in the first argument string, or the empty stringi if the first argument string does not contain the second argument string. For example, substring-after(&quot;1999/04/01&quot;,&quot;/&quot;) returns 04/01, and substring-after(&quot;1999/04/01&quot;,&quot;19&quot;) returns 99/04/01.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathSubstringBeforeFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the substring-before() XPath function string substring-before(string, string) The substring-before function returns the substring of the first argument string that precedes the first occurrence of the second argument string in the first argument string, or the empty string if the first argument string does not contain the second argument string. For example, substring-before(&quot;1999/04/01&quot;,&quot;/&quot;) returns 1999.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathSubstringFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the substring() XPath function string substring(string, number, number?) The substring function returns the substring of the first argument starting at the position specified in the second argument with length specified in the third argument. For example, substring(&quot;12345&quot;,2,3) returns &quot;234&quot;. If the third argument is not specified, it returns the substring starting at the position specified in the second argument and continuing to the end of the string. For example, substring(&quot;12345&quot;,2) returns &quot;2345&quot;.  More precisely, each character in the string (see [3.6 Strings]) is considered to have a numeric position: the position of the first character is 1, the position of the second character is 2 and so on. The returned substring contains those characters for which the position of the character is greater than or equal to the second argument and, if the third argument is specified, less than the sum of the second and third arguments; the comparisons and addition used for the above follow the standard IEEE 754 rules. Thus: - substring(&quot;12345&quot;, 1.5, 2.6) returns &quot;234&quot; - substring(&quot;12345&quot;, 0, 3) returns &quot;12&quot; - substring(&quot;12345&quot;, 0 div 0, 3) returns &quot;&quot; - substring(&quot;12345&quot;, 1, 0 div 0) returns &quot;&quot; - substring(&quot;12345&quot;, -42, 1 div 0) returns &quot;12345&quot; - substring(&quot;12345&quot;, -1 div 0, 1 div 0) returns &quot;&quot;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathSumFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathTrailing' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathTrailingSorted' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
    </function>
    <function name='xmlXPathTranslateFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of characters in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate(&quot;bar&quot;,&quot;abc&quot;,&quot;ABC&quot;) returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate(&quot;--aaa--&quot;,&quot;abc-&quot;,&quot;ABC&quot;)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathTrueFunction' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the true() XPath function boolean true()</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathValueFlipSign' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathVariableLookup' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Search in the Variable array of the context for the given variable value.</info>
      <return type='xmlXPathObjectPtr' info='a copy of the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
    </function>
    <functype name='xmlXPathVariableLookupFunc' file='xpath'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Prototype for callbacks used to plug variable lookup in the XPath engine.</info>
      <return type='xmlXPathObjectPtr' info='the XPath object value or NULL if not found.'/>
      <arg name='ctxt' type='void *' info='an XPath context'/>
      <arg name='name' type='const xmlChar *' info='name of the variable'/>
      <arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this variable'/>
    </functype>
    <function name='xmlXPathVariableLookupNS' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Search in the Variable array of the context for the given variable value.</info>
      <return type='xmlXPathObjectPtr' info='the a copy of the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
      <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
    </function>
    <function name='xmlXPathWrapCString' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Wraps a string into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='char *' info='the char * value'/>
    </function>
    <function name='xmlXPathWrapExternal' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Wraps the @val data into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='void *' info='the user data'/>
    </function>
    <function name='xmlXPathWrapNodeSet' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Wrap the Nodeset @val in a new xmlXPathObjectPtr</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodeSetPtr' info='the NodePtr value'/>
    </function>
    <function name='xmlXPathWrapString' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Wraps the @val string into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlChar *' info='the xmlChar * value'/>
    </function>
    <function name='xmlXPatherror' file='xpathInternals'>
      <cond>LIBXML_XPATH_ENABLED</cond>
      <info>Formats an error message.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='file' type='const char *' info='the file name'/>
      <arg name='line' type='int' info='the line number'/>
      <arg name='no' type='int' info='the error number'/>
    </function>
    <function name='xmlXPtrBuildNodeList' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</info>
      <return type='xmlNodePtr' info='an xmlNodePtr list or NULL. the caller has to free the node tree.'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='the XPointer result from the evaluation.'/>
    </function>
    <function name='xmlXPtrEval' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Evaluate the XPath Location Path in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPointer expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPointer context'/>
    </function>
    <function name='xmlXPtrEvalRangePredicate' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>[8]   Predicate ::=   &apos;[&apos; PredicateExpr &apos;]&apos; [9]   PredicateExpr ::=   Expr  Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
    </function>
    <function name='xmlXPtrFreeLocationSet' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Free the LocationSet compound (not the actual ranges !).</info>
      <return type='void'/>
      <arg name='obj' type='xmlLocationSetPtr' info='the xmlLocationSetPtr to free'/>
    </function>
    <function name='xmlXPtrLocationSetAdd' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='xmlXPathObjectPtr' info='a new xmlXPathObjectPtr'/>
    </function>
    <function name='xmlXPtrLocationSetCreate' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlLocationSetPtr of type double and of value @val</info>
      <return type='xmlLocationSetPtr' info='the newly created object.'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an initial xmlXPathObjectPtr, or NULL'/>
    </function>
    <function name='xmlXPtrLocationSetDel' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Removes an xmlXPathObjectPtr from an existing LocationSet</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an xmlXPathObjectPtr'/>
    </function>
    <function name='xmlXPtrLocationSetMerge' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Merges two rangesets, all ranges from @val2 are added to @val1</info>
      <return type='xmlLocationSetPtr' info='val1 once extended or NULL in case of error.'/>
      <arg name='val1' type='xmlLocationSetPtr' info='the first LocationSet'/>
      <arg name='val2' type='xmlLocationSetPtr' info='the second LocationSet'/>
    </function>
    <function name='xmlXPtrLocationSetRemove' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Removes an entry from an existing LocationSet list.</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='int' info='the index to remove'/>
    </function>
    <function name='xmlXPtrNewCollapsedRange' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range using a single nodes</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting and ending node'/>
    </function>
    <function name='xmlXPtrNewContext' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new XPointer context</info>
      <return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated.'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document'/>
      <arg name='here' type='xmlNodePtr' info='the node that directly contains the XPointer being evaluated or NULL'/>
      <arg name='origin' type='xmlNodePtr' info='the element from which a user or program initiated traversal of the link, or NULL.'/>
    </function>
    <function name='xmlXPtrNewLocationSetNodeSet' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from @set</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='set' type='xmlNodeSetPtr' info='a node set'/>
    </function>
    <function name='xmlXPtrNewLocationSetNodes' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes @start and @end</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the start NodePtr value'/>
      <arg name='end' type='xmlNodePtr' info='the end NodePtr value or NULL'/>
    </function>
    <function name='xmlXPtrNewRange' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='startindex' type='int' info='the start index'/>
      <arg name='end' type='xmlNodePtr' info='the ending point'/>
      <arg name='endindex' type='int' info='the ending index'/>
    </function>
    <function name='xmlXPtrNewRangeNodeObject' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a not to an object</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending object'/>
    </function>
    <function name='xmlXPtrNewRangeNodePoint' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a node to a point</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
    </function>
    <function name='xmlXPtrNewRangeNodes' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range using 2 nodes</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlNodePtr' info='the ending node'/>
    </function>
    <function name='xmlXPtrNewRangePointNode' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a point to a node</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
      <arg name='end' type='xmlNodePtr' info='the ending node'/>
    </function>
    <function name='xmlXPtrNewRangePoints' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Create a new xmlXPathObjectPtr of type range using 2 Points</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
    </function>
    <function name='xmlXPtrRangeToFunction' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Implement the range-to() XPointer function</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
      <arg name='nargs' type='int' info='the number of args'/>
    </function>
    <function name='xmlXPtrWrapLocationSet' file='xpointer'>
      <cond>LIBXML_XPTR_ENABLED</cond>
      <info>Wrap the LocationSet @val in a new xmlXPathObjectPtr</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlLocationSetPtr' info='the LocationSet value'/>
    </function>
  </symbols>
</api>
