#!/usr/bin/python -u import libxml2 import libxml2mod import sys

def error(msg, data):

pass

# Memory debug specific libxml2.debugMemory(1)

dtd=“”“<!ELEMENT foo EMPTY>”“” instance=“”“<?xml version=”1.0“?> <foo></foo>”“”

dtd = libxml2.parseDTD(None, 'test.dtd') ctxt = libxml2.newValidCtxt() libxml2mod.xmlSetValidErrors(ctxt._o, error, error) doc = libxml2.parseDoc(instance) ret = doc.validateDtd(ctxt, dtd) if ret != 1:

print("error doing DTD validation")
sys.exit(1)

doc.freeDoc() dtd.freeDtd() del dtd del ctxt

# Memory debug specific libxml2.cleanupParser() if libxml2.debugMemory(1) == 0:

print("OK")

else:

print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
libxml2.dumpMemory()