/* win32/libxml2.def.src
   Pseudo-source used to create a .DEF file for proper dynamic linkage. 
   
   Assuming you use Microsoft's C compiler, you run a
   
       cl /EP libxml2.def.src > libxml2.def
       
   in order to get the right .DEF file. Basically, all you do is
   preprocess this file using a C/C++ preprocessor and the right
   .DEF file should come out. 
   
   Should you need a function which does not seem to be exported
   from the libxml2.dll, its name is most certainly missing here.
   Add the name of the offending function to this file and rebuild.

   21.03.2001, Igor Zlatkovic (igor@stud.fh-frankfurt.de)
*/

#define LIBXML2_COMPILING_MSCCDEF
#include "../include/libxml/xmlversion.h"

LIBRARY libxml2
EXPORTS


/* c14n.h
   --------------------------------------------------------------------- */
#ifdef LIBXML_C14N_ENABLED
	xmlC14NDocSaveTo
	xmlC14NDocDumpMemory
	xmlC14NDocSave
#endif /* LIBXML_C14N_ENABLED */


/* catalog.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_CATALOG_ENABLED
	/* Operations on a given catalog */
	xmlNewCatalog
	xmlLoadACatalog
	xmlLoadSGMLSuperCatalog
	xmlConvertSGMLCatalog
	xmlACatalogAdd
	xmlACatalogRemove
	xmlACatalogResolve
	xmlACatalogResolveSystem
	xmlACatalogResolvePublic
	xmlACatalogResolveURI
	xmlACatalogDump
	xmlFreeCatalog
	xmlCatalogIsEmpty
	
	/* Global operations */
	xmlInitializeCatalog
	xmlLoadCatalog
	xmlLoadCatalogs
	xmlCatalogCleanup
	xmlCatalogDump
	xmlCatalogResolve
	xmlCatalogResolveSystem
	xmlCatalogResolvePublic
	xmlCatalogResolveURI
	xmlCatalogAdd
	xmlCatalogRemove
	xmlParseCatalogFile
	xmlCatalogConvert

	/* Strictly minimal interfaces for per-document catalogs used by the parser. */
	xmlCatalogFreeLocal
	xmlCatalogAddLocal
	xmlCatalogLocalResolve
	xmlCatalogLocalResolveURI
	
	/* Preference settings */
	xmlCatalogSetDebug
	xmlCatalogSetDefaultPrefer
	xmlCatalogSetDefaults
	xmlCatalogGetDefaults
	
	/* DEPRECATED interfaces */
	xmlCatalogGetSystem
	xmlCatalogGetPublic
#endif /* LIBXML_CATALOG_ENABLED */


/* debugXML.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_DEBUG_ENABLED
	/* The standard Dump routines */
	xmlDebugDumpString
	xmlDebugDumpAttr
	xmlDebugDumpAttrList
	xmlDebugDumpOneNode
	xmlDebugDumpNode
	xmlDebugDumpNodeList
	xmlDebugDumpDocumentHead
	xmlDebugDumpDocument
	xmlDebugDumpDTD
	xmlDebugDumpEntities
	xmlLsOneNode
	xmlLsCountNode
	xmlBoolToText
	
	/* ??? */
	xmlShellPrintXPathError
	xmlShellPrintNode
	xmlShellPrintXPathResult
	xmlShellList
	xmlShellBase
	xmlShellDir
	xmlShellCat
	xmlShellLoad
	xmlShellWrite
	xmlShellSave
	xmlShellValidate
	xmlShellDu
	xmlShellPwd

	/* The Shell interface. */
	xmlShell
#endif /* LIBXML_DEBUG_ENABLED */


/* DOCBParser.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_DOCB_ENABLED
	/* There is only few public functions. */
	docbEncodeEntities
	docbSAXParseDoc
	docbParseDoc
	docbSAXParseFile
	docbParseFile

	/* Interfaces for the Push mode */
	docbFreeParserCtxt
	docbCreatePushParserCtxt
	docbParseChunk
	docbCreateFileParserCtxt
	docbParseDocument
#endif /* LIBXML_DOCB_ENABLED */


/* encoding.h 
   --------------------------------------------------------------------- */
	/* Interfaces for encoding handlers */
	xmlInitCharEncodingHandlers
	xmlCleanupCharEncodingHandlers
	xmlRegisterCharEncodingHandler
	xmlGetCharEncodingHandler
	xmlFindCharEncodingHandler

	/* Interfaces for encoding names and aliases */
	xmlAddEncodingAlias
	xmlDelEncodingAlias
	xmlGetEncodingAlias
	xmlCleanupEncodingAliases
	xmlParseCharEncoding
	xmlGetCharEncodingName

	/* Interfaces directly used by the parsers. */
	xmlDetectCharEncoding
	xmlCharEncOutFunc
	xmlCharEncInFunc
	xmlCharEncFirstLine
	xmlCharEncCloseFunc

	/* Export a few useful functions */
	UTF8Toisolat1
	isolat1ToUTF8

	/* exports additional "UTF-8 aware" string routines which are */
	xmlCheckUTF8
	xmlUTF8Strsize
	xmlUTF8Strndup
	xmlUTF8Strpos
	xmlUTF8Strloc
	xmlUTF8Strsub
	xmlUTF8Strlen


/* entities.h 
   --------------------------------------------------------------------- */
	xmlInitializePredefinedEntities
	xmlAddDocEntity
	xmlAddDtdEntity
	xmlGetPredefinedEntity
	xmlGetDocEntity
	xmlGetDtdEntity
	xmlGetParameterEntity
	xmlEncodeEntities
	xmlEncodeEntitiesReentrant
	xmlEncodeSpecialChars
	xmlCreateEntitiesTable
	xmlCopyEntitiesTable
	xmlFreeEntitiesTable
	xmlDumpEntitiesTable
	xmlDumpEntityDecl
xmlCleanupPredefinedEntities


/* globals.h 
   --------------------------------------------------------------------- */
	xmlInitializeGlobalState

	/* Memory */
