Annotation of embedaddon/libxml2/python/tests/schema.py, revision 1.1.1.2
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:
1.1.1.2 ! misho 36: print("error doing schema validation")
1.1 misho 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:
1.1.1.2 ! misho 48: print("OK")
1.1 misho 49: else:
1.1.1.2 ! misho 50: print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1 misho 51: libxml2.dumpMemory()
52:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>