xmlclass/xsdschema.py
changeset 1315 ff14a66bbd12
parent 1290 13ee5f4ab612
child 1322 0a9227f743b3
--- a/xmlclass/xsdschema.py	Tue Sep 10 23:23:45 2013 +0200
+++ b/xmlclass/xsdschema.py	Wed Sep 11 23:48:41 2013 +0200
@@ -939,9 +939,10 @@
     factory.BlockDefault = attributes["blockDefault"]
     factory.FinalDefault = attributes["finalDefault"]
     
-    factory.TargetNamespace = factory.DefinedNamespaces.get(attributes["targetNamespace"], None)
+    targetNamespace = attributes.get("targetNamespace", None)
+    factory.TargetNamespace = factory.DefinedNamespaces.get(targetNamespace, None)
     if factory.TargetNamespace is not None:
-        factory.etreeNamespaceFormat = "{%s}%%s" % attributes["targetNamespace"]
+        factory.etreeNamespaceFormat = "{%s}%%s" % targetNamespace
     factory.Namespaces[factory.TargetNamespace] = {}
     
     annotations, children = factory.ReduceElements(elements, True)
@@ -1097,7 +1098,7 @@
 This function generate a xml from the xsd given as a string
 """
 def GenerateParserFromXSDstring(xsdstring):
-    return GenerateParser(XSDClassFactory(minidom.parseString(xsdstring)))
+    return GenerateParser(XSDClassFactory(minidom.parseString(xsdstring)), xsdstring)
 
 
 #-------------------------------------------------------------------------------
@@ -2521,19 +2522,3 @@
     "anyType": {"type": COMPLEXTYPE, "extract": lambda x:None},
 }
 
-if __name__ == '__main__':
-    classes = GenerateClassesFromXSD("test.xsd")
-    
-    # Code for test of test.xsd
-    xmlfile = open("po.xml", 'r')
-    tree = minidom.parse(xmlfile)
-    xmlfile.close()
-    test = classes["PurchaseOrderType"]()
-    for child in tree.childNodes:
-        if child.nodeType == tree.ELEMENT_NODE and child.nodeName == "purchaseOrder":
-            test.loadXMLTree(child)
-    test.items.item[0].setquantity(2)
-    testfile = open("test.xml", 'w')
-    testfile.write(u'<?xml version=\"1.0\"?>\n')
-    testfile.write(test.generateXMLText("purchaseOrder").encode("utf-8"))
-    testfile.close()