#ifdef LIBXML_THREAD_ALLOC_ENABLED
#ifdef LIBXML_THREAD_ENABLED
	__xmlMalloc
	__xmlRealloc
	__xmlFree
	__xmlMemStrdup
#else
	xmlMalloc DATA
	xmlRealloc DATA
	xmlFree DATA
	xmlMemStrdup DATA
#endif
#else /* !LIBXML_THREAD_ALLOC_ENABLED */
	xmlMalloc DATA
	xmlRealloc DATA
	xmlFree DATA
	xmlMemStrdup DATA
#endif /* LIBXML_THREAD_ALLOC_ENABLED */
	
	/* Autogenerated (not here, but in the globals.h) */
#ifdef LIBXML_THREAD_ENABLED
	#ifdef LIBXML_DOCB_ENABLED
		__docbDefaultSAXHandler
	#endif
	#ifdef LIBXML_HTML_ENABLED
		__htmlDefaultSAXHandler
	#endif
	__oldXMLWDcompatibility
	__xmlBufferAllocScheme
	__xmlDefaultBufferSize
	__xmlDefaultSAXHandler
	__xmlDefaultSAXLocator
	__xmlDoValidityCheckingDefaultValue
	__xmlGenericError
	__xmlGenericErrorContext
	__xmlGetWarningsDefaultValue
	__xmlIndentTreeOutput
	__xmlTreeIndentString
	__xmlKeepBlanksDefaultValue
	__xmlLineNumbersDefaultValue
	__xmlLoadExtDtdDefaultValue
	__xmlParserDebugEntities
	__xmlParserVersion
	__xmlPedanticParserDefaultValue
	__xmlSaveNoEmptyTags
	__xmlSubstituteEntitiesDefaultValue
#else /* LIBXML_THREAD_ENABLED */
	#ifdef LIBXML_DOCB_ENABLED
		docbDefaultSAXHandler DATA
	#endif
	#ifdef LIBXML_HTML_ENABLED
		htmlDefaultSAXHandler DATA
	#endif
	oldXMLWDcompatibility DATA
	xmlBufferAllocScheme DATA
	xmlDefaultBufferSize DATA
	xmlDefaultSAXHandler DATA
	xmlDefaultSAXLocator DATA
	xmlDoValidityCheckingDefaultValue DATA
	xmlGenericError DATA
	xmlGenericErrorContext DATA
	xmlGetWarningsDefaultValue DATA
	xmlIndentTreeOutput DATA
	xmlTreeIndentString DATA
	xmlKeepBlanksDefaultValue DATA
	xmlLineNumbersDefaultValue DATA
	xmlLoadExtDtdDefaultValue DATA
	xmlParserDebugEntities DATA
	xmlParserVersion DATA
	xmlPedanticParserDefaultValue DATA
	xmlSaveNoEmptyTags DATA
	xmlSubstituteEntitiesDefaultValue DATA
#endif /* LIBXML_THREAD_ENABLED */


/* hash.h 
   --------------------------------------------------------------------- */
	/* Constructor and destructor */
	xmlHashCreate
	xmlHashFree
	
	/* Add a new entry to the hash table */
	xmlHashAddEntry
	xmlHashUpdateEntry
	xmlHashAddEntry2
	xmlHashUpdateEntry2
	xmlHashAddEntry3
	xmlHashUpdateEntry3

	/* Remove an entry from the hash table */
	xmlHashRemoveEntry
	xmlHashRemoveEntry2
	xmlHashRemoveEntry3

	/* Retrieve the userdata */
	xmlHashLookup
	xmlHashLookup2
	xmlHashLookup3

	/* Helpers */
	xmlHashCopy
	xmlHashSize
	xmlHashScan
	xmlHashScan3
	xmlHashScanFull
	xmlHashScanFull3


/* HTMLparser.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_HTML_ENABLED
	/* There is only few public functions. */
	htmlTagLookup
	htmlEntityLookup
	htmlEntityValueLookup
	htmlIsAutoClosed
	htmlAutoCloseTag
	htmlParseEntityRef
	htmlParseCharRef
	htmlParseElement
	htmlParseDocument
	htmlSAXParseDoc
	htmlParseDoc
	htmlSAXParseFile
	htmlParseFile
	UTF8ToHtml
	htmlEncodeEntities
	htmlIsScriptAttribute
	htmlHandleOmittedElem

	/* Interfaces for the Push mode */
	htmlFreeParserCtxt
	htmlCreatePushParserCtxt
	htmlParseChunk
#endif /* LIBXML_HTML_ENABLED */


/* HTMLtree.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_HTML_ENABLED
	htmlNewDoc
	htmlNewDocNoDtD
	htmlGetMetaEncoding
	htmlSetMetaEncoding
	htmlDocDumpMemory
	htmlDocDump
	htmlSaveFile
	htmlNodeDump
	htmlNodeDumpFile
	htmlNodeDumpFileFormat
	htmlSaveFileEnc
	htmlSaveFileFormat
	htmlNodeDumpFormatOutput
	htmlDocContentDumpOutput
	htmlDocContentDumpFormatOutput
#endif /* LIBXML_HTML_ENABLED */


/* list.h 
   --------------------------------------------------------------------- */
	/* Creation/Deletion */
	xmlListCreate
	xmlListDelete
	
	/* Basic Operators */
	xmlListSearch
	xmlListReverseSearch
	xmlListInsert
	xmlListAppend
	xmlListRemoveFirst
	xmlListRemoveLast
	xmlListRemoveAll
	xmlListClear
	xmlListEmpty
	xmlListFront
	xmlListEnd
	xmlListSize
	xmlListPopFront
	xmlListPopBack
	xmlListPushFront
	xmlListPushBack

	/* Advanced Operators */
	xmlListReverse
	xmlListSort
	xmlListWalk
	xmlListReverseWalk
	xmlListMerge
	xmlListDup
	xmlListCopy
	xmlLinkGetData


