          Generated Classes for libxml2-python

#
# Global functions of the module
#


# functions from module HTMLparser
htmlFreeParserCtxt()
htmlHandleOmittedElem()
htmlIsScriptAttribute()
htmlParseCharRef()
htmlParseChunk()
htmlParseDoc()
htmlParseElement()
htmlParseFile()

# functions from module HTMLtree
htmlNewDoc()
htmlNewDocNoDtD()

# functions from module catalog
catalogAdd()
catalogCleanup()
catalogConvert()
catalogDump()
catalogGetPublic()
catalogGetSystem()
catalogRemove()
catalogResolve()
catalogResolvePublic()
catalogResolveSystem()
catalogResolveURI()
catalogSetDebug()
initializeCatalog()
loadACatalog()
loadCatalog()
loadCatalogs()
loadSGMLSuperCatalog()
newCatalog()
parseCatalogFile()

# functions from module debugXML
debugDumpString()
shellPrintXPathError()

# functions from module encoding
UTF8Strlen()
UTF8Strloc()
UTF8Strndup()
UTF8Strpos()
UTF8Strsize()
UTF8Strsub()
addEncodingAlias()
checkUTF8()
cleanupCharEncodingHandlers()
cleanupEncodingAliases()
delEncodingAlias()
encodingAlias()
initCharEncodingHandlers()

# functions from module entities
cleanupPredefinedEntities()
initializePredefinedEntities()
predefinedEntity()

# functions from module nanoftp
nanoFTPCleanup()
nanoFTPInit()
nanoFTPProxy()
nanoFTPScanProxy()

# functions from module nanohttp
nanoHTTPCleanup()
nanoHTTPInit()
nanoHTTPScanProxy()

# functions from module parser
cleanupParser()
createDocParserCtxt()
initParser()
keepBlanksDefault()
lineNumbersDefault()
parseDTD()
parseDoc()
parseEntity()
parseFile()
parseMemory()
pedanticParserDefault()
recoverDoc()
recoverFile()
recoverMemory()
substituteEntitiesDefault()

# functions from module parserInternals
checkLanguageID()
copyChar()
copyCharMultiByte()
createEntityParserCtxt()
createFileParserCtxt()
createMemoryParserCtxt()
htmlCreateFileParserCtxt()
htmlInitAutoClose()
isBaseChar()
isBlank()
isChar()
isCombining()
isDigit()
isExtender()
isIdeographic()
isLetter()
isPubidChar()
namePop()
namePush()
newParserCtxt()
nodePop()
nodePush()

# functions from module python
SAXParseFile()
createPushParser()
debugMemory()
dumpMemory()
htmlCreatePushParser()
htmlSAXParseFile()
newNode()
registerErrorHandler()

# functions from module tree
compressMode()
newComment()
newDoc()
newPI()
newText()
newTextLen()
setCompressMode()

# functions from module uri
URIEscape()
URIEscapeStr()
URIUnescapeString()
buildURI()
createURI()
normalizeURIPath()
parseURI()

# functions from module xmlIO
cleanupInputCallbacks()
cleanupOutputCallbacks()
parserGetDirectory()
registerDefaultInputCallbacks()
registerDefaultOutputCallbacks()
registerHTTPPostCallbacks()

# functions from module xmlversion
checkVersion()

# functions from module xpathInternals
valuePop()


#
# Set of classes of the module
#



Class xmlNode(xmlCore)
    # accessors
    ns()
    nsDefs()

    # functions from module debugXML
    debugDumpNode()
    debugDumpNodeList()
    debugDumpOneNode()
    lsCountNode()
    lsOneNode()
    shellPrintNode()

    # functions from module tree
    addChild()
    addChildList()
    addContent()
    addContentLen()
    addNextSibling()
    addPrevSibling()
    addSibling()
    copyNode()
    copyNodeList()
    copyProp()
    copyPropList()
    docCopyNode()
    docSetRootElement()
    freeNode()
    freeNodeList()
    getBase()
    getContent()
    getLang()
    getSpacePreserve()
    hasNsProp()
    hasProp()
    isBlankNode()
    isText()
    lastChild()
    lineNo()
    listGetRawString()
    listGetString()
    newChild()
    newNs()
    newNsProp()
    newProp()
    newTextChild()
    nodePath()
    nsProp()
    prop()
    reconciliateNs()
    replaceNode()
    searchNs()
    searchNsByHref()
    setBase()
    setContent()
    setContentLen()
    setLang()
    setListDoc()
    setName()
    setNs()
    setNsProp()
    setProp()
    setSpacePreserve()
    setTreeDoc()
    textConcat()
    textMerge()
    unlinkNode()
    unsetNsProp()
    unsetProp()

    # functions from module valid
    isID()
    isRef()
    validNormalizeAttributeValue()

    # functions from module xpath
    xpathCastNodeToNumber()
    xpathCastNodeToString()
    xpathCmpNodes()

    # functions from module xpathInternals
    xpathNewNodeSet()
    xpathNewValueTree()
    xpathNextAncestor()
    xpathNextAncestorOrSelf()
    xpathNextAttribute()
    xpathNextChild()
    xpathNextDescendant()
    xpathNextDescendantOrSelf()
    xpathNextFollowing()
    xpathNextFollowingSibling()
    xpathNextNamespace()
    xpathNextParent()
    xpathNextPreceding()
    xpathNextPrecedingSibling()
    xpathNextSelf()


Class xmlDoc(xmlNode)

    # functions from module HTMLparser
    htmlAutoCloseTag()
    htmlIsAutoClosed()

    # functions from module HTMLtree
    htmlDocDump()
    htmlGetMetaEncoding()
    htmlNodeDumpFile()
    htmlNodeDumpFileFormat()
    htmlSaveFile()
    htmlSaveFileEnc()
    htmlSaveFileFormat()
    htmlSetMetaEncoding()

    # functions from module debugXML
    debugDumpDocument()
    debugDumpDocumentHead()
    debugDumpEntities()

    # functions from module entities
    addDocEntity()
    addDtdEntity()
    docEntity()
    dtdEntity()
    encodeEntities()
    encodeEntitiesReentrant()
    encodeSpecialChars()
    parameterEntity()

    # functions from module tree
    copyDoc()
    createIntSubset()
    docCompressMode()
    dump()
    elemDump()
    freeDoc()
    getRootElement()
    intSubset()
    newCDataBlock()
    newCharRef()
    newDocComment()
    newDocFragment()
    newDocNode()
    newDocProp()
    newDocRawNode()
    newDocText()
    newDocTextLen()
    newDtd()
    newGlobalNs()
    newReference()
    saveFile()
    saveFileEnc()
    saveFormatFile()
    saveFormatFileEnc()
    setDocCompressMode()
    stringGetNodeList()
    stringLenGetNodeList()

    # functions from module valid
    ID()
    isMixedElement()
    removeID()
    removeRef()

    # functions from module xinclude
    xincludeProcess()

    # functions from module xpath
    xpathNewContext()


Class xmlAttribute(xmlNode)


Class xmlNs(xmlNode)

    # functions from module tree
    copyNamespace()
    copyNamespaceList()
    freeNs()
    freeNsList()


Class xmlDtd(xmlNode)

    # functions from module debugXML
    debugDumpDTD()

    # functions from module tree
    copyDtd()
    freeDtd()

    # functions from module valid
    dtdAttrDesc()
    dtdElementDesc()
    dtdQAttrDesc()
    dtdQElementDesc()
Class catalog()

    # functions from module catalog
    add()
    catalogIsEmpty()
    convertSGMLCatalog()
    dump()
    freeCatalog()
    remove()
    resolve()
    resolvePublic()
    resolveSystem()
    resolveURI()
Class xpathParserContext()
    # accessors
    context()

    # functions from module xpathInternals
    xpathAddValues()
    xpathBooleanFunction()
    xpathCeilingFunction()
    xpathCompareValues()
    xpathConcatFunction()
    xpathContainsFunction()
    xpathCountFunction()
    xpathDivValues()
    xpathEqualValues()
    xpathEvalExpr()
    xpathFalseFunction()
    xpathFloorFunction()
    xpathFreeParserContext()
    xpathIdFunction()
    xpathLangFunction()
    xpathLastFunction()
    xpathLocalNameFunction()
    xpathModValues()
    xpathMultValues()
    xpathNamespaceURIFunction()
    xpathNormalizeFunction()
    xpathNotFunction()
    xpathNumberFunction()
    xpathParseNCName()
    xpathParseName()
    xpathPopBoolean()
    xpathPopNumber()
    xpathPopString()
    xpathPositionFunction()
    xpathRoot()
    xpathRoundFunction()
    xpathStartsWithFunction()
    xpathStringFunction()
    xpathStringLengthFunction()
    xpathSubValues()
    xpathSubstringAfterFunction()
    xpathSubstringBeforeFunction()
    xpathSubstringFunction()
    xpathSumFunction()
    xpathTranslateFunction()
    xpathTrueFunction()
    xpathValueFlipSign()
    xpatherror()
Class parserCtxt()
    # accessors
    doc()
    isValid()
    lineNumbers()
    loadSubset()
    pedantic()
    replaceEntities()
    validate()
    wellFormed()

    # functions from module parser
    clearParserCtxt()
    freeParserCtxt()
    initParserCtxt()
    parseChunk()
    parseDocument()
    parseExtParsedEnt()
    stopParser()

    # functions from module parserInternals
    decodeEntities()
    namespaceParseNCName()
    namespaceParseNSDef()
    nextChar()
    parseAttValue()
    parseAttributeListDecl()
    parseCDSect()
    parseCharData()
    parseCharRef()
    parseComment()
    parseContent()
    parseDocTypeDecl()
    parseElement()
    parseElementDecl()
    parseEncName()
    parseEncodingDecl()
    parseEndTag()
    parseEntityDecl()
    parseEntityRef()
    parseExternalSubset()
    parseMarkupDecl()
    parseMisc()
    parseName()
    parseNamespace()
    parseNmtoken()
    parseNotationDecl()
    parsePEReference()
    parsePI()
    parsePITarget()
    parsePubidLiteral()
    parseQuotedString()
    parseReference()
    parseSDDecl()
    parseStartTag()
    parseSystemLiteral()
    parseTextDecl()
    parseVersionInfo()
    parseVersionNum()
    parseXMLDecl()
    parserHandlePEReference()
    parserHandleReference()
    popInput()
    scanName()
    skipBlankChars()
    stringDecodeEntities()


Class xmlElement(xmlNode)


Class xmlEntity(xmlNode)

    # functions from module parserInternals
    handleEntity()


Class xmlAttr(xmlNode)

    # functions from module debugXML
    debugDumpAttr()
    debugDumpAttrList()

    # functions from module tree
    freeProp()
    freePropList()
    removeProp()
Class URI()
    # accessors
    authority()
    fragment()
    opaque()
    path()
    port()
    query()
    scheme()
    server()
    setAuthority()
    setFragment()
    setOpaque()
    setPath()
    setPort()
    setQuery()
    setScheme()
    setServer()
    setUser()
    user()

    # functions from module uri
    freeURI()
    parseURIReference()
    printURI()
    saveUri()
Class xpathContext()
    # accessors
    contextDoc()
    contextNode()
    contextPosition()
    contextSize()
    function()
    functionURI()
    setContextDoc()
    setContextNode()

    # functions from module python
    registerXPathFunction()

    # functions from module xpath
    xpathEval()
    xpathEvalExpression()
    xpathFreeContext()

    # functions from module xpathInternals
    xpathNewParserContext()
    xpathNsLookup()
    xpathRegisterAllFunctions()
    xpathRegisterNs()
    xpathRegisteredFuncsCleanup()
    xpathRegisteredNsCleanup()
    xpathRegisteredVariablesCleanup()
    xpathVariableLookup()
    xpathVariableLookupNS()
