Annotation of embedaddon/libxml2/python/tests/schema.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" encoding="iso-8859-1"?>
! 9: <schema xmlns = "http://www.w3.org/2001/XMLSchema">
! 10: <element name = "Customer">
! 11: <complexType>
! 12: <sequence>
! 13: <element name = "FirstName" type = "string" />
! 14: <element name = "MiddleInitial" type = "string" />
! 15: <element name = "LastName" type = "string" />
! 16: </sequence>
! 17: <attribute name = "customerID" type = "integer" />
! 18: </complexType>
! 19: </element>
! 20: </schema>"""
! 21:
! 22: instance="""<?xml version="1.0" encoding="iso-8859-1"?>
! 23: <Customer customerID = "24332">
! 24: <FirstName>Raymond</FirstName>
! 25: <MiddleInitial>G</MiddleInitial>
! 26: <LastName>Bayliss</LastName>
! 27: </Customer>
! 28: """
! 29:
! 30: ctxt_parser = libxml2.schemaNewMemParserCtxt(schema, len(schema))
! 31: ctxt_schema = ctxt_parser.schemaParse()
! 32: ctxt_valid = ctxt_schema.schemaNewValidCtxt()
! 33: doc = libxml2.parseDoc(instance)
! 34: ret = doc.schemaValidateDoc(ctxt_valid)
! 35: if ret != 0:
! 36: print "error doing schema validation"
! 37: sys.exit(1)
! 38:
! 39: doc.freeDoc()
! 40: del ctxt_parser
! 41: del ctxt_schema
! 42: del ctxt_valid
! 43: libxml2.schemaCleanupTypes()
! 44:
! 45: # Memory debug specific
! 46: libxml2.cleanupParser()
! 47: if libxml2.debugMemory(1) == 0:
! 48: print "OK"
! 49: else:
! 50: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
! 51: libxml2.dumpMemory()
! 52:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>