/* nanoftp.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_FTP_ENABLED
	/* Init */
	xmlNanoFTPInit
	xmlNanoFTPCleanup
	
	/* Creating/freeing contexts */
	xmlNanoFTPNewCtxt
	xmlNanoFTPFreeCtxt
	xmlNanoFTPConnectTo

	/* Opening/closing session connections */
	xmlNanoFTPOpen
	xmlNanoFTPConnect
	xmlNanoFTPClose
	xmlNanoFTPQuit
	xmlNanoFTPScanProxy
	xmlNanoFTPProxy
	xmlNanoFTPUpdateURL

	/* Rathern internal commands */
	xmlNanoFTPGetResponse
	xmlNanoFTPCheckResponse

	/* CD/DIR/GET handlers */
	xmlNanoFTPCwd
	xmlNanoFTPGetConnection
	xmlNanoFTPCloseConnection
	xmlNanoFTPList
	xmlNanoFTPGetSocket
	xmlNanoFTPGet
	xmlNanoFTPRead
#endif /* LIBXML_FTP_ENABLED */


/* nanohttp.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_HTTP_ENABLED
	xmlNanoHTTPInit
	xmlNanoHTTPCleanup
	xmlNanoHTTPScanProxy
	xmlNanoHTTPFetch
	xmlNanoHTTPMethod
	xmlNanoHTTPMethodRedir
	xmlNanoHTTPOpen
	xmlNanoHTTPOpenRedir
	xmlNanoHTTPReturnCode
	xmlNanoHTTPAuthHeader
	xmlNanoHTTPRead
	xmlNanoHTTPSave
	xmlNanoHTTPClose
#endif /* LIBXML_HTTP_ENABLED */


/* parser.h  
   --------------------------------------------------------------------- */
	// xmlParserVersion DATA <-- moved to the globals.h section
	// xmlDefaultSAXLocator DATA <-- moved to the globals.h section
	// xmlDefaultSAXHandler DATA <-- moved to the globals.h section
	//#ifdef LIBXML_HTML_ENABLED <-- moved to the globals.h section
	//	htmlDefaultSAXHandler DATA <-- moved to the globals.h section
	//#endif <-- moved to globals.h section
	//#ifdef LIBXML_DOCB_ENABLED <-- moved to the globals.h section
	//	docbDefaultSAXHandler DATA <-- moved to the globals.h section
	//#endif <-- moved to globals.h section
	// xmlSubstituteEntitiesDefaultValue DATA <-- moved to globals.h section
	// xmlGetWarningsDefaultValue DATA <-- moved to globals.h section

	/* Init/Cleanup */
	xmlInitParser
	xmlCleanupParser
	
	/* Input functions */
	xmlParserInputRead
	xmlParserInputGrow

	/* xmlChar handling */
	xmlStrdup
	xmlStrndup
	xmlCharStrndup
	xmlCharStrdup
	xmlStrsub
	xmlStrchr
	xmlStrstr
	xmlStrcasestr
	xmlStrcmp
	xmlStrncmp
	xmlStrcasecmp
	xmlStrncasecmp
	xmlStrEqual
	xmlStrlen
	xmlStrcat
	xmlStrncat

	/* Basic parsing Interfaces */
	xmlParseDoc
	xmlParseMemory
	xmlParseFile
	xmlSubstituteEntitiesDefault
	xmlKeepBlanksDefault
	xmlStopParser
	xmlPedanticParserDefault
	xmlLineNumbersDefault

	/* Recovery mode */
	xmlRecoverDoc
	xmlRecoverMemory
	xmlRecoverFile

	/* Less common routines and SAX interfaces */
	xmlParseDocument
	xmlParseExtParsedEnt
	xmlSAXParseDoc
	xmlSAXUserParseFile
	xmlSAXUserParseMemory
	xmlSAXParseMemory
	xmlSAXParseFile
	xmlSAXParseFileWithData
	xmlSAXParseEntity
	xmlParseEntity
	xmlParseDTD
	xmlSAXParseDTD
	xmlIOParseDTD
	xmlParseBalancedChunkMemory
	xmlParseExternalEntity
	xmlParseCtxtExternalEntity

	/* SAX initialization routines */
	xmlDefaultSAXHandlerInit
	#ifdef LIBXML_HTML_ENABLED
		htmlDefaultSAXHandlerInit
	#endif /* LIBXML_HTML_ENABLED */
	
	/* Parser contexts handling. */
	xmlInitParserCtxt
	xmlClearParserCtxt
	xmlFreeParserCtxt
	xmlSetupParserForBuffer
	xmlCreateDocParserCtxt

	/* Reading/setting optional parsing features. */
	xmlGetFeaturesList
	xmlGetFeature
	xmlSetFeature

	/* Interfaces for the Push mode */
	xmlCreatePushParserCtxt
	xmlParseChunk

	/* Special I/O mode */
	xmlCreateIOParserCtxt
	xmlNewIOInputStream

	/* Node infos */
	xmlParserFindNodeInfo
	xmlInitNodeInfoSeq
	xmlClearNodeInfoSeq
	xmlParserFindNodeInfoIndex
	xmlParserAddNodeInfo

	/* External entities handling actually implemented in xmlIO */
	xmlSetExternalEntityLoader
	xmlGetExternalEntityLoader
	xmlLoadExternalEntity


/* parserinternals.h 
   --------------------------------------------------------------------- */
	/* Global variables used for predefined strings */
	xmlStringText DATA
	xmlStringTextNoenc DATA
	xmlStringComment DATA

	/* Function to finish the work of the macros where needed */
	xmlIsBaseChar
	xmlIsBlank
	xmlIsPubidChar
	xmlIsLetter
	xmlIsDigit
	xmlIsIdeographic
	xmlIsCombining
	xmlIsExtender
	xmlIsCombining
	xmlIsChar

	/* Parser context */
	xmlCreateDocParserCtxt
	xmlCreateFileParserCtxt
	xmlCreateMemoryParserCtxt
	xmlNewParserCtxt
	xmlCreateEntityParserCtxt
	xmlSwitchEncoding
	xmlSwitchToEncoding
	xmlFreeParserCtxt

	/* Entities */
	xmlHandleEntity

	/* Input Streams */
	xmlNewStringInputStream
	xmlNewEntityInputStream
	xmlPushInput
	xmlPopInput
	xmlFreeInputStream
	xmlNewInputFromFile
	xmlNewInputStream

	/* Namespaces. */
	xmlSplitQName
	xmlNamespaceParseNCName
	xmlNamespaceParseQName
	xmlNamespaceParseNSDef
	xmlParseQuotedString
	xmlParseNamespace

	/* Generic production rules */
	xmlScanName
	xmlParseName
	xmlParseNmtoken
	xmlParseEntityValue
	xmlParseAttValue
	xmlParseSystemLiteral
	xmlParsePubidLiteral
	xmlParseCharData
	xmlParseExternalID
	xmlParseComment
	xmlParsePITarget
	xmlParsePI
	xmlParseNotationDecl
	xmlParseEntityDecl
	xmlParseDefaultDecl
	xmlParseNotationType
	xmlParseEnumerationType
	xmlParseEnumeratedType
	xmlParseAttributeType
	xmlParseAttributeListDecl
	xmlParseElementMixedContentDecl
	xmlParseElementChildrenContentDecl
	xmlParseElementContentDecl
	xmlParseElementDecl
	xmlParseMarkupDecl
	xmlParseCharRef
	xmlParseEntityRef
	xmlParseReference
	xmlParsePEReference
	xmlParseDocTypeDecl
	xmlParseAttribute
	xmlParseStartTag
	xmlParseEndTag
	xmlParseCDSect
	xmlParseContent
	xmlParseElement
	xmlParseVersionNum
	xmlParseVersionInfo
	xmlParseEncName
	xmlParseEncodingDecl
	xmlParseSDDecl
	xmlParseXMLDecl
	xmlParseTextDecl
	xmlParseMisc
	xmlParseExternalSubset

	xmlDecodeEntities
	xmlStringDecodeEntities

	/* Generated by MACROS on top of parser.c c.f. PUSH_AND_POP */
	nodePush
	nodePop
	inputPush
	inputPop
	namePop
	namePush

	/* other comodities shared between parser.c and parserInternals */
	xmlSkipBlankChars
	xmlStringCurrentChar
	xmlParserHandlePEReference
	xmlParserHandleReference
	xmlCheckLanguageID

	/* Really core function shared with HTML parser */
	xmlCurrentChar
	xmlCopyCharMultiByte
	xmlCopyChar
	xmlNextChar
	xmlParserInputShrink
	
	/* Actually comes from the HTML parser but launched from the init stuff */
	#ifdef LIBXML_HTML_ENABLED
		htmlInitAutoClose
		htmlCreateFileParserCtxt
	#endif /* LIBXML_HTML_ENABLED */

	/* Specific function to keep track of entities references and used by the XSLT debugger. */
	xmlSetEntityReferenceFunc

/* SAX.h
   --------------------------------------------------------------------- */
	getPublicId
	getSystemId
	setDocumentLocator
	getLineNumber
	getColumnNumber
	isStandalone
	hasInternalSubset
	hasExternalSubset
	internalSubset
	externalSubset
	getEntity
	getParameterEntity
	resolveEntity
	entityDecl
	attributeDecl
	elementDecl
	notationDecl
	unparsedEntityDecl
	startDocument
	endDocument
	attribute
	startElement
	endElement
	reference
	characters
	ignorableWhitespace
	processingInstruction
	globalNamespace
	setNamespace
	getNamespace
	checkNamespace
	namespaceDecl
	comment
	cdataBlock
	initxmlDefaultSAXHandler
	xmlDefaultSAXHandlerInit
	#ifdef LIBXML_HTML_ENABLED
		htmlDefaultSAXHandlerInit
		inithtmlDefaultSAXHandler
	#endif /* LIBXML_HTML_ENABLED */
	#ifdef LIBXML_DOCB_ENABLED
		docbDefaultSAXHandlerInit
		initdocbDefaultSAXHandler
	#endif /* LIBXML_DOCB_ENABLED */


/* tree.h 
   --------------------------------------------------------------------- */
	/* Variables. */
	// baseDTD DATA <-- has been removed from the code
	// oldXMLWDcompatibility DATA <-- moved to the globals.h section
	// xmlIndentTreeOutput DATA <-- moved to the globals.h section
	// xmlBufferAllocScheme DATA <-- moved to the globals.h section
	// xmlSaveNoEmptyTags DATA <-- moved to the globals.h section
	// xmlDefaultBufferSize DATA <-- moved to the globals.h section
	
	/* handling buffers */	
	xmlSetBufferAllocationScheme
	xmlGetBufferAllocationScheme
	xmlBufferCreate
	xmlBufferCreateSize
	xmlBufferResize
	xmlBufferFree
	xmlBufferDump
	xmlBufferAdd
	xmlBufferAddHead
	xmlBufferCat
	xmlBufferCCat
	xmlBufferShrink
	xmlBufferGrow
	xmlBufferEmpty
	xmlBufferContent
	xmlBufferSetAllocationScheme
	xmlBufferLength

	/* Creating/freeing new structures */
	xmlCreateIntSubset
	xmlNewDtd
	xmlGetIntSubset
	xmlFreeDtd
	xmlNewGlobalNs
	xmlNewNs
	xmlFreeNs
	xmlFreeNsList
	xmlNewDoc
	xmlFreeDoc
	xmlNewDocProp
	xmlNewProp
	xmlNewNsProp
	xmlFreePropList
	xmlFreeProp
	xmlCopyProp
	xmlCopyPropList
	xmlCopyDtd
	xmlCopyDoc
	
	/* Creating new nodes */
	xmlNewDocNode
	xmlNewDocRawNode
	xmlNewNode
	xmlNewChild
	xmlNewTextChild
	xmlNewDocText
	xmlNewText
	xmlNewPI
	xmlNewDocTextLen
	xmlNewTextLen
	xmlNewDocComment
	xmlNewComment
	xmlNewCDataBlock
	xmlNewCharRef
	xmlNewReference
	xmlCopyNode
	xmlDocCopyNode
	xmlCopyNodeList
	xmlNewDocFragment
	
	/* Navigating */
	xmlGetLineNo
	xmlGetNodePath
	xmlDocGetRootElement
	xmlGetLastChild
	xmlNodeIsText
	xmlIsBlankNode
	
	/* Changing the structure */
	xmlDocSetRootElement
	xmlNodeSetName
	xmlAddChild
	xmlAddChildList
	xmlReplaceNode
	xmlAddSibling
	xmlAddPrevSibling
	xmlAddNextSibling
	xmlUnlinkNode
	xmlTextMerge
	xmlTextConcat
	xmlFreeNodeList
	xmlFreeNode
	xmlSetTreeDoc
	xmlSetListDoc
	
	/* Namespaces */
	xmlSearchNs
	xmlSearchNsByHref
	xmlGetNsList
	xmlSetNs
	xmlCopyNamespace
	xmlCopyNamespaceList
	
	/* Changing the content. */
	xmlSetProp
	xmlGetProp
	xmlHasProp
	xmlHasNsProp
	xmlSetNsProp
	xmlGetNsProp
	xmlStringGetNodeList
	xmlStringLenGetNodeList
	xmlNodeListGetString
	xmlNodeListGetRawString
	xmlNodeSetContent
	xmlNodeSetContentLen
	xmlNodeAddContent
	xmlNodeAddContentLen
	xmlNodeGetContent
	xmlNodeGetLang
	xmlNodeSetLang
	xmlNodeGetSpacePreserve
	xmlNodeSetSpacePreserve
	xmlNodeGetBase
	xmlNodeSetBase
	
	/* Removing content. */
	xmlRemoveProp
	xmlUnsetProp
	xmlUnsetNsProp

	/* Internal, don't use */
	xmlBufferWriteCHAR
	xmlBufferWriteChar
	xmlBufferWriteQuotedString

	/* Namespace handling */
	xmlReconciliateNs

	/* Saving */
	xmlDocDumpFormatMemory
	xmlDocDumpMemory
	xmlDocDumpMemoryEnc
	xmlDocDumpFormatMemoryEnc
	xmlDocDump
	xmlElemDump
	xmlSaveFile
	xmlSaveFormatFile
	xmlNodeDump
	xmlSaveFileTo
	xmlSaveFormatFileTo
	xmlNodeDumpOutput
	xmlSaveFormatFileEnc
	xmlSaveFileEnc

	/* Compression */
	xmlGetDocCompressMode
	xmlSetDocCompressMode
	xmlGetCompressMode
	xmlSetCompressMode


/* uri.h
   --------------------------------------------------------------------- */
	xmlCreateURI
	xmlBuildURI
	xmlParseURI
	xmlParseURIReference
	xmlSaveUri
	xmlPrintURI
	xmlURIEscapeStr
	xmlURIUnescapeString
	xmlNormalizeURIPath
	xmlURIEscape
	xmlFreeURI


/* valid.h
   --------------------------------------------------------------------- */
	/* helper */
	xmlSplitQName2

	/* Notation */
	xmlAddNotationDecl
	xmlCopyNotationTable
	xmlFreeNotationTable
	xmlDumpNotationDecl
	xmlDumpNotationTable

	/* Element Content */
	xmlNewElementContent
	xmlCopyElementContent
	xmlFreeElementContent
	xmlSnprintfElementContent
	
	/* DEPRECATED */
	xmlSprintfElementContent
	
	/* Element */
	xmlAddElementDecl
	xmlCopyElementTable
	xmlFreeElementTable
	xmlDumpElementTable
	xmlDumpElementDecl

	/* Enumeration */
	xmlCreateEnumeration
	xmlFreeEnumeration
	xmlCopyEnumeration

	/* Attribute */
	xmlAddAttributeDecl
	xmlCopyAttributeTable
	xmlFreeAttributeTable
	xmlDumpAttributeTable
	xmlDumpAttributeDecl
	
	/* IDs */
	xmlAddID
	xmlFreeIDTable
	xmlGetID
	xmlIsID
	xmlRemoveID

	/* IDREFs */
	xmlAddRef
	xmlFreeRefTable
	xmlIsRef
	xmlRemoveRef
	xmlGetRefs

	/* The public function calls related to validity checking */
	xmlValidateRoot
	xmlValidateElementDecl
	xmlValidNormalizeAttributeValue
	xmlValidateAttributeDecl
	xmlValidateAttributeValue
	xmlValidateNotationDecl
	xmlValidateDtd
	xmlValidateDtdFinal
	xmlValidateDocument
	xmlValidateElement
	xmlValidateOneElement
	xmlValidateOneAttribute
	xmlValidateDocumentFinal
	xmlValidateNotationUse
	xmlIsMixedElement
	xmlGetDtdAttrDesc
	xmlGetDtdQAttrDesc
	xmlGetDtdNotationDesc
	xmlGetDtdQElementDesc
	xmlGetDtdElementDesc
	xmlValidGetValidElements
	xmlValidGetPotentialChildren


/* xinclude.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_XINCLUDE_ENABLED
	xmlXIncludeProcess
#endif /* LIBXML_XINCLUDE_ENABLED */


/* xlink.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_XLINK_INCLUDED
	xlinkGetDefaultDetect
	xlinkSetDefaultDetect
	xlinkGetDefaultHandler
	xlinkSetDefaultHandler
	xlinkIsLink
#endif


/* xmlautomata.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_SCHEMAS_ENABLED
	/* Building API */
	xmlNewAutomata
	xmlFreeAutomata
	xmlAutomataGetInitState
	xmlAutomataSetFinalState
	xmlAutomataNewState
	xmlAutomataNewTransition
	xmlAutomataNewCountTrans
	xmlAutomataNewEpsilon
	// xmlAutomataNewCounter <-- not activated in the source (xmlregexp.c).
	xmlAutomataCompile
#endif /* LIBXML_SCHEMAS_ENABLED */


/* xmlerror.h 
   --------------------------------------------------------------------- */
	xmlSetGenericErrorFunc
	initGenericErrorDefaultFunc
	xmlParserError
	xmlParserWarning
	xmlParserValidityError
	xmlParserValidityWarning
	xmlParserPrintFileInfo
	xmlParserPrintFileContext
	// xmlGenericError DATA <-- moved to the globals.h section
	// xmlGenericErrorContext DATA <-- moved to the globals.h section


/* xmlIO.h 
   --------------------------------------------------------------------- */
	/* Interfaces for input */
	xmlCleanupInputCallbacks
	xmlCleanupOutputCallbacks
	xmlRegisterDefaultInputCallbacks
	xmlAllocParserInputBuffer
	xmlParserInputBufferCreateFilename
	xmlParserInputBufferCreateFile
	xmlParserInputBufferCreateFd
	xmlParserInputBufferCreateMem
	xmlParserInputBufferCreateIO
	xmlParserInputBufferRead
	xmlParserInputBufferGrow
	xmlParserInputBufferPush
	xmlFreeParserInputBuffer
	xmlParserGetDirectory
	xmlRegisterInputCallbacks

	/* Interfaces for output */
	xmlRegisterDefaultOutputCallbacks
	xmlAllocOutputBuffer
	xmlOutputBufferCreateFilename
	xmlOutputBufferCreateFile
	xmlOutputBufferCreateFd
	xmlOutputBufferCreateIO
	xmlOutputBufferWrite
	xmlOutputBufferWriteString
	xmlOutputBufferFlush
	xmlOutputBufferClose
	xmlRegisterOutputCallbacks
	#ifdef LIBXML_HTTP_ENABLED
		xmlIOHTTPOpenW
		xmlRegisterHTTPPostCallbacks
	#endif /* LIBXML_HTTP_ENABLED */
	xmlNoNetExternalEntityLoader

	/**
	 * Default 'file://' protocol callbacks 
	 */
	xmlFileMatch
	xmlFileOpen 
	xmlFileRead 
	xmlFileClose

	/**
	 * Default 'http://' protocol callbacks 
	 */
	#ifdef LIBXML_HTTP_ENABLED
    	xmlIOHTTPMatch
	xmlIOHTTPOpen 
 	xmlIOHTTPRead
        xmlIOHTTPClose
	#endif /* LIBXML_HTTP_ENABLED */

	/**
	 * Default 'ftp://' protocol callbacks 
	 */
	#ifdef LIBXML_FTP_ENABLED 
	xmlIOFTPMatch 
	xmlIOFTPOpen 
 	xmlIOFTPRead
 	xmlIOFTPClose
	#endif /* LIBXML_FTP_ENABLED */

/* xmlmemory.h 
   --------------------------------------------------------------------- */
	// xmlFree DATA <-- moved to the globals.h section
	// xmlMalloc DATA <-- moved to the globals.h section
	// xmlRealloc DATA <-- moved to the globals.h section
	// xmlMemStrdup DATA <-- moved to the globals.h section
	xmlMemSetup
	xmlMemGet
	xmlInitMemory
	xmlMemUsed
	xmlMemDisplay
	xmlMemShow
	xmlMemoryDump
	#ifdef DEBUG_MEMORY_LOCATION
		xmlMallocLoc
		xmlReallocLoc
		xmlMemStrdupLoc
	#endif /* DEBUG_MEMORY_LOCATION */


/* xmlregexp.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_SCHEMAS_ENABLED
	/* The POSIX like API */
	xmlRegexpCompile
	xmlRegFreeRegexp
	xmlRegexpExec
	xmlRegexpPrint

	/* The progressive API */
	xmlRegNewExecCtxt
	xmlRegFreeExecCtxt
	xmlRegExecPushString			
#endif /* LIBXML_SCHEMAS_ENABLED */


/* xmlschemas.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_SCHEMAS_ENABLED
	/* Interfaces for parsing. */
	xmlSchemaNewParserCtxt
	xmlSchemaFreeParserCtxt
	xmlSchemaSetParserErrors
	xmlSchemaParse
	xmlSchemaFree
	xmlSchemaDump

	/* Interfaces for validating */
	xmlSchemaSetValidErrors
	xmlSchemaNewValidCtxt
	xmlSchemaFreeValidCtxt
	xmlSchemaValidateDoc
	xmlSchemaValidateStream
#endif /* LIBXML_SCHEMAS_ENABLED */


/* xmlschemastypes.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_SCHEMAS_ENABLED
	xmlSchemaInitTypes
	xmlSchemaCleanupTypes
	xmlSchemaGetPredefinedType
	xmlSchemaValidatePredefinedType
	xmlSchemaValidateFacet
	xmlSchemaFreeValue
#endif /* LIBXML_SCHEMAS_ENABLED */


/* xmlunicode.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_SCHEMAS_ENABLED
	xmlUCSIsAlphabeticPresentationForms
	xmlUCSIsArabic
	xmlUCSIsArabicPresentationFormsA
	xmlUCSIsArabicPresentationFormsB
	xmlUCSIsArmenian
	xmlUCSIsArrows
	xmlUCSIsBasicLatin
	xmlUCSIsBengali
	xmlUCSIsBlockElements
	xmlUCSIsBopomofo
	xmlUCSIsBopomofoExtended
	xmlUCSIsBoxDrawing
	xmlUCSIsBraillePatterns
	xmlUCSIsByzantineMusicalSymbols
	xmlUCSIsCJKCompatibility
	xmlUCSIsCJKCompatibilityForms
	xmlUCSIsCJKCompatibilityIdeographs
	xmlUCSIsCJKCompatibilityIdeographsSupplement
	xmlUCSIsCJKRadicalsSupplement
	xmlUCSIsCJKSymbolsandPunctuation
	xmlUCSIsCJKUnifiedIdeographs
	xmlUCSIsCJKUnifiedIdeographsExtensionA
	xmlUCSIsCJKUnifiedIdeographsExtensionB
	xmlUCSIsCherokee
	xmlUCSIsCombiningDiacriticalMarks
	xmlUCSIsCombiningHalfMarks
	xmlUCSIsCombiningMarksforSymbols
	xmlUCSIsControlPictures
	xmlUCSIsCurrencySymbols
	xmlUCSIsCyrillic
	xmlUCSIsDeseret
	xmlUCSIsDevanagari
	xmlUCSIsDingbats
	xmlUCSIsEnclosedAlphanumerics
	xmlUCSIsEnclosedCJKLettersandMonths
	xmlUCSIsEthiopic
	xmlUCSIsGeneralPunctuation
	xmlUCSIsGeometricShapes
	xmlUCSIsGeorgian
	xmlUCSIsGothic
	xmlUCSIsGreek
	xmlUCSIsGreekExtended
	xmlUCSIsGujarati
	xmlUCSIsGurmukhi
	xmlUCSIsHalfwidthandFullwidthForms
	xmlUCSIsHangulCompatibilityJamo
	xmlUCSIsHangulJamo
	xmlUCSIsHangulSyllables
	xmlUCSIsHebrew
	xmlUCSIsHighPrivateUseSurrogates
	xmlUCSIsHighSurrogates
	xmlUCSIsHiragana
	xmlUCSIsIPAExtensions
	xmlUCSIsIdeographicDescriptionCharacters
	xmlUCSIsKanbun
	xmlUCSIsKangxiRadicals
	xmlUCSIsKannada
	xmlUCSIsKatakana
	xmlUCSIsKhmer
	xmlUCSIsLao
	xmlUCSIsLatin1Supplement
	xmlUCSIsLatinExtendedA
	xmlUCSIsLatinExtendedB
	xmlUCSIsLatinExtendedAdditional
	xmlUCSIsLetterlikeSymbols
	xmlUCSIsLowSurrogates
	xmlUCSIsMalayalam
	xmlUCSIsMathematicalAlphanumericSymbols
	xmlUCSIsMathematicalOperators
	xmlUCSIsMiscellaneousSymbols
	xmlUCSIsMiscellaneousTechnical
	xmlUCSIsMongolian
	xmlUCSIsMusicalSymbols
	xmlUCSIsMyanmar
	xmlUCSIsNumberForms
	xmlUCSIsOgham
	xmlUCSIsOldItalic
	xmlUCSIsOpticalCharacterRecognition
	xmlUCSIsOriya
	xmlUCSIsPrivateUse
	xmlUCSIsRunic
	xmlUCSIsSinhala
	xmlUCSIsSmallFormVariants
	xmlUCSIsSpacingModifierLetters
	xmlUCSIsSpecials
	xmlUCSIsSuperscriptsandSubscripts
	xmlUCSIsSyriac
	xmlUCSIsTags
	xmlUCSIsTamil
	xmlUCSIsTelugu
	xmlUCSIsThaana
	xmlUCSIsThai
	xmlUCSIsTibetan
	xmlUCSIsUnifiedCanadianAboriginalSyllabics
	xmlUCSIsYiRadicals
	xmlUCSIsYiSyllables
	xmlUCSIsBlock
	xmlUCSIsCatC
	xmlUCSIsCatCc
	xmlUCSIsCatCf
	xmlUCSIsCatCo
	xmlUCSIsCatCs
	xmlUCSIsCatL
	xmlUCSIsCatLl
	xmlUCSIsCatLm
	xmlUCSIsCatLo
	xmlUCSIsCatLt
	xmlUCSIsCatLu
	xmlUCSIsCatM
	xmlUCSIsCatMc
	xmlUCSIsCatMe
	xmlUCSIsCatMn
	xmlUCSIsCatN
	xmlUCSIsCatNd
	xmlUCSIsCatNl
	xmlUCSIsCatNo
	xmlUCSIsCatP
	xmlUCSIsCatPc
	xmlUCSIsCatPd
	xmlUCSIsCatPe
	xmlUCSIsCatPf
	xmlUCSIsCatPi
	xmlUCSIsCatPo
	xmlUCSIsCatPs
	xmlUCSIsCatS
	xmlUCSIsCatSc
	xmlUCSIsCatSk
	xmlUCSIsCatSm
	xmlUCSIsCatSo
	xmlUCSIsCatZ
	xmlUCSIsCatZl
	xmlUCSIsCatZp
	xmlUCSIsCatZs
	xmlUCSIsCat
#endif /* LIBXML_SCHEMAS_ENABLED */


/* xmlversion.h 
   --------------------------------------------------------------------- */
	xmlCheckVersion


/* xpath.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_XPATH_ENABLED
	/* Objects and Nodesets handling */
	xmlXPathNAN DATA
	xmlXPathPINF DATA
	xmlXPathNINF DATA
	xmlXPathIsNaN
	xmlXPathIsInf
	
	xmlXPathFreeObject
	xmlXPathNodeSetCreate
	xmlXPathFreeNodeSetList
	xmlXPathFreeNodeSet
	xmlXPathObjectCopy
	xmlXPathCmpNodes

	/* Conversion functions to basic types */
	xmlXPathCastNumberToBoolean
	xmlXPathCastStringToBoolean
	xmlXPathCastNodeSetToBoolean
	xmlXPathCastToBoolean
	xmlXPathCastBooleanToNumber
	xmlXPathCastStringToNumber
	xmlXPathCastNodeToNumber
	xmlXPathCastNodeSetToNumber
	xmlXPathCastToNumber
	xmlXPathCastBooleanToString
	xmlXPathCastNumberToString
	xmlXPathCastNodeToString
	xmlXPathCastNodeSetToString
	xmlXPathCastToString
	xmlXPathConvertBoolean
	xmlXPathConvertNumber
	xmlXPathConvertString

	/* Context handling */
	xmlXPathInit
	xmlXPathNewContext
	xmlXPathFreeContext
	
	/* Evaluation functions. */
	xmlXPathEval
	xmlXPathEvalExpression
	xmlXPathEvalPredicate

	/* Separate compilation/evaluation entry points */
	xmlXPathCompile
	xmlXPathCompiledEval
	xmlXPathFreeCompExpr
#endif /* LIBXML_XPATH_ENABLED */


/* xpathinternals.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_XPATH_ENABLED
	xmlXPathPopBoolean
	xmlXPathPopNumber
	xmlXPathPopString
	xmlXPathPopNodeSet
	xmlXPathPopExternal

	/* Variable Lookup forwarding */
	xmlXPathRegisterVariableLookup

	/* Function Lookup forwarding */
	xmlXPathRegisterFuncLookup

	/* Error reporting */
	xmlXPatherror
	xmlXPathDebugDumpObject
	xmlXPathDebugDumpCompExpr

	/* NodeSet handling */
	xmlXPathNodeSetContains
	xmlXPathDifference
	xmlXPathIntersection
	xmlXPathDistinctSorted
	xmlXPathDistinct
	xmlXPathHasSameNodes
	xmlXPathNodeLeadingSorted
	xmlXPathLeadingSorted
	xmlXPathNodeLeading
	xmlXPathLeading
	xmlXPathNodeTrailingSorted
	xmlXPathTrailingSorted
	xmlXPathNodeTrailing
	xmlXPathTrailing

	/* Extending a context */
	xmlXPathRegisterNs
	xmlXPathNsLookup
	xmlXPathRegisteredNsCleanup
	xmlXPathRegisterFunc
	xmlXPathRegisterFuncNS
	xmlXPathRegisterVariable
	xmlXPathRegisterVariableNS
	xmlXPathFunctionLookup
	xmlXPathFunctionLookupNS
	xmlXPathRegisteredFuncsCleanup
	xmlXPathVariableLookup
	xmlXPathVariableLookupNS
	xmlXPathRegisteredVariablesCleanup

	/* Utilities to extend XPath */
	xmlXPathNewParserContext
	xmlXPathFreeParserContext

	/* TODO: remap to xmlXPathValuePop and Push */
	valuePop
	valuePush

	xmlXPathNewString
	xmlXPathNewCString
	xmlXPathWrapString
	xmlXPathWrapCString
	xmlXPathNewFloat
	xmlXPathNewBoolean
	xmlXPathNewNodeSet
	xmlXPathNewValueTree
	xmlXPathNodeSetAdd
	xmlXPathNodeSetAddUnique
	xmlXPathNodeSetAddNs
	xmlXPathNodeSetSort
	xmlXPathIdFunction
	xmlXPathRoot
	xmlXPathEvalExpr
	xmlXPathParseName
	xmlXPathParseNCName

	/* Debug */
	#ifdef LIBXML_DEBUG_ENABLED
		xmlXPathDebugDumpObject
		xmlXPathDebugDumpCompExpr
	#endif /* LIBXML_DEBUG_ENABLED */

	/* Existing functions */
	xmlXPathStringEvalNumber
	xmlXPathEvaluatePredicateResult
	xmlXPathInit
	xmlXPathStringFunction
	xmlXPathRegisterAllFunctions
	xmlXPathNodeSetCreate
	xmlXPathNodeSetAdd
	xmlXPathNodeSetMerge
	xmlXPathNodeSetDel
	xmlXPathNodeSetRemove
	xmlXPathFreeNodeSet
	xmlXPathNewNodeSet
	xmlXPathNewNodeSetList
	xmlXPathWrapNodeSet
	xmlXPathWrapExternal
	xmlXPathFreeNodeSetList

	xmlXPathNewFloat
	xmlXPathNewBoolean
	xmlXPathNewString
	xmlXPathNewCString
	xmlXPathFreeObject
	xmlXPathNewContext
	xmlXPathFreeContext

	xmlXPathEqualValues
	xmlXPathCompareValues
	xmlXPathValueFlipSign
	xmlXPathAddValues
	xmlXPathSubValues
	xmlXPathMultValues
	xmlXPathDivValues
	xmlXPathModValues

	xmlXPathIsNodeType

	/* Some of the axis navigation routines */
	xmlXPathNextSelf
	xmlXPathNextChild
	xmlXPathNextDescendant
	xmlXPathNextDescendantOrSelf
	xmlXPathNextParent
	xmlXPathNextAncestorOrSelf
	xmlXPathNextFollowingSibling
	xmlXPathNextFollowing
	xmlXPathNextNamespace
	xmlXPathNextAttribute
	xmlXPathNextPreceding
	xmlXPathNextAncestor
	xmlXPathNextPrecedingSibling

	/* The official core of XPath functions */
	xmlXPathRoot
	xmlXPathLastFunction
	xmlXPathPositionFunction
	xmlXPathCountFunction
	xmlXPathIdFunction
	xmlXPathLocalNameFunction
	xmlXPathNamespaceURIFunction
	xmlXPathStringFunction
	xmlXPathStringLengthFunction
	xmlXPathConcatFunction
	xmlXPathContainsFunction
	xmlXPathStartsWithFunction
	xmlXPathSubstringFunction
	xmlXPathSubstringBeforeFunction
	xmlXPathSubstringAfterFunction
	xmlXPathNormalizeFunction
	xmlXPathTranslateFunction
	xmlXPathNotFunction
	xmlXPathTrueFunction
	xmlXPathFalseFunction
	xmlXPathLangFunction
	xmlXPathNumberFunction
	xmlXPathSumFunction
	xmlXPathFloorFunction
	xmlXPathCeilingFunction
	xmlXPathRoundFunction
	xmlXPathBooleanFunction
#endif /* LIBXML_XPATH_ENABLED */


/* xpointer.h 
   --------------------------------------------------------------------- */
#ifdef LIBXML_XPTR_ENABLED
	/* Handling of location sets */
	xmlXPtrLocationSetCreate
	xmlXPtrFreeLocationSet
	xmlXPtrLocationSetMerge
	xmlXPtrNewRange
	xmlXPtrNewRangePoints
	xmlXPtrNewRangeNodePoint
	xmlXPtrNewRangePointNode
	xmlXPtrNewRangeNodes
	xmlXPtrNewLocationSetNodes
	xmlXPtrNewLocationSetNodeSet
	xmlXPtrNewRangeNodeObject
	xmlXPtrNewCollapsedRange
	xmlXPtrLocationSetAdd
	xmlXPtrWrapLocationSet
	xmlXPtrLocationSetDel
	xmlXPtrLocationSetRemove

	/* Functions */
	xmlXPtrNewContext
	xmlXPtrEval
	xmlXPtrRangeToFunction
	xmlXPtrBuildNodeList
	xmlXPtrEvalRangePredicate
#endif /* LIBXML_XPTR_ENABLED */


