xmlclass/xmlclass.py
changeset 125 394d9f168258
parent 119 564564136c79
child 151 aaa80b48bead
--- a/xmlclass/xmlclass.py	Tue Nov 27 12:58:34 2007 +0100
+++ b/xmlclass/xmlclass.py	Thu Dec 06 18:05:29 2007 +0100
@@ -212,8 +212,11 @@
                             classname = "%s_%s"%(parent, nodename)
                         else:
                             classname = nodename
-                        self.GenerateXSDClasses(node, classname)
-                        nodetype = "cls:%s"%classname
+                        if len(node.childNodes) > 0:
+                            self.GenerateXSDClasses(node, classname)
+                            nodetype = "cls:%s"%classname
+                        else:
+                            nodetype = classname
                     if name == "attribute":
                         if "use" in node._attrs:
                             use = GetAttributeValue(node._attrs["use"])
@@ -683,8 +686,10 @@
                         elif attr_type.startswith("cls:"):
                             val = classes[attr_type[4:].replace("[]","")]()
                             val.loadXMLTree(node)
+                        else:
+                            val = None
                         # Stock value in content attribute
-                        if val:
+                        if val is not None:
                             if attr_type.endswith("[]"):
                                 if self.content:
                                     self.content["value"].append(val)
@@ -692,6 +697,8 @@
                                     self.content = {"name":name,"value":[val]}
                             else:
                                 self.content = {"name":name,"value":val}
+                        else:
+                            self.content = {"name":name,"value":None}
                     
                     # Class has a list of attributes that can have different value types
                     elif "multichoice_content" in members.keys() and name in members["multichoice_content"].keys():
@@ -803,8 +810,11 @@
                     elif value_type.endswith("[]"):
                         for content in self.content["value"]:
                             text += content.generateXMLText(self.content["name"], indent + 1)
+                    elif self.content["value"] is not None:
+                        text += self.content["value"].generateXMLText(self.content["name"], indent + 1)
                     else:
-                        text += self.content["value"].generateXMLText(self.content["name"], indent + 1)
+                        ind5, ind6 = getIndent(indent + 1, self.content["name"])
+                        text += ind5 + "<%s/>\n"%self.content["name"]
             elif attr == "multichoice_content":
                 if len(self.content) > 0:
                     for element in self.content: