-#!/usr/bin/python -u\r
-import libxml2\r
-import sys\r
-\r
-ARG = 'test string'\r
-\r
-class ErrorHandler:\r
-\r
- def __init__(self):\r
- self.errors = []\r
-\r
- def handler(self, msg, data):\r
- if data != ARG:\r
- raise Exception, "Error handler did not receive correct argument"\r
- self.errors.append(msg)\r
-\r
-# Memory debug specific\r
-libxml2.debugMemory(1)\r
-\r
-schema="""<?xml version="1.0" encoding="iso-8859-1"?>\r
-<schema xmlns = "http://www.w3.org/2001/XMLSchema">\r
- <element name = "Customer">\r
- <complexType>\r
- <sequence>\r
- <element name = "FirstName" type = "string" />\r
- <element name = "MiddleInitial" type = "string" />\r
- <element name = "LastName" type = "string" />\r
- </sequence>\r
- <attribute name = "customerID" type = "integer" />\r
- </complexType>\r
- </element>\r
-</schema>"""\r
-\r
-valid="""<?xml version="1.0" encoding="iso-8859-1"?>\r
-<Customer customerID = "24332">\r
- <FirstName>Raymond</FirstName>\r
- <MiddleInitial>G</MiddleInitial>\r
- <LastName>Bayliss</LastName>\r
-</Customer> \r
-"""\r
-\r
-invalid="""<?xml version="1.0" encoding="iso-8859-1"?>\r
-<Customer customerID = "24332">\r
- <MiddleInitial>G</MiddleInitial>\r
- <LastName>Bayliss</LastName>\r
-</Customer> \r
-"""\r
-\r
-e = ErrorHandler()\r
-ctxt_parser = libxml2.schemaNewMemParserCtxt(schema, len(schema))\r
-ctxt_schema = ctxt_parser.schemaParse()\r
-ctxt_valid = ctxt_schema.schemaNewValidCtxt()\r
-ctxt_valid.setValidityErrorHandler(e.handler, e.handler, ARG)\r
-\r
-# Test valid document\r
-doc = libxml2.parseDoc(valid)\r
-ret = doc.schemaValidateDoc(ctxt_valid)\r
-if ret != 0 or e.errors:\r
- print "error doing schema validation"\r
- sys.exit(1)\r
-doc.freeDoc()\r
-\r
-# Test invalid document\r
-doc = libxml2.parseDoc(invalid)\r
-ret = doc.schemaValidateDoc(ctxt_valid)\r
-if ret == 0 or not e.errors:\r
- print "Error: document supposer to be schema invalid"\r
- sys.exit(1)\r
-doc.freeDoc()\r
-\r
-del ctxt_parser\r
-del ctxt_schema\r
-del ctxt_valid\r
-libxml2.schemaCleanupTypes()\r
-\r
-# Memory debug specific\r
-libxml2.cleanupParser()\r
-if libxml2.debugMemory(1) == 0:\r
- print "OK"\r
-else:\r
- print "Memory leak %d bytes" % (libxml2.debugMemory(1))\r
- libxml2.dumpMemory()\r
-\r
+#!/usr/bin/python -u
+import libxml2
+import sys
+
+ARG = 'test string'
+
+class ErrorHandler:
+
+ def __init__(self):
+ self.errors = []
+
+ def handler(self, msg, data):
+ if data != ARG:
+ raise Exception, "Error handler did not receive correct argument"
+ self.errors.append(msg)
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+schema="""<?xml version="1.0" encoding="iso-8859-1"?>
+<schema xmlns = "http://www.w3.org/2001/XMLSchema">
+ <element name = "Customer">
+ <complexType>
+ <sequence>
+ <element name = "FirstName" type = "string" />
+ <element name = "MiddleInitial" type = "string" />
+ <element name = "LastName" type = "string" />
+ </sequence>
+ <attribute name = "customerID" type = "integer" />
+ </complexType>
+ </element>
+</schema>"""
+
+valid="""<?xml version="1.0" encoding="iso-8859-1"?>
+<Customer customerID = "24332">
+ <FirstName>Raymond</FirstName>
+ <MiddleInitial>G</MiddleInitial>
+ <LastName>Bayliss</LastName>
+</Customer>
+"""
+
+invalid="""<?xml version="1.0" encoding="iso-8859-1"?>
+<Customer customerID = "24332">
+ <MiddleInitial>G</MiddleInitial>
+ <LastName>Bayliss</LastName>
+</Customer>
+"""
+
+e = ErrorHandler()
+ctxt_parser = libxml2.schemaNewMemParserCtxt(schema, len(schema))
+ctxt_schema = ctxt_parser.schemaParse()
+ctxt_valid = ctxt_schema.schemaNewValidCtxt()
+ctxt_valid.setValidityErrorHandler(e.handler, e.handler, ARG)
+
+# Test valid document
+doc = libxml2.parseDoc(valid)
+ret = doc.schemaValidateDoc(ctxt_valid)
+if ret != 0 or e.errors:
+ print "error doing schema validation"
+ sys.exit(1)
+doc.freeDoc()
+
+# Test invalid document
+doc = libxml2.parseDoc(invalid)
+ret = doc.schemaValidateDoc(ctxt_valid)
+if ret == 0 or not e.errors:
+ print "Error: document supposer to be schema invalid"
+ sys.exit(1)
+doc.freeDoc()
+
+del ctxt_parser
+del ctxt_schema
+del ctxt_valid
+libxml2.schemaCleanupTypes()
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print "OK"
+else:
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+ libxml2.dumpMemory()
+