File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests / schema.py
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:34 2014 UTC (10 years, 3 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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>