--- 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: