<?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='docbParserInputPtr' type='typedef'/>
     <exports symbol='docbParserCtxt' type='typedef'/>
     <exports symbol='docbParserCtxtPtr' type='typedef'/>
     <exports symbol='docbParserInput' type='typedef'/>
     <exports symbol='docbDocPtr' type='typedef'/>
     <exports symbol='docbSAXHandler' type='typedef'/>
     <exports symbol='docbSAXHandlerPtr' type='typedef'/>
     <exports symbol='docbFreeParserCtxt' type='function'/>
     <exports symbol='docbParseDoc' type='function'/>
     <exports symbol='docbCreateFileParserCtxt' type='function'/>
     <exports symbol='docbSAXParseFile' type='function'/>
     <exports symbol='docbSAXParseDoc' type='function'/>
     <exports symbol='docbCreatePushParserCtxt' type='function'/>
     <exports symbol='docbEncodeEntities' type='function'/>
     <exports symbol='docbParseFile' type='function'/>
     <exports symbol='docbParseDocument' type='function'/>
     <exports symbol='docbParseChunk' 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_INVALID' type='enum'/>
     <exports symbol='HTML_PARSE_NONET' type='enum'/>
     <exports symbol='HTML_NA' type='enum'/>
     <exports symbol='HTML_PARSE_COMPACT' type='enum'/>
     <exports symbol='HTML_VALID' type='enum'/>
     <exports symbol='HTML_PARSE_NOERROR' type='enum'/>
     <exports symbol='HTML_PARSE_NOBLANKS' type='enum'/>
     <exports symbol='HTML_DEPRECATED' type='enum'/>
     <exports symbol='HTML_PARSE_PEDANTIC' type='enum'/>
     <exports symbol='HTML_PARSE_RECOVER' type='enum'/>
     <exports symbol='HTML_PARSE_NOWARNING' 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='htmlIsScriptAttribute' type='function'/>
     <exports symbol='htmlHandleOmittedElem' type='function'/>
     <exports symbol='htmlReadFd' type='function'/>
     <exports symbol='htmlReadIO' type='function'/>
     <exports symbol='htmlParseFile' type='function'/>
     <exports symbol='htmlCtxtReadDoc' type='function'/>
     <exports symbol='htmlAutoCloseTag' type='function'/>
     <exports symbol='htmlParseChunk' type='function'/>
     <exports symbol='htmlTagLookup' type='function'/>
     <exports symbol='htmlCreateMemoryParserCtxt' type='function'/>
     <exports symbol='htmlCtxtReset' type='function'/>
     <exports symbol='htmlElementAllowedHere' type='function'/>
     <exports symbol='htmlCtxtReadIO' type='function'/>
     <exports symbol='htmlCreatePushParserCtxt' type='function'/>
     <exports symbol='htmlReadMemory' type='function'/>
     <exports symbol='htmlIsAutoClosed' type='function'/>
     <exports symbol='htmlParseCharRef' type='function'/>
     <exports symbol='htmlReadDoc' type='function'/>
     <exports symbol='htmlEncodeEntities' type='function'/>
     <exports symbol='htmlNodeStatus' type='function'/>
     <exports symbol='htmlAttrAllowed' type='function'/>
     <exports symbol='htmlSAXParseFile' type='function'/>
     <exports symbol='htmlParseEntityRef' type='function'/>
     <exports symbol='htmlElementStatusHere' type='function'/>
     <exports symbol='htmlEntityValueLookup' type='function'/>
     <exports symbol='htmlParseElement' type='function'/>
     <exports symbol='UTF8ToHtml' type='function'/>
     <exports symbol='htmlEntityLookup' type='function'/>
     <exports symbol='htmlFreeParserCtxt' type='function'/>
     <exports symbol='htmlCtxtReadMemory' type='function'/>
     <exports symbol='htmlCtxtReadFd' type='function'/>
     <exports symbol='htmlReadFile' type='function'/>
     <exports symbol='htmlCtxtReadFile' type='function'/>
     <exports symbol='htmlParseDocument' type='function'/>
     <exports symbol='htmlNewParserCtxt' type='function'/>
     <exports symbol='htmlSAXParseDoc' type='function'/>
     <exports symbol='htmlCtxtUseOptions' type='function'/>
     <exports symbol='htmlParseDoc' 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='htmlNodeDumpFileFormat' type='function'/>
     <exports symbol='htmlDocDumpMemory' type='function'/>
     <exports symbol='htmlSaveFile' type='function'/>
     <exports symbol='htmlDocDump' type='function'/>
     <exports symbol='htmlDocDumpMemoryFormat' type='function'/>
     <exports symbol='htmlIsBooleanAttr' type='function'/>
     <exports symbol='htmlSaveFileFormat' type='function'/>
     <exports symbol='htmlNodeDumpFormatOutput' type='function'/>
     <exports symbol='htmlSetMetaEncoding' type='function'/>
     <exports symbol='htmlSaveFileEnc' type='function'/>
     <exports symbol='htmlNodeDumpOutput' type='function'/>
     <exports symbol='htmlNodeDump' type='function'/>
     <exports symbol='htmlNewDoc' type='function'/>
     <exports symbol='htmlGetMetaEncoding' type='function'/>
     <exports symbol='htmlNodeDumpFile' type='function'/>
     <exports symbol='htmlDocContentDumpFormatOutput' type='function'/>
     <exports symbol='htmlNewDocNoDtD' 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='comment' type='function'/>
     <exports symbol='checkNamespace' type='function'/>
     <exports symbol='getColumnNumber' type='function'/>
     <exports symbol='entityDecl' type='function'/>
     <exports symbol='attribute' type='function'/>
     <exports symbol='getNamespace' type='function'/>
     <exports symbol='setDocumentLocator' type='function'/>
     <exports symbol='initxmlDefaultSAXHandler' type='function'/>
     <exports symbol='ignorableWhitespace' type='function'/>
     <exports symbol='hasExternalSubset' type='function'/>
     <exports symbol='unparsedEntityDecl' type='function'/>
     <exports symbol='globalNamespace' type='function'/>
     <exports symbol='hasInternalSubset' type='function'/>
     <exports symbol='reference' type='function'/>
     <exports symbol='notationDecl' type='function'/>
     <exports symbol='getSystemId' type='function'/>
     <exports symbol='externalSubset' type='function'/>
     <exports symbol='resolveEntity' type='function'/>
     <exports symbol='startDocument' type='function'/>
     <exports symbol='setNamespace' type='function'/>
     <exports symbol='cdataBlock' type='function'/>
     <exports symbol='getPublicId' type='function'/>
     <exports symbol='inithtmlDefaultSAXHandler' type='function'/>
     <exports symbol='processingInstruction' type='function'/>
     <exports symbol='endElement' type='function'/>
     <exports symbol='namespaceDecl' type='function'/>
     <exports symbol='initdocbDefaultSAXHandler' type='function'/>
     <exports symbol='getEntity' type='function'/>
     <exports symbol='characters' type='function'/>
     <exports symbol='elementDecl' type='function'/>
     <exports symbol='startElement' type='function'/>
     <exports symbol='getParameterEntity' type='function'/>
     <exports symbol='attributeDecl' type='function'/>
     <exports symbol='isStandalone' 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='xmlSAX2EndElementNs' type='function'/>
     <exports symbol='xmlSAX2Reference' type='function'/>
     <exports symbol='xmlSAX2ElementDecl' type='function'/>
     <exports symbol='xmlSAX2AttributeDecl' type='function'/>
     <exports symbol='xmlSAX2Comment' type='function'/>
     <exports symbol='xmlSAX2GetColumnNumber' type='function'/>
     <exports symbol='xmlSAX2GetEntity' type='function'/>
     <exports symbol='xmlSAX2UnparsedEntityDecl' type='function'/>
     <exports symbol='xmlSAX2InitDocbDefaultSAXHandler' type='function'/>
     <exports symbol='xmlSAXVersion' type='function'/>
     <exports symbol='xmlSAX2IgnorableWhitespace' type='function'/>
     <exports symbol='xmlSAX2NotationDecl' type='function'/>
     <exports symbol='xmlSAX2StartDocument' type='function'/>
     <exports symbol='xmlSAX2EndElement' type='function'/>
     <exports symbol='xmlSAX2ResolveEntity' type='function'/>
     <exports symbol='xmlSAX2ExternalSubset' type='function'/>
     <exports symbol='xmlSAX2GetPublicId' type='function'/>
     <exports symbol='xmlSAX2IsStandalone' type='function'/>
     <exports symbol='xmlSAX2EndDocument' type='function'/>
     <exports symbol='xmlSAX2ProcessingInstruction' type='function'/>
     <exports symbol='xmlSAX2InternalSubset' type='function'/>
     <exports symbol='xmlSAX2Characters' type='function'/>
     <exports symbol='xmlSAXDefaultVersion' type='function'/>
     <exports symbol='xmlSAX2StartElement' type='function'/>
     <exports symbol='xmlSAX2SetDocumentLocator' type='function'/>
     <exports symbol='xmlSAX2CDataBlock' type='function'/>
     <exports symbol='xmlSAX2StartElementNs' type='function'/>
     <exports symbol='xmlSAX2HasExternalSubset' type='function'/>
     <exports symbol='htmlDefaultSAXHandlerInit' type='function'/>
     <exports symbol='xmlSAX2GetLineNumber' type='function'/>
     <exports symbol='xmlSAX2HasInternalSubset' type='function'/>
     <exports symbol='xmlSAX2InitHtmlDefaultSAXHandler' type='function'/>
     <exports symbol='docbDefaultSAXHandlerInit' type='function'/>
     <exports symbol='xmlDefaultSAXHandlerInit' type='function'/>
     <exports symbol='xmlSAX2InitDefaultSAXHandler' type='function'/>
     <exports symbol='xmlSAX2GetParameterEntity' type='function'/>
     <exports symbol='xmlSAX2GetSystemId' 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_NONE' type='enum'/>
     <exports symbol='XML_CATA_PREFER_NONE' type='enum'/>
     <exports symbol='XML_CATA_ALLOW_GLOBAL' type='enum'/>
     <exports symbol='XML_CATA_PREFER_PUBLIC' type='enum'/>
     <exports symbol='XML_CATA_ALLOW_DOCUMENT' type='enum'/>
     <exports symbol='XML_CATA_ALLOW_ALL' type='enum'/>
     <exports symbol='XML_CATA_PREFER_SYSTEM' type='enum'/>
     <exports symbol='xmlCatalogAllow' type='typedef'/>
     <exports symbol='xmlCatalogPrefer' type='typedef'/>
     <exports symbol='xmlCatalog' type='typedef'/>
     <exports symbol='xmlCatalogPtr' type='typedef'/>
     <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='xmlACatalogRemove' type='function'/>
     <exports symbol='xmlCatalogSetDefaultPrefer' type='function'/>
     <exports symbol='xmlACatalogResolveURI' type='function'/>
     <exports symbol='xmlCatalogAdd' type='function'/>
     <exports symbol='xmlCatalogResolvePublic' type='function'/>
     <exports symbol='xmlCatalogGetSystem' type='function'/>
     <exports symbol='xmlInitializeCatalog' type='function'/>
     <exports symbol='xmlLoadCatalog' type='function'/>
     <exports symbol='xmlCatalogRemove' type='function'/>
     <exports symbol='xmlCatalogIsEmpty' type='function'/>
     <exports symbol='xmlACatalogDump' type='function'/>
     <exports symbol='xmlCatalogFreeLocal' type='function'/>
     <exports symbol='xmlACatalogResolve' type='function'/>
     <exports symbol='xmlCatalogResolveSystem' type='function'/>
     <exports symbol='xmlLoadSGMLSuperCatalog' type='function'/>
     <exports symbol='xmlCatalogConvert' type='function'/>
     <exports symbol='xmlCatalogGetPublic' type='function'/>
     <exports symbol='xmlLoadACatalog' type='function'/>
     <exports symbol='xmlACatalogResolveSystem' type='function'/>
     <exports symbol='xmlCatalogLocalResolveURI' type='function'/>
     <exports symbol='xmlConvertSGMLCatalog' type='function'/>
     <exports symbol='xmlCatalogAddLocal' type='function'/>
     <exports symbol='xmlNewCatalog' type='function'/>
     <exports symbol='xmlParseCatalogFile' type='function'/>
     <exports symbol='xmlCatalogSetDebug' type='function'/>
     <exports symbol='xmlCatalogResolve' type='function'/>
     <exports symbol='xmlCatalogSetDefaults' type='function'/>
     <exports symbol='xmlCatalogDump' type='function'/>
     <exports symbol='xmlCatalogCleanup' type='function'/>
     <exports symbol='xmlCatalogResolveURI' 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='xmlIsPubidChar_ch' type='macro'/>
     <exports symbol='xmlIsIdeographicQ' type='macro'/>
     <exports symbol='xmlIsExtenderQ' type='macro'/>
     <exports symbol='xmlIsChar_ch' type='macro'/>
     <exports symbol='xmlIsDigitQ' type='macro'/>
     <exports symbol='xmlIsDigit_ch' type='macro'/>
     <exports symbol='xmlIsBaseChar_ch' type='macro'/>
     <exports symbol='xmlIsCombiningQ' 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='xmlChLRange' type='typedef'/>
     <exports symbol='xmlChSRangePtr' type='typedef'/>
     <exports symbol='xmlChLRangePtr' type='typedef'/>
     <exports symbol='xmlChRangeGroupPtr' type='typedef'/>
     <exports symbol='xmlChSRange' type='typedef'/>
     <exports symbol='xmlChRangeGroup' type='typedef'/>
     <exports symbol='_xmlChSRange' type='struct'/>
     <exports symbol='_xmlChLRange' type='struct'/>
     <exports symbol='_xmlChRangeGroup' type='struct'/>
     <exports symbol='xmlIsBaseCharGroup' type='variable'/>
     <exports symbol='xmlIsIdeographicGroup' type='variable'/>
     <exports symbol='xmlIsDigitGroup' type='variable'/>
     <exports symbol='xmlIsExtenderGroup' type='variable'/>
     <exports symbol='xmlIsPubidChar_tab' type='variable'/>
     <exports symbol='xmlIsCharGroup' type='variable'/>
     <exports symbol='xmlIsCombiningGroup' type='variable'/>
     <exports symbol='xmlIsChar' type='function'/>
     <exports symbol='xmlIsDigit' type='function'/>
     <exports symbol='xmlIsBlank' type='function'/>
     <exports symbol='xmlIsIdeographic' type='function'/>
     <exports symbol='xmlCharInRange' type='function'/>
     <exports symbol='xmlIsPubidChar' type='function'/>
     <exports symbol='xmlIsCombining' type='function'/>
     <exports symbol='xmlIsBaseChar' type='function'/>
     <exports symbol='xmlIsExtender' 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='xmlDebugDumpAttrList' type='function'/>
     <exports symbol='xmlLsOneNode' type='function'/>
     <exports symbol='xmlShellReadlineFunc' type='function'/>
     <exports symbol='xmlShellSave' type='function'/>
     <exports symbol='xmlBoolToText' type='function'/>
     <exports symbol='xmlShellWrite' type='function'/>
     <exports symbol='xmlShellDu' type='function'/>
     <exports symbol='xmlShellValidate' type='function'/>
     <exports symbol='xmlDebugCheckDocument' type='function'/>
     <exports symbol='xmlShellPrintXPathResult' type='function'/>
     <exports symbol='xmlShellCmd' type='function'/>
     <exports symbol='xmlShellLoad' type='function'/>
     <exports symbol='xmlDebugDumpString' type='function'/>
     <exports symbol='xmlShellBase' type='function'/>
     <exports symbol='xmlShellCat' type='function'/>
     <exports symbol='xmlDebugDumpDTD' type='function'/>
     <exports symbol='xmlDebugDumpNode' type='function'/>
     <exports symbol='xmlDebugDumpEntities' type='function'/>
     <exports symbol='xmlShellPrintNode' type='function'/>
     <exports symbol='xmlShellPwd' type='function'/>
     <exports symbol='xmlDebugDumpNodeList' type='function'/>
     <exports symbol='xmlDebugDumpAttr' type='function'/>
     <exports symbol='xmlDebugDumpDocument' type='function'/>
     <exports symbol='xmlLsCountNode' type='function'/>
     <exports symbol='xmlShellPrintXPathError' type='function'/>
     <exports symbol='xmlShellDir' type='function'/>
     <exports symbol='xmlDebugDumpOneNode' type='function'/>
     <exports symbol='xmlShellList' type='function'/>
     <exports symbol='xmlDebugDumpDocumentHead' type='function'/>
     <exports symbol='xmlShell' 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='xmlDictReference' type='function'/>
     <exports symbol='xmlDictCleanup' type='function'/>
     <exports symbol='xmlDictSize' type='function'/>
     <exports symbol='xmlDictExists' type='function'/>
     <exports symbol='xmlDictOwns' type='function'/>
     <exports symbol='xmlDictQLookup' type='function'/>
     <exports symbol='xmlDictCreateSub' type='function'/>
     <exports symbol='xmlDictFree' type='function'/>
     <exports symbol='xmlDictLookup' type='function'/>
     <exports symbol='xmlDictCreate' 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_UCS4_2143' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_NONE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UTF16BE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_2022_JP' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_SHIFT_JIS' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UCS4BE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UTF16LE' type='enum'/>
     <exports symbol='XML_CHAR_ENCODING_UCS4_3412' 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_UTF8' 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_EXTERNAL_GENERAL_UNPARSED_ENTITY' type='enum'/>
     <exports symbol='XML_INTERNAL_PREDEFINED_ENTITY' type='enum'/>
     <exports symbol='XML_EXTERNAL_PARAMETER_ENTITY' type='enum'/>
     <exports symbol='XML_INTERNAL_PARAMETER_ENTITY' type='enum'/>
     <exports symbol='XML_INTERNAL_GENERAL_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='xmlNewEntity' type='function'/>
     <exports symbol='xmlEncodeEntitiesReentrant' type='function'/>
     <exports symbol='xmlGetDocEntity' 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='xmlCreateEntitiesTable' type='function'/>
     <exports symbol='xmlEncodeEntities' type='function'/>
     <exports symbol='xmlEncodeSpecialChars' type='function'/>
     <exports symbol='xmlGetPredefinedEntity' type='function'/>
     <exports symbol='xmlInitializePredefinedEntities' 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='xmlTreeIndentString' type='variable'/>
     <exports symbol='xmlIndentTreeOutput' type='variable'/>
     <exports symbol='xmlDefaultBufferSize' type='variable'/>
     <exports symbol='xmlRegisterNodeDefaultValue' type='variable'/>
     <exports symbol='xmlGetWarningsDefaultValue' type='variable'/>
     <exports symbol='docbDefaultSAXHandler' type='variable'/>
     <exports symbol='xmlGenericErrorContext' type='variable'/>
     <exports symbol='xmlDeregisterNodeDefaultValue' type='variable'/>
     <exports symbol='xmlGenericError' type='variable'/>
     <exports symbol='xmlMalloc' type='variable'/>
     <exports symbol='xmlParserVersion' type='variable'/>
     <exports symbol='xmlStructuredError' type='variable'/>
     <exports symbol='xmlDoValidityCheckingDefaultValue' type='variable'/>
     <exports symbol='xmlOutputBufferCreateFilenameValue' type='variable'/>
     <exports symbol='xmlPedanticParserDefaultValue' type='variable'/>
     <exports symbol='oldXMLWDcompatibility' type='variable'/>
     <exports symbol='xmlRealloc' type='variable'/>
     <exports symbol='xmlMemStrdup' type='variable'/>
     <exports symbol='htmlDefaultSAXHandler' type='variable'/>
     <exports symbol='xmlSaveNoEmptyTags' type='variable'/>
     <exports symbol='xmlParserInputBufferCreateFilenameValue' type='variable'/>
     <exports symbol='xmlKeepBlanksDefaultValue' type='variable'/>
     <exports symbol='xmlSubstituteEntitiesDefaultValue' type='variable'/>
     <exports symbol='xmlMallocAtomic' type='variable'/>
     <exports symbol='xmlBufferAllocScheme' type='variable'/>
     <exports symbol='xmlParserDebugEntities' type='variable'/>
     <exports symbol='xmlFree' type='variable'/>
     <exports symbol='xmlLoadExtDtdDefaultValue' type='variable'/>
     <exports symbol='xmlLastError' type='variable'/>
     <exports symbol='xmlLineNumbersDefaultValue' type='variable'/>
     <exports symbol='xmlDefaultSAXHandler' type='variable'/>
     <exports symbol='xmlDefaultSAXLocator' type='variable'/>
     <exports symbol='xmlThrDefSetStructuredErrorFunc' type='function'/>
     <exports symbol='xmlInitializeGlobalState' type='function'/>
     <exports symbol='xmlThrDefBufferAllocScheme' type='function'/>
     <exports symbol='xmlThrDefPedanticParserDefaultValue' type='function'/>
     <exports symbol='xmlRegisterNodeDefault' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFilenameFunc' type='function'/>
     <exports symbol='xmlThrDefOutputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlDeregisterNodeDefault' type='function'/>
     <exports symbol='xmlThrDefDefaultBufferSize' type='function'/>
     <exports symbol='xmlOutputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlThrDefLoadExtDtdDefaultValue' type='function'/>
     <exports symbol='xmlThrDefRegisterNodeDefault' type='function'/>
     <exports symbol='xmlThrDefKeepBlanksDefaultValue' type='function'/>
     <exports symbol='xmlDeregisterNodeFunc' type='function'/>
     <exports symbol='xmlThrDefParserDebugEntities' type='function'/>
     <exports symbol='xmlThrDefParserInputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlThrDefSetGenericErrorFunc' type='function'/>
     <exports symbol='xmlParserInputBufferCreateFilenameDefault' type='function'/>
     <exports symbol='xmlThrDefDoValidityCheckingDefaultValue' type='function'/>
     <exports symbol='xmlCleanupGlobals' type='function'/>
     <exports symbol='xmlThrDefGetWarningsDefaultValue' type='function'/>
     <exports symbol='xmlThrDefDeregisterNodeDefault' type='function'/>
     <exports symbol='xmlThrDefSubstituteEntitiesDefaultValue' type='function'/>
     <exports symbol='xmlRegisterNodeFunc' type='function'/>
     <exports symbol='xmlThrDefSaveNoEmptyTags' type='function'/>
     <exports symbol='xmlThrDefIndentTreeOutput' type='function'/>
     <exports symbol='xmlOutputBufferCreateFilenameFunc' type='function'/>
     <exports symbol='xmlInitGlobals' type='function'/>
     <exports symbol='xmlThrDefLineNumbersDefaultValue' type='function'/>
     <exports symbol='xmlThrDefTreeIndentString' type='function'/>
    </file>
    <file name='hash'>
     <summary>Chained hash tables</summary>
     <description>This module implements the hash table support used in various places in the library. </description>
     <author>Bjorn Reese &lt;bjorn.reese@systematic.dk&gt; </author>
     <exports symbol='XML_CAST_FPTR' type='macro'/>
     <exports symbol='xmlHashTable' type='typedef'/>
     <exports symbol='xmlHashTablePtr' type='typedef'/>
     <exports symbol='xmlHashScanFull' type='function'/>
     <exports symbol='xmlHashScan' type='function'/>
     <exports symbol='xmlHashScannerFull' type='function'/>
     <exports symbol='xmlHashCreateDict' type='function'/>
     <exports symbol='xmlHashAddEntry' type='function'/>
     <exports symbol='xmlHashUpdateEntry' type='function'/>
     <exports symbol='xmlHashQLookup3' type='function'/>
     <exports symbol='xmlHashQLookup2' type='function'/>
     <exports symbol='xmlHashScan3' type='function'/>
     <exports symbol='xmlHashScanner' type='function'/>
     <exports symbol='xmlHashDeallocator' 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='xmlHashRemoveEntry2' type='function'/>
     <exports symbol='xmlHashRemoveEntry3' type='function'/>
     <exports symbol='xmlHashCopy' type='function'/>
     <exports symbol='xmlHashScanFull3' type='function'/>
     <exports symbol='xmlHashUpdateEntry3' type='function'/>
     <exports symbol='xmlHashLookup3' type='function'/>
     <exports symbol='xmlHashLookup2' type='function'/>
     <exports symbol='xmlHashRemoveEntry' type='function'/>
     <exports symbol='xmlHashCopier' type='function'/>
     <exports symbol='xmlHashAddEntry2' type='function'/>
     <exports symbol='xmlHashAddEntry3' 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='xmlListInsert' type='function'/>
     <exports symbol='xmlListEmpty' type='function'/>
     <exports symbol='xmlListSort' type='function'/>
     <exports symbol='xmlListDeallocator' type='function'/>
     <exports symbol='xmlListMerge' type='function'/>
     <exports symbol='xmlListCreate' type='function'/>
     <exports symbol='xmlListDup' type='function'/>
     <exports symbol='xmlListRemoveLast' type='function'/>
     <exports symbol='xmlListWalk' type='function'/>
     <exports symbol='xmlListRemoveAll' type='function'/>
     <exports symbol='xmlListCopy' type='function'/>
     <exports symbol='xmlListPopFront' type='function'/>
     <exports symbol='xmlListSearch' type='function'/>
     <exports symbol='xmlListWalker' type='function'/>
     <exports symbol='xmlListRemoveFirst' type='function'/>
     <exports symbol='xmlListReverseWalk' type='function'/>
     <exports symbol='xmlLinkGetData' type='function'/>
     <exports symbol='xmlListClear' type='function'/>
     <exports symbol='xmlListAppend' type='function'/>
     <exports symbol='xmlListReverse' type='function'/>
     <exports symbol='xmlListDataCompare' type='function'/>
     <exports symbol='xmlListSize' type='function'/>
     <exports symbol='xmlListPushFront' type='function'/>
     <exports symbol='xmlListEnd' type='function'/>
     <exports symbol='xmlListPopBack' type='function'/>
     <exports symbol='xmlListReverseSearch' type='function'/>
     <exports symbol='xmlListPushBack' type='function'/>
     <exports symbol='xmlListFront' type='function'/>
     <exports symbol='xmlListDelete' 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='xmlNanoFTPQuit' type='function'/>
     <exports symbol='xmlNanoFTPClose' type='function'/>
     <exports symbol='ftpListCallback' type='function'/>
     <exports symbol='xmlNanoFTPCloseConnection' type='function'/>
     <exports symbol='xmlNanoFTPProxy' type='function'/>
     <exports symbol='xmlNanoFTPUpdateURL' type='function'/>
     <exports symbol='xmlNanoFTPGetConnection' type='function'/>
     <exports symbol='xmlNanoFTPDele' type='function'/>
     <exports symbol='xmlNanoFTPNewCtxt' type='function'/>
     <exports symbol='xmlNanoFTPCheckResponse' type='function'/>
     <exports symbol='xmlNanoFTPScanProxy' type='function'/>
     <exports symbol='ftpDataCallback' type='function'/>
     <exports symbol='xmlNanoFTPGetResponse' type='function'/>
     <exports symbol='xmlNanoFTPCwd' type='function'/>
     <exports symbol='xmlNanoFTPInit' type='function'/>
     <exports symbol='xmlNanoFTPConnectTo' type='function'/>
     <exports symbol='xmlNanoFTPList' type='function'/>
     <exports symbol='xmlNanoFTPOpen' type='function'/>
     <exports symbol='xmlNanoFTPConnect' type='function'/>
     <exports symbol='xmlNanoFTPGetSocket' type='function'/>
     <exports symbol='xmlNanoFTPGet' type='function'/>
     <exports symbol='xmlNanoFTPRead' type='function'/>
     <exports symbol='xmlNanoFTPFreeCtxt' type='function'/>
     <exports symbol='xmlNanoFTPCleanup' 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='xmlNanoHTTPContentLength' type='function'/>
     <exports symbol='xmlNanoHTTPMimeType' type='function'/>
     <exports symbol='xmlNanoHTTPClose' type='function'/>
     <exports symbol='xmlNanoHTTPCleanup' type='function'/>
     <exports symbol='xmlNanoHTTPMethod' type='function'/>
     <exports symbol='xmlNanoHTTPInit' 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_WITH_NONE' type='enum'/>
     <exports symbol='XML_WITH_SCHEMATRON' 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_WITH_PATTERN' type='enum'/>
     <exports symbol='XML_PARSE_NODICT' type='enum'/>
     <exports symbol='XML_PARSER_SYSTEM_LITERAL' type='enum'/>
     <exports symbol='XML_WITH_REGEXP' type='enum'/>
     <exports symbol='XML_PARSER_PI' type='enum'/>
     <exports symbol='XML_PARSE_UNKNOWN' type='enum'/>
     <exports symbol='XML_WITH_XPATH' type='enum'/>
     <exports symbol='XML_WITH_HTML' type='enum'/>
     <exports symbol='XML_WITH_FTP' type='enum'/>
     <exports symbol='XML_WITH_WRITER' type='enum'/>
     <exports symbol='XML_WITH_C14N' 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_WITH_HTTP' type='enum'/>
     <exports symbol='XML_PARSER_EPILOG' type='enum'/>
     <exports symbol='XML_PARSER_END_TAG' type='enum'/>
     <exports symbol='XML_WITH_DEBUG' type='enum'/>
     <exports symbol='XML_PARSE_DTDVALID' type='enum'/>
     <exports symbol='XML_PARSE_DOM' type='enum'/>
     <exports symbol='XML_PARSER_ATTRIBUTE_VALUE' type='enum'/>
     <exports symbol='XML_PARSE_PUSH_SAX' type='enum'/>
     <exports symbol='XML_WITH_TREE' type='enum'/>
     <exports symbol='XML_PARSE_RECOVER' type='enum'/>
     <exports symbol='XML_WITH_SCHEMAS' type='enum'/>
     <exports symbol='XML_PARSE_PEDANTIC' type='enum'/>
     <exports symbol='XML_PARSER_EOF' type='enum'/>
     <exports symbol='XML_PARSER_CDATA_SECTION' type='enum'/>
     <exports symbol='XML_WITH_LEGACY' type='enum'/>
     <exports symbol='XML_PARSE_XINCLUDE' type='enum'/>
     <exports symbol='XML_PARSE_NOXINCNODE' type='enum'/>
     <exports symbol='XML_PARSE_NOBASEFIX' type='enum'/>
     <exports symbol='XML_WITH_OUTPUT' type='enum'/>
     <exports symbol='XML_WITH_XINCLUDE' type='enum'/>
     <exports symbol='XML_WITH_PUSH' type='enum'/>
     <exports symbol='XML_PARSE_READER' type='enum'/>
     <exports symbol='XML_WITH_THREAD' type='enum'/>
     <exports symbol='XML_PARSE_SAX' 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_PARSE_DTDATTR' type='enum'/>
     <exports symbol='XML_PARSE_NOWARNING' type='enum'/>
     <exports symbol='XML_PARSE_OLD10' type='enum'/>
     <exports symbol='XML_PARSE_NOERROR' type='enum'/>
     <exports symbol='XML_WITH_ISO8859X' type='enum'/>
     <exports symbol='XML_WITH_EXPR' type='enum'/>
     <exports symbol='XML_PARSE_NSCLEAN' type='enum'/>
     <exports symbol='XML_WITH_UNICODE' type='enum'/>
     <exports symbol='XML_WITH_CATALOG' type='enum'/>
     <exports symbol='XML_WITH_MODULES' type='enum'/>
     <exports symbol='XML_WITH_XPTR' type='enum'/>
     <exports symbol='XML_PARSE_NOCDATA' type='enum'/>
     <exports symbol='XML_PARSE_COMPACT' type='enum'/>
     <exports symbol='XML_PARSE_SAX1' type='enum'/>
     <exports symbol='XML_WITH_ZLIB' type='enum'/>
     <exports symbol='XML_WITH_READER' type='enum'/>
     <exports symbol='XML_PARSER_DTD' type='enum'/>
     <exports symbol='XML_PARSER_MISC' type='enum'/>
     <exports symbol='XML_PARSER_START' type='enum'/>
     <exports symbol='XML_WITH_DEBUG_MEM' type='enum'/>
     <exports symbol='XML_PARSE_HUGE' type='enum'/>
     <exports symbol='XML_PARSER_START_TAG' type='enum'/>
     <exports symbol='XML_PARSER_IGNORE' type='enum'/>
     <exports symbol='XML_PARSER_COMMENT' type='enum'/>
     <exports symbol='XML_PARSER_PUBLIC_LITERAL' type='enum'/>
     <exports symbol='XML_WITH_ICONV' type='enum'/>
     <exports symbol='XML_WITH_AUTOMATA' type='enum'/>
     <exports symbol='XML_WITH_DEBUG_RUN' type='enum'/>
     <exports symbol='XML_WITH_SAX1' type='enum'/>
     <exports symbol='XML_WITH_VALID' type='enum'/>
     <exports symbol='xmlParserNodeInfoSeqPtr' type='typedef'/>
     <exports symbol='xmlSAXHandlerV1' type='typedef'/>
     <exports symbol='xmlParserInputState' type='typedef'/>
     <exports symbol='xmlParserNodeInfoPtr' type='typedef'/>
     <exports symbol='xmlParserNodeInfoSeq' type='typedef'/>
     <exports symbol='xmlFeature' type='typedef'/>
     <exports symbol='xmlParserMode' type='typedef'/>
     <exports symbol='xmlParserOption' type='typedef'/>
     <exports symbol='xmlSAXHandlerV1Ptr' type='typedef'/>
     <exports symbol='xmlParserNodeInfo' type='typedef'/>
     <exports symbol='_xmlParserNodeInfo' type='struct'/>
     <exports symbol='_xmlParserCtxt' type='struct'/>
     <exports symbol='_xmlSAXHandlerV1' type='struct'/>
     <exports symbol='_xmlParserInput' type='struct'/>
     <exports symbol='_xmlSAXHandler' type='struct'/>
     <exports symbol='_xmlParserNodeInfoSeq' type='struct'/>
     <exports symbol='_xmlSAXLocator' type='struct'/>
     <exports symbol='xmlSetupParserForBuffer' type='function'/>
     <exports symbol='xmlCtxtReadFile' type='function'/>
     <exports symbol='xmlParseCtxtExternalEntity' type='function'/>
     <exports symbol='attributeDeclSAXFunc' type='function'/>
     <exports symbol='getEntitySAXFunc' type='function'/>
     <exports symbol='startElementSAXFunc' type='function'/>
     <exports symbol='charactersSAXFunc' type='function'/>
     <exports symbol='xmlClearNodeInfoSeq' type='function'/>
     <exports symbol='xmlParseChunk' type='function'/>
     <exports symbol='xmlParseEntity' type='function'/>
     <exports symbol='xmlRecoverFile' type='function'/>
     <exports symbol='xmlCtxtReadDoc' type='function'/>
     <exports symbol='startElementNsSAX2Func' type='function'/>
     <exports symbol='xmlCreateIOParserCtxt' type='function'/>
     <exports symbol='xmlParseInNodeContext' type='function'/>
     <exports symbol='referenceSAXFunc' type='function'/>
     <exports symbol='hasExternalSubsetSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseDoc' type='function'/>
     <exports symbol='xmlReadMemory' type='function'/>
     <exports symbol='xmlParseMemory' type='function'/>
     <exports symbol='xmlNewIOInputStream' type='function'/>
     <exports symbol='processingInstructionSAXFunc' type='function'/>
     <exports symbol='xmlParseBalancedChunkMemoryRecover' type='function'/>
     <exports symbol='xmlInitParser' type='function'/>
     <exports symbol='xmlCreateDocParserCtxt' type='function'/>
     <exports symbol='errorSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseMemory' type='function'/>
     <exports symbol='xmlRecoverMemory' type='function'/>
     <exports symbol='xmlExternalEntityLoader' type='function'/>
     <exports symbol='hasInternalSubsetSAXFunc' type='function'/>
     <exports symbol='cdataBlockSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseFile' type='function'/>
     <exports symbol='xmlParserInputDeallocate' type='function'/>
     <exports symbol='xmlCtxtReadIO' type='function'/>
     <exports symbol='xmlSAXParseMemoryWithData' type='function'/>
     <exports symbol='xmlGetFeature' type='function'/>
     <exports symbol='xmlIOParseDTD' type='function'/>
     <exports symbol='xmlFreeParserCtxt' type='function'/>
     <exports symbol='xmlParseDTD' type='function'/>
     <exports symbol='xmlRecoverDoc' type='function'/>
     <exports symbol='commentSAXFunc' type='function'/>
     <exports symbol='xmlInitParserCtxt' type='function'/>
     <exports symbol='attributeSAXFunc' type='function'/>
     <exports symbol='xmlParserInputGrow' type='function'/>
     <exports symbol='xmlCtxtReadMemory' type='function'/>
     <exports symbol='externalSubsetSAXFunc' type='function'/>
     <exports symbol='resolveEntitySAXFunc' type='function'/>
     <exports symbol='xmlPedanticParserDefault' type='function'/>
     <exports symbol='xmlSAXParseEntity' type='function'/>
     <exports symbol='xmlParseDoc' type='function'/>
     <exports symbol='xmlSAXParseFileWithData' type='function'/>
     <exports symbol='xmlLineNumbersDefault' type='function'/>
     <exports symbol='xmlGetExternalEntityLoader' type='function'/>
     <exports symbol='elementDeclSAXFunc' type='function'/>
     <exports symbol='xmlCtxtUseOptions' 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='xmlParseDocument' type='function'/>
     <exports symbol='setDocumentLocatorSAXFunc' type='function'/>
     <exports symbol='getParameterEntitySAXFunc' type='function'/>
     <exports symbol='ignorableWhitespaceSAXFunc' type='function'/>
     <exports symbol='xmlInitNodeInfoSeq' type='function'/>
     <exports symbol='xmlSubstituteEntitiesDefault' type='function'/>
     <exports symbol='endElementSAXFunc' type='function'/>
     <exports symbol='xmlParserFindNodeInfoIndex' type='function'/>
     <exports symbol='xmlByteConsumed' type='function'/>
     <exports symbol='xmlCtxtReset' type='function'/>
     <exports symbol='xmlSetFeature' type='function'/>
     <exports symbol='xmlKeepBlanksDefault' type='function'/>
     <exports symbol='xmlParserInputRead' type='function'/>
     <exports symbol='xmlReadFile' type='function'/>
     <exports symbol='xmlGetFeaturesList' type='function'/>
     <exports symbol='xmlHasFeature' type='function'/>
     <exports symbol='unparsedEntityDeclSAXFunc' type='function'/>
     <exports symbol='xmlSAXUserParseFile' type='function'/>
     <exports symbol='fatalErrorSAXFunc' type='function'/>
     <exports symbol='xmlSAXParseDTD' type='function'/>
     <exports symbol='xmlParserFindNodeInfo' type='function'/>
     <exports symbol='entityDeclSAXFunc' type='function'/>
     <exports symbol='xmlLoadExternalEntity' type='function'/>
     <exports symbol='xmlStopParser' type='function'/>
     <exports symbol='xmlReadFd' type='function'/>
     <exports symbol='xmlParseExtParsedEnt' type='function'/>
     <exports symbol='xmlReadIO' type='function'/>
     <exports symbol='xmlReadDoc' type='function'/>
     <exports symbol='xmlSAXUserParseMemory' type='function'/>
     <exports symbol='xmlParseBalancedChunkMemory' type='function'/>
     <exports symbol='endElementNsSAX2Func' type='function'/>
     <exports symbol='xmlCleanupParser' type='function'/>
     <exports symbol='xmlCtxtResetPush' type='function'/>
     <exports symbol='isStandaloneSAXFunc' type='function'/>
     <exports symbol='startDocumentSAXFunc' type='function'/>
     <exports symbol='xmlClearParserCtxt' type='function'/>
     <exports symbol='xmlParseExternalEntity' type='function'/>
     <exports symbol='notationDeclSAXFunc' type='function'/>
     <exports symbol='warningSAXFunc' 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_BYTE_CHAR' type='macro'/>
     <exports symbol='IS_PUBIDCHAR' type='macro'/>
     <exports symbol='IS_DIGIT_CH' type='macro'/>
     <exports symbol='IS_EXTENDER' type='macro'/>
     <exports symbol='IS_ASCII_DIGIT' type='macro'/>
     <exports symbol='IS_COMBINING_CH' type='macro'/>
     <exports symbol='IS_CHAR' type='macro'/>
     <exports symbol='IS_LETTER' type='macro'/>
     <exports symbol='IS_IDEOGRAPHIC' type='macro'/>
     <exports symbol='MOVETO_STARTTAG' type='macro'/>
     <exports symbol='IS_ASCII_LETTER' type='macro'/>
     <exports symbol='IS_DIGIT' type='macro'/>
     <exports symbol='XML_SUBSTITUTE_PEREF' type='macro'/>
     <exports symbol='MOVETO_ENDTAG' type='macro'/>
     <exports symbol='SKIP_EOL' type='macro'/>
     <exports symbol='IS_EXTENDER_CH' type='macro'/>
     <exports symbol='IS_BLANK_CH' type='macro'/>
     <exports symbol='IS_LETTER_CH' type='macro'/>
     <exports symbol='XML_SUBSTITUTE_NONE' type='macro'/>
     <exports symbol='IS_COMBINING' type='macro'/>
     <exports symbol='XML_MAX_NAMELEN' type='macro'/>
     <exports symbol='IS_BASECHAR' type='macro'/>
     <exports symbol='INPUT_CHUNK' type='macro'/>
     <exports symbol='IS_PUBIDCHAR_CH' 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='nodePop' type='function'/>
     <exports symbol='xmlParseNotationDecl' type='function'/>
     <exports symbol='xmlParseExternalSubset' type='function'/>
     <exports symbol='xmlParseMisc' type='function'/>
     <exports symbol='xmlSwitchInputEncoding' type='function'/>
     <exports symbol='xmlNewStringInputStream' type='function'/>
     <exports symbol='xmlParseExternalID' type='function'/>
     <exports symbol='xmlScanName' type='function'/>
     <exports symbol='xmlParseElementDecl' type='function'/>
     <exports symbol='xmlParseMarkupDecl' type='function'/>
     <exports symbol='htmlCreateFileParserCtxt' type='function'/>
     <exports symbol='inputPush' type='function'/>
     <exports symbol='xmlStringLenDecodeEntities' type='function'/>
     <exports symbol='namePop' type='function'/>
     <exports symbol='xmlParseContent' type='function'/>
     <exports symbol='xmlNewInputStream' type='function'/>
     <exports symbol='xmlNamespaceParseQName' type='function'/>
     <exports symbol='xmlNewInputFromFile' type='function'/>
     <exports symbol='xmlParserHandlePEReference' type='function'/>
     <exports symbol='xmlStringDecodeEntities' type='function'/>
     <exports symbol='xmlCreateFileParserCtxt' type='function'/>
     <exports symbol='xmlParseCharRef' type='function'/>
     <exports symbol='xmlParseElement' type='function'/>
     <exports symbol='xmlParseTextDecl' type='function'/>
     <exports symbol='xmlNewEntityInputStream' type='function'/>
     <exports symbol='xmlCopyCharMultiByte' type='function'/>
     <exports symbol='xmlParseElementChildrenContentDecl' type='function'/>
     <exports symbol='xmlParseCharData' type='function'/>
     <exports symbol='xmlParseVersionInfo' type='function'/>
     <exports symbol='xmlParseSDDecl' type='function'/>
     <exports symbol='xmlParseEnumeratedType' type='function'/>
     <exports symbol='xmlHandleEntity' type='function'/>
     <exports symbol='xmlCurrentChar' type='function'/>
     <exports symbol='xmlSkipBlankChars' type='function'/>
     <exports symbol='xmlParseNotationType' type='function'/>
     <exports symbol='xmlParserInputShrink' type='function'/>
     <exports symbol='xmlSetEntityReferenceFunc' type='function'/>
     <exports symbol='xmlFreeInputStream' type='function'/>
     <exports symbol='xmlParsePEReference' type='function'/>
     <exports symbol='xmlCreateURLParserCtxt' type='function'/>
     <exports symbol='xmlIsLetter' type='function'/>
     <exports symbol='xmlCheckLanguageID' type='function'/>
     <exports symbol='xmlNextChar' type='function'/>
     <exports symbol='xmlParseEnumerationType' type='function'/>
     <exports symbol='xmlParseAttributeType' type='function'/>
     <exports symbol='xmlParseDefaultDecl' type='function'/>
     <exports symbol='xmlParseSystemLiteral' type='function'/>
     <exports symbol='xmlParseAttValue' type='function'/>
     <exports symbol='xmlCreateMemoryParserCtxt' type='function'/>
     <exports symbol='xmlParseAttributeListDecl' type='function'/>
     <exports symbol='xmlParseName' type='function'/>
     <exports symbol='xmlParseEncName' type='function'/>
     <exports symbol='nodePush' type='function'/>
     <exports symbol='xmlSwitchEncoding' type='function'/>
     <exports symbol='xmlSwitchToEncoding' type='function'/>
     <exports symbol='xmlParseEntityRef' type='function'/>
     <exports symbol='xmlParseAttribute' type='function'/>
     <exports symbol='xmlParseEndTag' type='function'/>
     <exports symbol='xmlParseEncodingDecl' type='function'/>
     <exports symbol='htmlInitAutoClose' type='function'/>
     <exports symbol='xmlCreateEntityParserCtxt' type='function'/>
     <exports symbol='xmlSplitQName' type='function'/>
     <exports symbol='xmlParserHandleReference' type='function'/>
     <exports symbol='xmlParsePITarget' type='function'/>
     <exports symbol='xmlParseElementContentDecl' type='function'/>
     <exports symbol='inputPop' type='function'/>
     <exports symbol='xmlPopInput' type='function'/>
     <exports symbol='xmlParsePubidLiteral' type='function'/>
     <exports symbol='xmlPushInput' type='function'/>
     <exports symbol='xmlParseEntityValue' type='function'/>
     <exports symbol='xmlDecodeEntities' type='function'/>
     <exports symbol='xmlParseVersionNum' type='function'/>
     <exports symbol='xmlParseXMLDecl' type='function'/>
     <exports symbol='xmlEntityReferenceFunc' type='function'/>
     <exports symbol='xmlParseElementMixedContentDecl' type='function'/>
     <exports symbol='xmlParseQuotedString' type='function'/>
     <exports symbol='xmlNamespaceParseNSDef' type='function'/>
     <exports symbol='xmlParseCDSect' type='function'/>
     <exports symbol='xmlStringCurrentChar' type='function'/>
     <exports symbol='xmlParseComment' type='function'/>
     <exports symbol='xmlErrMemory' type='function'/>
     <exports symbol='xmlNamespaceParseNCName' type='function'/>
     <exports symbol='xmlParseNmtoken' type='function'/>
     <exports symbol='xmlParseReference' type='function'/>
     <exports symbol='namePush' type='function'/>
     <exports symbol='xmlParseNamespace' type='function'/>
     <exports symbol='xmlCopyChar' type='function'/>
     <exports symbol='xmlParsePI' type='function'/>
     <exports symbol='xmlParseDocTypeDecl' type='function'/>
     <exports symbol='xmlParseStartTag' 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='XML_PATTERN_DEFAULT' type='enum'/>
     <exports symbol='XML_PATTERN_XSFIELD' type='enum'/>
     <exports symbol='XML_PATTERN_XSSEL' type='enum'/>
     <exports symbol='XML_PATTERN_XPATH' type='enum'/>
     <exports symbol='xmlStreamCtxtPtr' type='typedef'/>
     <exports symbol='xmlPatternFlags' type='typedef'/>
     <exports symbol='xmlStreamCtxt' type='typedef'/>
     <exports symbol='xmlPattern' type='typedef'/>
     <exports symbol='xmlPatternPtr' type='typedef'/>
     <exports symbol='xmlPatternMinDepth' type='function'/>
     <exports symbol='xmlPatternGetStreamCtxt' type='function'/>
     <exports symbol='xmlPatternFromRoot' type='function'/>
     <exports symbol='xmlFreePatternList' type='function'/>
     <exports symbol='xmlPatternStreamable' type='function'/>
     <exports symbol='xmlStreamPushAttr' type='function'/>
     <exports symbol='xmlPatternMatch' type='function'/>
     <exports symbol='xmlStreamWantsAnyNode' type='function'/>
     <exports symbol='xmlStreamPop' type='function'/>
     <exports symbol='xmlFreePattern' type='function'/>
     <exports symbol='xmlStreamPush' type='function'/>
     <exports symbol='xmlPatternMaxDepth' type='function'/>
     <exports symbol='xmlPatterncompile' type='function'/>
     <exports symbol='xmlStreamPushNode' type='function'/>
     <exports symbol='xmlFreeStreamCtxt' 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_DATATYPE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_TYPECMP' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_VALUE' type='enum'/>
     <exports symbol='XML_RELAXNG_ERR_NOGRAMMAR' 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_INTERNODATA' 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_DATAELEM' 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='xmlRelaxNGPtr' type='typedef'/>
     <exports symbol='xmlRelaxNGValidErr' type='typedef'/>
     <exports symbol='xmlRelaxNGParserCtxt' type='typedef'/>
     <exports symbol='xmlRelaxNGParserCtxtPtr' type='typedef'/>
     <exports symbol='xmlRelaxNGParserFlag' type='typedef'/>
     <exports symbol='xmlRelaxNGValidCtxt' type='typedef'/>
     <exports symbol='xmlRelaxNGValidCtxtPtr' type='typedef'/>
     <exports symbol='xmlRelaxNGFreeValidCtxt' type='function'/>
     <exports symbol='xmlRelaxNGNewDocParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGSetValidErrors' type='function'/>
     <exports symbol='xmlRelaxNGNewParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGGetParserErrors' type='function'/>
     <exports symbol='xmlRelaxNGValidatePopElement' type='function'/>
     <exports symbol='xmlRelaxNGNewValidCtxt' type='function'/>
     <exports symbol='xmlRelaxNGNewMemParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGDump' type='function'/>
     <exports symbol='xmlRelaxNGSetParserErrors' type='function'/>
     <exports symbol='xmlRelaxNGParse' type='function'/>
     <exports symbol='xmlRelaxNGSetParserStructuredErrors' type='function'/>
     <exports symbol='xmlRelaxNGValidateFullElement' type='function'/>
     <exports symbol='xmlRelaxNGValidityErrorFunc' type='function'/>
     <exports symbol='xmlRelaxNGValidatePushElement' type='function'/>
     <exports symbol='xmlRelaxNGFree' type='function'/>
     <exports symbol='xmlRelaxNGValidateDoc' type='function'/>
     <exports symbol='xmlRelaxNGSetValidStructuredErrors' type='function'/>
     <exports symbol='xmlRelaxNGFreeParserCtxt' type='function'/>
     <exports symbol='xmlRelaxNGGetValidErrors' type='function'/>
     <exports symbol='xmlRelaxNGInitTypes' type='function'/>
     <exports symbol='xmlRelaxNGDumpTree' 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 The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </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_FIXUP_1' 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_DERIVATION_METHOD_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_USE_REQUIRED' type='macro'/>
     <exports symbol='XML_SCHEMAS_FACET_COLLAPSE' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_UNION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANY_STRICT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_INTERNAL_RESOLVED' type='macro'/>
     <exports symbol='XML_SCHEMAS_QUALIF_ELEM' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_LIST' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_INTERNAL_CHECKED' 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_BLOCK_DEFAULT_SUBSTITUTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTRGROUP_REDEFINED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BLOCK_DEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_REDEFINED' 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_TYPE_FINAL_LIST' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_USE_OPTIONAL' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_NSDEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_WHITESPACE_REPLACE' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BLOCK_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANYATTR_STRICT' type='macro'/>
     <exports symbol='XML_SCHEMAS_FACET_UNKNOWN' 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_ATTR_GLOBAL' 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_TYPE_MIXED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTR_FIXED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_INTERNAL_RESOLVED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANY_SKIP' type='macro'/>
     <exports symbol='XML_SCHEMAS_FINAL_DEFAULT_LIST' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_VARIETY_ABSENT' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FINAL_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_WILDCARD_COMPLETE' 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_ELEM_TOPLEVEL' type='macro'/>
     <exports symbol='XML_SCHEMAS_ANY_LAX' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FINAL_RESTRICTION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_HAS_FACETS' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FINAL_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_NORMVALUENEEDED' type='macro'/>
     <exports symbol='XML_SCHEMAS_ELEM_FINAL_ABSENT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_BLOCK_EXTENSION' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_INTERNAL_INVALID' type='macro'/>
     <exports symbol='XML_SCHEMAS_ATTRGROUP_HAS_REFS' 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_TYPE_FINAL_DEFAULT' type='macro'/>
     <exports symbol='XML_SCHEMAS_TYPE_FACETSNEEDVALUE' 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_SCHEMA_EXTRA_QNAMEREF' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_EXTENSION' 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_HEXBINARY' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_UNION' type='enum'/>
     <exports symbol='XML_SCHEMAS_UNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMAS_UINT' type='enum'/>
     <exports symbol='XML_SCHEMAS_NPINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMAS_GMONTHDAY' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MAXEXCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ULONG' type='enum'/>
     <exports symbol='XML_SCHEMAS_PINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_CHOICE' type='enum'/>
     <exports symbol='XML_SCHEMAS_DECIMAL' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_UR' type='enum'/>
     <exports symbol='XML_SCHEMAS_DOUBLE' type='enum'/>
     <exports symbol='XML_SCHEMAS_NINTEGER' type='enum'/>
     <exports symbol='XML_SCHEMAS_NORMSTRING' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_PARTICLE' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_SIMPLE' type='enum'/>
     <exports symbol='XML_SCHEMAS_NCNAME' type='enum'/>
     <exports symbol='XML_SCHEMAS_LONG' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ANY_ATTRIBUTE' 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_SCHEMAS_GYEARMONTH' type='enum'/>
     <exports symbol='XML_SCHEMAS_BASE64BINARY' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_FRACTIONDIGITS' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_WHITESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAS_IDREF' 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_SCHEMAS_TOKEN' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_BASIC' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_ENUMERATION' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_UNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MININCLUSIVE' type='enum'/>
     <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_SCHEMA_EXTRA_ATTR_USE_PROHIB' type='enum'/>
     <exports symbol='XML_SCHEMAS_BYTE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ALL' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_IDC_KEYREF' type='enum'/>
     <exports symbol='XML_SCHEMAS_NOTATION' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MAXINCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMAS_NAME' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_LIST' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTE_USE' type='enum'/>
     <exports symbol='XML_SCHEMAS_GDAY' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ANY' type='enum'/>
     <exports symbol='XML_SCHEMAS_ANYURI' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_COMPLEX' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ATTRIBUTEGROUP' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_BASIC' type='enum'/>
     <exports symbol='XML_SCHEMAS_IDREFS' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_IDC_UNIQUE' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_LENGTH' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_SIMPLE' 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_ANYSIMPLETYPE' 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_SCHEMAS_USHORT' type='enum'/>
     <exports symbol='XML_SCHEMAS_INTEGER' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_COMPLEX_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MINEXCLUSIVE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_IDC_KEY' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_SIMPLE_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAS_FLOAT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ENTITIES' type='enum'/>
     <exports symbol='XML_SCHEMAS_DATE' type='enum'/>
     <exports symbol='XML_SCHEMAS_STRING' type='enum'/>
     <exports symbol='XML_SCHEMAS_INT' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_NOTATION' type='enum'/>
     <exports symbol='XML_SCHEMA_CONTENT_ANY' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MINLENGTH' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_RESTRICTION' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_SEQUENCE' type='enum'/>
     <exports symbol='XML_SCHEMA_TYPE_ELEMENT' type='enum'/>
     <exports symbol='XML_SCHEMA_FACET_MAXLENGTH' type='enum'/>
     <exports symbol='xmlSchemaAttributeGroupPtr' type='typedef'/>
     <exports symbol='xmlSchemaElementPtr' type='typedef'/>
     <exports symbol='xmlSchemaFacetLinkPtr' type='typedef'/>
     <exports symbol='xmlSchemaVal' type='typedef'/>
     <exports symbol='xmlSchemaAttributeLinkPtr' type='typedef'/>
     <exports symbol='xmlSchemaType' type='typedef'/>
     <exports symbol='xmlSchemaAnnot' type='typedef'/>
     <exports symbol='xmlSchemaAnnotPtr' type='typedef'/>
     <exports symbol='xmlSchemaElement' type='typedef'/>
     <exports symbol='xmlSchemaWildcard' type='typedef'/>
     <exports symbol='xmlSchemaWildcardPtr' type='typedef'/>
     <exports symbol='xmlSchemaFacetPtr' type='typedef'/>
     <exports symbol='xmlSchemaTypeLink' type='typedef'/>
     <exports symbol='xmlSchemaAttributeLink' type='typedef'/>
     <exports symbol='xmlSchemaValPtr' type='typedef'/>
     <exports symbol='xmlSchemaFacetLink' type='typedef'/>
     <exports symbol='xmlSchemaWildcardNsPtr' type='typedef'/>
     <exports symbol='xmlSchemaAttributeGroup' type='typedef'/>
     <exports symbol='xmlSchemaTypeLinkPtr' type='typedef'/>
     <exports symbol='xmlSchemaWildcardNs' type='typedef'/>
     <exports symbol='xmlSchemaAttributePtr' type='typedef'/>
     <exports symbol='xmlSchemaNotationPtr' type='typedef'/>
     <exports symbol='xmlSchemaValType' type='typedef'/>
     <exports symbol='xmlSchemaTypePtr' type='typedef'/>
     <exports symbol='xmlSchemaNotation' type='typedef'/>
     <exports symbol='xmlSchemaFacet' type='typedef'/>
     <exports symbol='xmlSchemaContentType' type='typedef'/>
     <exports symbol='xmlSchemaTypeType' type='typedef'/>
     <exports symbol='xmlSchemaAttribute' type='typedef'/>
     <exports symbol='_xmlSchemaWildcardNs' type='struct'/>
     <exports symbol='_xmlSchemaNotation' type='struct'/>
     <exports symbol='_xmlSchemaAttribute' type='struct'/>
     <exports symbol='_xmlSchemaType' type='struct'/>
     <exports symbol='_xmlSchemaAttributeGroup' type='struct'/>
     <exports symbol='_xmlSchemaFacetLink' type='struct'/>
     <exports symbol='_xmlSchemaElement' type='struct'/>
     <exports symbol='_xmlSchema' type='struct'/>
     <exports symbol='_xmlSchemaAttributeLink' type='struct'/>
     <exports symbol='_xmlSchemaFacet' 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='schematron'>
     <summary>XML Schemastron implementation</summary>
     <description>interface to the XML Schematron validity checking. </description>
     <author>Daniel Veillard </author>
     <exports symbol='XML_SCHEMATRON_OUT_IO' type='enum'/>
     <exports symbol='XML_SCHEMATRON_OUT_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMATRON_OUT_BUFFER' type='enum'/>
     <exports symbol='XML_SCHEMATRON_OUT_FILE' type='enum'/>
     <exports symbol='XML_SCHEMATRON_OUT_XML' type='enum'/>
     <exports symbol='XML_SCHEMATRON_OUT_TEXT' type='enum'/>
     <exports symbol='XML_SCHEMATRON_OUT_QUIET' type='enum'/>
     <exports symbol='xmlSchematronValidCtxt' type='typedef'/>
     <exports symbol='xmlSchematronValidOptions' type='typedef'/>
     <exports symbol='xmlSchematronPtr' type='typedef'/>
     <exports symbol='xmlSchematronParserCtxt' type='typedef'/>
     <exports symbol='xmlSchematron' type='typedef'/>
     <exports symbol='xmlSchematronValidCtxtPtr' type='typedef'/>
     <exports symbol='xmlSchematronParserCtxtPtr' type='typedef'/>
     <exports symbol='xmlSchematronValidateDoc' type='function'/>
     <exports symbol='xmlSchematronFreeParserCtxt' type='function'/>
     <exports symbol='xmlSchematronNewMemParserCtxt' type='function'/>
     <exports symbol='xmlSchematronValidityErrorFunc' type='function'/>
     <exports symbol='xmlSchematronNewParserCtxt' type='function'/>
     <exports symbol='xmlSchematronValidityWarningFunc' type='function'/>
     <exports symbol='xmlSchematronFree' type='function'/>
     <exports symbol='xmlSchematronSetValidStructuredErrors' type='function'/>
     <exports symbol='xmlSchematronFreeValidCtxt' type='function'/>
     <exports symbol='xmlSchematronParse' type='function'/>
     <exports symbol='xmlSchematronNewDocParserCtxt' type='function'/>
     <exports symbol='xmlSchematronNewValidCtxt' 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='xmlMutexUnlock' type='function'/>
     <exports symbol='xmlCleanupThreads' type='function'/>
     <exports symbol='xmlLockLibrary' 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='xmlDllMain' type='function'/>
     <exports symbol='xmlFreeMutex' type='function'/>
     <exports symbol='xmlUnlockLibrary' type='function'/>
     <exports symbol='xmlInitThreads' type='function'/>
     <exports symbol='xmlRMutexLock' 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_XML_NAMESPACE' type='macro'/>
     <exports symbol='XML_XML_ID' type='macro'/>
     <exports symbol='xmlRootNode' type='macro'/>
     <exports symbol='XML_GET_LINE' type='macro'/>
     <exports symbol='XML_GET_CONTENT' type='macro'/>
     <exports symbol='xmlChildrenNode' type='macro'/>
     <exports symbol='BASE_BUFFER_SIZE' type='macro'/>
     <exports symbol='XML_ATTRIBUTE_IMPLIED' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_ELEMENT' type='enum'/>
     <exports symbol='XML_ENTITY_REF_NODE' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_IDREFS' type='enum'/>
     <exports symbol='XML_BUFFER_ALLOC_DOUBLEIT' type='enum'/>
     <exports symbol='XML_XINCLUDE_END' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NODE' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NMTOKENS' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_IDREF' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_ELEMENT' type='enum'/>
     <exports symbol='XML_TEXT_NODE' 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_DOC_USERBUILT' type='enum'/>
     <exports symbol='XML_DOC_INTERNAL' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_REQUIRED' type='enum'/>
     <exports symbol='XML_DOCUMENT_FRAG_NODE' type='enum'/>
     <exports symbol='XML_DOC_DTDVALID' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_ANY' type='enum'/>
     <exports symbol='XML_DOC_NSVALID' 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_DOC_HTML' type='enum'/>
     <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
     <exports symbol='XML_NAMESPACE_DECL' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NOTATION' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_MIXED' type='enum'/>
     <exports symbol='XML_XINCLUDE_START' type='enum'/>
     <exports symbol='XML_DOC_XINCLUDE' 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_ELEMENT_CONTENT_SEQ' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_EMPTY' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_ENUMERATION' type='enum'/>
     <exports symbol='XML_DOC_OLD10' type='enum'/>
     <exports symbol='XML_HTML_DOCUMENT_NODE' type='enum'/>
     <exports symbol='XML_ELEMENT_TYPE_UNDEFINED' type='enum'/>
     <exports symbol='XML_DOCUMENT_NODE' type='enum'/>
     <exports symbol='XML_DOCB_DOCUMENT_NODE' type='enum'/>
     <exports symbol='XML_COMMENT_NODE' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_NONE' 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_BUFFER_ALLOC_IO' type='enum'/>
     <exports symbol='XML_ENTITY_NODE' type='enum'/>
     <exports symbol='XML_ATTRIBUTE_ENTITY' type='enum'/>
     <exports symbol='XML_DOC_WELLFORMED' 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='xmlParserInputPtr' type='typedef'/>
     <exports symbol='xmlSAXLocatorPtr' type='typedef'/>
     <exports symbol='xmlParserInput' type='typedef'/>
     <exports symbol='xmlElement' type='typedef'/>
     <exports symbol='xmlNsType' type='typedef'/>
     <exports symbol='xmlBufferAllocationScheme' type='typedef'/>
     <exports symbol='xmlNode' type='typedef'/>
     <exports symbol='xmlDocPtr' type='typedef'/>
     <exports symbol='xmlElementContent' type='typedef'/>
     <exports symbol='xmlDOMWrapCtxtPtr' type='typedef'/>
     <exports symbol='xmlRefPtr' type='typedef'/>
     <exports symbol='xmlParserInputBuffer' type='typedef'/>
     <exports symbol='xmlRef' type='typedef'/>
     <exports symbol='xmlDOMWrapCtxt' type='typedef'/>
     <exports symbol='xmlNodePtr' type='typedef'/>
     <exports symbol='xmlParserCtxt' type='typedef'/>
     <exports symbol='xmlDtdPtr' type='typedef'/>
     <exports symbol='xmlAttributeDefault' type='typedef'/>
     <exports symbol='xmlNotation' type='typedef'/>
     <exports symbol='xmlElementType' type='typedef'/>
     <exports symbol='xmlEntity' type='typedef'/>
     <exports symbol='xmlAttr' type='typedef'/>
     <exports symbol='xmlAttributePtr' type='typedef'/>
     <exports symbol='xmlElementTypeVal' type='typedef'/>
     <exports symbol='xmlNotationPtr' type='typedef'/>
     <exports symbol='xmlElementPtr' type='typedef'/>
     <exports symbol='xmlElementContentOccur' type='typedef'/>
     <exports symbol='xmlAttrPtr' type='typedef'/>
     <exports symbol='xmlDoc' type='typedef'/>
     <exports symbol='xmlID' type='typedef'/>
     <exports symbol='xmlParserCtxtPtr' type='typedef'/>
     <exports symbol='xmlEntityPtr' type='typedef'/>
     <exports symbol='xmlEnumeration' type='typedef'/>
     <exports symbol='xmlAttributeType' 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='xmlElementContentType' type='typedef'/>
     <exports symbol='xmlDocProperties' type='typedef'/>
     <exports symbol='xmlIDPtr' 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='_xmlDoc' type='struct'/>
     <exports symbol='_xmlElement' type='struct'/>
     <exports symbol='_xmlID' type='struct'/>
     <exports symbol='_xmlNotation' type='struct'/>
     <exports symbol='_xmlDtd' type='struct'/>
     <exports symbol='_xmlRef' type='struct'/>
     <exports symbol='_xmlAttr' type='struct'/>
     <exports symbol='_xmlDOMWrapCtxt' type='struct'/>
     <exports symbol='_xmlElementContent' type='struct'/>
     <exports symbol='xmlDocCopyNode' type='function'/>
     <exports symbol='xmlNewDocRawNode' type='function'/>
     <exports symbol='xmlGetProp' type='function'/>
     <exports symbol='xmlNewNsPropEatName' type='function'/>
     <exports symbol='xmlNewCDataBlock' type='function'/>
     <exports symbol='xmlBufferWriteCHAR' type='function'/>
     <exports symbol='xmlNodeGetBase' type='function'/>
     <exports symbol='xmlBufferEmpty' type='function'/>
     <exports symbol='xmlBuildQName' type='function'/>
     <exports symbol='xmlSaveFormatFileEnc' type='function'/>
     <exports symbol='xmlAddSibling' type='function'/>
     <exports symbol='xmlBufferCreate' type='function'/>
     <exports symbol='xmlNewDocFragment' type='function'/>
     <exports symbol='xmlDocGetRootElement' type='function'/>
     <exports symbol='xmlStringGetNodeList' type='function'/>
     <exports symbol='xmlValidateName' type='function'/>
     <exports symbol='xmlSetBufferAllocationScheme' type='function'/>
     <exports symbol='xmlValidateQName' type='function'/>
     <exports symbol='xmlHasNsProp' type='function'/>
     <exports symbol='xmlAddPrevSibling' type='function'/>
     <exports symbol='xmlBufferAddHead' type='function'/>
     <exports symbol='xmlNewPI' type='function'/>
     <exports symbol='xmlDocDumpFormatMemoryEnc' type='function'/>
     <exports symbol='xmlUnsetNsProp' type='function'/>
     <exports symbol='xmlElemDump' type='function'/>
     <exports symbol='xmlSaveFormatFileTo' type='function'/>
     <exports symbol='xmlGetIntSubset' type='function'/>
     <exports symbol='xmlNodeBufGetContent' type='function'/>
     <exports symbol='xmlBufferWriteChar' type='function'/>
     <exports symbol='xmlBufferFree' type='function'/>
     <exports symbol='xmlDOMWrapCloneNode' type='function'/>
     <exports symbol='xmlNewNode' type='function'/>
     <exports symbol='xmlSaveFileTo' type='function'/>
     <exports symbol='xmlNewTextLen' type='function'/>
     <exports symbol='xmlNewTextChild' type='function'/>
     <exports symbol='xmlNodeSetContent' type='function'/>
     <exports symbol='xmlBufferAdd' type='function'/>
     <exports symbol='xmlNodeDumpOutput' type='function'/>
     <exports symbol='xmlCopyNamespace' type='function'/>
     <exports symbol='xmlSearchNsByHref' type='function'/>
     <exports symbol='xmlAddChild' type='function'/>
     <exports symbol='xmlReconciliateNs' type='function'/>
     <exports symbol='xmlValidateNCName' type='function'/>
     <exports symbol='xmlNewDocComment' type='function'/>
     <exports symbol='xmlGetCompressMode' type='function'/>
     <exports symbol='xmlNodeDump' type='function'/>
     <exports symbol='xmlBufferCreateSize' type='function'/>
     <exports symbol='xmlNodeListGetString' type='function'/>
     <exports symbol='xmlSetCompressMode' type='function'/>
     <exports symbol='xmlSetTreeDoc' type='function'/>
     <exports symbol='xmlDOMWrapAdoptNode' type='function'/>
     <exports symbol='xmlCopyNodeList' type='function'/>
     <exports symbol='xmlNewDocNodeEatName' type='function'/>
     <exports symbol='xmlAddChildList' type='function'/>
     <exports symbol='xmlGetNodePath' type='function'/>
     <exports symbol='xmlFreePropList' type='function'/>
     <exports symbol='xmlNodeAddContent' type='function'/>
     <exports symbol='xmlAddNextSibling' type='function'/>
     <exports symbol='xmlIsBlankNode' type='function'/>
     <exports symbol='xmlNewGlobalNs' type='function'/>
     <exports symbol='xmlBufferDump' type='function'/>
     <exports symbol='xmlNodeGetContent' type='function'/>
     <exports symbol='xmlCopyDoc' type='function'/>
     <exports symbol='xmlDOMWrapNewCtxt' type='function'/>
     <exports symbol='xmlDocDumpMemoryEnc' type='function'/>
     <exports symbol='xmlTextMerge' type='function'/>
     <exports symbol='xmlDocDumpMemory' type='function'/>
     <exports symbol='xmlNewDocPI' type='function'/>
     <exports symbol='xmlFreeNs' type='function'/>
     <exports symbol='xmlDocDump' type='function'/>
     <exports symbol='xmlFreeProp' type='function'/>
     <exports symbol='xmlGetNoNsProp' type='function'/>
     <exports symbol='xmlSplitQName2' type='function'/>
     <exports symbol='xmlNewProp' type='function'/>
     <exports symbol='xmlTextConcat' type='function'/>
     <exports symbol='xmlNodeGetSpacePreserve' type='function'/>
     <exports symbol='xmlBufferShrink' type='function'/>
     <exports symbol='xmlNodeSetContentLen' type='function'/>
     <exports symbol='xmlNodeAddContentLen' type='function'/>
     <exports symbol='xmlBufferWriteQuotedString' type='function'/>
     <exports symbol='xmlCopyProp' type='function'/>
     <exports symbol='xmlReplaceNode' type='function'/>
     <exports symbol='xmlSetDocCompressMode' type='function'/>
     <exports symbol='xmlCopyNode' type='function'/>
     <exports symbol='xmlUnlinkNode' type='function'/>
     <exports symbol='xmlSplitQName3' type='function'/>
     <exports symbol='xmlDOMWrapAcquireNsFunction' type='function'/>
     <exports symbol='xmlDocSetRootElement' type='function'/>
     <exports symbol='xmlGetLineNo' type='function'/>
     <exports symbol='xmlBufferContent' type='function'/>
     <exports symbol='xmlRemoveProp' type='function'/>
     <exports symbol='xmlNodeGetLang' type='function'/>
     <exports symbol='xmlGetDocCompressMode' type='function'/>
     <exports symbol='xmlGetNsProp' type='function'/>
     <exports symbol='xmlNewDocProp' type='function'/>
     <exports symbol='xmlFreeNode' type='function'/>
     <exports symbol='xmlNewNsProp' type='function'/>
     <exports symbol='xmlDOMWrapFreeCtxt' type='function'/>
     <exports symbol='xmlValidateNMToken' type='function'/>
     <exports symbol='xmlBufferSetAllocationScheme' type='function'/>
     <exports symbol='xmlNewChild' type='function'/>
     <exports symbol='xmlSearchNs' type='function'/>
     <exports symbol='xmlStringLenGetNodeList' type='function'/>
     <exports symbol='xmlSaveFormatFile' type='function'/>
     <exports symbol='xmlCopyPropList' type='function'/>
     <exports symbol='xmlDocFormatDump' type='function'/>
     <exports symbol='xmlNodeSetSpacePreserve' type='function'/>
     <exports symbol='xmlHasProp' type='function'/>
     <exports symbol='xmlBufferCat' type='function'/>
     <exports symbol='xmlCreateIntSubset' type='function'/>
     <exports symbol='xmlNewDoc' type='function'/>
     <exports symbol='xmlNewCharRef' type='function'/>
     <exports symbol='xmlCopyNamespaceList' type='function'/>
     <exports symbol='xmlNewNodeEatName' type='function'/>
     <exports symbol='xmlBufferResize' type='function'/>
     <exports symbol='xmlNodeSetBase' type='function'/>
     <exports symbol='xmlNewComment' type='function'/>
     <exports symbol='xmlBufferLength' type='function'/>
     <exports symbol='xmlNewText' type='function'/>
     <exports symbol='xmlUnsetProp' type='function'/>
     <exports symbol='xmlGetBufferAllocationScheme' type='function'/>
     <exports symbol='xmlSaveFile' type='function'/>
     <exports symbol='xmlDocCopyNodeList' type='function'/>
     <exports symbol='xmlSetNs' type='function'/>
     <exports symbol='xmlNewNs' type='function'/>
     <exports symbol='xmlDOMWrapRemoveNode' type='function'/>
     <exports symbol='xmlAttrSerializeTxtContent' type='function'/>
     <exports symbol='xmlCopyDtd' type='function'/>
     <exports symbol='xmlNewDocText' type='function'/>
     <exports symbol='xmlNodeListGetRawString' type='function'/>
     <exports symbol='xmlBufferCreateStatic' type='function'/>
     <exports symbol='xmlNewReference' type='function'/>
     <exports symbol='xmlDOMWrapReconcileNamespaces' type='function'/>
     <exports symbol='xmlBufferCCat' type='function'/>
     <exports symbol='xmlGetNsList' type='function'/>
     <exports symbol='xmlBufferGrow' type='function'/>
     <exports symbol='xmlNodeIsText' type='function'/>
     <exports symbol='xmlSetProp' type='function'/>
     <exports symbol='xmlIsXHTML' type='function'/>
     <exports symbol='xmlNodeSetLang' type='function'/>
     <exports symbol='xmlFreeDtd' type='function'/>
     <exports symbol='xmlFreeNodeList' type='function'/>
     <exports symbol='xmlFreeDoc' type='function'/>
     <exports symbol='xmlNewDocNode' type='function'/>
     <exports symbol='xmlSaveFileEnc' type='function'/>
     <exports symbol='xmlSetNsProp' type='function'/>
     <exports symbol='xmlDocDumpFormatMemory' type='function'/>
     <exports symbol='xmlSetListDoc' type='function'/>
     <exports symbol='xmlNodeSetName' type='function'/>
     <exports symbol='xmlNewDocTextLen' type='function'/>
     <exports symbol='xmlNewDtd' 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='xmlParseURIRaw' type='function'/>
     <exports symbol='xmlURIUnescapeString' type='function'/>
     <exports symbol='xmlParseURI' type='function'/>
     <exports symbol='xmlCreateURI' type='function'/>
     <exports symbol='xmlURIEscapeStr' type='function'/>
     <exports symbol='xmlPathToURI' 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='XML_CTXT_FINISH_DTD_0' type='macro'/>
     <exports symbol='XML_CTXT_FINISH_DTD_1' type='macro'/>
     <exports symbol='xmlElementTable' type='typedef'/>
     <exports symbol='xmlValidStatePtr' type='typedef'/>
     <exports symbol='xmlIDTablePtr' type='typedef'/>
     <exports symbol='xmlNotationTablePtr' type='typedef'/>
     <exports symbol='xmlValidCtxt' 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='xmlAttributeTable' 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='xmlSnprintfElementContent' 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='xmlIsMixedElement' type='function'/>
     <exports symbol='xmlDumpNotationDecl' type='function'/>
     <exports symbol='xmlIsID' type='function'/>
     <exports symbol='xmlGetDtdQAttrDesc' type='function'/>
     <exports symbol='xmlNewDocElementContent' type='function'/>
     <exports symbol='xmlFreeAttributeTable' type='function'/>
     <exports symbol='xmlValidityErrorFunc' type='function'/>
     <exports symbol='xmlValidateAttributeDecl' type='function'/>
     <exports symbol='xmlGetDtdQElementDesc' 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='xmlCopyElementTable' type='function'/>
     <exports symbol='xmlGetRefs' type='function'/>
     <exports symbol='xmlSprintfElementContent' type='function'/>
     <exports symbol='xmlValidateOneElement' type='function'/>
     <exports symbol='xmlValidateNmtokenValue' type='function'/>
     <exports symbol='xmlDumpElementTable' type='function'/>
     <exports symbol='xmlValidCtxtNormalizeAttributeValue' type='function'/>
     <exports symbol='xmlDumpElementDecl' type='function'/>
     <exports symbol='xmlFreeElementContent' type='function'/>
     <exports symbol='xmlValidateOneNamespace' type='function'/>
     <exports symbol='xmlValidatePushElement' type='function'/>
     <exports symbol='xmlIsRef' type='function'/>
     <exports symbol='xmlCopyDocElementContent' type='function'/>
     <exports symbol='xmlAddID' type='function'/>
     <exports symbol='xmlFreeRefTable' type='function'/>
     <exports symbol='xmlValidateNamesValue' 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='xmlRemoveRef' type='function'/>
     <exports symbol='xmlValidityWarningFunc' type='function'/>
     <exports symbol='xmlValidatePopElement' type='function'/>
     <exports symbol='xmlFreeEnumeration' type='function'/>
     <exports symbol='xmlCopyEnumeration' type='function'/>
     <exports symbol='xmlGetDtdAttrDesc' type='function'/>
     <exports symbol='xmlValidateDtd' type='function'/>
     <exports symbol='xmlNewValidCtxt' type='function'/>
     <exports symbol='xmlDumpNotationTable' type='function'/>
     <exports symbol='xmlAddElementDecl' type='function'/>
     <exports symbol='xmlValidNormalizeAttributeValue' type='function'/>
     <exports symbol='xmlValidBuildContentModel' type='function'/>
     <exports symbol='xmlValidateElement' 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'/>
     <exports symbol='xmlValidateNmtokensValue' type='function'/>
     <exports symbol='xmlFreeDocElementContent' 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_HREF' type='macro'/>
     <exports symbol='XINCLUDE_FALLBACK' type='macro'/>
     <exports symbol='XINCLUDE_NS' type='macro'/>
     <exports symbol='XINCLUDE_PARSE' type='macro'/>
     <exports symbol='XINCLUDE_NODE' type='macro'/>
     <exports symbol='XINCLUDE_PARSE_XML' type='macro'/>
     <exports symbol='XINCLUDE_PARSE_ENCODING' type='macro'/>
     <exports symbol='XINCLUDE_OLD_NS' type='macro'/>
     <exports symbol='xmlXIncludeCtxt' type='typedef'/>
     <exports symbol='xmlXIncludeCtxtPtr' type='typedef'/>
     <exports symbol='xmlXIncludeProcessFlagsData' type='function'/>
     <exports symbol='xmlXIncludeProcessFlags' type='function'/>
     <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'/>
    </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_ACTUATE_AUTO' 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_TYPE_EXTENDED' type='enum'/>
     <exports symbol='XLINK_TYPE_EXTENDED_SET' type='enum'/>
     <exports symbol='XLINK_SHOW_NONE' type='enum'/>
     <exports symbol='XLINK_SHOW_EMBED' type='enum'/>
     <exports symbol='XLINK_TYPE_SIMPLE' type='enum'/>
     <exports symbol='xlinkTitle' type='typedef'/>
     <exports symbol='xlinkShow' type='typedef'/>
     <exports symbol='xlinkHRef' type='typedef'/>
     <exports symbol='xlinkActuate' type='typedef'/>
     <exports symbol='xlinkHandler' type='typedef'/>
     <exports symbol='xlinkRole' type='typedef'/>
     <exports symbol='xlinkHandlerPtr' type='typedef'/>
     <exports symbol='xlinkType' type='typedef'/>
     <exports symbol='_xlinkHandler' type='struct'/>
     <exports symbol='xlinkSetDefaultDetect' type='function'/>
     <exports symbol='xlinkSetDefaultHandler' type='function'/>
     <exports symbol='xlinkExtendedLinkFunk' type='function'/>
     <exports symbol='xlinkExtendedLinkSetFunk' type='function'/>
     <exports symbol='xlinkSimpleLinkFunk' type='function'/>
     <exports symbol='xlinkNodeDetectFunc' type='function'/>
     <exports symbol='xlinkGetDefaultHandler' type='function'/>
     <exports symbol='xlinkIsLink' 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='xmlAllocParserInputBuffer' 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='xmlOutputCloseCallback' type='function'/>
     <exports symbol='xmlAllocOutputBuffer' type='function'/>
     <exports symbol='xmlNoNetExternalEntityLoader' type='function'/>
     <exports symbol='xmlOutputBufferCreateBuffer' 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='xmlParserInputBufferCreateFd' 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='xmlAutomataNewCountedTrans' type='function'/>
     <exports symbol='xmlAutomataNewCounterTrans' type='function'/>
     <exports symbol='xmlAutomataCompile' type='function'/>
     <exports symbol='xmlAutomataNewNegTrans' type='function'/>
     <exports symbol='xmlAutomataNewEpsilon' type='function'/>
     <exports symbol='xmlAutomataNewCountTrans2' type='function'/>
     <exports symbol='xmlNewAutomata' type='function'/>
     <exports symbol='xmlAutomataSetFinalState' type='function'/>
     <exports symbol='xmlAutomataNewOnceTrans' 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_DTD_ATTRIBUTE_VALUE' type='enum'/>
     <exports symbol='XML_RNGP_PARAM_NAME_MISSING' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NO_PARENT' type='enum'/>
     <exports symbol='XML_IO_EISCONN' type='enum'/>
     <exports symbol='XML_RNGP_VALUE_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI' type='enum'/>
     <exports symbol='XML_SCHEMAP_ELEM_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_CHECK_NOT_DTD' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ATTR_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT' type='enum'/>
     <exports symbol='XML_SCHEMAV_VALUE' type='enum'/>
     <exports symbol='XML_XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
     <exports symbol='XML_ERR_DOCUMENT_START' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_TEXT' type='enum'/>
     <exports symbol='XML_SCHEMAP_AG_PROPS_CORRECT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_2_1' type='enum'/>
     <exports symbol='XML_DTD_NOT_STANDALONE' type='enum'/>
     <exports symbol='XML_HTTP_USE_IP' type='enum'/>
     <exports symbol='XML_ERR_XMLDECL_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAV_ELEMENT_CONTENT' 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_SCHEMAP_UNKNOWN_SCHEMAS_CHILD' type='enum'/>
     <exports symbol='XML_ERR_LT_IN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_XINCLUDE_ENTITY_DEF_MISMATCH' type='enum'/>
     <exports symbol='XML_SAVE_NOT_UTF8' type='enum'/>
     <exports symbol='XML_ERR_GT_REQUIRED' type='enum'/>
     <exports symbol='XML_XPTR_EXTRA_OBJECTS' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_USE' type='enum'/>
     <exports symbol='XML_IO_UNKNOWN' 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_NAME_MISSING' type='enum'/>
     <exports symbol='XML_ERR_CONDSEC_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_2' type='enum'/>
     <exports symbol='XML_IO_EINTR' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_1' type='enum'/>
     <exports symbol='XML_RNGP_XMLNS_NAME' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_NOOP' 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_ID_SUBSET' type='enum'/>
     <exports symbol='XML_SCHEMAP_FAILED_BUILD_IMPORT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD' type='enum'/>
     <exports symbol='XML_XPTR_CHILDSEQ_START' type='enum'/>
     <exports symbol='XML_ERR_EXT_SUBSET_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_FROM_DTD' type='enum'/>
     <exports symbol='XML_CHECK_NOT_ATTR' type='enum'/>
     <exports symbol='XML_DTD_ATTRIBUTE_DEFAULT' type='enum'/>
     <exports symbol='XML_FROM_MODULE' type='enum'/>
     <exports symbol='XML_SCHEMAV_EXTRACONTENT' type='enum'/>
     <exports symbol='XML_RNGP_ELEM_CONTENT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_WARN_UNLOCATED_SCHEMA' type='enum'/>
     <exports symbol='XML_IO_EMLINK' type='enum'/>
     <exports symbol='XML_CHECK_X' type='enum'/>
     <exports symbol='XML_RNGP_ANYNAME_ATTR_ANCESTOR' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_3_1' 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_ERR_DOCUMENT_EMPTY' type='enum'/>
     <exports symbol='XML_XINCLUDE_RECURSION' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_RESOLVE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_FACET_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_RESTRICTION_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_I18N_NO_OUTPUT' type='enum'/>
     <exports symbol='XML_CHECK_FOUND_ATTRIBUTE' 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_IO_EINPROGRESS' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_NOTATION' type='enum'/>
     <exports symbol='XML_HTML_STRUCURE_ERROR' type='enum'/>
     <exports symbol='XML_DTD_INVALID_DEFAULT' type='enum'/>
     <exports symbol='XML_FROM_SCHEMATRONV' 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_SCHEMAP_INCLUDE_SCHEMA_NOT_URI' type='enum'/>
     <exports symbol='XML_RNGP_INVALID_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_2' 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_ERR_PEREF_AT_EOF' type='enum'/>
     <exports symbol='XML_DTD_NOT_EMPTY' 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_ERR_PCDATA_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAV_INTERNAL' type='enum'/>
     <exports symbol='XML_ERR_STRING_NOT_CLOSED' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_IN_DTD' type='enum'/>
     <exports symbol='XML_XPATH_VARIABLE_REF_ERROR' 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_SCHEMAV_CVC_DATATYPE_VALID_1_2_3' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTSIMPLE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_IO_EADDRINUSE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_LIST_CHILD' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ID' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1' type='enum'/>
     <exports symbol='XML_IO_EDOM' type='enum'/>
     <exports symbol='XML_CHECK_NOT_ELEM_DECL' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_CREATE_FAILED' 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_DATA_EXCEPT_LIST' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_NO_CONTENT' 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_DTD_DIFFERENT_PREFIX' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTDETERMINIST' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAV_MISSING' type='enum'/>
     <exports symbol='XML_IO_EFAULT' type='enum'/>
     <exports symbol='XML_XINCLUDE_XPTR_FAILED' type='enum'/>
     <exports symbol='XML_FROM_FTP' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_CREATE_FAILED' 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_IO_EBADMSG' type='enum'/>
     <exports symbol='XML_XPTR_RESOURCE_ERROR' type='enum'/>
     <exports symbol='XML_RNGP_ATTR_CONFLICT' type='enum'/>
     <exports symbol='XML_DTD_ELEM_REDEFINED' type='enum'/>
     <exports symbol='XML_XINCLUDE_UNKNOWN_ENCODING' type='enum'/>
     <exports symbol='XML_CATALOG_PREFER_VALUE' type='enum'/>
     <exports symbol='XML_ERR_PEREF_SEMICOL_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_1_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_TYPE_AND_SUBTYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_NO_XMLNS' type='enum'/>
     <exports symbol='XML_IO_ENOTDIR' type='enum'/>
     <exports symbol='XML_SAVE_CHAR_INVALID' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_NO_NAME' type='enum'/>
     <exports symbol='XML_DTD_ID_FIXED' type='enum'/>
     <exports symbol='XML_SCHEMAP_A_PROPS_CORRECT_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_A_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_WAR_NS_COLUMN' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_1' type='enum'/>
     <exports symbol='XML_ERR_EXTRA_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD' 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_SCHEMAV_CVC_TYPE_1' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_CHAR_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3' type='enum'/>
     <exports symbol='XML_CHECK_NO_DICT' type='enum'/>
     <exports symbol='XML_XINCLUDE_XPTR_RESULT' type='enum'/>
     <exports symbol='XML_IO_ENXIO' type='enum'/>
     <exports symbol='XML_XINCLUDE_FRAGMENT_ID' type='enum'/>
     <exports symbol='XML_FROM_HTTP' type='enum'/>
     <exports symbol='XML_DTD_NOTATION_REDEFINED' type='enum'/>
     <exports symbol='XML_WAR_LANG_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_AU_PROPS_CORRECT' type='enum'/>
     <exports symbol='XML_ERR_SEPARATOR_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED' type='enum'/>
     <exports symbol='XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_CONTENT' type='enum'/>
     <exports symbol='XML_DTD_XMLID_TYPE' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_ADD' 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_RNGP_NOTALLOWED_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_4' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_3' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ATTRIBUTE_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_PREFIX_UNDEFINED' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ATTR_ELEM' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_4_3' type='enum'/>
     <exports symbol='XML_FTP_ACCNT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_4_1' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_DATA' type='enum'/>
     <exports symbol='XML_IO_ENOENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2' type='enum'/>
     <exports symbol='XML_FROM_C14N' type='enum'/>
     <exports symbol='XML_IO_EIO' type='enum'/>
     <exports symbol='XML_DTD_NOT_PCDATA' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_COMBINATION' type='enum'/>
     <exports symbol='XML_RNGP_PARAM_FORBIDDEN' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD' type='enum'/>
     <exports symbol='XML_FROM_WRITER' type='enum'/>
     <exports symbol='XML_ERR_UNSUPPORTED_ENCODING' type='enum'/>
     <exports symbol='XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_IN_PROLOG' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_IDC' type='enum'/>
     <exports symbol='XML_IO_ENOTTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_WARN_SKIP_SCHEMA' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_NOTATION' 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_XINCLUDE_MULTIPLE_ROOT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_UNION_CHILD' type='enum'/>
     <exports symbol='XML_XPATH_MEMORY_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOROOT' type='enum'/>
     <exports symbol='XML_SCHEMAP_WARN_ATTR_REDECL_PROH' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_3_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_3_2_2' type='enum'/>
     <exports symbol='XML_XPATH_UNCLOSED_ERROR' type='enum'/>
     <exports symbol='XML_CHECK_FOUND_NOTATION' type='enum'/>
     <exports symbol='XML_CHECK_NO_NEXT' type='enum'/>
     <exports symbol='XML_CHECK_NOT_ATTR_DECL' type='enum'/>
     <exports symbol='XML_CHECK_NO_PARENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TOTALDIGITS_VALID' 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_TREE_INVALID_DEC' type='enum'/>
     <exports symbol='XML_SCHEMAP_EXTENSION_NO_BASE' 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_CHECK_FOUND_DOCTYPE' 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_UNKNOWN_ATTRIBUTE_GROUP' type='enum'/>
     <exports symbol='XML_SCHEMAP_NO_XSI' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_1' type='enum'/>
     <exports symbol='XML_CHECK_NO_NAME' type='enum'/>
     <exports symbol='XML_ERR_CONDSEC_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_CHECK_FOUND_PI' type='enum'/>
     <exports symbol='XML_ERR_EQUAL_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_WHITE_SPACE' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_1_2' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_CREATE_FAILED' type='enum'/>
     <exports symbol='XML_IO_EAGAIN' type='enum'/>
     <exports symbol='XML_ERR_NOTATION_NOT_STARTED' type='enum'/>
     <exports symbol='XML_DTD_ENTITY_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_CONTENT' type='enum'/>
     <exports symbol='XML_FTP_URL_SYNTAX' 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_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_XINCLUDE_INCLUDE_IN_INCLUDE' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_IN_EPILOG' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_MISSING' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_NO_START' type='enum'/>
     <exports symbol='XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_INTERLEAVE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ELEMENT_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_REF' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_EMPTY' type='enum'/>
     <exports symbol='XML_FROM_I18N' 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_ERR_VERSION_MISSING' type='enum'/>
     <exports symbol='XML_IO_NO_INPUT' type='enum'/>
     <exports symbol='XML_NS_ERR_UNDEFINED_NAMESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MINLENGTH_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_WILDCARD' type='enum'/>
     <exports symbol='XML_IO_WRITE' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_PE_INTERNAL' type='enum'/>
     <exports symbol='XML_DTD_XMLID_VALUE' 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_CHECK_NOT_NS_DECL' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ELEM' type='enum'/>
     <exports symbol='XML_IO_NETWORK_ATTEMPT' type='enum'/>
     <exports symbol='XML_MODULE_CLOSE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_EMPTY' type='enum'/>
     <exports symbol='XML_ERR_ATTLIST_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_XINCLUDE_TEXT_FRAGMENT' type='enum'/>
     <exports symbol='XML_C14N_RELATIVE_NAMESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAP_FAILED_LOAD' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_WITHOUT_VALUE' type='enum'/>
     <exports symbol='XML_XPTR_SYNTAX_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_TYPE' type='enum'/>
     <exports symbol='XML_CHECK_WRONG_DOC' type='enum'/>
     <exports symbol='XML_NS_ERR_XML_NAMESPACE' type='enum'/>
     <exports symbol='XML_ERR_DOCTYPE_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_XINCLUDE_PARSE_VALUE' type='enum'/>
     <exports symbol='XML_RNGP_NSNAME_NO_NS' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_IMPORT_2_2' type='enum'/>
     <exports symbol='XML_CHECK_FOUND_ELEMENT' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NAME_INVALID' type='enum'/>
     <exports symbol='XML_NS_ERR_QNAME' type='enum'/>
     <exports symbol='XML_DTD_NOTATION_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_3' type='enum'/>
     <exports symbol='XML_I18N_NO_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAP_ST_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_CT_EXTENDS_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ALL_CHILD' type='enum'/>
     <exports symbol='XML_DTD_MIXED_CORRUPT' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_BOUNDARY' type='enum'/>
     <exports symbol='XML_SCHEMAP_ELEMFORMDEFAULT_VALUE' type='enum'/>
     <exports symbol='XML_I18N_EXCESS_HANDLER' type='enum'/>
     <exports symbol='XML_RNGP_DATA_CONTENT' type='enum'/>
     <exports symbol='XML_ERR_STRING_NOT_STARTED' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_MULTIPLE' type='enum'/>
     <exports symbol='XML_IO_EDEADLK' 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_RNGP_EXTERNAL_REF_FAILURE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_TEXT' type='enum'/>
     <exports symbol='XML_CHECK_NO_DOC' type='enum'/>
     <exports symbol='XML_DTD_INVALID_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_PATTERN_VALID' type='enum'/>
     <exports symbol='XML_RNGP_TYPE_MISSING' 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_SCHEMAV_MISC' 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_CHECK_FOUND_ENTITYREF' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_1' type='enum'/>
     <exports symbol='XML_XINCLUDE_BUILD_FAILED' type='enum'/>
     <exports symbol='XML_ERR_PEREF_NO_NAME' type='enum'/>
     <exports symbol='XML_ERR_ENTITYREF_AT_EOF' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOATTR_NOREF' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_CHILDREN' type='enum'/>
     <exports symbol='XML_XPATH_UNDEF_PREFIX_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_1' type='enum'/>
     <exports symbol='XML_SAVE_NO_DOCTYPE' type='enum'/>
     <exports symbol='XML_ERR_PEREF_IN_EPILOG' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_4' 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_SCHEMAP_CT_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOT_SCHEMA' 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_DTD_STANDALONE_WHITE_SPACE' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_FACET' type='enum'/>
     <exports symbol='XML_IO_ENOTEMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_WRONGELEM' type='enum'/>
     <exports symbol='XML_RNGP_TYPE_NOT_FOUND' type='enum'/>
     <exports symbol='XML_IO_BUFFER_FULL' type='enum'/>
     <exports symbol='XML_SCHEMAP_E_PROPS_CORRECT_6' type='enum'/>
     <exports symbol='XML_DTD_CONTENT_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_MEMBER_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOROOT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_6' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_TYPE' type='enum'/>
     <exports symbol='XML_ERR_CDATA_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_3_1_1' type='enum'/>
     <exports symbol='XML_CHECK_NS_ANCESTOR' 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_SCHEMAV_CVC_ELT_7' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTYPE' type='enum'/>
     <exports symbol='XML_ERR_NO_MEMORY' type='enum'/>
     <exports symbol='XML_FROM_IO' type='enum'/>
     <exports symbol='XML_HTML_UNKNOWN_TAG' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_ATTR_NAME' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_ATTR' type='enum'/>
     <exports symbol='XML_CHECK_WRONG_NAME' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTEMPTY' type='enum'/>
     <exports symbol='XML_ERR_NMTOKEN_REQUIRED' type='enum'/>
     <exports symbol='XML_IO_EROFS' type='enum'/>
     <exports symbol='XML_IO_EXDEV' type='enum'/>
     <exports symbol='XML_XINCLUDE_NO_FALLBACK' type='enum'/>
     <exports symbol='XML_RNGP_URI_FRAGMENT' type='enum'/>
     <exports symbol='XML_FROM_MEMORY' type='enum'/>
     <exports symbol='XML_ERR_MISSING_ENCODING' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_CONTENT' type='enum'/>
     <exports symbol='XML_RNGP_UNKNOWN_TYPE_LIB' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOT_DETERMINISTIC' type='enum'/>
     <exports symbol='XML_XPATH_EXPRESSION_OK' type='enum'/>
     <exports symbol='XML_HTTP_UNKNOWN_HOST' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_DTD_NO_DTD' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ONEMORE_GROUP_ATTR' type='enum'/>
     <exports symbol='XML_ERR_VALUE_REQUIRED' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_TEXT' type='enum'/>
     <exports symbol='XML_RNGP_URI_NOT_ABSOLUTE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNION_NOT_EXPRESSIBLE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_ATTR' type='enum'/>
     <exports symbol='XML_FTP_PASV_ANSWER' type='enum'/>
     <exports symbol='XML_ERR_VERSION_MISMATCH' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_BOOLEAN' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_4_2' type='enum'/>
     <exports symbol='XML_DTD_ELEM_DEFAULT_NAMESPACE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_4' 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_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_1' type='enum'/>
     <exports symbol='XML_FROM_RELAXNGV' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME' type='enum'/>
     <exports symbol='XML_CHECK_ENTITY_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAV_CONSTRUCT' type='enum'/>
     <exports symbol='XML_RNGP_EXTERNALREF_RECURSE' type='enum'/>
     <exports symbol='XML_RNGP_CHOICE_CONTENT' type='enum'/>
     <exports symbol='XML_RNGP_UNKNOWN_COMBINE' type='enum'/>
     <exports symbol='XML_RNGP_START_EMPTY' type='enum'/>
     <exports symbol='XML_IO_ENCODER' type='enum'/>
     <exports symbol='XML_WAR_NS_URI' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES' type='enum'/>
     <exports symbol='XML_SCHEMAP_ATTRGRP_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_IS_EXTERNAL' type='enum'/>
     <exports symbol='XML_WAR_UNDECLARED_ENTITY' 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_C14N_CREATE_CTXT' type='enum'/>
     <exports symbol='XML_XINCLUDE_TEXT_DOCUMENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_PREFIX' type='enum'/>
     <exports symbol='XML_XINCLUDE_FALLBACKS_IN_INCLUDE' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_TYPE' type='enum'/>
     <exports symbol='XML_CHECK_NS_SCOPE' type='enum'/>
     <exports symbol='XML_IO_FLUSH' type='enum'/>
     <exports symbol='XML_CATALOG_ENTRY_BROKEN' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_CTXT_POSITION' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_LENGTH_VALID' type='enum'/>
     <exports symbol='XML_DTD_STANDALONE_DEFAULTED' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ELEM' type='enum'/>
     <exports symbol='XML_WAR_SPACE_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_FACET_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOTATION_NO_NAME' type='enum'/>
     <exports symbol='XML_XPATH_START_LITERAL_ERROR' type='enum'/>
     <exports symbol='XML_ERR_ELEMCONTENT_NOT_STARTED' type='enum'/>
     <exports symbol='XML_RNGP_INCLUDE_FAILURE' 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_IO_EMSGSIZE' type='enum'/>
     <exports symbol='XML_FROM_CATALOG' type='enum'/>
     <exports symbol='XML_SCHEMAV_ATTRINVALID' type='enum'/>
     <exports symbol='XML_NS_ERR_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_2' type='enum'/>
     <exports symbol='XML_FROM_HTML' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_MAXOCCURS' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_NAME' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_VALUE' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_ARITY' type='enum'/>
     <exports symbol='XML_RNGP_ERROR_TYPE_LIB' type='enum'/>
     <exports symbol='XML_XPTR_EVAL_FAILED' type='enum'/>
     <exports symbol='XML_DTD_NO_ROOT' type='enum'/>
     <exports symbol='XML_SCHEMAP_IMPORT_REDEFINE_NSNAME' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ATTR_CHILD' type='enum'/>
     <exports symbol='XML_ERR_UNKNOWN_ENCODING' type='enum'/>
     <exports symbol='XML_RNGP_REF_NO_NAME' type='enum'/>
     <exports symbol='XML_C14N_UNKNOW_NODE' type='enum'/>
     <exports symbol='XML_SCHEMAP_REF_AND_SUBTYPE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR' type='enum'/>
     <exports symbol='XML_C14N_INVALID_NODE' type='enum'/>
     <exports symbol='XML_RNGP_TEXT_EXPECTED' type='enum'/>
     <exports symbol='XML_XPATH_UNDEF_VARIABLE_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOROLLBACK' type='enum'/>
     <exports symbol='XML_SCHEMAV_FACET' type='enum'/>
     <exports symbol='XML_ERR_INVALID_DEC_CHARREF' type='enum'/>
     <exports symbol='XML_RNGP_NEED_COMBINE' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTTOPLEVEL' type='enum'/>
     <exports symbol='XML_CATALOG_MISSING_ATTR' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_LIST' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_TYPE_2' type='enum'/>
     <exports symbol='XML_RNGP_EXCEPT_EMPTY' type='enum'/>
     <exports symbol='XML_XPATH_UNFINISHED_LITERAL_ERROR' type='enum'/>
     <exports symbol='XML_RNGP_INTERLEAVE_NO_CONTENT' type='enum'/>
     <exports symbol='XML_ERR_INVALID_HEX_CHARREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_ERR_CHARREF_IN_DTD' type='enum'/>
     <exports symbol='XML_IO_ENFILE' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_IS_PARAMETER' type='enum'/>
     <exports symbol='XML_I18N_CONV_FAILED' type='enum'/>
     <exports symbol='XML_CHECK_WRONG_PARENT' 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_FROM_NONE' type='enum'/>
     <exports symbol='XML_RNGP_TYPE_VALUE' type='enum'/>
     <exports symbol='XML_FROM_REGEXP' 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_FROM_TREE' type='enum'/>
     <exports symbol='XML_ERR_EXT_ENTITY_STANDALONE' type='enum'/>
     <exports symbol='XML_TREE_INVALID_HEX' type='enum'/>
     <exports symbol='XML_C14N_REQUIRES_UTF8' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_PROCESSING' type='enum'/>
     <exports symbol='XML_FROM_XINCLUDE' type='enum'/>
     <exports symbol='XML_SCHEMAP_CVC_SIMPLE_TYPE' type='enum'/>
     <exports symbol='XML_RNGP_GRAMMAR_EMPTY' type='enum'/>
     <exports symbol='XML_CHECK_NOT_NCNAME' type='enum'/>
     <exports symbol='XML_RNGP_ELEMENT_NO_CONTENT' 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_SCHEMAP_FAILED_PARSE' type='enum'/>
     <exports symbol='XML_RNGP_HREF_ERROR' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_NOT_STARTED' type='enum'/>
     <exports symbol='XML_SCHEMAP_ATTR_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_ELEMENT_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE' type='enum'/>
     <exports symbol='XML_MODULE_OPEN' type='enum'/>
     <exports symbol='XML_ERR_ENTITY_CHAR_ERROR' type='enum'/>
     <exports symbol='XML_DTD_UNKNOWN_ENTITY' type='enum'/>
     <exports symbol='XML_RNGP_PARSE_ERROR' type='enum'/>
     <exports symbol='XML_ERR_NOTATION_PROCESSING' type='enum'/>
     <exports symbol='XML_RNGP_XML_NS' type='enum'/>
     <exports symbol='XML_ERR_MISPLACED_CDATA_END' 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_SCHEMAP_COS_CT_EXTENDS_1_3' type='enum'/>
     <exports symbol='XML_DTD_ROOT_NAME' type='enum'/>
     <exports symbol='XML_RNGP_REF_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_CHECK_NO_HREF' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_CHOICE_CHILD' type='enum'/>
     <exports symbol='XML_RNGP_ELEM_CONTENT_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAV_HAVEDEFAULT' type='enum'/>
     <exports symbol='XML_I18N_NO_HANDLER' type='enum'/>
     <exports symbol='XML_RNGP_MISSING_HREF' type='enum'/>
     <exports symbol='XML_ERR_PI_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_ERR_UNKNOWN_VERSION' type='enum'/>
     <exports symbol='XML_FROM_RELAXNGP' type='enum'/>
     <exports symbol='XML_FROM_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAP_S4S_ATTR_INVALID_VALUE' type='enum'/>
     <exports symbol='XML_CHECK_FOUND_TEXT' type='enum'/>
     <exports symbol='XML_ERR_NO_DTD' type='enum'/>
     <exports symbol='XML_RNGP_START_CHOICE_AND_INTERLEAVE' type='enum'/>
     <exports symbol='XML_FROM_XSLT' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_ATTR' type='enum'/>
     <exports symbol='XML_IO_EACCES' type='enum'/>
     <exports symbol='XML_ERR_NOTATION_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_SCHEMATRONV_ASSERT' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_INVALIDATTR' type='enum'/>
     <exports symbol='XML_SCHEMAP_RECURSIVE' type='enum'/>
     <exports symbol='XML_HTTP_URL_SYNTAX' type='enum'/>
     <exports symbol='XML_SCHEMAP_GROUP_NONAME_NOREF' type='enum'/>
     <exports symbol='XML_DTD_DUP_TOKEN' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' 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_CHECK_FOUND_FRAGMENT' type='enum'/>
     <exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
     <exports symbol='XML_CHECK_UNKNOWN_NODE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_NOTATION_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_C_PROPS_CORRECT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_CT_1' type='enum'/>
     <exports symbol='XML_RNGP_EMPTY_CONTENT' type='enum'/>
     <exports symbol='XML_IO_EALREADY' type='enum'/>
     <exports symbol='XML_IO_ERANGE' type='enum'/>
     <exports symbol='XML_IO_ENOSYS' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOTHING_TO_PARSE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE' 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_CHECK_NO_ELEM' 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_CHECK_FOUND_ENTITY' type='enum'/>
     <exports symbol='XML_CHECK_NAME_NOT_NULL' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_MINOCCURS' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ALL_LIMITED' type='enum'/>
     <exports symbol='XML_CHECK_' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_IO_EPIPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_NOTYPE_NOREF' type='enum'/>
     <exports symbol='XML_RNGP_ATTRIBUTE_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' type='enum'/>
     <exports symbol='XML_IO_LOAD_ERROR' type='enum'/>
     <exports symbol='XML_CHECK_NOT_ENTITY_DECL' type='enum'/>
     <exports symbol='XML_RNGP_CREATE_FAILURE' type='enum'/>
     <exports symbol='XML_IO_EBADF' type='enum'/>
     <exports symbol='XML_RNGP_PREFIX_UNDEFINED' type='enum'/>
     <exports symbol='XML_ERR_HYPHEN_IN_COMMENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE' type='enum'/>
     <exports symbol='XML_RNGP_INCLUDE_EMPTY' type='enum'/>
     <exports symbol='XML_RNGP_PARENTREF_NOT_EMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAP_FACET_NO_VALUE' type='enum'/>
     <exports symbol='XML_XPTR_SUB_RESOURCE_ERROR' type='enum'/>
     <exports symbol='XML_ERR_NOT_STANDALONE' type='enum'/>
     <exports symbol='XML_RNGP_START_MISSING' type='enum'/>
     <exports symbol='XML_DTD_NO_PREFIX' type='enum'/>
     <exports symbol='XML_CATALOG_RECURSION' 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_CHECK_NOT_UTF8' 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_SCHEMAP_SRC_INCLUDE' type='enum'/>
     <exports symbol='XML_RNGP_NSNAME_ATTR_ANCESTOR' type='enum'/>
     <exports symbol='XML_SCHEMAP_SRC_REDEFINE' type='enum'/>
     <exports symbol='XML_RNGP_REF_CYCLE' type='enum'/>
     <exports symbol='XML_RNGP_PAT_ATTR_ATTR' type='enum'/>
     <exports symbol='XML_XPTR_UNKNOWN_SCHEME' type='enum'/>
     <exports symbol='XML_SCHEMAP_INVALID_FACET_VALUE' type='enum'/>
     <exports symbol='XML_FROM_CHECK' type='enum'/>
     <exports symbol='XML_SCHEMAV_ELEMCONT' type='enum'/>
     <exports symbol='XML_SCHEMAP_REF_AND_CONTENT' type='enum'/>
     <exports symbol='XML_RNGP_PAT_START_INTERLEAVE' type='enum'/>
     <exports symbol='XML_DTD_CONTENT_NOT_DETERMINIST' type='enum'/>
     <exports symbol='XML_DTD_NO_ELEM_NAME' type='enum'/>
     <exports symbol='XML_CHECK_NO_PREV' type='enum'/>
     <exports symbol='XML_RNGP_VALUE_NO_CONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD' type='enum'/>
     <exports symbol='XML_TREE_NOT_UTF8' type='enum'/>
     <exports symbol='XML_IO_EAFNOSUPPORT' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1' type='enum'/>
     <exports symbol='XML_CATALOG_NOT_CATALOG' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5' 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_CHECK_FOUND_COMMENT' type='enum'/>
     <exports symbol='XML_RNGP_REF_NAME_INVALID' type='enum'/>
     <exports symbol='XML_ERR_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1' type='enum'/>
     <exports symbol='XML_DTD_ELEM_NAMESPACE' type='enum'/>
     <exports symbol='XML_CHECK_OUTSIDE_DICT' type='enum'/>
     <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_ELT_5_2_2_2_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_P_PROPS_CORRECT_2_2' type='enum'/>
     <exports symbol='XML_WAR_CATALOG_PI' type='enum'/>
     <exports symbol='XML_REGEXP_COMPILE_ERROR' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_MININCLUSIVE_VALID' type='enum'/>
     <exports symbol='XML_SCHEMAV_ISABSTRACT' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_MISSING' type='enum'/>
     <exports symbol='XML_ERR_NS_DECL_ERROR' 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_SCHEMATRONV_REPORT' type='enum'/>
     <exports symbol='XML_ERR_ELEMCONTENT_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_FROM_NAMESPACE' type='enum'/>
     <exports symbol='XML_IO_EBUSY' type='enum'/>
     <exports symbol='XML_RNGP_INCLUDE_RECURSE' type='enum'/>
     <exports symbol='XML_ERR_INVALID_URI' type='enum'/>
     <exports symbol='XML_IO_ESRCH' type='enum'/>
     <exports symbol='XML_FROM_XPOINTER' type='enum'/>
     <exports symbol='XML_ERR_PEREF_IN_PROLOG' type='enum'/>
     <exports symbol='XML_RNGP_TEXT_HAS_CHILD' type='enum'/>
     <exports symbol='XML_SCHEMAV_NOTNILLABLE' type='enum'/>
     <exports symbol='XML_SCHEMAP_ELEM_DEFAULT_FIXED' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_ELEMENT' type='enum'/>
     <exports symbol='XML_RNGP_REF_NO_DEF' type='enum'/>
     <exports symbol='XML_ERR_NOT_WELL_BALANCED' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_5' type='enum'/>
     <exports symbol='XML_ERR_INVALID_CHARREF' 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_ERR_MIXED_NOT_STARTED' type='enum'/>
     <exports symbol='XML_CHECK_FOUND_CDATA' type='enum'/>
     <exports symbol='XML_SCHEMAP_INTERNAL' type='enum'/>
     <exports symbol='XML_SCHEMAV_INVALIDELEM' type='enum'/>
     <exports symbol='XML_ERR_INVALID_ENCODING' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_AU' type='enum'/>
     <exports symbol='XML_CHECK_WRONG_NEXT' type='enum'/>
     <exports symbol='XML_ERR_TAG_NOT_FINISHED' type='enum'/>
     <exports symbol='XML_ERR_LTSLASH_REQUIRED' type='enum'/>
     <exports symbol='XML_SCHEMAP_REDEFINED_ATTRGROUP' type='enum'/>
     <exports symbol='XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH' type='enum'/>
     <exports symbol='XML_ERR_PEREF_IN_INT_SUBSET' 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_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_BASE_TYPE' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_ELEM_CHILD' type='enum'/>
     <exports symbol='XML_WAR_UNKNOWN_VERSION' type='enum'/>
     <exports symbol='XML_DTD_CONTENT_MODEL' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1' type='enum'/>
     <exports symbol='XML_ERR_OK' type='enum'/>
     <exports symbol='XML_NS_ERR_COLON' type='enum'/>
     <exports symbol='XML_WAR_ENTITY_REDEFINED' type='enum'/>
     <exports symbol='XML_ERR_ATTRIBUTE_REDEFINED' type='enum'/>
     <exports symbol='XML_SCHEMAP_SIMPLETYPE_NONAME' type='enum'/>
     <exports symbol='XML_SCHEMAP_UNKNOWN_GROUP_CHILD' type='enum'/>
     <exports symbol='XML_IO_ENOTSUP' type='enum'/>
     <exports symbol='XML_WAR_NS_URI_RELATIVE' 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_SCHEMAP_INVALID_ENUM' type='enum'/>
     <exports symbol='XML_RNGP_DEFINE_NAME_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2' type='enum'/>
     <exports symbol='XML_RNGP_EMPTY_CONSTRUCT' type='enum'/>
     <exports symbol='XML_RNGP_FORBIDDEN_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_FROM_OUTPUT' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1' type='enum'/>
     <exports symbol='XML_CHECK_WRONG_PREV' type='enum'/>
     <exports symbol='XML_IO_EEXIST' type='enum'/>
     <exports symbol='XML_SCHEMAP_MG_PROPS_CORRECT_2' type='enum'/>
     <exports symbol='XML_SCHEMAP_MG_PROPS_CORRECT_1' type='enum'/>
     <exports symbol='XML_RNGP_PAT_LIST_ELEM' type='enum'/>
     <exports symbol='XML_SCHEMAV_UNDECLAREDELEM' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3' type='enum'/>
     <exports symbol='XML_SCHEMAP_CT_PROPS_CORRECT_3' type='enum'/>
     <exports symbol='XML_XINCLUDE_INVALID_CHAR' type='enum'/>
     <exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4' type='enum'/>
     <exports symbol='XML_XPATH_INVALID_PREDICATE_ERROR' 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='xmlParserError' type='function'/>
     <exports symbol='xmlParserWarning' type='function'/>
     <exports symbol='xmlStructuredErrorFunc' type='function'/>
     <exports symbol='xmlSetStructuredErrorFunc' type='function'/>
     <exports symbol='xmlResetError' type='function'/>
     <exports symbol='xmlGetLastError' 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='_REENTRANT' type='macro'/>
     <exports symbol='XMLCDECL' type='macro'/>
     <exports symbol='XMLPUBVAR' type='macro'/>
     <exports symbol='LIBXML_DLL_IMPORT' type='macro'/>
     <exports symbol='XMLCALL' type='macro'/>
     <exports symbol='XMLPUBFUN' 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='xmlInitMemory' type='function'/>
     <exports symbol='xmlMemFree' type='function'/>
     <exports symbol='xmlMemMalloc' type='function'/>
     <exports symbol='xmlMemDisplayLast' type='function'/>
     <exports symbol='xmlMemGet' type='function'/>
     <exports symbol='xmlMemoryDump' type='function'/>
     <exports symbol='xmlMallocLoc' type='function'/>
     <exports symbol='xmlMemDisplay' type='function'/>
     <exports symbol='xmlMemBlocks' type='function'/>
     <exports symbol='xmlGcMemGet' type='function'/>
     <exports symbol='xmlStrdupFunc' type='function'/>
     <exports symbol='xmlFreeFunc' type='function'/>
     <exports symbol='xmlMemShow' 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='xmlReallocFunc' type='function'/>
     <exports symbol='xmlMallocFunc' type='function'/>
     <exports symbol='xmlGcMemSetup' type='function'/>
     <exports symbol='xmlMemoryStrdup' type='function'/>
     <exports symbol='xmlMemStrdupLoc' type='function'/>
    </file>
    <file name='xmlmodule'>
     <summary>dynamic module loading</summary>
     <description>basic API for dynamic module loading, used by libexslt added in 2.6.17 </description>
     <author>Joel W. Reed </author>
     <exports symbol='XML_MODULE_LAZY' type='enum'/>
     <exports symbol='XML_MODULE_LOCAL' type='enum'/>
     <exports symbol='xmlModule' type='typedef'/>
     <exports symbol='xmlModulePtr' type='typedef'/>
     <exports symbol='xmlModuleOption' type='typedef'/>
     <exports symbol='xmlModuleFree' type='function'/>
     <exports symbol='xmlModuleSymbol' type='function'/>
     <exports symbol='xmlModuleOpen' type='function'/>
     <exports symbol='xmlModuleClose' 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_PARSER_SEVERITY_ERROR' type='enum'/>
     <exports symbol='XML_READER_TYPE_ELEMENT' type='enum'/>
     <exports symbol='XML_READER_TYPE_TEXT' type='enum'/>
     <exports symbol='XML_READER_TYPE_XML_DECLARATION' type='enum'/>
     <exports symbol='XML_READER_TYPE_NONE' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_VALIDITY_ERROR' type='enum'/>
     <exports symbol='XML_READER_TYPE_PROCESSING_INSTRUCTION' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_ERROR' type='enum'/>
     <exports symbol='XML_READER_TYPE_ATTRIBUTE' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_WARNING' type='enum'/>
     <exports symbol='XML_READER_TYPE_DOCUMENT' type='enum'/>
     <exports symbol='XML_READER_TYPE_DOCUMENT_TYPE' 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_INITIAL' type='enum'/>
     <exports symbol='XML_READER_TYPE_COMMENT' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_CLOSED' type='enum'/>
     <exports symbol='XML_PARSER_DEFAULTATTRS' type='enum'/>
     <exports symbol='XML_READER_TYPE_ENTITY' type='enum'/>
     <exports symbol='XML_READER_TYPE_SIGNIFICANT_WHITESPACE' type='enum'/>
     <exports symbol='XML_READER_TYPE_END_ENTITY' type='enum'/>
     <exports symbol='XML_PARSER_VALIDATE' type='enum'/>
     <exports symbol='XML_PARSER_SEVERITY_VALIDITY_WARNING' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_READING' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_EOF' type='enum'/>
     <exports symbol='XML_READER_TYPE_CDATA' type='enum'/>
     <exports symbol='XML_PARSER_LOADDTD' type='enum'/>
     <exports symbol='XML_TEXTREADER_MODE_INTERACTIVE' type='enum'/>
     <exports symbol='xmlTextReaderPtr' type='typedef'/>
     <exports symbol='xmlParserSeverities' type='typedef'/>
     <exports symbol='xmlParserProperties' type='typedef'/>
     <exports symbol='xmlTextReaderMode' type='typedef'/>
     <exports symbol='xmlTextReader' type='typedef'/>
     <exports symbol='xmlTextReaderLocatorPtr' type='typedef'/>
     <exports symbol='xmlReaderTypes' type='typedef'/>
     <exports symbol='xmlNewTextReaderFilename' type='function'/>
     <exports symbol='xmlTextReaderHasAttributes' type='function'/>
     <exports symbol='xmlTextReaderReadState' type='function'/>
     <exports symbol='xmlReaderForFile' type='function'/>
     <exports symbol='xmlTextReaderConstNamespaceUri' type='function'/>
     <exports symbol='xmlTextReaderCurrentDoc' type='function'/>
     <exports symbol='xmlTextReaderGetParserLineNumber' type='function'/>
     <exports symbol='xmlTextReaderExpand' type='function'/>
     <exports symbol='xmlTextReaderXmlLang' type='function'/>
     <exports symbol='xmlReaderForDoc' type='function'/>
     <exports symbol='xmlReaderNewIO' type='function'/>
     <exports symbol='xmlTextReaderClose' type='function'/>
     <exports symbol='xmlTextReaderReadInnerXml' type='function'/>
     <exports symbol='xmlTextReaderConstEncoding' type='function'/>
     <exports symbol='xmlTextReaderNormalization' type='function'/>
     <exports symbol='xmlTextReaderGetParserProp' type='function'/>
     <exports symbol='xmlTextReaderMoveToAttribute' type='function'/>
     <exports symbol='xmlTextReaderQuoteChar' type='function'/>
     <exports symbol='xmlTextReaderSetSchema' type='function'/>
     <exports symbol='xmlTextReaderValue' type='function'/>
     <exports symbol='xmlTextReaderIsValid' type='function'/>
     <exports symbol='xmlTextReaderMoveToFirstAttribute' type='function'/>
     <exports symbol='xmlTextReaderGetParserColumnNumber' type='function'/>
     <exports symbol='xmlTextReaderConstValue' type='function'/>
     <exports symbol='xmlNewTextReader' type='function'/>
     <exports symbol='xmlTextReaderGetAttributeNo' type='function'/>
     <exports symbol='xmlTextReaderGetAttributeNs' type='function'/>
     <exports symbol='xmlTextReaderConstName' type='function'/>
     <exports symbol='xmlTextReaderConstString' type='function'/>
     <exports symbol='xmlTextReaderConstXmlVersion' type='function'/>
     <exports symbol='xmlTextReaderDepth' type='function'/>
     <exports symbol='xmlTextReaderReadString' type='function'/>
     <exports symbol='xmlTextReaderIsDefault' type='function'/>
     <exports symbol='xmlTextReaderMoveToNextAttribute' type='function'/>
     <exports symbol='xmlReaderNewWalker' type='function'/>
     <exports symbol='xmlTextReaderConstPrefix' type='function'/>
     <exports symbol='xmlReaderWalker' type='function'/>
     <exports symbol='xmlTextReaderConstLocalName' type='function'/>
     <exports symbol='xmlTextReaderNodeType' type='function'/>
     <exports symbol='xmlFreeTextReader' type='function'/>
     <exports symbol='xmlTextReaderName' type='function'/>
     <exports symbol='xmlTextReaderRead' type='function'/>
     <exports symbol='xmlTextReaderIsEmptyElement' type='function'/>
     <exports symbol='xmlReaderNewMemory' type='function'/>
     <exports symbol='xmlTextReaderSchemaValidateCtxt' type='function'/>
     <exports symbol='xmlTextReaderHasValue' type='function'/>
     <exports symbol='xmlTextReaderConstBaseUri' type='function'/>
     <exports symbol='xmlTextReaderBaseUri' type='function'/>
     <exports symbol='xmlTextReaderMoveToAttributeNo' type='function'/>
     <exports symbol='xmlTextReaderLocatorLineNumber' type='function'/>
     <exports symbol='xmlTextReaderMoveToAttributeNs' type='function'/>
     <exports symbol='xmlTextReaderNext' type='function'/>
     <exports symbol='xmlTextReaderAttributeCount' type='function'/>
     <exports symbol='xmlTextReaderLookupNamespace' type='function'/>
     <exports symbol='xmlTextReaderMoveToElement' type='function'/>
     <exports symbol='xmlReaderForIO' type='function'/>
     <exports symbol='xmlTextReaderReadOuterXml' type='function'/>
     <exports symbol='xmlTextReaderPrefix' type='function'/>
     <exports symbol='xmlTextReaderReadAttributeValue' type='function'/>
     <exports symbol='xmlTextReaderNextSibling' type='function'/>
     <exports symbol='xmlTextReaderErrorFunc' type='function'/>
     <exports symbol='xmlReaderForFd' type='function'/>
     <exports symbol='xmlTextReaderGetAttribute' type='function'/>
     <exports symbol='xmlTextReaderLocalName' type='function'/>
     <exports symbol='xmlTextReaderPreserve' type='function'/>
     <exports symbol='xmlTextReaderCurrentNode' type='function'/>
     <exports symbol='xmlTextReaderSetParserProp' type='function'/>
     <exports symbol='xmlTextReaderGetRemainder' type='function'/>
     <exports symbol='xmlTextReaderSetErrorHandler' type='function'/>
     <exports symbol='xmlTextReaderIsNamespaceDecl' type='function'/>
     <exports symbol='xmlReaderNewDoc' type='function'/>
     <exports symbol='xmlTextReaderPreservePattern' type='function'/>
     <exports symbol='xmlTextReaderConstXmlLang' type='function'/>
     <exports symbol='xmlTextReaderGetErrorHandler' type='function'/>
     <exports symbol='xmlTextReaderSetStructuredErrorHandler' type='function'/>
     <exports symbol='xmlReaderNewFile' type='function'/>
     <exports symbol='xmlTextReaderRelaxNGSetSchema' type='function'/>
     <exports symbol='xmlReaderNewFd' type='function'/>
     <exports symbol='xmlTextReaderRelaxNGValidate' type='function'/>
     <exports symbol='xmlReaderForMemory' type='function'/>
     <exports symbol='xmlTextReaderSetup' type='function'/>
     <exports symbol='xmlTextReaderByteConsumed' type='function'/>
     <exports symbol='xmlTextReaderLocatorBaseURI' type='function'/>
     <exports symbol='xmlTextReaderNamespaceUri' type='function'/>
     <exports symbol='xmlTextReaderSchemaValidate' type='function'/>
     <exports symbol='xmlTextReaderStandalone' 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='XML_EXP_COUNT' type='enum'/>
     <exports symbol='XML_EXP_EMPTY' type='enum'/>
     <exports symbol='XML_EXP_SEQ' type='enum'/>
     <exports symbol='XML_EXP_ATOM' type='enum'/>
     <exports symbol='XML_EXP_OR' type='enum'/>
     <exports symbol='XML_EXP_FORBID' type='enum'/>
     <exports symbol='xmlRegExecCtxtPtr' type='typedef'/>
     <exports symbol='xmlExpCtxt' type='typedef'/>
     <exports symbol='xmlExpNodePtr' type='typedef'/>
     <exports symbol='xmlExpCtxtPtr' type='typedef'/>
     <exports symbol='xmlExpNodeType' type='typedef'/>
     <exports symbol='xmlRegExecCtxt' type='typedef'/>
     <exports symbol='xmlExpNode' type='typedef'/>
     <exports symbol='xmlRegexp' type='typedef'/>
     <exports symbol='xmlRegexpPtr' type='typedef'/>
     <exports symbol='forbiddenExp' type='variable'/>
     <exports symbol='emptyExp' type='variable'/>
     <exports symbol='xmlRegExecCallbacks' type='function'/>
     <exports symbol='xmlRegNewExecCtxt' type='function'/>
     <exports symbol='xmlExpNewOr' type='function'/>
     <exports symbol='xmlRegFreeRegexp' type='function'/>
     <exports symbol='xmlExpRef' type='function'/>
     <exports symbol='xmlRegexpIsDeterminist' type='function'/>
     <exports symbol='xmlRegExecErrInfo' type='function'/>
     <exports symbol='xmlRegFreeExecCtxt' type='function'/>
     <exports symbol='xmlExpCtxtNbCons' type='function'/>
     <exports symbol='xmlExpSubsume' type='function'/>
     <exports symbol='xmlRegExecPushString2' type='function'/>
     <exports symbol='xmlRegExecNextValues' type='function'/>
     <exports symbol='xmlExpExpDerive' type='function'/>
     <exports symbol='xmlExpIsNillable' type='function'/>
     <exports symbol='xmlExpFreeCtxt' type='function'/>
     <exports symbol='xmlExpDump' type='function'/>
     <exports symbol='xmlExpNewSeq' type='function'/>
     <exports symbol='xmlExpFree' type='function'/>
     <exports symbol='xmlExpNewRange' type='function'/>
     <exports symbol='xmlRegexpCompile' type='function'/>
     <exports symbol='xmlExpNewAtom' type='function'/>
     <exports symbol='xmlRegexpExec' type='function'/>
     <exports symbol='xmlRegExecPushString' type='function'/>
     <exports symbol='xmlExpGetStart' type='function'/>
     <exports symbol='xmlExpParse' type='function'/>
     <exports symbol='xmlExpNewCtxt' type='function'/>
     <exports symbol='xmlExpGetLanguage' type='function'/>
     <exports symbol='xmlExpStringDerive' type='function'/>
     <exports symbol='xmlExpCtxtNbNodes' type='function'/>
     <exports symbol='xmlExpMaxToken' 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='XML_SAVE_NO_EMPTY' type='enum'/>
     <exports symbol='XML_SAVE_NO_DECL' type='enum'/>
     <exports symbol='XML_SAVE_NO_XHTML' type='enum'/>
     <exports symbol='XML_SAVE_FORMAT' type='enum'/>
     <exports symbol='xmlSaveOption' type='typedef'/>
     <exports symbol='xmlSaveCtxt' type='typedef'/>
     <exports symbol='xmlSaveCtxtPtr' type='typedef'/>
     <exports symbol='xmlSaveToIO' type='function'/>
     <exports symbol='xmlSaveToFd' type='function'/>
     <exports symbol='xmlSaveClose' type='function'/>
     <exports symbol='xmlSaveSetAttrEscape' type='function'/>
     <exports symbol='xmlSaveToBuffer' type='function'/>
     <exports symbol='xmlSaveToFilename' type='function'/>
     <exports symbol='xmlSaveFlush' type='function'/>
     <exports symbol='xmlSaveDoc' 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_NOROOT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_XXX' type='enum'/>
     <exports symbol='XML_SCHEMA_VAL_VC_I_CREATE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ISABSTRACT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ATTRUNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_WRONGELEM' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTDETERMINIST' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_INTERNAL' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_MISSING' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_INVALIDATTR' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_CONSTRUCT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_FACET' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTYPE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_VALUE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOROLLBACK' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTTOPLEVEL' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTEMPTY' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_INVALIDELEM' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ATTRINVALID' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_EXTRACONTENT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_NOTSIMPLE' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_UNDECLAREDELEM' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_HAVEDEFAULT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_ELEMCONT' type='enum'/>
     <exports symbol='XML_SCHEMAS_ERR_' type='enum'/>
     <exports symbol='xmlSchemaPtr' type='typedef'/>
     <exports symbol='xmlSchemaParserCtxt' type='typedef'/>
     <exports symbol='xmlSchemaValidOption' type='typedef'/>
     <exports symbol='xmlSchemaSAXPlugPtr' type='typedef'/>
     <exports symbol='xmlSchemaSAXPlugStruct' 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='xmlSchemaNewDocParserCtxt' type='function'/>
     <exports symbol='xmlSchemaSAXUnplug' type='function'/>
     <exports symbol='xmlSchemaParse' type='function'/>
     <exports symbol='xmlSchemaFreeParserCtxt' type='function'/>
     <exports symbol='xmlSchemaNewParserCtxt' type='function'/>
     <exports symbol='xmlSchemaIsValid' type='function'/>
     <exports symbol='xmlSchemaValidityErrorFunc' type='function'/>
     <exports symbol='xmlSchemaSAXPlug' type='function'/>
     <exports symbol='xmlSchemaValidateStream' type='function'/>
     <exports symbol='xmlSchemaGetParserErrors' type='function'/>
     <exports symbol='xmlSchemaValidateOneElement' type='function'/>
     <exports symbol='xmlSchemaSetValidStructuredErrors' type='function'/>
     <exports symbol='xmlSchemaSetValidErrors' type='function'/>
     <exports symbol='xmlSchemaValidCtxtGetOptions' type='function'/>
     <exports symbol='xmlSchemaValidateFile' type='function'/>
     <exports symbol='xmlSchemaValidateDoc' type='function'/>
     <exports symbol='xmlSchemaFree' type='function'/>
     <exports symbol='xmlSchemaNewMemParserCtxt' type='function'/>
     <exports symbol='xmlSchemaGetValidErrors' type='function'/>
     <exports symbol='xmlSchemaSetValidOptions' type='function'/>
     <exports symbol='xmlSchemaSetParserErrors' type='function'/>
     <exports symbol='xmlSchemaValidityWarningFunc' type='function'/>
     <exports symbol='xmlSchemaDump' type='function'/>
     <exports symbol='xmlSchemaFreeValidCtxt' type='function'/>
     <exports symbol='xmlSchemaValidCtxtGetParserCtxt' type='function'/>
     <exports symbol='xmlSchemaSetParserStructuredErrors' type='function'/>
     <exports symbol='xmlSchemaNewValidCtxt' 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='XML_SCHEMA_WHITESPACE_UNKNOWN' type='enum'/>
     <exports symbol='XML_SCHEMA_WHITESPACE_COLLAPSE' type='enum'/>
     <exports symbol='XML_SCHEMA_WHITESPACE_REPLACE' type='enum'/>
     <exports symbol='XML_SCHEMA_WHITESPACE_PRESERVE' type='enum'/>
     <exports symbol='xmlSchemaWhitespaceValueType' type='typedef'/>
     <exports symbol='xmlSchemaValPredefTypeNode' type='function'/>
     <exports symbol='xmlSchemaGetCanonValueWhtsp' type='function'/>
     <exports symbol='xmlSchemaValidateLengthFacetWhtsp' type='function'/>
     <exports symbol='xmlSchemaIsBuiltInTypeFacet' type='function'/>
     <exports symbol='xmlSchemaGetCanonValue' type='function'/>
     <exports symbol='xmlSchemaGetBuiltInListSimpleTypeItemType' type='function'/>
     <exports symbol='xmlSchemaCompareValuesWhtsp' type='function'/>
     <exports symbol='xmlSchemaValueGetAsBoolean' type='function'/>
     <exports symbol='xmlSchemaCollapseString' type='function'/>
     <exports symbol='xmlSchemaValPredefTypeNodeNoNorm' type='function'/>
     <exports symbol='xmlSchemaValidateFacet' type='function'/>
     <exports symbol='xmlSchemaNewFacet' type='function'/>
     <exports symbol='xmlSchemaValueAppend' type='function'/>
     <exports symbol='xmlSchemaCompareValues' type='function'/>
     <exports symbol='xmlSchemaValidateLengthFacet' type='function'/>
     <exports symbol='xmlSchemaGetValType' type='function'/>
     <exports symbol='xmlSchemaGetPredefinedType' type='function'/>
     <exports symbol='xmlSchemaValidatePredefinedType' type='function'/>
     <exports symbol='xmlSchemaFreeFacet' type='function'/>
     <exports symbol='xmlSchemaValidateListSimpleTypeFacet' type='function'/>
     <exports symbol='xmlSchemaGetFacetValueAsULong' type='function'/>
     <exports symbol='xmlSchemaFreeValue' type='function'/>
     <exports symbol='xmlSchemaValueGetNext' type='function'/>
     <exports symbol='xmlSchemaValueGetAsString' type='function'/>
     <exports symbol='xmlSchemaCopyValue' type='function'/>
     <exports symbol='xmlSchemaNewNOTATIONValue' type='function'/>
     <exports symbol='xmlSchemaNewQNameValue' type='function'/>
     <exports symbol='xmlSchemaCleanupTypes' type='function'/>
     <exports symbol='xmlSchemaWhiteSpaceReplace' type='function'/>
     <exports symbol='xmlSchemaNewStringValue' type='function'/>
     <exports symbol='xmlSchemaGetBuiltInType' type='function'/>
     <exports symbol='xmlSchemaInitTypes' type='function'/>
     <exports symbol='xmlSchemaValidateFacetWhtsp' 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='xmlCharStrndup' type='function'/>
     <exports symbol='xmlStrcasestr' type='function'/>
     <exports symbol='xmlStrcat' type='function'/>
     <exports symbol='xmlStrPrintf' type='function'/>
     <exports symbol='xmlStrstr' type='function'/>
     <exports symbol='xmlUTF8Size' type='function'/>
     <exports symbol='xmlStrQEqual' type='function'/>
     <exports symbol='xmlStrncatNew' type='function'/>
     <exports symbol='xmlUTF8Strpos' type='function'/>
     <exports symbol='xmlStrdup' type='function'/>
     <exports symbol='xmlCharStrdup' type='function'/>
     <exports symbol='xmlStrchr' type='function'/>
     <exports symbol='xmlStrlen' type='function'/>
     <exports symbol='xmlStrncmp' type='function'/>
     <exports symbol='xmlStrsub' type='function'/>
     <exports symbol='xmlStrncat' type='function'/>
     <exports symbol='xmlGetUTF8Char' type='function'/>
     <exports symbol='xmlStrcasecmp' type='function'/>
     <exports symbol='xmlStrndup' type='function'/>
     <exports symbol='xmlStrVPrintf' type='function'/>
     <exports symbol='xmlUTF8Strsize' type='function'/>
     <exports symbol='xmlCheckUTF8' type='function'/>
     <exports symbol='xmlStrncasecmp' type='function'/>
     <exports symbol='xmlUTF8Strlen' type='function'/>
     <exports symbol='xmlUTF8Strsub' type='function'/>
     <exports symbol='xmlStrEqual' type='function'/>
     <exports symbol='xmlUTF8Charcmp' type='function'/>
     <exports symbol='xmlUTF8Strndup' type='function'/>
     <exports symbol='xmlUTF8Strloc' 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='xmlUCSIsBopomofo' type='function'/>
     <exports symbol='xmlUCSIsDingbats' type='function'/>
     <exports symbol='xmlUCSIsSuperscriptsandSubscripts' type='function'/>
     <exports symbol='xmlUCSIsCombiningHalfMarks' type='function'/>
     <exports symbol='xmlUCSIsTibetan' type='function'/>
     <exports symbol='xmlUCSIsYiRadicals' type='function'/>
     <exports symbol='xmlUCSIsCombiningMarksforSymbols' type='function'/>
     <exports symbol='xmlUCSIsHangulSyllables' type='function'/>
     <exports symbol='xmlUCSIsBasicLatin' type='function'/>
     <exports symbol='xmlUCSIsCatSc' type='function'/>
     <exports symbol='xmlUCSIsCatSo' type='function'/>
     <exports symbol='xmlUCSIsLimbu' type='function'/>
     <exports symbol='xmlUCSIsCatSm' type='function'/>
     <exports symbol='xmlUCSIsCatSk' type='function'/>
     <exports symbol='xmlUCSIsKhmerSymbols' type='function'/>
     <exports symbol='xmlUCSIsMongolian' type='function'/>
     <exports symbol='xmlUCSIsMalayalam' type='function'/>
     <exports symbol='xmlUCSIsMathematicalAlphanumericSymbols' type='function'/>
     <exports symbol='xmlUCSIsThaana' type='function'/>
     <exports symbol='xmlUCSIsMyanmar' type='function'/>
     <exports symbol='xmlUCSIsTags' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibilityIdeographs' type='function'/>
     <exports symbol='xmlUCSIsTelugu' type='function'/>
     <exports symbol='xmlUCSIsLowSurrogates' type='function'/>
     <exports symbol='xmlUCSIsOsmanya' type='function'/>
     <exports symbol='xmlUCSIsSyriac' type='function'/>
     <exports symbol='xmlUCSIsEthiopic' type='function'/>
     <exports symbol='xmlUCSIsBoxDrawing' type='function'/>
     <exports symbol='xmlUCSIsGreekExtended' type='function'/>
     <exports symbol='xmlUCSIsGreekandCoptic' type='function'/>
     <exports symbol='xmlUCSIsKannada' type='function'/>
     <exports symbol='xmlUCSIsByzantineMusicalSymbols' type='function'/>
     <exports symbol='xmlUCSIsEnclosedCJKLettersandMonths' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibilityForms' type='function'/>
     <exports symbol='xmlUCSIsCatCs' type='function'/>
     <exports symbol='xmlUCSIsCJKRadicalsSupplement' type='function'/>
     <exports symbol='xmlUCSIsCatCf' type='function'/>
     <exports symbol='xmlUCSIsSmallFormVariants' type='function'/>
     <exports symbol='xmlUCSIsHangulCompatibilityJamo' type='function'/>
     <exports symbol='xmlUCSIsCatCc' type='function'/>
     <exports symbol='xmlUCSIsCatCo' type='function'/>
     <exports symbol='xmlUCSIsCherokee' type='function'/>
     <exports symbol='xmlUCSIsGothic' type='function'/>
     <exports symbol='xmlUCSIsKhmer' type='function'/>
     <exports symbol='xmlUCSIsCombiningDiacriticalMarksforSymbols' type='function'/>
     <exports symbol='xmlUCSIsOgham' type='function'/>
     <exports symbol='xmlUCSIsOriya' type='function'/>
     <exports symbol='xmlUCSIsLinearBIdeograms' type='function'/>
     <exports symbol='xmlUCSIsBlock' type='function'/>
     <exports symbol='xmlUCSIsBopomofoExtended' type='function'/>
     <exports symbol='xmlUCSIsHangulJamo' 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='xmlUCSIsCJKUnifiedIdeographs' type='function'/>
     <exports symbol='xmlUCSIsCatNl' type='function'/>
     <exports symbol='xmlUCSIsCatNo' type='function'/>
     <exports symbol='xmlUCSIsYijingHexagramSymbols' type='function'/>
     <exports symbol='xmlUCSIsVariationSelectorsSupplement' type='function'/>
     <exports symbol='xmlUCSIsBengali' type='function'/>
     <exports symbol='xmlUCSIsPrivateUse' type='function'/>
     <exports symbol='xmlUCSIsMusicalSymbols' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousSymbols' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibility' type='function'/>
     <exports symbol='xmlUCSIsAegeanNumbers' type='function'/>
     <exports symbol='xmlUCSIsDevanagari' type='function'/>
     <exports symbol='xmlUCSIsSupplementalArrowsA' type='function'/>
     <exports symbol='xmlUCSIsSupplementalArrowsB' type='function'/>
     <exports symbol='xmlUCSIsNumberForms' type='function'/>
     <exports symbol='xmlUCSIsSpacingModifierLetters' type='function'/>
     <exports symbol='xmlUCSIsOpticalCharacterRecognition' type='function'/>
     <exports symbol='xmlUCSIsCatPc' type='function'/>
     <exports symbol='xmlUCSIsCatPf' type='function'/>
     <exports symbol='xmlUCSIsCyrillicSupplement' type='function'/>
     <exports symbol='xmlUCSIsCatPd' type='function'/>
     <exports symbol='xmlUCSIsCatPi' type='function'/>
     <exports symbol='xmlUCSIsCatPo' type='function'/>
     <exports symbol='xmlUCSIsHighPrivateUseSurrogates' type='function'/>
     <exports symbol='xmlUCSIsLatinExtendedAdditional' type='function'/>
     <exports symbol='xmlUCSIsCatPs' type='function'/>
     <exports symbol='xmlUCSIsHighSurrogates' type='function'/>
     <exports symbol='xmlUCSIsLao' type='function'/>
     <exports symbol='xmlUCSIsBraillePatterns' type='function'/>
     <exports symbol='xmlUCSIsDeseret' type='function'/>
     <exports symbol='xmlUCSIsEnclosedAlphanumerics' type='function'/>
     <exports symbol='xmlUCSIsCombiningDiacriticalMarks' type='function'/>
     <exports symbol='xmlUCSIsIdeographicDescriptionCharacters' type='function'/>
     <exports symbol='xmlUCSIsPrivateUseArea' type='function'/>
     <exports symbol='xmlUCSIsCat' type='function'/>
     <exports symbol='xmlUCSIsCatLu' type='function'/>
     <exports symbol='xmlUCSIsCatLt' type='function'/>
     <exports symbol='xmlUCSIsYiSyllables' type='function'/>
     <exports symbol='xmlUCSIsShavian' type='function'/>
     <exports symbol='xmlUCSIsCatLo' type='function'/>
     <exports symbol='xmlUCSIsCatLm' type='function'/>
     <exports symbol='xmlUCSIsCatLl' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousTechnical' type='function'/>
     <exports symbol='xmlUCSIsUgaritic' type='function'/>
     <exports symbol='xmlUCSIsCJKCompatibilityIdeographsSupplement' type='function'/>
     <exports symbol='xmlUCSIsCypriotSyllabary' type='function'/>
     <exports symbol='xmlUCSIsTamil' type='function'/>
     <exports symbol='xmlUCSIsCatC' type='function'/>
     <exports symbol='xmlUCSIsCatN' type='function'/>
     <exports symbol='xmlUCSIsCatL' type='function'/>
     <exports symbol='xmlUCSIsCatM' type='function'/>
     <exports symbol='xmlUCSIsUnifiedCanadianAboriginalSyllabics' type='function'/>
     <exports symbol='xmlUCSIsCatS' type='function'/>
     <exports symbol='xmlUCSIsCatP' type='function'/>
     <exports symbol='xmlUCSIsSinhala' type='function'/>
     <exports symbol='xmlUCSIsGeorgian' type='function'/>
     <exports symbol='xmlUCSIsCatZ' type='function'/>
     <exports symbol='xmlUCSIsIPAExtensions' type='function'/>
     <exports symbol='xmlUCSIsKangxiRadicals' type='function'/>
     <exports symbol='xmlUCSIsGreek' type='function'/>
     <exports symbol='xmlUCSIsCatPe' type='function'/>
     <exports symbol='xmlUCSIsHanunoo' type='function'/>
     <exports symbol='xmlUCSIsArmenian' type='function'/>
     <exports symbol='xmlUCSIsSupplementaryPrivateUseAreaB' type='function'/>
     <exports symbol='xmlUCSIsSupplementaryPrivateUseAreaA' type='function'/>
     <exports symbol='xmlUCSIsKatakanaPhoneticExtensions' type='function'/>
     <exports symbol='xmlUCSIsLetterlikeSymbols' type='function'/>
     <exports symbol='xmlUCSIsPhoneticExtensions' type='function'/>
     <exports symbol='xmlUCSIsArabic' type='function'/>
     <exports symbol='xmlUCSIsHebrew' type='function'/>
     <exports symbol='xmlUCSIsOldItalic' 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='xmlUCSIsKatakana' type='function'/>
     <exports symbol='xmlUCSIsHalfwidthandFullwidthForms' type='function'/>
     <exports symbol='xmlUCSIsLatinExtendedB' type='function'/>
     <exports symbol='xmlUCSIsLatinExtendedA' type='function'/>
     <exports symbol='xmlUCSIsBuhid' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousSymbolsandArrows' type='function'/>
     <exports symbol='xmlUCSIsTaiLe' type='function'/>
     <exports symbol='xmlUCSIsCJKSymbolsandPunctuation' type='function'/>
     <exports symbol='xmlUCSIsTaiXuanJingSymbols' type='function'/>
     <exports symbol='xmlUCSIsGurmukhi' type='function'/>
     <exports symbol='xmlUCSIsMathematicalOperators' type='function'/>
     <exports symbol='xmlUCSIsAlphabeticPresentationForms' type='function'/>
     <exports symbol='xmlUCSIsCurrencySymbols' 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='xmlUCSIsRunic' type='function'/>
     <exports symbol='xmlUCSIsCatNd' type='function'/>
     <exports symbol='xmlUCSIsLatin1Supplement' type='function'/>
     <exports symbol='xmlUCSIsLinearBSyllabary' type='function'/>
     <exports symbol='xmlUCSIsHiragana' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousMathematicalSymbolsB' type='function'/>
     <exports symbol='xmlUCSIsMiscellaneousMathematicalSymbolsA' type='function'/>
     <exports symbol='xmlUCSIsCatMn' type='function'/>
     <exports symbol='xmlUCSIsVariationSelectors' type='function'/>
     <exports symbol='xmlUCSIsCatMc' type='function'/>
     <exports symbol='xmlUCSIsCatMe' 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_MODULES_ENABLED' type='macro'/>
     <exports symbol='LIBXML_LEGACY_ENABLED' type='macro'/>
     <exports symbol='LIBXML_READER_ENABLED' type='macro'/>
     <exports symbol='LIBXML_THREAD_ENABLED' type='macro'/>
     <exports symbol='LIBXML_DOTTED_VERSION' 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='ATTRIBUTE_UNUSED' type='macro'/>
     <exports symbol='LIBXML_DOCB_ENABLED' type='macro'/>
     <exports symbol='LIBXML_PUSH_ENABLED' type='macro'/>
     <exports symbol='LIBXML_SAX1_ENABLED' type='macro'/>
     <exports symbol='WITHOUT_TRIO' type='macro'/>
     <exports symbol='LIBXML_SCHEMATRON_ENABLED' 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_DEBUG_RUNTIME' type='macro'/>
     <exports symbol='LIBXML_VERSION' type='macro'/>
     <exports symbol='LIBXML_XPTR_ENABLED' type='macro'/>
     <exports symbol='LIBXML_VERSION_STRING' type='macro'/>
     <exports symbol='LIBXML_CATALOG_ENABLED' type='macro'/>
     <exports symbol='LIBXML_REGEXP_ENABLED' type='macro'/>
     <exports symbol='LIBXML_MODULE_EXTENSION' type='macro'/>
     <exports symbol='LIBXML_ICONV_ENABLED' type='macro'/>
     <exports symbol='LIBXML_HTML_ENABLED' type='macro'/>
     <exports symbol='LIBXML_UNICODE_ENABLED' type='macro'/>
     <exports symbol='LIBXML_FTP_ENABLED' type='macro'/>
     <exports symbol='LIBXML_AUTOMATA_ENABLED' type='macro'/>
     <exports symbol='LIBXML_ZLIB_ENABLED' type='macro'/>
     <exports symbol='LIBXML_WRITER_ENABLED' 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_TEST_VERSION' type='macro'/>
     <exports symbol='LIBXML_XPATH_ENABLED' type='macro'/>
     <exports symbol='LIBXML_EXPR_ENABLED' 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='xmlFreeTextWriter' 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='xmlTextWriterEndDocument' 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='xmlTextWriterStartAttribute' 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='xmlTextWriterWriteCDATA' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatDTDInternalEntity' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatAttribute' type='function'/>
     <exports symbol='xmlTextWriterEndDTDElement' type='function'/>
     <exports symbol='xmlTextWriterEndDTD' 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='xmlTextWriterWritePI' type='function'/>
     <exports symbol='xmlTextWriterWriteFormatDTDInternalEntity' 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='xmlTextWriterWriteComment' type='function'/>
     <exports symbol='xmlTextWriterWriteVFormatRaw' 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='XML_XPATH_CHECKNS' type='macro'/>
     <exports symbol='XML_XPATH_NOVAR' type='macro'/>
     <exports symbol='xmlXPathNodeSetItem' type='macro'/>
     <exports symbol='xmlXPathNodeSetIsEmpty' type='macro'/>
     <exports symbol='XPATH_NUMBER_ERROR' type='enum'/>
     <exports symbol='XPATH_BOOLEAN' type='enum'/>
     <exports symbol='XPATH_START_LITERAL_ERROR' type='enum'/>
     <exports symbol='XPATH_UNCLOSED_ERROR' type='enum'/>
     <exports symbol='XPATH_INVALID_CHAR_ERROR' type='enum'/>
     <exports symbol='XPATH_UNDEF_VARIABLE_ERROR' 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_VARIABLE_REF_ERROR' type='enum'/>
     <exports symbol='XPATH_ENCODING_ERROR' type='enum'/>
     <exports symbol='XPTR_RESOURCE_ERROR' type='enum'/>
     <exports symbol='XPATH_NUMBER' type='enum'/>
     <exports symbol='XPATH_POINT' type='enum'/>
     <exports symbol='XPATH_USERS' type='enum'/>
     <exports symbol='XPATH_UNDEF_PREFIX_ERROR' type='enum'/>
     <exports symbol='XPATH_UNKNOWN_FUNC_ERROR' type='enum'/>
     <exports symbol='XPATH_INVALID_CTXT_SIZE' 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_CTXT' type='enum'/>
     <exports symbol='XPATH_INVALID_ARITY' type='enum'/>
     <exports symbol='XPATH_STRING' 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_INVALID_TYPE' 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_INVALID_OPERAND' type='enum'/>
     <exports symbol='xmlXPathObjectType' type='typedef'/>
     <exports symbol='xmlXPathVariablePtr' type='typedef'/>
     <exports symbol='xmlXPathContext' type='typedef'/>
     <exports symbol='xmlXPathError' type='typedef'/>
     <exports symbol='xmlXPathFunct' type='typedef'/>
     <exports symbol='xmlXPathTypePtr' type='typedef'/>
     <exports symbol='xmlXPathType' type='typedef'/>
     <exports symbol='xmlNodeSetPtr' type='typedef'/>
     <exports symbol='xmlXPathFuncPtr' type='typedef'/>
     <exports symbol='xmlXPathCompExprPtr' 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='xmlXPathObjectPtr' type='typedef'/>
     <exports symbol='xmlXPathAxis' type='typedef'/>
     <exports symbol='xmlXPathAxisPtr' type='typedef'/>
     <exports symbol='xmlXPathParserContext' type='typedef'/>
     <exports symbol='_xmlXPathFunct' type='struct'/>
     <exports symbol='_xmlXPathVariable' type='struct'/>
     <exports symbol='_xmlXPathParserContext' type='struct'/>
     <exports symbol='_xmlXPathType' type='struct'/>
     <exports symbol='_xmlXPathObject' type='struct'/>
     <exports symbol='_xmlXPathContext' type='struct'/>
     <exports symbol='_xmlXPathAxis' type='struct'/>
     <exports symbol='_xmlNodeSet' type='struct'/>
     <exports symbol='xmlXPathNAN' type='variable'/>
     <exports symbol='xmlXPathPINF' type='variable'/>
     <exports symbol='xmlXPathNINF' type='variable'/>
     <exports symbol='xmlXPathCastNodeSetToBoolean' type='function'/>
     <exports symbol='xmlXPathFuncLookupFunc' type='function'/>
     <exports symbol='xmlXPathCastNodeToString' type='function'/>
     <exports symbol='xmlXPathIsNaN' type='function'/>
     <exports symbol='xmlXPathContextSetCache' type='function'/>
     <exports symbol='xmlXPathConvertString' type='function'/>
     <exports symbol='xmlXPathCompiledEvalToBoolean' type='function'/>
     <exports symbol='xmlXPathIsInf' type='function'/>
     <exports symbol='xmlXPathOrderDocElems' type='function'/>
     <exports symbol='xmlXPathNodeSetCreate' type='function'/>
     <exports symbol='xmlXPathCastBooleanToNumber' type='function'/>
     <exports symbol='xmlXPathCastNodeToNumber' type='function'/>
     <exports symbol='xmlXPathCastStringToNumber' type='function'/>
     <exports symbol='xmlXPathAxisFunc' type='function'/>
     <exports symbol='xmlXPathCastToNumber' type='function'/>
     <exports symbol='xmlXPathCastStringToBoolean' type='function'/>
     <exports symbol='xmlXPathCastNumberToString' type='function'/>
     <exports symbol='xmlXPathVariableLookupFunc' type='function'/>
     <exports symbol='xmlXPathFreeObject' type='function'/>
     <exports symbol='xmlXPathEvalPredicate' type='function'/>
     <exports symbol='xmlXPathFreeContext' type='function'/>
     <exports symbol='xmlXPathObjectCopy' type='function'/>
     <exports symbol='xmlXPathFreeNodeSetList' type='function'/>
     <exports symbol='xmlXPathEval' type='function'/>
     <exports symbol='xmlXPathCastNodeSetToString' type='function'/>
     <exports symbol='xmlXPathCompiledEval' type='function'/>
     <exports symbol='xmlXPathEvalExpression' type='function'/>
     <exports symbol='xmlXPathInit' type='function'/>
     <exports symbol='xmlXPathConvertBoolean' type='function'/>
     <exports symbol='xmlXPathConvertFunc' type='function'/>
     <exports symbol='xmlXPathFunction' type='function'/>
     <exports symbol='xmlXPathCmpNodes' type='function'/>
     <exports symbol='xmlXPathCastToString' type='function'/>
     <exports symbol='xmlXPathCtxtCompile' type='function'/>
     <exports symbol='xmlXPathEvalFunc' type='function'/>
     <exports symbol='xmlXPathCastBooleanToString' type='function'/>
     <exports symbol='xmlXPathCastNumberToBoolean' type='function'/>
     <exports symbol='xmlXPathFreeNodeSet' type='function'/>
     <exports symbol='xmlXPathFreeCompExpr' type='function'/>
     <exports symbol='xmlXPathNewContext' type='function'/>
     <exports symbol='xmlXPathConvertNumber' type='function'/>
     <exports symbol='xmlXPathCompile' type='function'/>
     <exports symbol='xmlXPathCastNodeSetToNumber' 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='xmlXPathStackIsExternal' type='macro'/>
     <exports symbol='xmlXPathReturnEmptyString' type='macro'/>
     <exports symbol='XP_ERROR0' type='macro'/>
     <exports symbol='xmlXPathSetTypeError' type='macro'/>
     <exports symbol='xmlXPathReturnEmptyNodeSet' type='macro'/>
     <exports symbol='xmlXPathReturnTrue' type='macro'/>
     <exports symbol='xmlXPathReturnBoolean' type='macro'/>
     <exports symbol='xmlXPathGetContextNode' type='macro'/>
     <exports symbol='CAST_TO_NUMBER' type='macro'/>
     <exports symbol='CHECK_ARITY' type='macro'/>
     <exports symbol='CHECK_TYPE0' type='macro'/>
     <exports symbol='CAST_TO_STRING' type='macro'/>
     <exports symbol='xmlXPathReturnExternal' type='macro'/>
     <exports symbol='xmlXPathStackIsNodeSet' type='macro'/>
     <exports symbol='xmlXPathCheckError' type='macro'/>
     <exports symbol='xmlXPathSetError' type='macro'/>
     <exports symbol='CHECK_ERROR' type='macro'/>
     <exports symbol='xmlXPathReturnString' type='macro'/>
     <exports symbol='CAST_TO_BOOLEAN' type='macro'/>
     <exports symbol='xmlXPathSetArityError' type='macro'/>
     <exports symbol='CHECK_TYPE' type='macro'/>
     <exports symbol='xmlXPathReturnFalse' type='macro'/>
     <exports symbol='xmlXPathReturnNumber' type='macro'/>
     <exports symbol='CHECK_ERROR0' type='macro'/>
     <exports symbol='xmlXPathGetDocument' type='macro'/>
     <exports symbol='xmlXPathGetError' type='macro'/>
     <exports symbol='XP_ERROR' type='macro'/>
     <exports symbol='xmlXPathEmptyNodeSet' type='macro'/>
     <exports symbol='xmlXPathReturnNodeSet' type='macro'/>
     <exports symbol='xmlXPathNodeSetMerge' type='function'/>
     <exports symbol='xmlXPathNumberFunction' type='function'/>
     <exports symbol='xmlXPathNsLookup' type='function'/>
     <exports symbol='xmlXPathNewNodeSet' type='function'/>
     <exports symbol='xmlXPathNextAncestorOrSelf' type='function'/>
     <exports symbol='xmlXPathNodeSetRemove' type='function'/>
     <exports symbol='xmlXPathNewNodeSetList' type='function'/>
     <exports symbol='xmlXPathPopBoolean' type='function'/>
     <exports symbol='xmlXPathNewString' type='function'/>
     <exports symbol='xmlXPathNodeLeadingSorted' type='function'/>
     <exports symbol='xmlXPathNextChild' type='function'/>
     <exports symbol='xmlXPathNextFollowingSibling' type='function'/>
     <exports symbol='xmlXPathPopString' type='function'/>
     <exports symbol='xmlXPathNamespaceURIFunction' type='function'/>
     <exports symbol='xmlXPathCompareValues' type='function'/>
     <exports symbol='xmlXPathConcatFunction' type='function'/>
     <exports symbol='xmlXPathNodeSetContains' type='function'/>
     <exports symbol='xmlXPatherror' type='function'/>
     <exports symbol='xmlXPathNextAncestor' type='function'/>
     <exports symbol='xmlXPathBooleanFunction' type='function'/>
     <exports symbol='xmlXPathRoot' type='function'/>
     <exports symbol='xmlXPathRegisteredNsCleanup' type='function'/>
     <exports symbol='xmlXPathIsNodeType' type='function'/>
     <exports symbol='xmlXPathNextFollowing' type='function'/>
     <exports symbol='xmlXPathAddValues' type='function'/>
     <exports symbol='xmlXPathRegisterVariable' type='function'/>
     <exports symbol='valuePop' type='function'/>
     <exports symbol='xmlXPathCeilingFunction' type='function'/>
     <exports symbol='xmlXPathIntersection' type='function'/>
     <exports symbol='xmlXPathContainsFunction' type='function'/>
     <exports symbol='xmlXPathNodeSetSort' type='function'/>
     <exports symbol='xmlXPathStartsWithFunction' type='function'/>
     <exports symbol='xmlXPathNodeLeading' type='function'/>
     <exports symbol='xmlXPathSumFunction' type='function'/>
     <exports symbol='xmlXPathNotEqualValues' type='function'/>
     <exports symbol='xmlXPathEvaluatePredicateResult' 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='xmlXPathFunctionLookup' type='function'/>
     <exports symbol='xmlXPathPositionFunction' type='function'/>
     <exports symbol='xmlXPathSubstringBeforeFunction' type='function'/>
     <exports symbol='xmlXPathRegisteredVariablesCleanup' type='function'/>
     <exports symbol='xmlXPathNewFloat' type='function'/>
     <exports symbol='xmlXPathRegisterNs' type='function'/>
     <exports symbol='xmlXPathNextParent' type='function'/>
     <exports symbol='xmlXPathNodeSetFreeNs' type='function'/>
     <exports symbol='xmlXPathHasSameNodes' type='function'/>
     <exports symbol='xmlXPathDistinctSorted' type='function'/>
     <exports symbol='valuePush' type='function'/>
     <exports symbol='xmlXPathSubstringFunction' type='function'/>
     <exports symbol='xmlXPathStringFunction' type='function'/>
     <exports symbol='xmlXPathFloorFunction' type='function'/>
     <exports symbol='xmlXPathIdFunction' type='function'/>
     <exports symbol='xmlXPathLastFunction' type='function'/>
     <exports symbol='xmlXPathStringLengthFunction' type='function'/>
     <exports symbol='xmlXPathNextSelf' type='function'/>
     <exports symbol='xmlXPathDebugDumpCompExpr' type='function'/>
     <exports symbol='xmlXPathFalseFunction' type='function'/>
     <exports symbol='xmlXPathValueFlipSign' type='function'/>
     <exports symbol='xmlXPathTranslateFunction' type='function'/>
     <exports symbol='xmlXPathRegisterFuncLookup' type='function'/>
     <exports symbol='xmlXPathPopNumber' type='function'/>
     <exports symbol='xmlXPathRoundFunction' type='function'/>
     <exports symbol='xmlXPathPopNodeSet' type='function'/>
     <exports symbol='xmlXPathCountFunction' type='function'/>
     <exports symbol='xmlXPathParseNCName' type='function'/>
     <exports symbol='xmlXPathTrueFunction' type='function'/>
     <exports symbol='xmlXPathNewBoolean' type='function'/>
     <exports symbol='xmlXPathSubValues' type='function'/>
     <exports symbol='xmlXPathEqualValues' type='function'/>
     <exports symbol='xmlXPathTrailingSorted' type='function'/>
     <exports symbol='xmlXPathMultValues' type='function'/>
     <exports symbol='xmlXPathModValues' type='function'/>
     <exports symbol='xmlXPathNewParserContext' type='function'/>
     <exports symbol='xmlXPathWrapNodeSet' type='function'/>
     <exports symbol='xmlXPathWrapString' type='function'/>
     <exports symbol='xmlXPathLangFunction' type='function'/>
     <exports symbol='xmlXPathRegisterFuncNS' type='function'/>
     <exports symbol='xmlXPathNodeSetAddNs' type='function'/>
     <exports symbol='xmlXPathLocalNameFunction' type='function'/>
     <exports symbol='xmlXPathDifference' type='function'/>
     <exports symbol='xmlXPathLeadingSorted' type='function'/>
     <exports symbol='xmlXPathNextPrecedingSibling' type='function'/>
     <exports symbol='xmlXPathPopExternal' type='function'/>
     <exports symbol='xmlXPathNormalizeFunction' type='function'/>
     <exports symbol='xmlXPathRegisterVariableLookup' type='function'/>
     <exports symbol='xmlXPathNodeSetDel' type='function'/>
     <exports symbol='xmlXPathNodeTrailingSorted' type='function'/>
     <exports symbol='xmlXPathNewCString' type='function'/>
     <exports symbol='xmlXPathRegisterFunc' type='function'/>
     <exports symbol='xmlXPathSubstringAfterFunction' type='function'/>
     <exports symbol='xmlXPathNextDescendant' type='function'/>
     <exports symbol='xmlXPathNextNamespace' type='function'/>
     <exports symbol='xmlXPathWrapCString' type='function'/>
     <exports symbol='xmlXPathFreeParserContext' type='function'/>
     <exports symbol='xmlXPathNodeTrailing' type='function'/>
     <exports symbol='xmlXPathNodeSetAdd' type='function'/>
     <exports symbol='xmlXPathNodeSetAddUnique' type='function'/>
     <exports symbol='xmlXPathNewValueTree' type='function'/>
     <exports symbol='xmlXPathDistinct' type='function'/>
     <exports symbol='xmlXPathVariableLookup' type='function'/>
     <exports symbol='xmlXPathNotFunction' type='function'/>
     <exports symbol='xmlXPathStringEvalNumber' type='function'/>
     <exports symbol='xmlXPathNextDescendantOrSelf' type='function'/>
     <exports symbol='xmlXPathWrapExternal' type='function'/>
     <exports symbol='xmlXPathNextAttribute' type='function'/>
     <exports symbol='xmlXPathDivValues' type='function'/>
     <exports symbol='xmlXPathVariableLookupNS' type='function'/>
     <exports symbol='xmlXPathRegisterVariableNS' type='function'/>
     <exports symbol='xmlXPathTrailing' type='function'/>
     <exports symbol='xmlXPathEvalExpr' type='function'/>
     <exports symbol='xmlXPathDebugDumpObject' type='function'/>
     <exports symbol='xmlXPathLeading' type='function'/>
     <exports symbol='xmlXPathParseName' 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='xmlXPtrBuildNodeList' type='function'/>
     <exports symbol='xmlXPtrEval' type='function'/>
     <exports symbol='xmlXPtrNewRangeNodes' type='function'/>
     <exports symbol='xmlXPtrLocationSetAdd' 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='xmlXPtrLocationSetCreate' type='function'/>
     <exports symbol='xmlXPtrNewRangeNodeObject' type='function'/>
     <exports symbol='xmlXPtrNewContext' type='function'/>
     <exports symbol='xmlXPtrLocationSetRemove' type='function'/>
     <exports symbol='xmlXPtrNewRangeNodePoint' type='function'/>
     <exports symbol='xmlXPtrLocationSetDel' type='function'/>
     <exports symbol='xmlXPtrLocationSetMerge' type='function'/>
     <exports symbol='xmlXPtrEvalRangePredicate' 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_ASCII_DIGIT' file='parserInternals'>
      <info>Macro to check [0-9]</info>
      <arg name='c' info='an xmlChar value'/>
    </macro>
    <macro name='IS_ASCII_LETTER' file='parserInternals'>
      <info>Macro to check [a-zA-Z]</info>
      <arg name='c' info='an xmlChar value'/>
    </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_DEBUG_RUNTIME' file='xmlversion'>
      <info>Whether the runtime debugging 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_EXPR_ENABLED' file='xmlversion'>
      <info>Whether the formal expressions interfaces are compiled in</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_MODULES_ENABLED' file='xmlversion'>
      <info>Whether the module interfaces are compiled in</info>
    </macro>
    <macro name='LIBXML_MODULE_EXTENSION' file='xmlversion'>
      <info>the string suffix used by dynamic modules (usually shared libraries)</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_SCHEMATRON_ENABLED' file='xmlversion'>
      <info>Whether the Schematron 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 10203</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;10203&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='LIBXML_ZLIB_ENABLED' file='xmlversion'>
      <info>Whether the Zlib support is compiled 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='XMLCDECL' file='xmlexports'>
    </macro>
    <macro name='XMLPUBFUN' file='xmlexports'>
    </macro>
    <macro name='XMLPUBVAR' file='xmlexports'>
    </macro>
    <macro name='XML_CAST_FPTR' file='hash'>
      <info>Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc  #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now</info>
      <arg name='fptr' info='pointer to a function'/>
    </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_CTXT_FINISH_DTD_0' file='valid'>
      <info>Special value for finishDtd field when embedded in an xmlParserCtxt</info>
    </macro>
    <macro name='XML_CTXT_FINISH_DTD_1' file='valid'>
      <info>Special value for finishDtd field when embedded in an xmlParserCtxt</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_HAS_REFS' file='schemasInternals'>
      <info>Whether this attr. group contains attr. group references.</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_REDEFINED' file='schemasInternals'>
      <info>The attr group was redefined.</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'>
      <info>allow elements in no namespace</info>
    </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'>
      <info>a helper flag for the search of circular references.</info>
    </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'>
      <info>substitution group exclusions: &quot;extension&quot;</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_FINAL_RESTRICTION' file='schemasInternals'>
      <info>substitution group exclusions: &quot;restriction&quot;</info>
    </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_CHECKED' file='schemasInternals'>
      <info>this is set when the elem decl has been checked against all constraints</info>
    </macro>
    <macro name='XML_SCHEMAS_ELEM_INTERNAL_RESOLVED' file='schemasInternals'>
      <info>this is set when &quot;type&quot;, &quot;ref&quot;, &quot;substitutionGroup&quot; references have been resolved.</info>
    </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_SUBST_GROUP_HEAD' file='schemasInternals'>
      <info>the declaration is a substitution group head</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>Reflects attributeFormDefault == qualified in an XML schema document.</info>
    </macro>
    <macro name='XML_SCHEMAS_QUALIF_ELEM' file='schemasInternals'>
      <info>Reflects elementFormDefault == qualified in an XML schema document.</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'>
      <info>the complexType has a &apos;block&apos; of &quot;restriction&quot;.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE' file='schemasInternals'>
      <info>Marks the item as a builtin primitive.</info>
    </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_FACETSNEEDVALUE' file='schemasInternals'>
      <info>indicates if the facets need a computed value</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_FINAL_DEFAULT' file='schemasInternals'>
      <info>the simpleType has a final of &quot;default&quot;.</info>
    </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_FIXUP_1' file='schemasInternals'>
      <info>First stage of fixup was done.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_GLOBAL' file='schemasInternals'>
      <info>the type is global</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_HAS_FACETS' file='schemasInternals'>
      <info>has facets</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_INTERNAL_INVALID' file='schemasInternals'>
      <info>indicates that the type is invalid</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_INTERNAL_RESOLVED' file='schemasInternals'>
      <info>indicates that the type was typefixed</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_MARKED' file='schemasInternals'>
      <info>Marks the item as marked; used for circular checks.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_MIXED' file='schemasInternals'>
      <info>the element content type is mixed</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_NORMVALUENEEDED' file='schemasInternals'>
      <info>indicates if the facets (pattern) need a normalized value</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_REDEFINED' file='schemasInternals'>
      <info>The type was redefined.</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_VARIETY_ABSENT' file='schemasInternals'>
      <info>the simpleType has a variety of &quot;absent&quot;. TODO: Actually not necessary :-/, since if none of the variety flags occur then it&apos;s automatically absent.</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_TYPE_WHITESPACE_COLLAPSE' file='schemasInternals'>
      <info>a whitespace-facet value of &quot;collapse&quot;</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE' file='schemasInternals'>
      <info>a whitespace-facet value of &quot;preserve&quot;</info>
    </macro>
    <macro name='XML_SCHEMAS_TYPE_WHITESPACE_REPLACE' file='schemasInternals'>
      <info>a whitespace-facet value of &quot;replace&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='XML_XPATH_CHECKNS' file='xpath'>
      <info>check namespaces at compilation</info>
    </macro>
    <macro name='XML_XPATH_NOVAR' file='xpath'>
      <info>forbid variables in expression</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_COMPACT' file='HTMLparser' value='65536' type='htmlParserOption' info=' compact small text nodes'/>
    <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_PARSE_RECOVER' file='HTMLparser' value='1' type='htmlParserOption' info='Relaxed parsing'/>
    <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' info='double each time one need to grow'/>
    <enum name='XML_BUFFER_ALLOC_EXACT' file='tree' value='2' type='xmlBufferAllocationScheme' info='grow only to the minimal size'/>
    <enum name='XML_BUFFER_ALLOC_IMMUTABLE' file='tree' value='3' type='xmlBufferAllocationScheme' info='immutable buffer'/>
    <enum name='XML_BUFFER_ALLOC_IO' file='tree' value='4' type='xmlBufferAllocationScheme' info=' special allocation scheme used for I/O'/>
    <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_RELATIVE_NAMESPACE' file='xmlerror' value='1955' type='xmlParserErrors' info='1955'/>
    <enum name='XML_C14N_REQUIRES_UTF8' file='xmlerror' value='1951' type='xmlParserErrors' info='1951'/>
    <enum name='XML_C14N_UNKNOW_NODE' file='xmlerror' value='1954' type='xmlParserErrors' info='1954'/>
    <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_CHECK_' file='xmlerror' value='6005' type='xmlParserErrors' info='5033'/>
    <enum name='XML_CHECK_ENTITY_TYPE' file='xmlerror' value='5012' type='xmlParserErrors' info='5012'/>
    <enum name='XML_CHECK_FOUND_ATTRIBUTE' file='xmlerror' value='5001' type='xmlParserErrors' info='5001'/>
    <enum name='XML_CHECK_FOUND_CDATA' file='xmlerror' value='5003' type='xmlParserErrors' info='5003'/>
    <enum name='XML_CHECK_FOUND_COMMENT' file='xmlerror' value='5007' type='xmlParserErrors' info='5007'/>
    <enum name='XML_CHECK_FOUND_DOCTYPE' file='xmlerror' value='5008' type='xmlParserErrors' info='5008'/>
    <enum name='XML_CHECK_FOUND_ELEMENT' file='xmlerror' value='5000' type='xmlParserErrors'/>
    <enum name='XML_CHECK_FOUND_ENTITY' file='xmlerror' value='5005' type='xmlParserErrors' info='5005'/>
    <enum name='XML_CHECK_FOUND_ENTITYREF' file='xmlerror' value='5004' type='xmlParserErrors' info='5004'/>
    <enum name='XML_CHECK_FOUND_FRAGMENT' file='xmlerror' value='5009' type='xmlParserErrors' info='5009'/>
    <enum name='XML_CHECK_FOUND_NOTATION' file='xmlerror' value='5010' type='xmlParserErrors' info='5010'/>
    <enum name='XML_CHECK_FOUND_PI' file='xmlerror' value='5006' type='xmlParserErrors' info='5006'/>
    <enum name='XML_CHECK_FOUND_TEXT' file='xmlerror' value='5002' type='xmlParserErrors' info='5002'/>
    <enum name='XML_CHECK_NAME_NOT_NULL' file='xmlerror' value='5037' type='xmlParserErrors' info='5037'/>
    <enum name='XML_CHECK_NOT_ATTR' file='xmlerror' value='5023' type='xmlParserErrors' info='5023'/>
    <enum name='XML_CHECK_NOT_ATTR_DECL' file='xmlerror' value='5024' type='xmlParserErrors' info='5024'/>
    <enum name='XML_CHECK_NOT_DTD' file='xmlerror' value='5022' type='xmlParserErrors' info='5022'/>
    <enum name='XML_CHECK_NOT_ELEM_DECL' file='xmlerror' value='5025' type='xmlParserErrors' info='5025'/>
    <enum name='XML_CHECK_NOT_ENTITY_DECL' file='xmlerror' value='5026' type='xmlParserErrors' info='5026'/>
    <enum name='XML_CHECK_NOT_NCNAME' file='xmlerror' value='5034' type='xmlParserErrors' info='5034'/>
    <enum name='XML_CHECK_NOT_NS_DECL' file='xmlerror' value='5027' type='xmlParserErrors' info='5027'/>
    <enum name='XML_CHECK_NOT_UTF8' file='xmlerror' value='5032' type='xmlParserErrors' info='5032'/>
    <enum name='XML_CHECK_NO_DICT' file='xmlerror' value='5033' type='xmlParserErrors' info='5033'/>
    <enum name='XML_CHECK_NO_DOC' file='xmlerror' value='5014' type='xmlParserErrors' info='5014'/>
    <enum name='XML_CHECK_NO_ELEM' file='xmlerror' value='5016' type='xmlParserErrors' info='5016'/>
    <enum name='XML_CHECK_NO_HREF' file='xmlerror' value='5028' type='xmlParserErrors' info='5028'/>
    <enum name='XML_CHECK_NO_NAME' file='xmlerror' value='5015' type='xmlParserErrors' info='5015'/>
    <enum name='XML_CHECK_NO_NEXT' file='xmlerror' value='5020' type='xmlParserErrors' info='5020'/>
    <enum name='XML_CHECK_NO_PARENT' file='xmlerror' value='5013' type='xmlParserErrors' info='5013'/>
    <enum name='XML_CHECK_NO_PREV' file='xmlerror' value='5018' type='xmlParserErrors' info='5018'/>
    <enum name='XML_CHECK_NS_ANCESTOR' file='xmlerror' value='5031' type='xmlParserErrors' info='5031'/>
    <enum name='XML_CHECK_NS_SCOPE' file='xmlerror' value='5030' type='xmlParserErrors' info='5030'/>
    <enum name='XML_CHECK_OUTSIDE_DICT' file='xmlerror' value='5035' type='xmlParserErrors' info='5035'/>
    <enum name='XML_CHECK_UNKNOWN_NODE' file='xmlerror' value='5011' type='xmlParserErrors' info='5011'/>
    <enum name='XML_CHECK_WRONG_DOC' file='xmlerror' value='5017' type='xmlParserErrors' info='5017'/>
    <enum name='XML_CHECK_WRONG_NAME' file='xmlerror' value='5036' type='xmlParserErrors' info='5036'/>
    <enum name='XML_CHECK_WRONG_NEXT' file='xmlerror' value='5021' type='xmlParserErrors' info='5021'/>
    <enum name='XML_CHECK_WRONG_PARENT' file='xmlerror' value='5029' type='xmlParserErrors' info='5029'/>
    <enum name='XML_CHECK_WRONG_PREV' file='xmlerror' value='5019' type='xmlParserErrors' info='5019'/>
    <enum name='XML_CHECK_X' file='xmlerror' value='6006' type='xmlParserErrors' info=' 503'/>
    <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_DOC_DTDVALID' file='tree' value='8' type='xmlDocProperties' info='DTD validation was successful'/>
    <enum name='XML_DOC_HTML' file='tree' value='128' type='xmlDocProperties' info=' parsed or built HTML document'/>
    <enum name='XML_DOC_INTERNAL' file='tree' value='64' type='xmlDocProperties' info='built for internal processing'/>
    <enum name='XML_DOC_NSVALID' file='tree' value='2' type='xmlDocProperties' info='document is Namespace valid'/>
    <enum name='XML_DOC_OLD10' file='tree' value='4' type='xmlDocProperties' info='parsed with old XML-1.0 parser'/>
    <enum name='XML_DOC_USERBUILT' file='tree' value='32' type='xmlDocProperties' info='Document was built using the API
and not by parsing an instance'/>
    <enum name='XML_DOC_WELLFORMED' file='tree' value='1' type='xmlDocProperties' info='document is XML well formed'/>
    <enum name='XML_DOC_XINCLUDE' file='tree' value='16' type='xmlDocProperties' info='XInclude substitution was done'/>
    <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_DUP_TOKEN' file='xmlerror' value='541' type='xmlParserErrors' info='541'/>
    <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_ENTITY_PROCESSING' file='xmlerror' value='104' type='xmlParserErrors' info='104'/>
    <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_NOTATION_PROCESSING' file='xmlerror' value='105' type='xmlParserErrors' info='105'/>
    <enum name='XML_ERR_NOT_STANDALONE' file='xmlerror' value='103' type='xmlParserErrors' info='103'/>
    <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_UNKNOWN_VERSION' file='xmlerror' value='108' type='xmlParserErrors' info='108'/>
    <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_MISMATCH' file='xmlerror' value='109' type='xmlParserErrors' info='109'/>
    <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_EXP_ATOM' file='xmlregexp' value='2' type='xmlExpNodeType'/>
    <enum name='XML_EXP_COUNT' file='xmlregexp' value='5' type='xmlExpNodeType'/>
    <enum name='XML_EXP_EMPTY' file='xmlregexp' value='0' type='xmlExpNodeType'/>
    <enum name='XML_EXP_FORBID' file='xmlregexp' value='1' type='xmlExpNodeType'/>
    <enum name='XML_EXP_OR' file='xmlregexp' value='4' type='xmlExpNodeType'/>
    <enum name='XML_EXP_SEQ' file='xmlregexp' value='3' type='xmlExpNodeType'/>
    <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_CHECK' file='xmlerror' value='24' type='xmlErrorDomain' info='The error checking 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 HTTP module'/>
    <enum name='XML_FROM_I18N' file='xmlerror' value='27' type='xmlErrorDomain' info='The module handling character conversion'/>
    <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_MODULE' file='xmlerror' value='26' type='xmlErrorDomain' info='The dynamically loaded module modul'/>
    <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_SCHEMATRONV' file='xmlerror' value='28' type='xmlErrorDomain' info=' The Schematron validator 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_WRITER' file='xmlerror' value='25' type='xmlErrorDomain' info='The xmlwriter module'/>
    <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_FTP_URL_SYNTAX' file='xmlerror' value='2003' type='xmlParserErrors' info='2003'/>
    <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_I18N_CONV_FAILED' file='xmlerror' value='6003' type='xmlParserErrors' info='6003'/>
    <enum name='XML_I18N_EXCESS_HANDLER' file='xmlerror' value='6002' type='xmlParserErrors' info='6002'/>
    <enum name='XML_I18N_NO_HANDLER' file='xmlerror' value='6001' type='xmlParserErrors' info='6001'/>
    <enum name='XML_I18N_NO_NAME' file='xmlerror' value='6000' type='xmlParserErrors'/>
    <enum name='XML_I18N_NO_OUTPUT' file='xmlerror' value='6004' type='xmlParserErrors' info='6004'/>
    <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_MODULE_CLOSE' file='xmlerror' value='4901' type='xmlParserErrors' info='4901'/>
    <enum name='XML_MODULE_LAZY' file='xmlmodule' value='1' type='xmlModuleOption' info='lazy binding'/>
    <enum name='XML_MODULE_LOCAL' file='xmlmodule' value='2' type='xmlModuleOption' info=' local binding'/>
    <enum name='XML_MODULE_OPEN' file='xmlerror' value='4900' type='xmlParserErrors' info='4900'/>
    <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_COLON' file='xmlerror' value='205' type='xmlParserErrors' info='205'/>
    <enum name='XML_NS_ERR_EMPTY' file='xmlerror' value='204' type='xmlParserErrors' info='204'/>
    <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_COMPACT' file='parser' value='65536' type='xmlParserOption' info='compact small text nodes; no modification of
the tree allowed afterwards (will possibly
crash if you try to modify the tree)'/>
    <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_HUGE' file='parser' value='524288' type='xmlParserOption' info=' relax any hardcoded limit from the parser'/>
    <enum name='XML_PARSE_NOBASEFIX' file='parser' value='262144' type='xmlParserOption' info='do not fixup XINCLUDE xml:base uris'/>
    <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_OLD10' file='parser' value='131072' type='xmlParserOption' info='parse using XML-1.0 before update 5'/>
    <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_PATTERN_DEFAULT' file='pattern' value='0' type='xmlPatternFlags' info='simple pattern match'/>
    <enum name='XML_PATTERN_XPATH' file='pattern' value='1' type='xmlPatternFlags' info='standard XPath pattern'/>
    <enum name='XML_PATTERN_XSFIELD' file='pattern' value='4' type='xmlPatternFlags' info=' XPath subset for schema field'/>
    <enum name='XML_PATTERN_XSSEL' file='pattern' value='2' type='xmlPatternFlags' info='XPath subset for schema selector'/>
    <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_FORMAT' file='xmlsave' value='1' type='xmlSaveOption' info='format save output'/>
    <enum name='XML_SAVE_NOT_UTF8' file='xmlerror' value='1400' type='xmlParserErrors'/>
    <enum name='XML_SAVE_NO_DECL' file='xmlsave' value='2' type='xmlSaveOption' info='drop the xml declaration'/>
    <enum name='XML_SAVE_NO_DOCTYPE' file='xmlerror' value='1402' type='xmlParserErrors' info='1402'/>
    <enum name='XML_SAVE_NO_EMPTY' file='xmlsave' value='4' type='xmlSaveOption' info='no empty tags'/>
    <enum name='XML_SAVE_NO_XHTML' file='xmlsave' value='8' type='xmlSaveOption' info=' disable XHTML1 specific rules'/>
    <enum name='XML_SAVE_UNKNOWN_ENCODING' file='xmlerror' value='1403' type='xmlParserErrors' info='1403'/>
    <enum name='XML_SCHEMAP_AG_PROPS_CORRECT' file='xmlerror' value='3087' type='xmlParserErrors' info='3086'/>
    <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' file='xmlerror' value='3089' type='xmlParserErrors' info='3088'/>
    <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' info='3079'/>
    <enum name='XML_SCHEMAP_A_PROPS_CORRECT_3' file='xmlerror' value='3090' type='xmlParserErrors' info='3089'/>
    <enum name='XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF' file='xmlerror' value='1704' type='xmlParserErrors' info='1704'/>
    <enum name='XML_SCHEMAP_COS_ALL_LIMITED' file='xmlerror' value='3091' type='xmlParserErrors' info='3090'/>
    <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_2' file='xmlerror' value='3088' type='xmlParserErrors' info='3087'/>
    <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_C_PROPS_CORRECT' file='xmlerror' value='3080' type='xmlParserErrors' info='3080'/>
    <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' file='xmlerror' value='3082' type='xmlParserErrors' info='3082'/>
    <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_REDEFINE' file='xmlerror' value='3081' type='xmlParserErrors' info='3081'/>
    <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_WARN_ATTR_POINTLESS_PROH' file='xmlerror' value='3086' type='xmlParserErrors' info='3085'/>
    <enum name='XML_SCHEMAP_WARN_ATTR_REDECL_PROH' file='xmlerror' value='3085' type='xmlParserErrors' info='3085'/>
    <enum name='XML_SCHEMAP_WARN_SKIP_SCHEMA' file='xmlerror' value='3083' type='xmlParserErrors' info='3083'/>
    <enum name='XML_SCHEMAP_WARN_UNLOCATED_SCHEMA' file='xmlerror' value='3084' type='xmlParserErrors' info='3084'/>
    <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_SCHEMATRONV_ASSERT' file='xmlerror' value='4000' type='xmlParserErrors' info='4000'/>
    <enum name='XML_SCHEMATRONV_REPORT' file='xmlerror' value='4001' type='xmlParserErrors'/>
    <enum name='XML_SCHEMATRON_OUT_BUFFER' file='schematron' value='512' type='xmlSchematronValidOptions' info='output to a buffer'/>
    <enum name='XML_SCHEMATRON_OUT_ERROR' file='schematron' value='8' type='xmlSchematronValidOptions' info='output via xmlStructuredErrorFunc'/>
    <enum name='XML_SCHEMATRON_OUT_FILE' file='schematron' value='256' type='xmlSchematronValidOptions' info='output to a file descriptor'/>
    <enum name='XML_SCHEMATRON_OUT_IO' file='schematron' value='1024' type='xmlSchematronValidOptions' info=' output to I/O mechanism'/>
    <enum name='XML_SCHEMATRON_OUT_QUIET' file='schematron' value='1' type='xmlSchematronValidOptions' info='quiet no report'/>
    <enum name='XML_SCHEMATRON_OUT_TEXT' file='schematron' value='2' type='xmlSchematronValidOptions' info='build a textual report'/>
    <enum name='XML_SCHEMATRON_OUT_XML' file='schematron' value='4' type='xmlSchematronValidOptions' info='output SVRL'/>
    <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_IDC' file='xmlerror' value='1877' type='xmlParserErrors' info='1877'/>
    <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_CVC_WILDCARD' file='xmlerror' value='1878' type='xmlParserErrors' info='1878'/>
    <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_MISC' file='xmlerror' value='1879' type='xmlParserErrors' info='1879'/>
    <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'/>
    <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_EXTRA_ATTR_USE_PROHIB' file='schemasInternals' value='2001' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_EXTRA_QNAMEREF' file='schemasInternals' value='2000' type='xmlSchemaTypeType'/>
    <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_ATTRIBUTE_USE' file='schemasInternals' value='26' 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_IDC_KEY' file='schemasInternals' value='23' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_IDC_KEYREF' file='schemasInternals' value='24' type='xmlSchemaTypeType'/>
    <enum name='XML_SCHEMA_TYPE_IDC_UNIQUE' file='schemasInternals' value='22' 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_PARTICLE' file='schemasInternals' value='25' 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_SCHEMA_WHITESPACE_COLLAPSE' file='xmlschemastypes' value='3' type='xmlSchemaWhitespaceValueType'/>
    <enum name='XML_SCHEMA_WHITESPACE_PRESERVE' file='xmlschemastypes' value='1' type='xmlSchemaWhitespaceValueType'/>
    <enum name='XML_SCHEMA_WHITESPACE_REPLACE' file='xmlschemastypes' value='2' type='xmlSchemaWhitespaceValueType'/>
    <enum name='XML_SCHEMA_WHITESPACE_UNKNOWN' file='xmlschemastypes' value='0' type='xmlSchemaWhitespaceValueType'/>
    <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_NOT_UTF8' file='xmlerror' value='1303' type='xmlParserErrors' info='1303'/>
    <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_ENTITY_REDEFINED' file='xmlerror' value='107' type='xmlParserErrors' info='107'/>
    <enum name='XML_WAR_LANG_VALUE' file='xmlerror' value='98' type='xmlParserErrors' info='98'/>
    <enum name='XML_WAR_NS_COLUMN' file='xmlerror' value='106' type='xmlParserErrors' info='106'/>
    <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_SPACE_VALUE' file='xmlerror' value='102' type='xmlParserErrors' info='102'/>
    <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_WITH_AUTOMATA' file='parser' value='23' type='xmlFeature'/>
    <enum name='XML_WITH_C14N' file='parser' value='14' type='xmlFeature'/>
    <enum name='XML_WITH_CATALOG' file='parser' value='15' type='xmlFeature'/>
    <enum name='XML_WITH_DEBUG' file='parser' value='28' type='xmlFeature'/>
    <enum name='XML_WITH_DEBUG_MEM' file='parser' value='29' type='xmlFeature'/>
    <enum name='XML_WITH_DEBUG_RUN' file='parser' value='30' type='xmlFeature'/>
    <enum name='XML_WITH_EXPR' file='parser' value='24' type='xmlFeature'/>
    <enum name='XML_WITH_FTP' file='parser' value='9' type='xmlFeature'/>
    <enum name='XML_WITH_HTML' file='parser' value='12' type='xmlFeature'/>
    <enum name='XML_WITH_HTTP' file='parser' value='10' type='xmlFeature'/>
    <enum name='XML_WITH_ICONV' file='parser' value='19' type='xmlFeature'/>
    <enum name='XML_WITH_ISO8859X' file='parser' value='20' type='xmlFeature'/>
    <enum name='XML_WITH_LEGACY' file='parser' value='13' type='xmlFeature'/>
    <enum name='XML_WITH_MODULES' file='parser' value='27' type='xmlFeature'/>
    <enum name='XML_WITH_NONE' file='parser' value='99999' type='xmlFeature' info=' just to be sure of allocation size'/>
    <enum name='XML_WITH_OUTPUT' file='parser' value='3' type='xmlFeature'/>
    <enum name='XML_WITH_PATTERN' file='parser' value='6' type='xmlFeature'/>
    <enum name='XML_WITH_PUSH' file='parser' value='4' type='xmlFeature'/>
    <enum name='XML_WITH_READER' file='parser' value='5' type='xmlFeature'/>
    <enum name='XML_WITH_REGEXP' file='parser' value='22' type='xmlFeature'/>
    <enum name='XML_WITH_SAX1' file='parser' value='8' type='xmlFeature'/>
    <enum name='XML_WITH_SCHEMAS' file='parser' value='25' type='xmlFeature'/>
    <enum name='XML_WITH_SCHEMATRON' file='parser' value='26' type='xmlFeature'/>
    <enum name='XML_WITH_THREAD' file='parser' value='1' type='xmlFeature'/>
    <enum name='XML_WITH_TREE' file='parser' value='2' type='xmlFeature'/>
    <enum name='XML_WITH_UNICODE' file='parser' value='21' type='xmlFeature'/>
    <enum name='XML_WITH_VALID' file='parser' value='11' type='xmlFeature'/>
    <enum name='XML_WITH_WRITER' file='parser' value='7' type='xmlFeature'/>
    <enum name='XML_WITH_XINCLUDE' file='parser' value='18' type='xmlFeature'/>
    <enum name='XML_WITH_XPATH' file='parser' value='16' type='xmlFeature'/>
    <enum name='XML_WITH_XPTR' file='parser' value='17' type='xmlFeature'/>
    <enum name='XML_WITH_ZLIB' file='parser' value='31' type='xmlFeature'/>
    <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' file='xpath' value='22' 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 *'>
      <info>A libxml automata description, It can be compiled into a regexp</info>
    </typedef>
    <struct name='xmlAutomataState' file='xmlautomata' type='struct _xmlAutomataState'/>
    <typedef name='xmlAutomataStatePtr' file='xmlautomata' type='xmlAutomataState *'>
      <info>A state int the automata description,</info>
    </typedef>
    <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'/>
      <field name='contentIO' type='xmlChar *' info=' in IO mode we may have a different base'/>
    </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='const xmlChSRange *' info=' points to an array of ranges'/>
      <field name='longRange' type='const xmlChLRange *' 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'>
      <info>This is a basic byte in an UTF-8 encoded string. It&apos;s unsigned allowing to pinpoint case where char * are assigned to xmlChar * (possibly making serialization back impossible).</info>
    </typedef>
    <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='xmlDOMWrapCtxt' file='tree' type='struct _xmlDOMWrapCtxt'>
      <field name='_private' type='void *' info='* The type of this context, just in case we need specialized
* contexts in the future.
*'/>
      <field name='type' type='int' info='* Internal namespace map used for various operations.
*'/>
      <field name='namespaceMap' type='void *' info='* Use this one to acquire an xmlNsPtr intended for node-&gt;ns.
* (Note that this is not intended for elem-&gt;nsDef).
*'/>
      <field name='getNsForNodeFunc' type='xmlDOMWrapAcquireNsFunction' info=''/>
    </struct>
    <typedef name='xmlDOMWrapCtxtPtr' file='tree' type='xmlDOMWrapCtxt *'/>
    <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)
1 if standalone=&quot;yes&quot;
0 if standalone=&quot;no&quot;
-1 if there is no XML declaration
-2 if there is an XML declaration, but no
standalone attribute was specified'/>
      <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'/>
      <field name='parseFlags' type='int' info=' set of xmlParserOption used to parse the
document'/>
      <field name='properties' type='int' info=' set of xmlDocProperties for this document
set at the end of parsing'/>
    </struct>
    <typedef name='xmlDocProperties' file='tree' type='enum'/>
    <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'/>
      <field name='checked' type='int' info=' was the entity content checked this is also used to count entites
* references done from that entity'/>
    </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=' column number of the error or 0 if N/A (todo: rename this field when we would break ABI)'/>
      <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='xmlExpCtxt' file='xmlregexp' type='struct _xmlExpCtxt'/>
    <typedef name='xmlExpCtxtPtr' file='xmlregexp' type='xmlExpCtxt *'/>
    <struct name='xmlExpNode' file='xmlregexp' type='struct _xmlExpNode'/>
    <typedef name='xmlExpNodePtr' file='xmlregexp' type='xmlExpNode *'/>
    <typedef name='xmlExpNodeType' file='xmlregexp' type='enum'/>
    <typedef name='xmlFeature' file='parser' type='enum'/>
    <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='xmlModule' file='xmlmodule' type='struct _xmlModule'/>
    <typedef name='xmlModuleOption' file='xmlmodule' type='enum'/>
    <typedef name='xmlModulePtr' file='xmlmodule' type='xmlModule *'>
      <info>A handle to a dynamically loaded module</info>
    </typedef>
    <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'/>
      <field name='context' type='struct _xmlDoc *' info=' normally an xmlDoc'/>
    </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'/>
      <field name='nbentities' type='unsigned long' info=' number of entities references'/>
      <field name='sizeentities' type='unsigned long' info=' size of parsed entities'/>
    </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='xmlPatternFlags' file='pattern' type='enum'/>
    <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 *'>
      <info>A libxml progressive regular expression evaluation context</info>
    </typedef>
    <struct name='xmlRegexp' file='xmlregexp' type='struct _xmlRegexp'/>
    <typedef name='xmlRegexpPtr' file='xmlregexp' type='xmlRegexp *'>
      <info>A libxml regular expression, they can actually be far more complex thank the POSIX regex expressions.</info>
    </typedef>
    <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 *'/>
    <typedef name='xmlSaveOption' file='xmlsave' type='enum'/>
    <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=' Obsolete'/>
      <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'/>
      <field name='idcDef' type='xmlHashTablePtr' info=' All identity-constraint defs.'/>
      <field name='volatiles' type='void *' info=' Obsolete'/>
    </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=''/>
      <field name='next' type='struct _xmlSchemaAttribute *' info=' the next attribute (not used?)'/>
      <field name='name' type='const xmlChar *' info=' the name of the declaration'/>
      <field name='id' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
      <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=' Deprecated; not used'/>
      <field name='occurs' type='int' info=' Deprecated; not used'/>
      <field name='defValue' type='const xmlChar *' info=' The initial value of the value constraint'/>
      <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=' Deprecated; not used'/>
      <field name='defVal' type='xmlSchemaValPtr' info=' The compiled value constraint'/>
      <field name='refDecl' type='xmlSchemaAttributePtr' info=' Deprecated; not used'/>
    </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=' Deprecated; not used'/>
      <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='attributes' type='xmlSchemaAttributePtr' info=' Deprecated; not used'/>
      <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=' Deprecated; not used'/>
      <field name='refItem' type='xmlSchemaAttributeGroupPtr' info=' Deprecated; not used'/>
      <field name='targetNamespace' type='const xmlChar *' info=''/>
      <field name='attrUses' type='void *' info=''/>
    </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=' Not used?'/>
      <field name='name' type='const xmlChar *' info=''/>
      <field name='id' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
      <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=' Deprecated; not used'/>
      <field name='maxOccurs' type='int' info=' Deprecated; not used'/>
      <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=' The original value of the value constraint.'/>
      <field name='refDecl' type='struct _xmlSchemaElement *' info=' This will now be used for the
substitution group affiliation'/>
      <field name='contModel' type='xmlRegexpPtr' info=' Obsolete for WXS, maybe used for RelaxNG'/>
      <field name='contentType' type='xmlSchemaContentType' info=''/>
      <field name='refPrefix' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='defVal' type='xmlSchemaValPtr' info=' The compiled value contraint.'/>
      <field name='idcs' type='void *' info=' The identity-constraint defs'/>
    </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=' The original value'/>
      <field name='id' type='const xmlChar *' info=' Obsolete'/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='fixed' type='int' info=' XML_SCHEMAS_FACET_PRESERVE, etc.'/>
      <field name='whitespace' type='int' info=''/>
      <field name='val' type='xmlSchemaValPtr' info=' The compiled value'/>
      <field name='regexp' type='xmlRegexpPtr' info=' The regex for patterns'/>
    </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=''/>
      <field name='targetNamespace' 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 *'/>
    <typedef name='xmlSchemaSAXPlugPtr' file='xmlschemas' type='xmlSchemaSAXPlugStruct *'/>
    <struct name='xmlSchemaSAXPlugStruct' file='xmlschemas' type='struct _xmlSchemaSAXPlug'/>
    <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=' Deprecated; not used'/>
      <field name='ref' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='refNs' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='subtypes' type='xmlSchemaTypePtr' info=''/>
      <field name='attributes' type='xmlSchemaAttributePtr' info=' Deprecated; not used'/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='minOccurs' type='int' info=' Deprecated; not used'/>
      <field name='maxOccurs' type='int' info=' Deprecated; not used'/>
      <field name='flags' type='int' info=''/>
      <field name='contentType' type='xmlSchemaContentType' info=''/>
      <field name='base' type='const xmlChar *' info=' Base type&apos;s local name'/>
      <field name='baseNs' type='const xmlChar *' info=' Base type&apos;s target namespace'/>
      <field name='baseType' type='xmlSchemaTypePtr' info=' The base type component'/>
      <field name='facets' type='xmlSchemaFacetPtr' info=' Local facets'/>
      <field name='redef' type='struct _xmlSchemaType *' info=' Deprecated; not used'/>
      <field name='recurse' type='int' info=' Obsolete'/>
      <field name='attributeUses' type='xmlSchemaAttributeLinkPtr *' info=' Deprecated; not used'/>
      <field name='attributeWildcard' type='xmlSchemaWildcardPtr' info=''/>
      <field name='builtInType' type='int' info=' Type of built-in types.'/>
      <field name='memberTypes' type='xmlSchemaTypeLinkPtr' info=' member-types if a union type.'/>
      <field name='facetSet' type='xmlSchemaFacetLinkPtr' info=' All facets (incl. inherited)'/>
      <field name='refPrefix' type='const xmlChar *' info=' Deprecated; not used'/>
      <field name='contentTypeDef' type='xmlSchemaTypePtr' info=' Used for the simple content of complex types.
Could we use @subtypes for this?'/>
      <field name='contModel' type='xmlRegexpPtr' info=' Holds the automaton of the content model'/>
      <field name='targetNamespace' type='const xmlChar *' info=''/>
      <field name='attrUses' type='void *' 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 type'/>
    </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'/>
    <typedef name='xmlSchemaWhitespaceValueType' file='xmlschemastypes' 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=' Deprecated; not used'/>
      <field name='annot' type='xmlSchemaAnnotPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='minOccurs' type='int' info=' Deprecated; not used'/>
      <field name='maxOccurs' type='int' info=' Deprecated; not used'/>
      <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='xmlSchematron' file='schematron' type='struct _xmlSchematron'/>
    <struct name='xmlSchematronParserCtxt' file='schematron' type='struct _xmlSchematronParserCtxt'/>
    <typedef name='xmlSchematronParserCtxtPtr' file='schematron' type='xmlSchematronParserCtxt *'/>
    <typedef name='xmlSchematronPtr' file='schematron' type='xmlSchematron *'/>
    <struct name='xmlSchematronValidCtxt' file='schematron' type='struct _xmlSchematronValidCtxt'/>
    <typedef name='xmlSchematronValidCtxtPtr' file='schematron' type='xmlSchematronValidCtxt *'/>
    <typedef name='xmlSchematronValidOptions' file='schematron' type='enum'/>
    <struct name='xmlShellCtxt' file='debugXML' type='struct _xmlShellCtxt'>
      <field name='filename' type='char *' info=''/>
      <field name='doc' type='xmlDocPtr' info=''/>
      <field name='node' type='xmlNodePtr' info=''/>
      <field name='pctxt' type='xmlXPathContextPtr' info=''/>
      <field name='loaded' type='int' info=''/>
      <field name='output' type='FILE *' info=''/>
      <field name='input' type='xmlShellReadlineFunc' info=''/>
    </struct>
    <typedef name='xmlShellCtxtPtr' file='debugXML' type='xmlShellCtxt *'/>
    <struct name='xmlStreamCtxt' file='pattern' type='struct _xmlStreamCtxt'/>
    <typedef name='xmlStreamCtxtPtr' file='pattern' type='xmlStreamCtxt *'/>
    <struct name='xmlTextReader' file='xmlreader' type='struct _xmlTextReader'/>
    <typedef name='xmlTextReaderLocatorPtr' file='xmlreader' type='void *'/>
    <typedef name='xmlTextReaderMode' file='xmlreader' type='enum'/>
    <typedef name='xmlTextReaderPtr' file='xmlreader' type='xmlTextReader *'>
      <info>Pointer to an xmlReader context.</info>
    </typedef>
    <struct name='xmlTextWriter' file='xmlwriter' type='struct _xmlTextWriter'/>
    <typedef name='xmlTextWriterPtr' file='xmlwriter' type='xmlTextWriter *'/>
    <struct name='xmlURI' file='uri' type='struct _xmlURI'>
      <field name='scheme' type='char *' info=' the URI scheme'/>
      <field name='opaque' type='char *' info=' opaque part'/>
      <field name='authority' type='char *' info=' the authority part'/>
      <field name='server' type='char *' info=' the server part'/>
      <field name='user' type='char *' info=' the user part'/>
      <field name='port' type='int' info=' the port number'/>
      <field name='path' type='char *' info=' the path string'/>
      <field name='query' type='char *' info=' the query string (deprecated - use with caution)'/>
      <field name='fragment' type='char *' info=' the fragment identifier'/>
      <field name='cleanup' type='int' info=' parsing potentially unclean URI'/>
      <field name='query_raw' type='char *' info=' the query string (as it appears in the URI)'/>
    </struct>
    <typedef name='xmlURIPtr' file='uri' type='xmlURI *'/>
    <struct name='xmlValidCtxt' file='valid' type='struct _xmlValidCtxt'>
      <field name='userData' type='void *' info=' user specific data block'/>
      <field name='error' type='xmlValidityErrorFunc' info=' the callback in case of errors'/>
      <field name='warning' type='xmlValidityWarningFunc' info=' the callback in case of warning Node analysis stack used when validating within entities'/>
      <field name='node' type='xmlNodePtr' info=' Current parsed Node'/>
      <field name='nodeNr' type='int' info=' Depth of the parsing stack'/>
      <field name='nodeMax' type='int' info=' Max depth of the parsing stack'/>
      <field name='nodeTab' type='xmlNodePtr *' info=' array of nodes'/>
      <field name='finishDtd' type='unsigned int' info=' finished validating the Dtd ?'/>
      <field name='doc' type='xmlDocPtr' info=' the document'/>
      <field name='valid' type='int' info=' temporary validity check result state state used for non-determinist content validation'/>
      <field name='vstate' type='xmlValidState *' info=' current state'/>
      <field name='vstateNr' type='int' info=' Depth of the validation stack'/>
      <field name='vstateMax' type='int' info=' Max depth of the validation stack'/>
      <field name='vstateTab' type='xmlValidState *' info=' array of validation states'/>
      <field name='am' type='xmlAutomataPtr' info=' the automata'/>
      <field name='state' type='xmlAutomataStatePtr' info=' used to build the automata'/>
      <field name='am' type='void *' info=''/>
      <field name='state' type='void *' info=''/>
    </struct>
    <typedef name='xmlValidCtxtPtr' file='valid' type='xmlValidCtxt *'/>
    <struct name='xmlValidState' file='valid' type='struct _xmlValidState'/>
    <typedef name='xmlValidStatePtr' file='valid' type='xmlValidState *'/>
    <struct name='xmlXIncludeCtxt' file='xinclude' type='struct _xmlXIncludeCtxt'/>
    <typedef name='xmlXIncludeCtxtPtr' file='xinclude' type='xmlXIncludeCtxt *'/>
    <struct name='xmlXPathAxis' file='xpath' type='struct _xmlXPathAxis'>
      <field name='name' type='const xmlChar *' info=' the axis name'/>
      <field name='func' type='xmlXPathAxisFunc' info=' the search function'/>
    </struct>
    <typedef name='xmlXPathAxisPtr' file='xpath' type='xmlXPathAxis *'/>
    <struct name='xmlXPathCompExpr' file='xpath' type='struct _xmlXPathCompExpr'/>
    <typedef name='xmlXPathCompExprPtr' file='xpath' type='xmlXPathCompExpr *'/>
    <struct name='xmlXPathContext' file='xpath' type='struct _xmlXPathContext'>
      <field name='doc' type='xmlDocPtr' info=' The current document'/>
      <field name='node' type='xmlNodePtr' info=' The current node'/>
      <field name='nb_variables_unused' type='int' info=' unused (hash table)'/>
      <field name='max_variables_unused' type='int' info=' unused (hash table)'/>
      <field name='varHash' type='xmlHashTablePtr' info=' Hash table of defined variables'/>
      <field name='nb_types' type='int' info=' number of defined types'/>
      <field name='max_types' type='int' info=' max number of types'/>
      <field name='types' type='xmlXPathTypePtr' info=' Array of defined types'/>
      <field name='nb_funcs_unused' type='int' info=' unused (hash table)'/>
      <field name='max_funcs_unused' type='int' info=' unused (hash table)'/>
      <field name='funcHash' type='xmlHashTablePtr' info=' Hash table of defined funcs'/>
      <field name='nb_axis' type='int' info=' number of defined axis'/>
      <field name='max_axis' type='int' info=' max number of axis'/>
      <field name='axis' type='xmlXPathAxisPtr' info=' Array of defined axis the namespace nodes of the context node'/>
      <field name='namespaces' type='xmlNsPtr *' info=' Array of namespaces'/>
      <field name='nsNr' type='int' info=' number of namespace in scope'/>
      <field name='user' type='void *' info=' function to free extra variables'/>
      <field name='contextSize' type='int' info=' the context size'/>
      <field name='proximityPosition' type='int' info=' the proximity position extra stuff for XPointer'/>
      <field name='xptr' type='int' info=' is this an XPointer context?'/>
      <field name='here' type='xmlNodePtr' info=' for here()'/>
      <field name='origin' type='xmlNodePtr' info=' for origin() the set of namespace declarations in scope for the expression'/>
      <field name='nsHash' type='xmlHashTablePtr' info=' The namespaces hash table'/>
      <field name='varLookupFunc' type='xmlXPathVariableLookupFunc' info=' variable lookup func'/>
      <field name='varLookupData' type='void *' info=' variable lookup data Possibility to link in an extra item'/>
      <field name='extra' type='void *' info=' needed for XSLT The function name and URI when calling a function'/>
      <field name='function' type='const xmlChar *' info=''/>
      <field name='functionURI' type='const xmlChar *' info=' function lookup function and data'/>
      <field name='funcLookupFunc' type='xmlXPathFuncLookupFunc' info=' function lookup func'/>
      <field name='funcLookupData' type='void *' info=' function lookup data temporary namespace lists kept for walking the namespace axis'/>
      <field name='tmpNsList' type='xmlNsPtr *' info=' Array of namespaces'/>
      <field name='tmpNsNr' type='int' info=' number of namespaces in scope error reporting mechanism'/>
      <field name='userData' type='void *' info=' user specific data block'/>
      <field name='error' type='xmlStructuredErrorFunc' info=' the callback in case of errors'/>
      <field name='lastError' type='xmlError' info=' the last error'/>
      <field name='debugNode' type='xmlNodePtr' info=' the source node XSLT dictionary'/>
      <field name='dict' type='xmlDictPtr' info=' dictionary if any'/>
      <field name='flags' type='int' info=' flags to control compilation Cache for reusal of XPath objects'/>
      <field name='cache' type='void *' info=''/>
    </struct>
    <typedef name='xmlXPathContextPtr' file='xpath' type='xmlXPathContext *'/>
    <typedef name='xmlXPathError' file='xpath' type='enum'/>
    <typedef name='xmlXPathFuncPtr' file='xpath' type='xmlXPathFunct *'/>
    <struct name='xmlXPathFunct' file='xpath' type='struct _xmlXPathFunct'>
      <field name='name' type='const xmlChar *' info=' the function name'/>
      <field name='func' type='xmlXPathEvalFunc' info=' the evaluation function'/>
    </struct>
    <struct name='xmlXPathObject' file='xpath' type='struct _xmlXPathObject'>
      <field name='type' type='xmlXPathObjectType' info=''/>
      <field name='nodesetval' type='xmlNodeSetPtr' info=''/>
      <field name='boolval' type='int' info=''/>
      <field name='floatval' type='double' info=''/>
      <field name='stringval' type='xmlChar *' info=''/>
      <field name='user' type='void *' info=''/>
      <field name='index' type='int' info=''/>
      <field name='user2' type='void *' info=''/>
      <field name='index2' type='int' info=''/>
    </struct>
    <typedef name='xmlXPathObjectPtr' file='xpath' type='xmlXPathObject *'/>
    <typedef name='xmlXPathObjectType' file='xpath' type='enum'/>
    <struct name='xmlXPathParserContext' file='xpath' type='struct _xmlXPathParserContext'>
      <field name='cur' type='const xmlChar *' info=' the current char being parsed'/>
      <field name='base' type='const xmlChar *' info=' the full expression'/>
      <field name='error' type='int' info=' error code'/>
      <field name='context' type='xmlXPathContextPtr' info=' the evaluation context'/>
      <field name='value' type='xmlXPathObjectPtr' info=' the current value'/>
      <field name='valueNr' type='int' info=' number of values stacked'/>
      <field name='valueMax' type='int' info=' max number of values stacked'/>
      <field name='valueTab' type='xmlXPathObjectPtr *' info=' stack of values'/>
      <field name='comp' type='xmlXPathCompExprPtr' info=' the precompiled expression'/>
      <field name='xptr' type='int' info=' it this an XPointer expression'/>
      <field name='ancestor' type='xmlNodePtr' info=' used for walking preceding axis'/>
    </struct>
    <typedef name='xmlXPathParserContextPtr' file='xpath' type='xmlXPathParserContext *'/>
    <struct name='xmlXPathType' file='xpath' type='struct _xmlXPathType'>
      <field name='name' type='const xmlChar *' info=' the type name'/>
      <field name='func' type='xmlXPathConvertFunc' info=' the conversion function'/>
    </struct>
    <typedef name='xmlXPathTypePtr' file='xpath' type='xmlXPathType *'/>
    <struct name='xmlXPathVariable' file='xpath' type='struct _xmlXPathVariable'>
      <field name='name' type='const xmlChar *' info=' the variable name'/>
      <field name='value' type='xmlXPathObjectPtr' info=' the value'/>
    </struct>
    <typedef name='xmlXPathVariablePtr' file='xpath' type='xmlXPathVariable *'/>
    <variable name='docbDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
    <variable name='emptyExp' file='xmlregexp' type='xmlExpNodePtr'/>
    <variable name='forbiddenExp' file='xmlregexp' type='xmlExpNodePtr'/>
    <variable name='htmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
    <variable name='oldXMLWDcompatibility' file='globals' type='int'/>
    <variable name='xmlBufferAllocScheme' file='globals' type='xmlBufferAllocationScheme'/>
    <variable name='xmlDefaultBufferSize' file='globals' type='int'/>
    <variable name='xmlDefaultSAXHandler' file='globals' type='xmlSAXHandlerV1'/>
    <variable name='xmlDefaultSAXLocator' file='globals' type='xmlSAXLocator'/>
    <variable name='xmlDeregisterNodeDefaultValue' file='globals' type='xmlDeregisterNodeFunc'/>
    <variable name='xmlDoValidityCheckingDefaultValue' file='globals' type='int'/>
    <variable name='xmlFree' file='globals' type='xmlFreeFunc'/>
    <variable name='xmlGenericError' file='globals' type='xmlGenericErrorFunc'/>
    <variable name='xmlGenericErrorContext' file='globals' type='void *'/>
    <variable name='xmlGetWarningsDefaultValue' file='globals' type='int'/>
    <variable name='xmlIndentTreeOutput' file='globals' type='int'/>
    <variable name='xmlIsBaseCharGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsCharGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsCombiningGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsDigitGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsExtenderGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsIdeographicGroup' file='chvalid' type='const xmlChRangeGroup'/>
    <variable name='xmlIsPubidChar_tab' file='chvalid' type='const unsigned charxmlIsPubidChar_tab[256]'/>
    <variable name='xmlKeepBlanksDefaultValue' file='globals' type='int'/>
    <variable name='xmlLastError' file='globals' type='xmlError'/>
    <variable name='xmlLineNumbersDefaultValue' file='globals' type='int'/>
    <variable name='xmlLoadExtDtdDefaultValue' file='globals' type='int'/>
    <variable name='xmlMalloc' file='globals' type='xmlMallocFunc'/>
    <variable name='xmlMallocAtomic' file='globals' type='xmlMallocFunc'/>
    <variable name='xmlMemStrdup' file='globals' type='xmlStrdupFunc'/>
    <variable name='xmlOutputBufferCreateFilenameValue' file='globals' type='xmlOutputBufferCreateFilenameFunc'/>
    <variable name='xmlParserDebugEntities' file='globals' type='int'/>
    <variable name='xmlParserInputBufferCreateFilenameValue' file='globals' type='xmlParserInputBufferCreateFilenameFunc'/>
    <variable name='xmlParserMaxDepth' file='parserInternals' type='unsigned int'/>
    <variable name='xmlParserVersion' file='globals' type='const char *'/>
    <variable name='xmlPedanticParserDefaultValue' file='globals' type='int'/>
    <variable name='xmlRealloc' file='globals' type='xmlReallocFunc'/>
    <variable name='xmlRegisterNodeDefaultValue' file='globals' type='xmlRegisterNodeFunc'/>
    <variable name='xmlSaveNoEmptyTags' file='globals' type='int'/>
    <variable name='xmlStringComment' file='parserInternals' type='const xmlCharxmlStringComment[]'/>
    <variable name='xmlStringText' file='parserInternals' type='const xmlCharxmlStringText[]'/>
    <variable name='xmlStringTextNoenc' file='parserInternals' type='const xmlCharxmlStringTextNoenc[]'/>
    <variable name='xmlStructuredError' file='globals' type='xmlStructuredErrorFunc'/>
    <variable name='xmlSubstituteEntitiesDefaultValue' file='globals' type='int'/>
    <variable name='xmlTreeIndentString' file='globals' type='const char *'/>
    <variable name='xmlXPathNAN' file='xpath' type='double'/>
    <variable name='xmlXPathNINF' file='xpath' type='double'/>
    <variable name='xmlXPathPINF' file='xpath' type='double'/>
    <function name='UTF8ToHtml' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
      <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </function>
    <function name='UTF8Toisolat1' file='encoding' module='encoding'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ISO Latin 1 block of chars out.</info>
      <return type='int' info='the number of bytes written if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed if the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
    </function>
    <function name='attribute' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element. DEPRECATED: use xmlSAX2Attribute()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='fullname' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
      <arg name='value' type='const xmlChar *' info='The attribute value'/>
    </function>
    <function name='attributeDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>An attribute definition has been parsed DEPRECATED: use xmlSAX2AttributeDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='elem' type='const xmlChar *' info='the name of the element'/>
      <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
      <arg name='type' type='int' info='the attribute type'/>
      <arg name='def' type='int' info='the type of default value'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
    </function>
    <functype name='attributeDeclSAXFunc' file='parser' module='parser'>
      <info>An attribute definition has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='elem' type='const xmlChar *' info='the name of the element'/>
      <arg name='fullname' type='const xmlChar *' info='the attribute name'/>
      <arg name='type' type='int' info='the attribute type'/>
      <arg name='def' type='int' info='the type of default value'/>
      <arg name='defaultValue' type='const xmlChar *' info='the attribute default value'/>
      <arg name='tree' type='xmlEnumerationPtr' info='the tree of enumerated value set'/>
    </functype>
    <functype name='attributeSAXFunc' file='parser' module='parser'>
      <info>Handle an attribute that has been read by the parser. The default handling is to convert the attribute into an DOM subtree and past it in a new xmlAttr element added to the element.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='The attribute name, including namespace prefix'/>
      <arg name='value' type='const xmlChar *' info='The attribute value'/>
    </functype>
    <function name='cdataBlock' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>called when a pcdata block has been parsed DEPRECATED: use xmlSAX2CDataBlock()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='The pcdata content'/>
      <arg name='len' type='int' info='the block length'/>
    </function>
    <functype name='cdataBlockSAXFunc' file='parser' module='parser'>
      <info>Called when a pcdata block has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='The pcdata content'/>
      <arg name='len' type='int' info='the block length'/>
    </functype>
    <function name='characters' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>receiving some chars from the parser. DEPRECATED: use xmlSAX2Characters()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
      <arg name='len' type='int' info='the number of xmlChar'/>
    </function>
    <functype name='charactersSAXFunc' file='parser' module='parser'>
      <info>Receiving some chars from the parser.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='ch' type='const xmlChar *' info='a xmlChar string'/>
      <arg name='len' type='int' info='the number of xmlChar'/>
    </functype>
    <function name='checkNamespace' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Check that the current element namespace is the same as the one read upon parsing. DEPRECATED</info>
      <return type='int' info='1 if true 0 otherwise'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='namespace' type='xmlChar *' info='the namespace to check against'/>
    </function>
    <function name='comment' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>A comment has been parsed. DEPRECATED: use xmlSAX2Comment()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='the comment content'/>
    </function>
    <functype name='commentSAXFunc' file='parser' module='parser'>
      <info>A comment has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='value' type='const xmlChar *' info='the comment content'/>
    </functype>
    <function name='docbCreateFileParserCtxt' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='the SGML document encoding, or NULL'/>
    </function>
    <function name='docbCreatePushParserCtxt' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Create a parser context for using the DocBook SGML parser in push mode To allow content encoding detection, @size should be &gt;= 4 The value of @filename is used for fetching external entities and error/warning reports.</info>
      <return type='docbParserCtxtPtr' info='the new parser context or NULL'/>
      <arg name='sax' type='docbSAXHandlerPtr' info='a SAX handler'/>
      <arg name='user_data' type='void *' info='The user data returned on SAX callbacks'/>
      <arg name='chunk' type='const char *' info='a pointer to an array of chars'/>
      <arg name='size' type='int' info='number of chars in the array'/>
      <arg name='filename' type='const char *' info='an optional file name or URI'/>
      <arg name='enc' type='xmlCharEncoding' info='an optional encoding'/>
    </function>
    <function name='docbDefaultSAXHandlerInit' file='SAX2' module='SAX2'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Initialize the default SAX handler</info>
      <return type='void'/>
    </function>
    <function name='docbEncodeEntities' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus SGML entities block of chars out.</info>
      <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
      <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
    </function>
    <function name='docbFreeParserCtxt' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Free all the memory used by a parser context. However the parsed document in ctxt-&gt;myDoc is not freed.</info>
      <return type='void'/>
      <arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
    </function>
    <function name='docbParseChunk' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Parse a Chunk of memory</info>
      <return type='int' info='zero if no error, the xmlParserErrors otherwise.'/>
      <arg name='ctxt' type='docbParserCtxtPtr' info='an XML parser context'/>
      <arg name='chunk' type='const char *' info='an char array'/>
      <arg name='size' type='int' info='the size in byte of the chunk'/>
      <arg name='terminate' type='int' info='last chunk indicator'/>
    </function>
    <function name='docbParseDoc' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML in-memory document and build a tree.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
    </function>
    <function name='docbParseDocument' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML document (and build a tree if using the standard SAX interface).</info>
      <return type='int' info='0, -1 in case of error. the parser context is augmented as a result of the parsing.'/>
      <arg name='ctxt' type='docbParserCtxtPtr' info='an SGML parser context'/>
    </function>
    <function name='docbParseFile' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse a Docbook SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing document encoding, or NULL'/>
    </function>
    <function name='docbSAXParseDoc' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML in-memory document and build a tree. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
      <arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='docbSAXParseFile' file='DOCBparser' module='DOCBparser'>
      <cond>defined(LIBXML_DOCB_ENABLED)</cond>
      <info>parse an SGML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</info>
      <return type='docbDocPtr' info='the resulting document tree'/>
      <arg name='filename' type='const char *' info='the filename'/>
      <arg name='encoding' type='const char *' info='a free form C string describing the SGML document encoding, or NULL'/>
      <arg name='sax' type='docbSAXHandlerPtr' info='the SAX handler block'/>
      <arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
    </function>
    <function name='elementDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>An element definition has been parsed DEPRECATED: use xmlSAX2ElementDecl()</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='type' type='int' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
    </function>
    <functype name='elementDeclSAXFunc' file='parser' module='parser'>
      <info>An element definition has been parsed.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the user data (XML parser context)'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='type' type='int' info='the element type'/>
      <arg name='content' type='xmlElementContentPtr' info='the element value tree'/>
    </functype>
    <function name='endDocument' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='SAX2'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Initialize the default SAX handler</info>
      <return type='void'/>
    </function>
    <function name='htmlDocContentDumpFormatOutput' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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='htmlDocDumpMemoryFormat' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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'/>
      <arg name='format' type='int' info='should formatting spaces been added'/>
    </function>
    <function name='htmlElementAllowedHere' file='HTMLparser' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Take a block of UTF-8 chars in and try to convert it to an ASCII plus HTML entities block of chars out.</info>
      <return type='int' info='0 if success, -2 if the transcoding fails, or -1 otherwise The value of @inlen after return is the number of octets consumed as the return value is positive, else unpredictable. The value of @outlen after return is the number of octets consumed.'/>
      <arg name='out' type='unsigned char *' info='a pointer to an array of bytes to store the result'/>
      <arg name='outlen' type='int *' info='the length of @out'/>
      <arg name='in' type='const unsigned char *' info='a pointer to an array of UTF-8 chars'/>
      <arg name='inlen' type='int *' info='the length of @in'/>
      <arg name='quoteChar' type='int' info='the quote character to escape (&apos; or &quot;) or zero.'/>
    </function>
    <function name='htmlEntityLookup' file='HTMLparser' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLtree'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLtree'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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='htmlNewParserCtxt' file='HTMLparser' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED)</cond>
      <info>Allocate and initialize a new parser context.</info>
      <return type='htmlParserCtxtPtr' info='the htmlParserCtxtPtr or NULL in case of allocation error'/>
    </function>
    <function name='htmlNodeDump' file='HTMLtree' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(LIBXML_HTML_ENABLED) &amp;&amp; defined(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' module='HTMLtree'>
      <cond>defined(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' module='HTMLparser'>
      <cond>defined(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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='error'>
      <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' module='SAX'>
      <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(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' module='SAX'>
      <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(LIBXML_SAX1_ENABLED) &amp;&amp; defined(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' module='SAX'>
      <cond>defined(LIBXML_LEGACY_ENABLED) &amp;&amp; defined(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' module='parser'>
      <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' module='parser'>
      <info>Pushes a new parser input on top of the input 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='xmlParserInputPtr' info='the parser input'/>
    </function>
    <function name='internalSubset' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='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='the number of bytes written 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' module='parser'>
      <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' module='parser'>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='parser'>
      <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' module='parser'>
      <info>Pushes a new element node on top of the node 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='xmlNodePtr' info='the element node'/>
    </function>
    <function name='notationDecl' file='SAX' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_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' module='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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Get the default xlink detection routine</info>
      <return type='xlinkNodeDetectFunc' info='the current function or NULL;'/>
    </function>
    <function name='xlinkGetDefaultHandler' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Get the default xlink handler.</info>
      <return type='xlinkHandlerPtr' info='the current xlinkHandlerPtr value.'/>
    </function>
    <function name='xlinkIsLink' file='xlink' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='xlink'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_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' module='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' module='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' module='xmlIO'>
      <cond>defined(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' module='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' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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='xmlAutomataNewNegTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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 any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won&apos;t match to follow # the semantic of XSD ##other</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='xmlAutomataNewOnceTrans' file='xmlautomata' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='debugXML'>
      <cond>defined(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' module='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' module='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' module='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' module='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' module='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' module='tree'>
      <info>routine to create an XML buffer.</info>
      <return type='xmlBufferPtr' info='the new structure.'/>
    </function>
    <function name='xmlBufferCreateSize' file='tree' module='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' module='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' module='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' module='tree'>
      <info>empty a buffer.</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='the buffer'/>
    </function>
    <function name='xmlBufferFree' file='tree' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='encoding'>
      <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' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(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' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(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' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(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' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(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' module='c14n'>
      <cond>defined(LIBXML_C14N_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Signature for a C14N callback on visible nodes</info>
      <return type='int' info='1 if the node should be included'/>
      <arg name='user_data' type='void *' info='user data'/>
      <arg name='node' type='xmlNodePtr' info='the curent node'/>
      <arg name='parent' type='xmlNodePtr' info='the parent node'/>
    </functype>
    <function name='xmlCanonicPath' file='uri' module='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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED)</cond>
      <info>Free up all the memory associated with catalogs</info>
      <return type='void'/>
    </function>
    <function name='xmlCatalogConvert' file='catalog' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(LIBXML_CATALOG_ENABLED) &amp;&amp; defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='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' module='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' module='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' module='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' module='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' module='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' module='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 xmlChRangeGroup *' info='pointer to range to be used to validate'/>
    </function>
    <function name='xmlCharStrdup' file='xmlstring' module='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' module='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' module='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' module='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' module='parser'>
      <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' module='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' module='parserInternals'>
      <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' module='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' module='encoding'>
      <info>Unregisters all aliases</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupGlobals' file='globals' module='globals'>
      <info>Additional cleanup for multi-threading</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupInputCallbacks' file='xmlIO' module='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' module='xmlmemory'>
      <info>Free up all the memory allocated by the library for its own use. This should not be called by user level code.</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupOutputCallbacks' file='xmlIO' module='xmlIO'>
      <cond>defined(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' module='parser'>
      <info>This function name is somewhat misleading. It does not clean up parser state, it cleans up memory allocated by the library itself. It is a cleanup function for the XML library. It tries to reclaim all related global memory allocated for the library processing. It doesn&apos;t deallocate any document related memory. One should call xmlCleanupParser() only when the process has finished using the library and all XML/HTML documents built with it. See also xmlInitParser() which has the opposite function of preparing the library for operations.</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupPredefinedEntities' file='entities' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Cleanup up the predefined entities table. Deprecated call</info>
      <return type='void'/>
    </function>
    <function name='xmlCleanupThreads' file='threads' module='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' module='parserInternals'>
      <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' module='parserInternals'>
      <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' module='catalog'>
      <cond>defined(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' module='valid'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_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='xmlCopyDocElementContent' file='valid' module='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='doc' type='xmlDocPtr' info='the document owning the element declaration'/>
      <arg name='cur' type='xmlElementContentPtr' info='An element content pointer.'/>
    </function>
    <function name='xmlCopyDtd' file='tree' module='tree'>
      <cond>defined(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' module='valid'>
      <info>Build a copy of an element content description. Deprecated, use xmlCopyDocElementContent instead</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' module='valid'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='entities'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='valid'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='error'>
      <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' module='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' module='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' module='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' module='tree'>
      <info>Do a recursive copy of the node list. Use xmlDocCopyNodeList() if possible to ensure string interning.</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' module='valid'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='entities'>
      <info>create and initialize an empty entities hash table. This really doesn&apos;t make sense and should be deprecated</info>
      <return type='xmlEntitiesTablePtr' info='the xmlEntitiesTablePtr just created or NULL in case of error.'/>
    </function>
    <function name='xmlCreateEntityParserCtxt' file='parserInternals' module='parser'>
      <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' module='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' module='parser'>
      <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' module='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' module='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' module='parser'>
      <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' module='parser'>
      <cond>defined(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' module='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' module='parser'>
      <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' module='error'>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='error'>
      <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' module='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' module='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' module='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>
    <functype name='xmlDOMWrapAcquireNsFunction' file='tree' module='tree'>
      <info>A function called to acquire namespaces (xmlNs) from the wrapper.</info>
      <return type='xmlNsPtr' info='an xmlNsPtr or NULL in case of an error.'/>
      <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='a DOM wrapper context'/>
      <arg name='node' type='xmlNodePtr' info='the context node (element or attribute)'/>
      <arg name='nsName' type='const xmlChar *' info='the requested namespace name'/>
      <arg name='nsPrefix' type='const xmlChar *' info='the requested namespace prefix'/>
    </functype>
    <function name='xmlDOMWrapAdoptNode' file='tree' module='tree'>
      <info>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used This is the case when you have an unliked node and just want to move it to the context of  If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in attribute values or element content. NOTE: This function was not intensively tested.</info>
      <return type='int' info='0 if the operation succeeded, 1 if a node of unsupported type was given, 2 if a node of not yet supported type was given and -1 on API/internal errors.'/>
      <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='the optional context for custom processing'/>
      <arg name='sourceDoc' type='xmlDocPtr' info='the optional sourceDoc'/>
      <arg name='node' type='xmlNodePtr' info='the node to start with'/>
      <arg name='destDoc' type='xmlDocPtr' info='the destination doc'/>
      <arg name='destParent' type='xmlNodePtr' info='the optional new parent of @node in @destDoc'/>
      <arg name='options' type='int' info='option flags'/>
    </function>
    <function name='xmlDOMWrapCloneNode' file='tree' module='tree'>
      <info>References of out-of scope ns-decls are remapped to point to @destDoc: 1) If @destParent is given, then nsDef entries on element-nodes are used 2) If *no* @destParent is given, then @destDoc-&gt;oldNs entries are used. This is the case when you don&apos;t know already where the cloned branch will be added to.  If @destParent is given, it ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in attribute values or element content. TODO: 1) What to do with XInclude? Currently this returns an error for XInclude.</info>
      <return type='int' info='0 if the operation succeeded, 1 if a node of unsupported (or not yet supported) type was given, -1 on API/internal errors.'/>
      <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='the optional context for custom processing'/>
      <arg name='sourceDoc' type='xmlDocPtr' info='the optional sourceDoc'/>
      <arg name='node' type='xmlNodePtr' info='the node to start with'/>
      <arg name='resNode' type='xmlNodePtr *' info='the clone of the given @node'/>
      <arg name='destDoc' type='xmlDocPtr' info='the destination doc'/>
      <arg name='destParent' type='xmlNodePtr' info='the optional new parent of @node in @destDoc'/>
      <arg name='deep' type='int' info='descend into child if set'/>
      <arg name='options' type='int' info='option flags'/>
    </function>
    <function name='xmlDOMWrapFreeCtxt' file='tree' module='tree'>
      <info>Frees the DOM-wrapper context.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='the DOM-wrapper context'/>
    </function>
    <function name='xmlDOMWrapNewCtxt' file='tree' module='tree'>
      <info>Allocates and initializes a new DOM-wrapper context.</info>
      <return type='xmlDOMWrapCtxtPtr' info='the xmlDOMWrapCtxtPtr or NULL in case of an internal errror.'/>
    </function>
    <function name='xmlDOMWrapReconcileNamespaces' file='tree' module='tree'>
      <info>Ensures that ns-references point to ns-decls hold on element-nodes. Ensures that the tree is namespace wellformed by creating additional ns-decls where needed. Note that, since prefixes of already existent ns-decls can be shadowed by this process, it could break QNames in attribute values or element content.  NOTE: This function was not intensively tested.</info>
      <return type='int' info='0 if succeeded, -1 otherwise and on API/internal errors.'/>
      <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='DOM wrapper context, unused at the moment'/>
      <arg name='elem' type='xmlNodePtr' info='the element-node'/>
      <arg name='options' type='int' info='option flags'/>
    </function>
    <function name='xmlDOMWrapRemoveNode' file='tree' module='tree'>
      <info>Unlinks the given node from its owner. This will substitute ns-references to node-&gt;nsDef for ns-references to doc-&gt;oldNs, thus ensuring the removed branch to be autark wrt ns-references.  NOTE: This function was not intensively tested.</info>
      <return type='int' info='0 on success, 1 if the node is not supported, -1 on API and internal errors.'/>
      <arg name='ctxt' type='xmlDOMWrapCtxtPtr' info='a DOM wrapper context'/>
      <arg name='doc' type='xmlDocPtr' info='the doc'/>
      <arg name='node' type='xmlNodePtr' info='the node to be removed.'/>
      <arg name='options' type='int' info='set of options, unused at the moment'/>
    </function>
    <function name='xmlDebugCheckDocument' file='debugXML' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED)</cond>
      <info>Check the document for potential content problems, and output the errors to @output</info>
      <return type='int' info='the number of errors found'/>
      <arg name='output' type='FILE *' info='the FILE * for the output'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
    </function>
    <function name='xmlDebugDumpAttr' file='debugXML' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='SAX2'>
      <info>Initialize the default SAX2 handler</info>
      <return type='void'/>
    </function>
    <function name='xmlDelEncodingAlias' file='encoding' module='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' module='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' module='globals'>
      <info>Signature for the deregistration callback of a discarded node</info>
      <return type='void'/>
      <arg name='node' type='xmlNodePtr' info='the current node'/>
    </functype>
    <function name='xmlDetectCharEncoding' file='encoding' module='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='xmlDictCleanup' file='dict' module='dict'>
      <info>Free the dictionary mutex.</info>
      <return type='void'/>
    </function>
    <function name='xmlDictCreate' file='dict' module='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' module='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='xmlDictExists' file='dict' module='dict'>
      <info>Check if the @name exists in the dictionnary @dict.</info>
      <return type='const xmlChar *' info='the internal copy of the name or NULL if not found.'/>
      <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='xmlDictFree' file='dict' module='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' module='dict'>
      <info>Add the @name to the dictionnary @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' module='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' module='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' module='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' module='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='xmlDllMain' file='threads' module='threads'>
      <info></info>
      <return type='int' info=''/>
      <arg name='hinstDLL' type='void *' info=''/>
      <arg name='fdwReason' type='unsigned long' info=''/>
      <arg name='lpvReserved' type='void *' info=''/>
    </function>
    <function name='xmlDocCopyNode' file='tree' module='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='xmlDocCopyNodeList' file='tree' module='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='doc' type='xmlDocPtr' info='the target document'/>
      <arg name='node' type='const xmlNodePtr' info='the first node in the list.'/>
    </function>
    <function name='xmlDocDump' file='tree' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_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, NULL if root was NULL'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='root' type='xmlNodePtr' info='the new document root element, if root is NULL no action is taken, to remove a node from a document use xmlUnlinkNode(root) instead.'/>
    </function>
    <function name='xmlDumpAttributeDecl' file='valid' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(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' module='entities'>
      <cond>defined(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' module='entities'>
      <cond>defined(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' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='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' module='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' module='parserInternals'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='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>
    <function name='xmlExpCtxtNbCons' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Debugging facility provides the number of allocated nodes over lifetime</info>
      <return type='int' info='the number of nodes ever allocated or -1 in case of error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
    </function>
    <function name='xmlExpCtxtNbNodes' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Debugging facility provides the number of allocated nodes at a that point</info>
      <return type='int' info='the number of nodes in use or -1 in case of error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
    </function>
    <function name='xmlExpDump' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Serialize the expression as compiled to the buffer</info>
      <return type='void'/>
      <arg name='buf' type='xmlBufferPtr' info='a buffer to receive the output'/>
      <arg name='expr' type='xmlExpNodePtr' info='the compiled expression'/>
    </function>
    <function name='xmlExpExpDerive' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Evaluates the expression resulting from @exp consuming a sub expression @sub Based on algebraic derivation and sometimes direct Brzozowski derivation it usually tatkes less than linear time and can handle expressions generating infinite languages.</info>
      <return type='xmlExpNodePtr' info='the resulting expression or NULL in case of internal error, the result must be freed'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
      <arg name='exp' type='xmlExpNodePtr' info='the englobing expression'/>
      <arg name='sub' type='xmlExpNodePtr' info='the subexpression'/>
    </function>
    <function name='xmlExpFree' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Dereference the expression</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
    </function>
    <function name='xmlExpFreeCtxt' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Free an expression context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='an expression context'/>
    </function>
    <function name='xmlExpGetLanguage' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Find all the strings used in @exp and store them in @list</info>
      <return type='int' info='the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
      <arg name='langList' type='const xmlChar **' info='where to store the tokens'/>
      <arg name='len' type='int' info='the allocated lenght of @list'/>
    </function>
    <function name='xmlExpGetStart' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Find all the strings that appears at the start of the languages accepted by @exp and store them in @list. E.g. for (a, b) | c it will return the list [a, c]</info>
      <return type='int' info='the number of unique strings found, -1 in case of errors and -2 if there is more than @len strings'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
      <arg name='tokList' type='const xmlChar **' info='where to store the tokens'/>
      <arg name='len' type='int' info='the allocated lenght of @list'/>
    </function>
    <function name='xmlExpIsNillable' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Finds if the expression is nillable, i.e. if it accepts the empty sequqnce</info>
      <return type='int' info='1 if nillable, 0 if not and -1 in case of error'/>
      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
    </function>
    <function name='xmlExpMaxToken' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Indicate the maximum number of input a expression can accept</info>
      <return type='int' info='the maximum length or -1 in case of error'/>
      <arg name='expr' type='xmlExpNodePtr' info='a compiled expression'/>
    </function>
    <function name='xmlExpNewAtom' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Get the atom associated to this name from that context</info>
      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='name' type='const xmlChar *' info='the atom name'/>
      <arg name='len' type='int' info='the atom name lenght in byte (or -1);'/>
    </function>
    <function name='xmlExpNewCtxt' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Creates a new context for manipulating expressions</info>
      <return type='xmlExpCtxtPtr' info='the context or NULL in case of error'/>
      <arg name='maxNodes' type='int' info='the maximum number of nodes'/>
      <arg name='dict' type='xmlDictPtr' info='optional dictionnary to use internally'/>
    </function>
    <function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='left' type='xmlExpNodePtr' info='left expression'/>
      <arg name='right' type='xmlExpNodePtr' info='right expression'/>
    </function>
    <function name='xmlExpNewRange' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</info>
      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='subset' type='xmlExpNodePtr' info='the expression to be repeated'/>
      <arg name='min' type='int' info='the lower bound for the repetition'/>
      <arg name='max' type='int' info='the upper bound for the repetition, -1 means infinite'/>
    </function>
    <function name='xmlExpNewSeq' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
      <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='left' type='xmlExpNodePtr' info='left expression'/>
      <arg name='right' type='xmlExpNodePtr' info='right expression'/>
    </function>
    <function name='xmlExpParse' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences  { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</info>
      <return type='xmlExpNodePtr' info='a new expression or NULL in case of failure'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
      <arg name='expr' type='const char *' info='the 0 terminated string'/>
    </function>
    <function name='xmlExpRef' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Increase the reference count of the expression</info>
      <return type='void'/>
      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
    </function>
    <function name='xmlExpStringDerive' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Do one step of Brzozowski derivation of the expression @exp with respect to the input string</info>
      <return type='xmlExpNodePtr' info='the resulting expression or NULL in case of internal error'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
      <arg name='exp' type='xmlExpNodePtr' info='the expression'/>
      <arg name='str' type='const xmlChar *' info='the string'/>
      <arg name='len' type='int' info='the string len in bytes if available'/>
    </function>
    <function name='xmlExpSubsume' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
      <info>Check whether @exp accepts all the languages accexpted by @sub the input being a subexpression.</info>
      <return type='int' info='1 if true 0 if false and -1 in case of failure.'/>
      <arg name='ctxt' type='xmlExpCtxtPtr' info='the expressions context'/>
      <arg name='exp' type='xmlExpNodePtr' info='the englobing expression'/>
      <arg name='sub' type='xmlExpNodePtr' info='the subexpression'/>
    </function>
    <functype name='xmlExternalEntityLoader' file='parser' module='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' module='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' module='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' module='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' module='xmlIO'>
      <info>Read @len bytes to @buffer from the I/O channel.</info>
      <return type='int' info='the number of bytes written or &lt; 0 in case of failure'/>
      <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' module='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' module='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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='catalog'>
      <cond>defined(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' module='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='xmlFreeDocElementContent' file='valid' module='valid'>
      <info>Free an element content structure. The whole subtree is removed.</info>
      <return type='void'/>
      <arg name='doc' type='xmlDocPtr' info='the document owning the element declaration'/>
      <arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
    </function>
    <function name='xmlFreeDtd' file='tree' module='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' module='valid'>
      <info>Free an element content structure. The whole subtree is removed. Deprecated, use xmlFreeDocElementContent instead</info>
      <return type='void'/>
      <arg name='cur' type='xmlElementContentPtr' info='the element content tree to free'/>
    </function>
    <function name='xmlFreeElementTable' file='valid' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='parserInternals'>
      <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' module='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' module='pattern'>
      <cond>defined(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' module='pattern'>
      <cond>defined(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' module='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' module='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' module='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' module='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='xmlFreeStreamCtxt' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Free the stream context</info>
      <return type='void'/>
      <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
    </function>
    <function name='xmlFreeTextReader' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='xmlIO'>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='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' module='error'>
      <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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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='xmlHasFeature' file='parser' module='parser'>
      <info>Examines if the library has been compiled with a given feature.</info>
      <return type='int' info='a non-zero value if the feature exist, otherwise zero. Returns zero (0) if the feature does not exist or an unknown unknown feature is requested, non-zero otherwise.'/>
      <arg name='feature' type='xmlFeature' info='the feature to be examined'/>
    </function>
    <function name='xmlHasNsProp' file='tree' module='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. Note that a namespace of NULL indicates to use the default namespace.</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' module='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' module='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' module='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' module='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' module='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' module='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' module='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>
    <function name='xmlHashCreateDict' file='hash' module='hash'>
      <info>Create a new xmlHashTablePtr which will use @dict as the internal dictionary</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'/>
      <arg name='dict' type='xmlDictPtr' info='a dictionary to use for the hash'/>
    </function>
    <functype name='xmlHashDeallocator' file='hash' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(LIBXML_HTTP_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_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' module='xmlIO'>
      <cond>defined(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' module='parser'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Load and parse a DTD</info>
      <return type='xmlDtdPtr' info='the resulting xmlDtdPtr or NULL in case of error. @input will be freed by the function in any case.'/>
      <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' module='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' module='globals'>
      <info>Additional initialisation for multi-threading</info>
      <return type='void'/>
    </function>
    <function name='xmlInitMemory' file='xmlmemory' module='xmlmemory'>
      <info>Initialize the memory layer.</info>
      <return type='int' info='0 on success'/>
    </function>
    <function name='xmlInitNodeInfoSeq' file='parser' module='parserInternals'>
      <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' module='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' module='parserInternals'>
      <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' module='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' module='catalog'>
      <cond>defined(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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Set up the predefined entities. Deprecated call</info>
      <return type='void'/>
    </function>
    <functype name='xmlInputCloseCallback' file='xmlIO' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='xmlsave'>
      <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' module='parserInternals'>
      <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' module='parserInternals'>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='list'>
      <info>Is the list empty ?</info>
      <return type='int' info='1 if the list is empty, 0 if not empty and -1 in case of error'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListEnd' file='list' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='list'>
      <info>Get the number of elements in the list</info>
      <return type='int' info='the number of elements in the list or -1 in case of error'/>
      <arg name='l' type='xmlListPtr' info='a list'/>
    </function>
    <function name='xmlListSort' file='list' module='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' module='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' module='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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='catalog'>
      <cond>defined(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' module='xmlIO'>
      <info>Load an external entity, note that the use of this function for unparsed entities may generate problems</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' module='catalog'>
      <cond>defined(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' module='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' module='debugXML'>
      <cond>defined(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' module='debugXML'>
      <cond>defined(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' module='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' module='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' module='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='xmlMemBlocks' file='xmlmemory' module='xmlmemory'>
      <info>Provides the number of memory areas currently allocated</info>
      <return type='int' info='an int representing the number of blocks'/>
    </function>
    <function name='xmlMemDisplay' file='xmlmemory' module='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='xmlMemDisplayLast' file='xmlmemory' module='xmlmemory'>
      <info>the last nbBytes of memory allocated and not freed, useful for dumping the memory left allocated between two places at runtime.</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'/>
      <arg name='nbBytes' type='long' info='the amount of memory to dump'/>
    </function>
    <function name='xmlMemFree' file='xmlmemory' module='xmlmemory'>
      <info>a free() equivalent, with error checking.</info>
      <return type='void'/>
      <arg name='ptr' type='void *' info='the memory block pointer'/>
    </function>
    <function name='xmlMemGet' file='xmlmemory' module='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' module='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.'/>
    </function>
    <function name='xmlMemRealloc' file='xmlmemory' module='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.'/>
    </function>
    <function name='xmlMemSetup' file='xmlmemory' module='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' module='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' module='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' module='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' module='xmlmemory'>
      <info>Dump in-extenso the memory blocks allocated to the file .memorylist</info>
      <return type='void'/>
    </function>
    <function name='xmlMemoryStrdup' file='xmlmemory' module='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'/>
    </function>
    <function name='xmlModuleClose' file='xmlmodule' module='xmlmodule'>
      <cond>defined(LIBXML_MODULES_ENABLED)</cond>
      <info>The close operations unload the associated module and free the data associated to the module.</info>
      <return type='int' info='0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded.'/>
      <arg name='module' type='xmlModulePtr' info='the module handle'/>
    </function>
    <function name='xmlModuleFree' file='xmlmodule' module='xmlmodule'>
      <cond>defined(LIBXML_MODULES_ENABLED)</cond>
      <info>The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.</info>
      <return type='int' info='0 in case of success, -1 in case of argument error'/>
      <arg name='module' type='xmlModulePtr' info='the module handle'/>
    </function>
    <function name='xmlModuleOpen' file='xmlmodule' module='xmlmodule'>
      <cond>defined(LIBXML_MODULES_ENABLED)</cond>
      <info>Opens a module/shared library given its name or path TODO: options are not yet implemented.</info>
      <return type='xmlModulePtr' info='a handle for the module or NULL in case of error'/>
      <arg name='name' type='const char *' info='the module name'/>
      <arg name='options' type='int' info='a set of xmlModuleOption'/>
    </function>
    <function name='xmlModuleSymbol' file='xmlmodule' module='xmlmodule'>
      <cond>defined(LIBXML_MODULES_ENABLED)</cond>
      <info>Lookup for a symbol address in the given module</info>
      <return type='int' info='0 if the symbol was found, or -1 in case of error'/>
      <arg name='module' type='xmlModulePtr' info='the module'/>
      <arg name='name' type='const char *' info='the name of the symbol'/>
      <arg name='symbol' type='void **' info='the resulting symbol address'/>
    </function>
    <function name='xmlMutexLock' file='threads' module='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' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(LIBXML_FTP_ENABLED)</cond>
      <info>Cleanup the FTP protocol layer. This cleanup proxy informations.</info>
      <return type='void'/>
    </function>
    <function name='xmlNanoFTPClose' file='nanoftp' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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='const char *' info='a directory on the server'/>
    </function>
    <function name='xmlNanoFTPDele' file='nanoftp' module='nanoftp'>
      <cond>defined(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='const char *' info='a file or directory on the server'/>
    </function>
    <function name='xmlNanoFTPFreeCtxt' file='nanoftp' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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='const char *' info='optional files to list'/>
    </function>
    <function name='xmlNanoFTPNewCtxt' file='nanoftp' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanoftp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(LIBXML_HTTP_ENABLED)</cond>
      <info>Cleanup the HTTP protocol layer.</info>
      <return type='void'/>
    </function>
    <function name='xmlNanoHTTPClose' file='nanohttp' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(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' module='nanohttp'>
      <cond>defined(LIBXML_HTTP_ENABLED) &amp;&amp; defined(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' module='nanohttp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(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' module='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' module='catalog'>
      <cond>defined(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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <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' module='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' module='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' module='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='xmlNewDocElementContent' file='valid' module='valid'>
      <info>Allocate an element content structure for the document.</info>
      <return type='xmlElementContentPtr' info='NULL if not, otherwise the new element content structure'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <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='xmlNewDocFragment' file='tree' module='tree'>
      <cond>defined(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' module='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' module='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='xmlNewDocPI' file='tree' module='tree'>
      <info>Creation of a processing instruction element.</info>
      <return type='xmlNodePtr' info='a pointer to the new node object.'/>
      <arg name='doc' type='xmlDocPtr' info='the target document'/>
      <arg name='name' type='const xmlChar *' info='the processing instruction name'/>
      <arg name='content' type='const xmlChar *' info='the PI content'/>
    </function>
    <function name='xmlNewDocProp' file='tree' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='valid'>
      <info>Allocate an element content structure. Deprecated in favor of xmlNewDocElementContent</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='xmlNewEntity' file='entities' module='entities'>
      <info>Create a new entity, this differs from xmlAddDocEntity() that if the document is NULL or has no internal subset defined, then an unlinked entity structure will be returned, it is then the responsability of the caller to link it to the document later or free it when not needed anymore.</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='xmlNewEntityInputStream' file='parserInternals' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <info>Creation of a Namespace, the old way using PI and without scoping DEPRECATED !!!</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' module='parserInternals'>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='tree'>
      <info>Creation of a processing instruction element. Use xmlDocNewPI preferably to get string interning</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' module='parserInternals'>
      <info>Allocate and initialize a new parser context.</info>
      <return type='xmlParserCtxtPtr' info='the xmlParserCtxtPtr or NULL'/>
    </function>
    <function name='xmlNewProp' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(LIBXML_WRITER_ENABLED)</cond>
      <info>Create a new xmlNewTextWriter structure using an xmlOutputBufferPtr NOTE: the @out parameter will be deallocated when the writer is closed (if the call succeed.)</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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(LIBXML_WRITER_ENABLED)</cond>
      <info>Create a new xmlNewTextWriter structure with @ctxt as output NOTE: the @ctxt context will be freed with the resulting writer (if the call succeeds). 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' module='xmlwriter'>
      <cond>defined(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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <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' module='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' module='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' module='tree'>
      <info>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContent(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</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' module='tree'>
      <info>Append the extra substring to the node content. NOTE: In contrast to xmlNodeSetContentLen(), @content is supposed to be raw text, so unescaped XML special chars are allowed, entity references are not supported.</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' module='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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='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' module='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' module='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' module='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' module='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' module='tree'>
      <cond>defined(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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_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' module='tree'>
      <info>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <info>Replace the content of a node. NOTE: @content is supposed to be a piece of XML CDATA, so it allows entity references, but XML special chars need to be escaped first by using xmlEncodeEntitiesReentrant() resp. xmlEncodeSpecialChars().</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' module='tree'>
      <cond>defined(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' module='tree'>
      <cond>defined(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' module='tree'>
      <cond>defined(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' module='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' module='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' module='xmlIO'>
      <cond>defined(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='xmlOutputBufferCreateBuffer' file='xmlIO' module='xmlIO'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a buffered output for the progressive saving to a xmlBuffer</info>
      <return type='xmlOutputBufferPtr' info='the new parser output or NULL'/>
      <arg name='buffer' type='xmlBufferPtr' info='a xmlBufferPtr'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info='the encoding converter or NULL'/>
    </function>
    <function name='xmlOutputBufferCreateFd' file='xmlIO' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <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' module='globals'>
      <info>Signature for the function doing the lookup for a suitable output method corresponding to an URI.</info>
      <return type='xmlOutputBufferPtr' info='the new xmlOutputBufferPtr in case of success or NULL if no method was found.'/>
      <arg name='URI' type='const char *' info='the URI to write to'/>
      <arg name='encoder' type='xmlCharEncodingHandlerPtr' info=''/>
      <arg name='compression' type='int' info=''/>
    </functype>
    <function name='xmlOutputBufferCreateIO' file='xmlIO' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='xmlIO'>
      <cond>defined(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' module='parser'>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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, assuming the parsing succeeded to some extent.'/>
      <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' module='parser'>
      <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' module='catalog'>
      <cond>defined(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' module='parser'>
      <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' module='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' module='parser'>
      <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' module='parser'>
      <cond>defined(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' module='parser'>
      <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' module='parser'>
      <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' module='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' module='parser'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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 an array of xmlChar'/>
    </function>
    <function name='xmlParseDocTypeDecl' file='parserInternals' module='parser'>
      <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' module='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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='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' module='parser'>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='parser'>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <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=&quot;yes&quot; 0 if standalone=&quot;no&quot; -2 if standalone attribute is missing or invalid (A standalone value of -2 means that the XML declaration was found, but no value was specified for the standalone attribute).'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseStartTag' file='parserInternals' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <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' module='parser'>
      <info>parse an XML declaration header for external entities  [77] TextDecl ::= &apos;&lt;?xml&apos; VersionInfo? EncodingDecl S? &apos;?&gt;&apos;</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
    </function>
    <function name='xmlParseURI' file='uri' module='uri'>
      <info>Parse an URI based on RFC 3986  URI-reference = [ absoluteURI | relativeURI ] [ &quot;#&quot; fragment ]</info>
      <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
      <arg name='str' type='const char *' info='the URI string to analyze'/>
    </function>
    <function name='xmlParseURIRaw' file='uri' module='uri'>
      <info>Parse an URI but allows to keep intact the original fragments.  URI-reference = URI / relative-ref</info>
      <return type='xmlURIPtr' info='a newly built xmlURIPtr or NULL in case of error'/>
      <arg name='str' type='const char *' info='the URI string to analyze'/>
      <arg name='raw' type='int' info='if 1 unescaping of URI pieces are disabled'/>
    </function>
    <function name='xmlParseURIReference' file='uri' module='uri'>
      <info>Parse an URI reference string based on RFC 3986 and fills in the appropriate fields of the @uri structure  URI-reference = URI / relative-ref</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' module='parser'>
      <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' module='parser'>
      <info>parse the XML version value.  [26] VersionNum ::= &apos;1.&apos; [0-9]+  In practice allow [0-9].[0-9]+ at that level</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' module='parser'>
      <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' module='parserInternals'>
      <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' module='error'>
      <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' module='parserInternals'>
      <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' module='parserInternals'>
      <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' module='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' module='parser'>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='xmlIO'>
      <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' module='globals'>
      <info>Signature for the function doing the lookup for a suitable input method corresponding to an URI.</info>
      <return type='xmlParserInputBufferPtr' info='the new xmlParserInputBufferPtr in case of success or NULL if no method was found.'/>
      <arg name='URI' type='const char *' info='the URI to read from'/>
      <arg name='enc' type='xmlCharEncoding' info='the requested source encoding'/>
    </functype>
    <function name='xmlParserInputBufferCreateIO' file='xmlIO' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='parserInternals'>
      <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' module='parserInternals'>
      <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' module='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' module='error'>
      <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' module='error'>
      <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' module='error'>
      <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' module='error'>
      <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' module='error'>
      <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='xmlPathToURI' file='uri' module='uri'>
      <info>Constructs an URI expressing the existing path</info>
      <return type='xmlChar *' info='a new URI, 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='xmlPatternFromRoot' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check if the pattern must be looked at from the root.</info>
      <return type='int' info='1 if true, 0 if false and -1 in case of error'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternGetStreamCtxt' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Get a streaming context for that pattern Use xmlFreeStreamCtxt to free the context.</info>
      <return type='xmlStreamCtxtPtr' info='a pointer to the context or NULL in case of failure'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternMatch' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Test whether 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='xmlPatternMaxDepth' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check the maximum depth reachable by a pattern</info>
      <return type='int' info='-2 if no limit (using //), otherwise the depth, and -1 in case of error'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternMinDepth' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.</info>
      <return type='int' info='-1 in case of error otherwise the depth,'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatternStreamable' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.</info>
      <return type='int' info='1 if streamable, 0 if not and -1 in case of error.'/>
      <arg name='comp' type='xmlPatternPtr' info='the precompiled pattern'/>
    </function>
    <function name='xmlPatterncompile' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Compile a pattern.</info>
      <return type='xmlPatternPtr' info='the compiled form 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 dictionary for interned strings'/>
      <arg name='flags' type='int' info='compilation flags, see xmlPatternFlags'/>
      <arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
    </function>
    <function name='xmlPedanticParserDefault' file='parser' module='parserInternals'>
      <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' module='parser'>
      <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' module='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' module='uri'>
      <info>Prints the URI in the stream @stream.</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' module='parser'>
      <info>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</info>
      <return type='int' info='-1 in case of error or the index in the input stack'/>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML in-memory document and build a tree. In the case the document is not Well Formed, a attempt to build a tree is tried anyway</info>
      <return type='xmlDocPtr' info='the resulting document tree or NULL in case of failure'/>
      <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
    </function>
    <function name='xmlRecoverFile' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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, it attempts to build a tree anyway</info>
      <return type='xmlDocPtr' info='the resulting document tree or NULL in case of failure'/>
      <arg name='filename' type='const char *' info='the filename'/>
    </function>
    <function name='xmlRecoverMemory' file='parser' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <info>parse an XML in-memory block and build a tree. In the case the document is not Well Formed, an attempt to build a tree is tried anyway</info>
      <return type='xmlDocPtr' info='the resulting document tree or NULL in case of error'/>
      <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' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Callback function when doing a transition in the automata</info>
      <return type='void'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info='the regular expression context'/>
      <arg name='token' type='const xmlChar *' info='the current token string'/>
      <arg name='transdata' type='void *' info='transition data'/>
      <arg name='inputdata' type='void *' info='input data'/>
    </functype>
    <function name='xmlRegExecErrInfo' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Extract error informations from the regexp execution, the parameter @string will be updated with the value pushed and not accepted, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</info>
      <return type='int' info='will be freed with the @exec context and don&apos;t need to be deallocated.  Returns: 0 in case of success or -1 in case of error.'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context generating an error'/>
      <arg name='string' type='const xmlChar **' info='return value for the error string'/>
      <arg name='nbval' type='int *' info='pointer to the number of accepted values IN/OUT'/>
      <arg name='nbneg' type='int *' info='return number of negative transitions'/>
      <arg name='values' type='xmlChar **' info='pointer to the array of acceptable values'/>
      <arg name='terminal' type='int *' info='return value if this was a terminal state'/>
    </function>
    <function name='xmlRegExecNextValues' file='xmlregexp' module='xmlregexp'>
      <cond>defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Extract informations from the regexp execution, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values</info>
      <return type='int' info='will be freed with the @exec context and don&apos;t need to be deallocated.  Returns: 0 in case of success or -1 in case of error.'/>
      <arg name='exec' type='xmlRegExecCtxtPtr' info='a regexp execution context'/>
      <arg name='nbval' type='int *' info='pointer to the number of accepted values IN/OUT'/>
      <arg name='nbneg' type='int *' info='return number of negative transitions'/>
      <arg name='values' type='xmlChar **' info='pointer to the array of acceptable values'/>
      <arg name='terminal' type='int *' info='return value if this was a terminal state'/>
    </function>
    <function name='xmlRegExecPushString' file='xmlregexp' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='xmlregexp'>
      <cond>defined(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' module='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' module='xmlIO'>
      <info>Registers the default compiled-in I/O handlers.</info>
      <return type='void'/>
    </function>
    <function name='xmlRegisterDefaultOutputCallbacks' file='xmlIO' module='xmlIO'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Registers the default compiled-in I/O handlers.</info>
      <return type='void'/>
    </function>
    <function name='xmlRegisterHTTPPostCallbacks' file='xmlIO' module='xmlIO'>
      <cond>defined(LIBXML_OUTPUT_ENABLED) &amp;&amp; defined(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' module='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' module='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' module='globals'>
      <info>Signature for the registration callback of a created node</info>
      <return type='void'/>
      <arg name='node' type='xmlNodePtr' info='the current node'/>
    </functype>
    <function name='xmlRegisterOutputCallbacks' file='xmlIO' module='xmlIO'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Cleanup the default Schemas type library associated to RelaxNG</info>
      <return type='void'/>
    </function>
    <function name='xmlRelaxNGDump' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(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' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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='xmlRelaxNGInitTypes' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Initilize the default type libraries.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
    </function>
    <function name='xmlRelaxNGNewDocParserCtxt' file='relaxng' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.</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' module='relaxng'>
      <cond>defined(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='xmlRelaxNGSetParserStructuredErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the callback functions used to handle errors for a parsing context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGParserCtxtPtr' info='a Relax-NG parser context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the error callback'/>
      <arg name='ctx' type='void *' info='contextual data for the callbacks'/>
    </function>
    <function name='xmlRelaxNGSetValidErrors' file='relaxng' module='relaxng'>
      <cond>defined(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='xmlRelaxNGSetValidStructuredErrors' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the structured error callback</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlRelaxNGValidCtxtPtr' info='a Relax-NG validation context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlRelaxNGValidateDoc' file='relaxng' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(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' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Signature of an error callback from a Relax-NG validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <functype name='xmlRelaxNGValidityWarningFunc' file='relaxng' module='relaxng'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Signature of a warning callback from a Relax-NG validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <function name='xmlRelaxParserSetFlag' file='relaxng' module='relaxng'>
      <cond>defined(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' module='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' module='tree'>
      <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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_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' module='error'>
      <info>Cleanup the error.</info>
      <return type='void'/>
      <arg name='err' type='xmlErrorPtr' info='pointer to the error.'/>
    </function>
    <function name='xmlResetLastError' file='xmlerror' module='error'>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='SAX2'>
      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)</cond>
      <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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='SAX2'>
      <cond>defined(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' module='SAX2'>
      <cond>defined(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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='SAX2'>
      <cond>defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)</cond>
      <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' module='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' module='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' module='SAX2'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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='const 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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this 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'/>
    </function>
    <function name='xmlSaveFlush' file='xmlsave' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Dump an XML document to an I/O buffer. Warning ! This call xmlOutputBufferClose() on buf which is not available after this 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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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='xmlSaveToBuffer' file='xmlsave' module='xmlsave'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <info>Create a document saving context serializing to a buffer with the encoding and the options given</info>
      <return type='xmlSaveCtxtPtr' info='a new serialization context or NULL in case of error.'/>
      <arg name='buffer' type='xmlBufferPtr' info='a buffer'/>
      <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='xmlSaveToFd' file='xmlsave' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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' module='xmlsave'>
      <cond>defined(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='the top node of the subtree to save'/>
    </function>
    <function name='xmlSaveUri' file='uri' module='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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Checks and computes the values of facets.</info>
      <return type='int' info='0 if valid, a positive error code if not valid and -1 in case of an internal or API error.'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='the facet'/>
      <arg name='typeDecl' type='xmlSchemaTypePtr' info='the schema type definition'/>
      <arg name='pctxt' type='xmlSchemaParserCtxtPtr' info='the schema parser context or NULL'/>
      <arg name='name' type='const xmlChar *' info='the optional name of the type'/>
    </function>
    <function name='xmlSchemaCleanupTypes' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Cleanup the default XML Schemas type library</info>
      <return type='void'/>
    </function>
    <function name='xmlSchemaCollapseString' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(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='xmlSchemaCompareValuesWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(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='xws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of x'/>
      <arg name='y' type='xmlSchemaValPtr' info='a second value'/>
      <arg name='yws' type='xmlSchemaWhitespaceValueType' info='the whitespace value of y'/>
    </function>
    <function name='xmlSchemaCopyValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Copies the precomputed value. This duplicates any string within.</info>
      <return type='xmlSchemaValPtr' info='the copy or NULL if a copy for a data-type is not implemented.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value to be copied'/>
    </function>
    <function name='xmlSchemaDump' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED) &amp;&amp; defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Lookup function</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' module='xmlschemastypes'>
      <cond>defined(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='xmlSchemaGetCanonValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get a the cononical lexical representation of the value. The caller has to FREE the returned retValue.  WARNING: Some value types are not supported yet, resulting in a @retValue of &quot;???&quot;.  TODO: XML Schema 1.0 does not define canonical representations for: duration, gYearMonth, gYear, gMonthDay, gMonth, gDay, anyURI, QName, NOTATION. This will be fixed in XML Schema 1.1.</info>
      <return type='int' info='0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='retValue' type='const xmlChar **' info='the returned value'/>
    </function>
    <function name='xmlSchemaGetCanonValueWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get a the cononical representation of the value. The caller has to free the returned @retValue.</info>
      <return type='int' info='0 if the value could be built, 1 if the value type is not supported yet and -1 in case of API errors.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='retValue' type='const xmlChar **' info='the returned value'/>
      <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
    </function>
    <function name='xmlSchemaGetFacetValueAsULong' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Extract the value of a facet</info>
      <return type='unsigned long' info='the value as a long'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='an schemas type facet'/>
    </function>
    <function name='xmlSchemaGetParserErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(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='xmlSchemaGetValType' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Accessor for the type of a value</info>
      <return type='xmlSchemaValType' info='the xmlSchemaValType of the value'/>
      <arg name='val' type='xmlSchemaValPtr' info='a schemas value'/>
    </function>
    <function name='xmlSchemaGetValidErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Initialize the default XML Schemas type library</info>
      <return type='void'/>
    </function>
    <function name='xmlSchemaIsBuiltInTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Evaluates if a specific facet can be used in conjunction with a type.</info>
      <return type='int' info='1 if the facet can be used with the given built-in type, 0 otherwise and -1 in case the type is not a built-in type.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the built-in type'/>
      <arg name='facetType' type='int' info='the facet type'/>
    </function>
    <function name='xmlSchemaIsValid' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check if any error was detected during validation.</info>
      <return type='int' info='1 if valid so far, 0 if errors were detected, and -1 in case of internal error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the schema validation context'/>
    </function>
    <function name='xmlSchemaNewDocParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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='xmlSchemaNewNOTATIONValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new NOTATION value. The given values are consumed and freed with the struct.</info>
      <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
      <arg name='name' type='const xmlChar *' info='the notation name'/>
      <arg name='ns' type='const xmlChar *' info='the notation namespace name or NULL'/>
    </function>
    <function name='xmlSchemaNewParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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='xmlSchemaNewQNameValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new QName value. The given values are consumed and freed with the struct.</info>
      <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of an error.'/>
      <arg name='namespaceName' type='const xmlChar *' info='the namespace name'/>
      <arg name='localName' type='const xmlChar *' info='the local name'/>
    </function>
    <function name='xmlSchemaNewStringValue' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Allocate a new simple type value. The type can be of XML_SCHEMAS_STRING. WARNING: This one is intended to be expanded for other string based types. We need this for anySimpleType as well. The given value is consumed and freed with the struct.</info>
      <return type='xmlSchemaValPtr' info='a pointer to the new value or NULL in case of error'/>
      <arg name='type' type='xmlSchemaValType' info='the value type'/>
      <arg name='value' type='const xmlChar *' info='the value'/>
    </function>
    <function name='xmlSchemaNewValidCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.</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='xmlSchemaSAXPlug' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Plug a SAX based validation layer in a SAX parsing event flow. The original @saxptr and @dataptr data are replaced by new pointers but the calls to the original will be maintained.</info>
      <return type='xmlSchemaSAXPlugPtr' info='a pointer to a data structure needed to unplug the validation layer or NULL in case of errors.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='sax' type='xmlSAXHandlerPtr *' info='a pointer to the original xmlSAXHandlerPtr'/>
      <arg name='user_data' type='void **' info='a pointer to the original SAX user data pointer'/>
    </function>
    <function name='xmlSchemaSAXUnplug' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Unplug a SAX based validation layer in a SAX parsing event flow. The original pointers used in the call are restored.</info>
      <return type='int' info='0 in case of success and -1 in case of failure.'/>
      <arg name='plug' type='xmlSchemaSAXPlugPtr' info='a data structure returned by xmlSchemaSAXPlug'/>
    </function>
    <function name='xmlSchemaSetParserErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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='xmlSchemaSetParserStructuredErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the structured error callback</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaParserCtxtPtr' info='a schema parser context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlSchemaSetValidErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Sets the options to be used during the validation.</info>
      <return type='int' info='0 in case of success, -1 in case of an API error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='options' type='int' info='a combination of xmlSchemaValidOption'/>
    </function>
    <function name='xmlSchemaSetValidStructuredErrors' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Set the structured error callback</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlSchemaValPredefTypeNode' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Get the validation context options.</info>
      <return type='int' info='the option combination or -1 on error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
    </function>
    <function name='xmlSchemaValidCtxtGetParserCtxt' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>allow access to the parser context of the schema validation context</info>
      <return type='xmlParserCtxtPtr' info='the parser context of the schema validation context or NULL in case of error.'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='a schema validation context'/>
    </function>
    <function name='xmlSchemaValidateDoc' file='xmlschemas' module='xmlschemas'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(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='xmlSchemaValidateFacetWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check a value against a facet condition. This takes value normalization according to the specified whitespace types into account. Note that @value needs to be the *normalized* value if the facet is of type &quot;pattern&quot;.</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='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
      <arg name='fws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the facet&apos;s value'/>
      <arg name='valType' type='xmlSchemaValType' info='the built-in type of the value'/>
      <arg name='value' type='const xmlChar *' info='the lexical (or normalized for pattern) repr of the value to validate'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
    </function>
    <function name='xmlSchemaValidateFile' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Do a schemas validation of the given resource, it will use the SAX streamable validation internally.</info>
      <return type='int' info='0 if the document 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='filename' type='const char *' info='the URI of the instance'/>
      <arg name='options' type='int' info='a future set of options, currently unused'/>
    </function>
    <function name='xmlSchemaValidateLengthFacet' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Checka a value against a &quot;length&quot;, &quot;minLength&quot; and &quot;maxLength&quot; facet; sets @length to the computed length of @value.</info>
      <return type='int' info='0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.'/>
      <arg name='type' type='xmlSchemaTypePtr' info='the built-in 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 be validated'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='length' type='unsigned long *' info='the actual length of the value'/>
    </function>
    <function name='xmlSchemaValidateLengthFacetWhtsp' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Checka a value against a &quot;length&quot;, &quot;minLength&quot; and &quot;maxLength&quot; facet; sets @length to the computed length of @value.</info>
      <return type='int' info='0 if the value is valid, a positive error code otherwise and -1 in case of an internal or API error.'/>
      <arg name='facet' type='xmlSchemaFacetPtr' info='the facet to check'/>
      <arg name='valType' type='xmlSchemaValType' info='the built-in type'/>
      <arg name='value' type='const xmlChar *' info='the lexical repr. of the value to be validated'/>
      <arg name='val' type='xmlSchemaValPtr' info='the precomputed value'/>
      <arg name='length' type='unsigned long *' info='the actual length of the value'/>
      <arg name='ws' type='xmlSchemaWhitespaceValueType' info='the whitespace type of the value'/>
    </function>
    <function name='xmlSchemaValidateListSimpleTypeFacet' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(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' module='xmlschemastypes'>
      <cond>defined(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' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Validate an input based on a flow of SAX event from the parser and forward the events to the @sax handler with the provided @user_data the user provided @sax handler must be a SAX2 one.</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' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Signature of an error callback from an XSD validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <functype name='xmlSchemaValidityWarningFunc' file='xmlschemas' module='xmlschemas'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Signature of a warning callback from an XSD validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <function name='xmlSchemaValueAppend' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Appends a next sibling to a list of computed values.</info>
      <return type='int' info='0 if succeeded and -1 on API errors.'/>
      <arg name='prev' type='xmlSchemaValPtr' info='the value'/>
      <arg name='cur' type='xmlSchemaValPtr' info='the value to be appended'/>
    </function>
    <function name='xmlSchemaValueGetAsBoolean' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Accessor for the boolean value of a computed value.</info>
      <return type='int' info='1 if true and 0 if false, or in case of an error. Hmm.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the value'/>
    </function>
    <function name='xmlSchemaValueGetAsString' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Accessor for the string value of a computed value.</info>
      <return type='const xmlChar *' info='the string value or NULL if there was none, or on API errors.'/>
      <arg name='val' type='xmlSchemaValPtr' info='the value'/>
    </function>
    <function name='xmlSchemaValueGetNext' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Accessor for the next sibling of a list of computed values.</info>
      <return type='xmlSchemaValPtr' info='the next value or NULL if there was none, or on API errors.'/>
      <arg name='cur' type='xmlSchemaValPtr' info='the value'/>
    </function>
    <function name='xmlSchemaWhiteSpaceReplace' file='xmlschemastypes' module='xmlschemastypes'>
      <cond>defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Replaces 0xd, 0x9 and 0xa with a space.</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='xmlSchematronFree' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Deallocate a Schematron structure.</info>
      <return type='void'/>
      <arg name='schema' type='xmlSchematronPtr' info='a schema structure'/>
    </function>
    <function name='xmlSchematronFreeParserCtxt' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Free the resources associated to the schema parser context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchematronParserCtxtPtr' info='the schema parser context'/>
    </function>
    <function name='xmlSchematronFreeValidCtxt' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Free the resources associated to the schema validation context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='the schema validation context'/>
    </function>
    <function name='xmlSchematronNewDocParserCtxt' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Create an XML Schematrons parse context for that document. NB. The document may be modified during the parsing process.</info>
      <return type='xmlSchematronParserCtxtPtr' info='the parser context or NULL in case of error'/>
      <arg name='doc' type='xmlDocPtr' info='a preparsed document tree'/>
    </function>
    <function name='xmlSchematronNewMemParserCtxt' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Create an XML Schematrons parse context for that memory buffer expected to contain an XML Schematrons file.</info>
      <return type='xmlSchematronParserCtxtPtr' 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='xmlSchematronNewParserCtxt' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Create an XML Schematrons parse context for that file/resource expected to contain an XML Schematrons file.</info>
      <return type='xmlSchematronParserCtxtPtr' 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='xmlSchematronNewValidCtxt' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Create an XML Schematrons validation context based on the given schema.</info>
      <return type='xmlSchematronValidCtxtPtr' info='the validation context or NULL in case of error'/>
      <arg name='schema' type='xmlSchematronPtr' info='a precompiled XML Schematrons'/>
      <arg name='options' type='int' info='a set of xmlSchematronValidOptions'/>
    </function>
    <function name='xmlSchematronParse' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.</info>
      <return type='xmlSchematronPtr' info='the internal XML Schematron structure built from the resource or NULL in case of error'/>
      <arg name='ctxt' type='xmlSchematronParserCtxtPtr' info='a schema validation context'/>
    </function>
    <function name='xmlSchematronSetValidStructuredErrors' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Set the structured error callback</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='a Schematron validation context'/>
      <arg name='serror' type='xmlStructuredErrorFunc' info='the structured error function'/>
      <arg name='ctx' type='void *' info='the functions context'/>
    </function>
    <function name='xmlSchematronValidateDoc' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Validate a tree instance against the schematron</info>
      <return type='int' info='0 in case of success, -1 in case of internal error and an error count otherwise.'/>
      <arg name='ctxt' type='xmlSchematronValidCtxtPtr' info='the schema validation context'/>
      <arg name='instance' type='xmlDocPtr' info='the document instace tree'/>
    </function>
    <functype name='xmlSchematronValidityErrorFunc' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Signature of an error callback from a Schematron validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <functype name='xmlSchematronValidityWarningFunc' file='schematron' module='schematron'>
      <cond>defined(LIBXML_SCHEMATRON_ENABLED)</cond>
      <info>Signature of a warning callback from a Schematron validation</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='the validation context'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='...' type='...' info='extra arguments'/>
    </functype>
    <function name='xmlSearchNs' file='tree' module='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' module='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' module='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' module='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' module='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' module='parser'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='xmlIO'>
      <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' module='legacy'>
      <cond>defined(LIBXML_LEGACY_ENABLED)</cond>
      <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' module='error'>
      <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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)</cond>
      <info>Set (or reset) an attribute carried by a node. If @name has a prefix, then the corresponding namespace-binding will be used, if in scope; it is an error it there&apos;s no such ns-binding for the prefix in scope.</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 (a QName)'/>
      <arg name='value' type='const xmlChar *' info='the attribute value'/>
    </function>
    <function name='xmlSetStructuredErrorFunc' file='xmlerror' module='error'>
      <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' module='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' module='parser'>
      <cond>defined(LIBXML_SAX1_ENABLED)</cond>
      <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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_OUTPUT_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(LIBXML_VALID_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' module='debugXML'>
      <cond>defined(LIBXML_DEBUG_ENABLED) &amp;&amp; defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(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' module='parser'>
      <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' module='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='englob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
    </function>
    <function name='xmlSplitQName' file='parserInternals' module='parser'>
      <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' module='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' module='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 to the start of the name without the prefix'/>
      <arg name='name' type='const xmlChar *' info='the full QName'/>
      <arg name='len' type='int *' info='an int *'/>
    </function>
    <function name='xmlSprintfElementContent' file='valid' module='valid'>
      <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
      <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='englob' type='int' info='1 if one must print the englobing parenthesis, 0 otherwise'/>
    </function>
    <function name='xmlStopParser' file='parser' module='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' module='xmlstring'>
      <info>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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' module='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='xmlStreamPop' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>push one level from the stream.</info>
      <return type='int' info='-1 in case of error, 0 otherwise.'/>
      <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
    </function>
    <function name='xmlStreamPush' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an element-node.</info>
      <return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
      <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
      <arg name='name' type='const xmlChar *' info='the current name'/>
      <arg name='ns' type='const xmlChar *' info='the namespace name'/>
    </function>
    <function name='xmlStreamPushAttr' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Push new attribute data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an attribute-node.</info>
      <return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
      <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
      <arg name='name' type='const xmlChar *' info='the current name'/>
      <arg name='ns' type='const xmlChar *' info='the namespace name'/>
    </function>
    <function name='xmlStreamPushNode' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Different from xmlStreamPush() this function can be fed with nodes of type: element-, attribute-, text-, cdata-section-, comment- and processing-instruction-node.</info>
      <return type='int' info='-1 in case of error, 1 if the current state in the stream is a match and 0 otherwise.'/>
      <arg name='stream' type='xmlStreamCtxtPtr' info='the stream context'/>
      <arg name='name' type='const xmlChar *' info='the current name'/>
      <arg name='ns' type='const xmlChar *' info='the namespace name'/>
      <arg name='nodeType' type='int' info='the type of the node being pushed'/>
    </function>
    <function name='xmlStreamWantsAnyNode' file='pattern' module='pattern'>
      <cond>defined(LIBXML_PATTERN_ENABLED)</cond>
      <info>Query if the streaming pattern additionally needs to be fed with text-, cdata-section-, comment- and processing-instruction-nodes. If the result is 0 then only element-nodes and attribute-nodes need to be pushed.</info>
      <return type='int' info='1 in case of need of nodes of the above described types, 0 otherwise. -1 on API errors.'/>
      <arg name='streamCtxt' type='xmlStreamCtxtPtr' info='the stream context'/>
    </function>
    <function name='xmlStringCurrentChar' file='parserInternals' module='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' module='parser'>
      <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' module='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' module='parser'>
      <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' module='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' module='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' module='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' module='xmlstring'>
      <info>a strncat for array of xmlChar&apos;s, it will extend @cur with the len first bytes of @add. Note that if @len &lt; 0 then this is an API error and NULL will be returned.</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' module='xmlstring'>
      <info>same as xmlStrncat, but creates a new string.  The original two strings are not freed. If @len is &lt; 0 then the length will be calculated automatically.</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 or &lt; 0'/>
    </function>
    <function name='xmlStrncmp' file='xmlstring' module='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' module='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' module='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' module='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' module='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' module='parserInternals'>
      <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' module='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' module='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' module='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' module='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' module='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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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='xmlTextReaderByteConsumed' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>This function provides the current index of the parser used by the reader, relative to the start of the current entity. This function actually just wraps a call to xmlBytesConsumed() for the parser context associated with the reader. See xmlBytesConsumed() for more information.</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='reader' type='xmlTextReaderPtr' info='an XML reader'/>
    </function>
    <function name='xmlTextReaderClose' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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='xmlTextReaderConstEncoding' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine the encoding of the document being read.</info>
      <return type='const xmlChar *' info='a string containing the encoding of the document or NULL in case of error.  The string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderConstLocalName' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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='xmlTextReaderConstXmlVersion' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine the XML version of the document being read.</info>
      <return type='const xmlChar *' info='a string containing the XML version of the document or NULL in case of error.  The string is deallocated with the reader.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderCurrentDoc' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Signature of an error callback from a reader parser</info>
      <return type='void'/>
      <arg name='arg' type='void *' info='the user argument'/>
      <arg name='msg' type='const char *' info='the message'/>
      <arg name='severity' type='xmlParserSeverities' info='the severity of the error'/>
      <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occured'/>
    </functype>
    <function name='xmlTextReaderExpand' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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='xmlTextReaderGetParserColumnNumber' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provide the column number of the current parsing point.</info>
      <return type='int' info='an int or 0 if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
    </function>
    <function name='xmlTextReaderGetParserLineNumber' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Provide the line number of the current parsing point.</info>
      <return type='int' info='an int or 0 if not available'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the user data (XML reader context)'/>
    </function>
    <function name='xmlTextReaderGetParserProp' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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='xmlTextReaderIsNamespaceDecl' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine whether the current node is a namespace declaration rather than a regular attribute.</info>
      <return type='int' info='1 if the current node is a namespace declaration, 0 if it is a regular attribute or other type of node, or -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderIsValid' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Get the node type of the current node Reference: http://www.gnu.org/software/dotgnu/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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_PATTERN_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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_WRITER_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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_WRITER_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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(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' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(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 deactivated.</info>
      <return type='int' info='0 in case the RelaxNG validation could be (de)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='xmlTextReaderSchemaValidate' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). If @xsd is NULL, then XML Schema validation is deactivated.</info>
      <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='xsd' type='const char *' info='the path to a W3C XSD schema or NULL'/>
    </function>
    <function name='xmlTextReaderSchemaValidateCtxt' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use W3C XSD schema context to validate the document as it is processed. Activation is only possible before the first Read(). If @ctxt is NULL, then XML Schema validation is deactivated.</info>
      <return type='int' info='0 in case the schemas validation could be (de)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='ctxt' type='xmlSchemaValidCtxtPtr' info='the XML Schema validation context or NULL'/>
      <arg name='options' type='int' info='options (not used yet)'/>
    </function>
    <function name='xmlTextReaderSetErrorHandler' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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='xmlTextReaderSetSchema' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED) &amp;&amp; defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Use XSD Schema to validate the document as it is processed. Activation is only possible before the first Read(). if @schema is NULL, then Schema 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 Schema validation could be (des)activated and -1 in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
      <arg name='schema' type='xmlSchemaPtr' info='a precompiled Schema schema'/>
    </function>
    <function name='xmlTextReaderSetStructuredErrorHandler' file='xmlreader' module='xmlreader'>
      <cond>defined(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='xmlTextReaderSetup' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Setup an XML reader with new options</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='input' type='xmlParserInputBufferPtr' info='xmlParserInputBufferPtr used to feed the reader, will be destroyed with it.'/>
      <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='xmlTextReaderStandalone' file='xmlreader' module='xmlreader'>
      <cond>defined(LIBXML_READER_ENABLED)</cond>
      <info>Determine the standalone status of the document being read.</info>
      <return type='int' info='1 if the document was declared to be standalone, 0 if it was declared to be not standalone, or -1 if the document did not specify its standalone status or in case of error.'/>
      <arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
    </function>
    <function name='xmlTextReaderValue' file='xmlreader' module='xmlreader'>
      <cond>defined(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' module='xmlreader'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(LIBXML_WRITER_ENABLED)</cond>
      <info>End an xml document. All open elements are closed, and the content is flushed to the output.</info>
      <return type='int' info='the bytes written or -1 in case of error'/>
      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
    </function>
    <function name='xmlTextWriterEndElement' file='xmlwriter' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='xmlwriter'>
      <cond>defined(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' module='globals'>
      <info></info>
      <return type='xmlBufferAllocationScheme' info=''/>
      <arg name='v' type='xmlBufferAllocationScheme' info=''/>
    </function>
    <function name='xmlThrDefDefaultBufferSize' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefDeregisterNodeDefault' file='globals' module='globals'>
      <info></info>
      <return type='xmlDeregisterNodeFunc' info=''/>
      <arg name='func' type='xmlDeregisterNodeFunc' info=''/>
    </function>
    <function name='xmlThrDefDoValidityCheckingDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefGetWarningsDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefIndentTreeOutput' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefKeepBlanksDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefLineNumbersDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefLoadExtDtdDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefOutputBufferCreateFilenameDefault' file='globals' module='globals'>
      <info></info>
      <return type='xmlOutputBufferCreateFilenameFunc' info=''/>
      <arg name='func' type='xmlOutputBufferCreateFilenameFunc' info=''/>
    </function>
    <function name='xmlThrDefParserDebugEntities' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefParserInputBufferCreateFilenameDefault' file='globals' module='globals'>
      <info></info>
      <return type='xmlParserInputBufferCreateFilenameFunc' info=''/>
      <arg name='func' type='xmlParserInputBufferCreateFilenameFunc' info=''/>
    </function>
    <function name='xmlThrDefPedanticParserDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefRegisterNodeDefault' file='globals' module='globals'>
      <info></info>
      <return type='xmlRegisterNodeFunc' info=''/>
      <arg name='func' type='xmlRegisterNodeFunc' info=''/>
    </function>
    <function name='xmlThrDefSaveNoEmptyTags' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefSetGenericErrorFunc' file='globals' module='globals'>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='handler' type='xmlGenericErrorFunc' info=''/>
    </function>
    <function name='xmlThrDefSetStructuredErrorFunc' file='globals' module='globals'>
      <info></info>
      <return type='void'/>
      <arg name='ctx' type='void *' info=''/>
      <arg name='handler' type='xmlStructuredErrorFunc' info=''/>
    </function>
    <function name='xmlThrDefSubstituteEntitiesDefaultValue' file='globals' module='globals'>
      <info></info>
      <return type='int' info=''/>
      <arg name='v' type='int' info=''/>
    </function>
    <function name='xmlThrDefTreeIndentString' file='globals' module='globals'>
      <info></info>
      <return type='const char *' info=''/>
      <arg name='v' type='const char *' info=''/>
    </function>
    <function name='xmlUCSIsAegeanNumbers' file='xmlunicode' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='xmlunicode'>
      <cond>defined(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' module='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' module='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' module='uri'>
      <info>Unescaping routine, but does not check that the string is an URI. The output is a direct unsigned char translation of %XX values (no encoding) Note that the length of the result can only be smaller or same size as the input string.</info>
      <return type='char *' info='a copy of the string, but unescaped, will return NULL only in case of error'/>
      <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' module='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' module='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' module='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' module='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' module='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' module='xmlstring'>
      <info>a function to provide the equivalent of fetching a character from a string array</info>
      <return type='const 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' module='xmlstring'>
      <info>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</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' module='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' module='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' module='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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_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' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Remove an attribute carried by a node. This handles only attributes in no namespace.</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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(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' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <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='names' 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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <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' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info></info>
      <return type='int' info=''/>
      <arg name='type' type='xmlAttributeType' info=''/>
      <arg name='value' type='const xmlChar *' info=''/>
    </function>
    <function name='xmlValidateDocument' file='valid' module='valid'>
      <cond>defined(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' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Does the final step for the document validation once all the incremental validation steps have been completed  basically it does the following checks described by the XML Rec  Check all the IDREF/IDREFS attributes definition for validity</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateDtd' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate the document against the dtd instance  Basically it does check all the definitions in the DtD. Note the the internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='dtd' type='xmlDtdPtr' info='a dtd instance'/>
    </function>
    <function name='xmlValidateDtdFinal' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Does the final step for the dtds validation once all the subsets have been parsed  basically it does the following checks described by the XML Rec - check that ENTITY and ENTITIES type attributes default or possible values matches one of the defined entities. - check that NOTATION type attributes default or possible values matches one of the defined notations.</info>
      <return type='int' info='1 if valid or 0 if invalid and -1 if not well-formed'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <function name='xmlValidateElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate the subtree under an element</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlValidateElementDecl' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single element definition basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: One ID per Element Type ] - [ VC: No Duplicate Types ] - [ VC: Unique Element Type Declaration ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlElementPtr' info='an element definition'/>
    </function>
    <function name='xmlValidateNCName' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of NCName</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateNMToken' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of NMToken</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateName' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of Name</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateNameValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Name production</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Name value'/>
    </function>
    <function name='xmlValidateNamesValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Names production</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Names value'/>
    </function>
    <function name='xmlValidateNmtokenValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Nmtoken production  [ VC: Name Token ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Nmtoken value'/>
    </function>
    <function name='xmlValidateNmtokensValue' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Validate that the given value match Nmtokens production  [ VC: Name Token ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='value' type='const xmlChar *' info='an Nmtokens value'/>
    </function>
    <function name='xmlValidateNotationDecl' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single notation definition basically it does the following checks as described by the XML-1.0 recommendation: - it seems that no validity constraint exists on notation declarations But this function get called anyway ...</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='nota' type='xmlNotationPtr' info='a notation definition'/>
    </function>
    <function name='xmlValidateNotationUse' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Validate that the given name match a notation declaration. - [ VC: Notation Declared ]</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='the document'/>
      <arg name='notationName' type='const xmlChar *' info='the notation name to check'/>
    </function>
    <function name='xmlValidateOneAttribute' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single attribute for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='attr' type='xmlAttrPtr' info='an attribute instance'/>
      <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
    </function>
    <function name='xmlValidateOneElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single element and it&apos;s attributes, basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Element Valid ] - [ VC: Required Attribute ] Then call xmlValidateOneAttribute() for each attribute present.  The ID/IDREF checkings are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
    </function>
    <function name='xmlValidateOneNamespace' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a single namespace declaration for an element basically it does the following checks as described by the XML-1.0 recommendation: - [ VC: Attribute Value Type ] - [ VC: Fixed Attribute Default ] - [ VC: Entity Name ] - [ VC: Name Token ] - [ VC: ID ] - [ VC: IDREF ] - [ VC: Entity Name ] - [ VC: Notation Attributes ]  The ID/IDREF uniqueness and matching are done separately</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='prefix' type='const xmlChar *' info='the namespace prefix'/>
      <arg name='ns' type='xmlNsPtr' info='an namespace declaration instance'/>
      <arg name='value' type='const xmlChar *' info='the attribute value (without entities processing)'/>
    </function>
    <function name='xmlValidatePopElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Pop the element end from the validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
    </function>
    <function name='xmlValidatePushCData' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>check the CData parsed for validation in the current stack</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='data' type='const xmlChar *' info='some character data read'/>
      <arg name='len' type='int' info='the lenght of the data'/>
    </function>
    <function name='xmlValidatePushElement' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED) &amp;&amp; defined(LIBXML_REGEXP_ENABLED)</cond>
      <info>Push a new element start on the validation stack.</info>
      <return type='int' info='1 if no validation problem was found or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
      <arg name='elem' type='xmlNodePtr' info='an element instance'/>
      <arg name='qname' type='const xmlChar *' info='the qualified name as appearing in the serialization'/>
    </function>
    <function name='xmlValidateQName' file='tree' module='tree'>
      <cond>defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Check that a value conforms to the lexical space of QName</info>
      <return type='int' info='0 if this validates, a positive error code number otherwise and -1 in case of internal or API error.'/>
      <arg name='value' type='const xmlChar *' info='the value to check'/>
      <arg name='space' type='int' info='allow spaces in front and end of the string'/>
    </function>
    <function name='xmlValidateRoot' file='valid' module='valid'>
      <cond>defined(LIBXML_VALID_ENABLED)</cond>
      <info>Try to validate a the root element basically it does the following check as described by the XML-1.0 recommendation: - [ VC: Root Element Type ] it doesn&apos;t try to recurse or apply other check to the element</info>
      <return type='int' info='1 if valid or 0 otherwise'/>
      <arg name='ctxt' type='xmlValidCtxtPtr' info='the validation context'/>
      <arg name='doc' type='xmlDocPtr' info='a document instance'/>
    </function>
    <functype name='xmlValidityErrorFunc' file='valid' module='valid'>
      <info>Callback called when a validity error is found. This is a message oriented function similar to an *printf function.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
      <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
      <arg name='...' type='...' info='remaining arguments to the format'/>
    </functype>
    <functype name='xmlValidityWarningFunc' file='valid' module='valid'>
      <info>Callback called when a validity warning is found. This is a message oriented function similar to an *printf function.</info>
      <return type='void'/>
      <arg name='ctx' type='void *' info='usually an xmlValidCtxtPtr to a validity error context, but comes from ctxt-&gt;userData (which normally contains such a pointer); ctxt-&gt;userData can be changed by the user.'/>
      <arg name='msg' type='const char *' info='the string to format *printf like vararg'/>
      <arg name='...' type='...' info='remaining arguments to the format'/>
    </functype>
    <function name='xmlXIncludeFreeContext' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Free an XInclude context</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='the XInclude context'/>
    </function>
    <function name='xmlXIncludeNewContext' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Creates a new XInclude context</info>
      <return type='xmlXIncludeCtxtPtr' info='the new set'/>
      <arg name='doc' type='xmlDocPtr' info='an XML Document'/>
    </function>
    <function name='xmlXIncludeProcess' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
    </function>
    <function name='xmlXIncludeProcessFlags' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXIncludeProcessFlagsData' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution on the XML document @doc</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='doc' type='xmlDocPtr' info='an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
      <arg name='data' type='void *' info='application data that will be passed to the parser context in the _private field of the parser context(s)'/>
    </function>
    <function name='xmlXIncludeProcessNode' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution for the given subtree reusing the informations and data coming from the given context.</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an existing XInclude context'/>
      <arg name='node' type='xmlNodePtr' info='a node in an XML document'/>
    </function>
    <function name='xmlXIncludeProcessTree' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution for the given subtree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
    </function>
    <function name='xmlXIncludeProcessTreeFlags' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Implement the XInclude substitution for the given subtree</info>
      <return type='int' info='0 if no substitution were done, -1 if some processing failed or the number of substitutions done.'/>
      <arg name='tree' type='xmlNodePtr' info='a node in an XML document'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXIncludeSetFlags' file='xinclude' module='xinclude'>
      <cond>defined(LIBXML_XINCLUDE_ENABLED)</cond>
      <info>Set the flags used for further processing of XML resources.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='ctxt' type='xmlXIncludeCtxtPtr' info='an XInclude processing context'/>
      <arg name='flags' type='int' info='a set of xmlParserOption used for parsing XML includes'/>
    </function>
    <function name='xmlXPathAddValues' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the add operation on XPath objects: The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <functype name='xmlXPathAxisFunc' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>An axis traversal function. To traverse an axis, the engine calls the first time with cur == NULL and repeat until the function returns NULL indicating the end of the axis traversal.</info>
      <return type='xmlXPathObjectPtr' info='the next node in that axis or NULL if at the end of the axis.'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath interpreter context'/>
      <arg name='cur' type='xmlXPathObjectPtr' info='the previous node being explored on that axis'/>
    </functype>
    <function name='xmlXPathBooleanFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the boolean() XPath function boolean boolean(object) The boolean function converts its argument to a boolean as follows: - a number is true if and only if it is neither positive or negative zero nor NaN - a node-set is true if and only if it is non-empty - a string is true if and only if its length is non-zero</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathCastBooleanToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a boolean to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='int' info='a boolean'/>
    </function>
    <function name='xmlXPathCastBooleanToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a boolean to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='val' type='int' info='a boolean'/>
    </function>
    <function name='xmlXPathCastNodeSetToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node-set to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeSetToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node-set to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeSetToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node-set to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='ns' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathCastNodeToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathCastNodeToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a node to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='node' type='xmlNodePtr' info='a node'/>
    </function>
    <function name='xmlXPathCastNumberToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a number to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='double' info='a number'/>
    </function>
    <function name='xmlXPathCastNumberToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a number to its string value.</info>
      <return type='xmlChar *' info='a newly allocated string.'/>
      <arg name='val' type='double' info='a number'/>
    </function>
    <function name='xmlXPathCastStringToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a string to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='const xmlChar *' info='a string'/>
    </function>
    <function name='xmlXPathCastStringToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts a string to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='const xmlChar *' info='a string'/>
    </function>
    <function name='xmlXPathCastToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts an XPath object to its boolean value</info>
      <return type='int' info='the boolean value'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCastToNumber' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts an XPath object to its number value</info>
      <return type='double' info='the number value'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCastToString' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Converts an existing object to its string() equivalent</info>
      <return type='xmlChar *' info='the allocated string value of the object, NULL in case of error. It&apos;s up to the caller to free the string memory with xmlFree().'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an XPath object'/>
    </function>
    <function name='xmlXPathCeilingFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the ceiling() XPath function number ceiling(number) The ceiling function returns the smallest (closest to negative infinity) number that is not less than the argument and that is an integer.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathCmpNodes' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Compare two nodes w.r.t document order</info>
      <return type='int' info='-2 in case of error 1 if first point &lt; second point, 0 if it&apos;s the same node, -1 otherwise'/>
      <arg name='node1' type='xmlNodePtr' info='the first node'/>
      <arg name='node2' type='xmlNodePtr' info='the second node'/>
    </function>
    <function name='xmlXPathCompareValues' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the compare operation on XPath objects: @arg1 &lt; @arg2    (1, 1, ... @arg1 &lt;= @arg2   (1, 0, ... @arg1 &gt; @arg2    (0, 1, ... @arg1 &gt;= @arg2   (0, 0, ...  When neither object to be compared is a node-set and the operator is &lt;=, &lt;, &gt;=, &gt;, then the objects are compared by converted both objects to numbers and comparing the numbers according to IEEE 754. The &lt; comparison will be true if and only if the first number is less than the second number. The &lt;= comparison will be true if and only if the first number is less than or equal to the second number. The &gt; comparison will be true if and only if the first number is greater than the second number. The &gt;= comparison will be true if and only if the first number is greater than or equal to the second number.</info>
      <return type='int' info='1 if the comparison succeeded, 0 if it failed'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='inf' type='int' info='less than (1) or greater than (0)'/>
      <arg name='strict' type='int' info='is the comparison strict'/>
    </function>
    <function name='xmlXPathCompile' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Compile an XPath expression</info>
      <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
    </function>
    <function name='xmlXPathCompiledEval' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Evaluate the Precompiled XPath expression in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathCompiledEvalToBoolean' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Applies the XPath boolean() function on the result of the given compiled expression.</info>
      <return type='int' info='1 if the expression evaluated to true, 0 if to false and -1 in API and internal errors.'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
    </function>
    <function name='xmlXPathConcatFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the concat() XPath function string concat(string, string, string*) The concat function returns the concatenation of its arguments.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathContainsFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the contains() XPath function boolean contains(string, string) The contains function returns true if the first argument string contains the second argument string, and otherwise returns false.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathContextSetCache' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Creates/frees an object cache on the XPath context. If activates XPath objects (xmlXPathObject) will be cached internally to be reused. @options: 0: This will set the XPath object caching: @value: This will set the maximum number of XPath objects to be cached per slot There are 5 slots for: node-set, string, number, boolean, and misc objects. Use &lt;0 for the default number (100). Other values for @options have currently no effect.</info>
      <return type='int' info='0 if the setting succeeded, and -1 on API or internal errors.'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='active' type='int' info='enables/disables (creates/frees) the cache'/>
      <arg name='value' type='int' info='a value with semantics dependant on @options'/>
      <arg name='options' type='int' info='options (currently only the value 0 is used)'/>
    </function>
    <function name='xmlXPathConvertBoolean' file='xpath' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Compile an XPath expression</info>
      <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='an XPath context'/>
      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
    </function>
    <function name='xmlXPathDebugDumpCompExpr' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED) &amp;&amp; defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Handle an XPath 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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
      <info>Initialize the XPath environment</info>
      <return type='void'/>
    </function>
    <function name='xmlXPathIntersection' file='xpathInternals' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(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' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the sum() XPath function number sum(node-set) The sum function returns the sum of the values of the nodes in the argument node-set.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathTrailing' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set) @nodes1 and @nodes2 are sorted by document order, then #xmlXPathTrailingSorted is called.</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set'/>
    </function>
    <function name='xmlXPathTrailingSorted' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implements the EXSLT - Sets trailing() function: node-set set:trailing (node-set, node-set)</info>
      <return type='xmlNodeSetPtr' info='the nodes in @nodes1 that follow the first node in @nodes2 in document order, @nodes1 if @nodes2 is NULL or empty or an empty node-set if @nodes1 doesn&apos;t contain @nodes2'/>
      <arg name='nodes1' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
      <arg name='nodes2' type='xmlNodeSetPtr' info='a node-set, sorted by document order'/>
    </function>
    <function name='xmlXPathTranslateFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the translate() XPath function string translate(string, string, string) The translate function returns the first argument string with occurrences of characters in the second argument string replaced by the character at the corresponding position in the third argument string. For example, translate(&quot;bar&quot;,&quot;abc&quot;,&quot;ABC&quot;) returns the string BAr. If there is a character in the second argument string with no character at a corresponding position in the third argument string (because the second argument string is longer than the third argument string), then occurrences of that character in the first argument string are removed. For example, translate(&quot;--aaa--&quot;,&quot;abc-&quot;,&quot;ABC&quot;)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathTrueFunction' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the true() XPath function boolean true()</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xmlXPathValueFlipSign' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Implement the unary - operation on an XPath object The numeric operators convert their operands to numbers as if by calling the number function.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
    </function>
    <function name='xmlXPathVariableLookup' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Search in the Variable array of the context for the given variable value.</info>
      <return type='xmlXPathObjectPtr' info='a copy of the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
    </function>
    <functype name='xmlXPathVariableLookupFunc' file='xpath' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Prototype for callbacks used to plug variable lookup in the XPath engine.</info>
      <return type='xmlXPathObjectPtr' info='the XPath object value or NULL if not found.'/>
      <arg name='ctxt' type='void *' info='an XPath context'/>
      <arg name='name' type='const xmlChar *' info='name of the variable'/>
      <arg name='ns_uri' type='const xmlChar *' info='the namespace name hosting this variable'/>
    </functype>
    <function name='xmlXPathVariableLookupNS' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Search in the Variable array of the context for the given variable value.</info>
      <return type='xmlXPathObjectPtr' info='the a copy of the value or NULL if not found'/>
      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
      <arg name='name' type='const xmlChar *' info='the variable name'/>
      <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
    </function>
    <function name='xmlXPathWrapCString' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wraps a string into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='char *' info='the char * value'/>
    </function>
    <function name='xmlXPathWrapExternal' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wraps the @val data into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='void *' info='the user data'/>
    </function>
    <function name='xmlXPathWrapNodeSet' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wrap the Nodeset @val in a new xmlXPathObjectPtr</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlNodeSetPtr' info='the NodePtr value'/>
    </function>
    <function name='xmlXPathWrapString' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Wraps the @val string into an XPath object.</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlChar *' info='the xmlChar * value'/>
    </function>
    <function name='xmlXPatherror' file='xpathInternals' module='xpath'>
      <cond>defined(LIBXML_XPATH_ENABLED)</cond>
      <info>Formats an error message.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='file' type='const char *' info='the file name'/>
      <arg name='line' type='int' info='the line number'/>
      <arg name='no' type='int' info='the error number'/>
    </function>
    <function name='xmlXPtrBuildNodeList' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.</info>
      <return type='xmlNodePtr' info='an xmlNodePtr list or NULL. the caller has to free the node tree.'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='the XPointer result from the evaluation.'/>
    </function>
    <function name='xmlXPtrEval' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Evaluate the XPath Location Path in the given context.</info>
      <return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
      <arg name='str' type='const xmlChar *' info='the XPointer expression'/>
      <arg name='ctx' type='xmlXPathContextPtr' info='the XPointer context'/>
    </function>
    <function name='xmlXPtrEvalRangePredicate' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>[8]   Predicate ::=   &apos;[&apos; PredicateExpr &apos;]&apos; [9]   PredicateExpr ::=   Expr  Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
    </function>
    <function name='xmlXPtrFreeLocationSet' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Free the LocationSet compound (not the actual ranges !).</info>
      <return type='void'/>
      <arg name='obj' type='xmlLocationSetPtr' info='the xmlLocationSetPtr to free'/>
    </function>
    <function name='xmlXPtrLocationSetAdd' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='xmlXPathObjectPtr' info='a new xmlXPathObjectPtr'/>
    </function>
    <function name='xmlXPtrLocationSetCreate' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlLocationSetPtr of type double and of value @val</info>
      <return type='xmlLocationSetPtr' info='the newly created object.'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an initial xmlXPathObjectPtr, or NULL'/>
    </function>
    <function name='xmlXPtrLocationSetDel' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Removes an xmlXPathObjectPtr from an existing LocationSet</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='xmlXPathObjectPtr' info='an xmlXPathObjectPtr'/>
    </function>
    <function name='xmlXPtrLocationSetMerge' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Merges two rangesets, all ranges from @val2 are added to @val1</info>
      <return type='xmlLocationSetPtr' info='val1 once extended or NULL in case of error.'/>
      <arg name='val1' type='xmlLocationSetPtr' info='the first LocationSet'/>
      <arg name='val2' type='xmlLocationSetPtr' info='the second LocationSet'/>
    </function>
    <function name='xmlXPtrLocationSetRemove' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Removes an entry from an existing LocationSet list.</info>
      <return type='void'/>
      <arg name='cur' type='xmlLocationSetPtr' info='the initial range set'/>
      <arg name='val' type='int' info='the index to remove'/>
    </function>
    <function name='xmlXPtrNewCollapsedRange' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range using a single nodes</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting and ending node'/>
    </function>
    <function name='xmlXPtrNewContext' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new XPointer context</info>
      <return type='xmlXPathContextPtr' info='the xmlXPathContext just allocated.'/>
      <arg name='doc' type='xmlDocPtr' info='the XML document'/>
      <arg name='here' type='xmlNodePtr' info='the node that directly contains the XPointer being evaluated or NULL'/>
      <arg name='origin' type='xmlNodePtr' info='the element from which a user or program initiated traversal of the link, or NULL.'/>
    </function>
    <function name='xmlXPtrNewLocationSetNodeSet' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from @set</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='set' type='xmlNodeSetPtr' info='a node set'/>
    </function>
    <function name='xmlXPtrNewLocationSetNodes' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes @start and @end</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the start NodePtr value'/>
      <arg name='end' type='xmlNodePtr' info='the end NodePtr value or NULL'/>
    </function>
    <function name='xmlXPtrNewRange' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='startindex' type='int' info='the start index'/>
      <arg name='end' type='xmlNodePtr' info='the ending point'/>
      <arg name='endindex' type='int' info='the ending index'/>
    </function>
    <function name='xmlXPtrNewRangeNodeObject' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a not to an object</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending object'/>
    </function>
    <function name='xmlXPtrNewRangeNodePoint' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a node to a point</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
    </function>
    <function name='xmlXPtrNewRangeNodes' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range using 2 nodes</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlNodePtr' info='the starting node'/>
      <arg name='end' type='xmlNodePtr' info='the ending node'/>
    </function>
    <function name='xmlXPtrNewRangePointNode' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range from a point to a node</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
      <arg name='end' type='xmlNodePtr' info='the ending node'/>
    </function>
    <function name='xmlXPtrNewRangePoints' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Create a new xmlXPathObjectPtr of type range using 2 Points</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='start' type='xmlXPathObjectPtr' info='the starting point'/>
      <arg name='end' type='xmlXPathObjectPtr' info='the ending point'/>
    </function>
    <function name='xmlXPtrRangeToFunction' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Implement the range-to() XPointer function</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
      <arg name='nargs' type='int' info='the number of args'/>
    </function>
    <function name='xmlXPtrWrapLocationSet' file='xpointer' module='xpointer'>
      <cond>defined(LIBXML_XPTR_ENABLED)</cond>
      <info>Wrap the LocationSet @val in a new xmlXPathObjectPtr</info>
      <return type='xmlXPathObjectPtr' info='the newly created object.'/>
      <arg name='val' type='xmlLocationSetPtr' info='the LocationSet value'/>
    </function>
  </symbols>
</api>
