Annotation of embedaddon/libxml2/python/tests/relaxng.py, revision 1.1
1.1 ! misho 1: #!/usr/bin/python -u
! 2: import libxml2
! 3: import sys
! 4:
! 5: # Memory debug specific
! 6: libxml2.debugMemory(1)
! 7:
! 8: schema="""<?xml version="1.0"?>
! 9: <element name="foo"
! 10: xmlns="http://relaxng.org/ns/structure/1.0"
! 11: xmlns:a="http://relaxng.org/ns/annotation/1.0"
! 12: xmlns:ex1="http://www.example.com/n1"
! 13: xmlns:ex2="http://www.example.com/n2">
! 14: <a:documentation>A foo element.</a:documentation>
! 15: <element name="ex1:bar1">
! 16: <empty/>
! 17: </element>
! 18: <element name="ex2:bar2">
! 19: <empty/>
! 20: </element>
! 21: </element>
! 22: """
! 23: instance="""<?xml version="1.0"?>
! 24: <foo><pre1:bar1 xmlns:pre1="http://www.example.com/n1"/><pre2:bar2 xmlns:pre2="http://www.example.com/n2"/></foo>"""
! 25:
! 26: rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
! 27: rngs = rngp.relaxNGParse()
! 28: ctxt = rngs.relaxNGNewValidCtxt()
! 29: doc = libxml2.parseDoc(instance)
! 30: ret = doc.relaxNGValidateDoc(ctxt)
! 31: if ret != 0:
! 32: print "error doing RelaxNG validation"
! 33: sys.exit(1)
! 34:
! 35: doc.freeDoc()
! 36: del rngp
! 37: del rngs
! 38: del ctxt
! 39: libxml2.relaxNGCleanupTypes()
! 40:
! 41: # Memory debug specific
! 42: libxml2.cleanupParser()
! 43: if libxml2.debugMemory(1) == 0:
! 44: print "OK"
! 45: else:
! 46: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
! 47: libxml2.dumpMemory()
! 48:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>