diff --git a/generateDS.py b/generateDS.py
index 69b5bcc24d9861b1c9a2e7adea5aa0c75e07d07c..26d59f81455a65676c8c81d891ce6a96cac51f2a 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -2789,57 +2789,56 @@ def generateExportChildren(wrt, element, hasChildren, namespace):
             wrt("%s    for item_ in self.content_:\n" % (fill, ))
             wrt("%s        item_.export(outfile, level, item_.name, "
                 "namespace_, pretty_print=pretty_print)\n" % (fill, ))
-        else:
-            wrt('%sif pretty_print:\n' % (fill, ))
-            wrt("%s    eol_ = '\\n'\n" % (fill, ))
-            wrt('%selse:\n' % (fill, ))
-            wrt("%s    eol_ = ''\n" % (fill, ))
-            any_type_child = None
-            for child in element.getChildren():
-                unmappedName = child.getName()
-                name = child.getCleanName()
-                # fix_abstract
-                type_element = None
-                abstract_child = False
-                type_name = child.getAttrs().get('type')
-                if type_name:
-                    type_element = ElementDict.get(type_name)
-                if type_element and type_element.isAbstract():
-                    abstract_child = True
-                if child.getType() == AnyTypeIdentifier:
-                    any_type_child = child
+        wrt('%sif pretty_print:\n' % (fill, ))
+        wrt("%s    eol_ = '\\n'\n" % (fill, ))
+        wrt('%selse:\n' % (fill, ))
+        wrt("%s    eol_ = ''\n" % (fill, ))
+        any_type_child = None
+        for child in element.getChildren():
+            unmappedName = child.getName()
+            name = child.getCleanName()
+            # fix_abstract
+            type_element = None
+            abstract_child = False
+            type_name = child.getAttrs().get('type')
+            if type_name:
+                type_element = ElementDict.get(type_name)
+            if type_element and type_element.isAbstract():
+                abstract_child = True
+            if child.getType() == AnyTypeIdentifier:
+                any_type_child = child
+            else:
+                if abstract_child and child.getMaxOccurs() > 1:
+                    wrt("%sfor %s_ in self.%s:\n" % (
+                        fill, name, name,))
+                    wrt("%s    %s_.export(outfile, level, namespace_, "
+                        "name_='%s', pretty_print=pretty_print)\n" % (
+                            fill, name, unmappedName, ))
+                elif abstract_child:
+                    wrt("%sif self.%s is not None:\n" % (fill, name, ))
+                    wrt("%s    self.%s.export(outfile, level, "
+                        "namespace_, name_='%s', "
+                        "pretty_print=pretty_print)\n" % (
+                            fill, name, unmappedName, ))
+                elif child.getMaxOccurs() > 1:
+                    generateExportFn_2(
+                        wrt, child, unmappedName, namespace, '    ')
                 else:
-                    if abstract_child and child.getMaxOccurs() > 1:
-                        wrt("%sfor %s_ in self.%s:\n" % (
-                            fill, name, name,))
-                        wrt("%s    %s_.export(outfile, level, namespace_, "
-                            "name_='%s', pretty_print=pretty_print)\n" % (
-                                fill, name, unmappedName, ))
-                    elif abstract_child:
-                        wrt("%sif self.%s is not None:\n" % (fill, name, ))
-                        wrt("%s    self.%s.export(outfile, level, "
-                            "namespace_, name_='%s', "
-                            "pretty_print=pretty_print)\n" % (
-                                fill, name, unmappedName, ))
-                    elif child.getMaxOccurs() > 1:
-                        generateExportFn_2(
-                            wrt, child, unmappedName, namespace, '    ')
+                    if (child.getOptional()):
+                        generateExportFn_3(
+                            wrt, child, unmappedName, namespace, '')
                     else:
-                        if (child.getOptional()):
-                            generateExportFn_3(
-                                wrt, child, unmappedName, namespace, '')
-                        else:
-                            generateExportFn_1(
-                                wrt, child, unmappedName, namespace, '')
-            if any_type_child is not None:
-                if any_type_child.getMaxOccurs() > 1:
-                    wrt('        for obj_ in self.anytypeobjs_:\n')
-                    wrt("            obj_.export(outfile, level, "
-                        "namespace_, pretty_print=pretty_print)\n")
-                else:
-                    wrt('        if self.anytypeobjs_ is not None:\n')
-                    wrt("            self.anytypeobjs_.export(outfile, "
-                        "level, namespace_, pretty_print=pretty_print)\n")
+                        generateExportFn_1(
+                            wrt, child, unmappedName, namespace, '')
+        if any_type_child is not None:
+            if any_type_child.getMaxOccurs() > 1:
+                wrt('        for obj_ in self.anytypeobjs_:\n')
+                wrt("            obj_.export(outfile, level, "
+                    "namespace_, pretty_print=pretty_print)\n")
+            else:
+                wrt('        if self.anytypeobjs_ is not None:\n')
+                wrt("            self.anytypeobjs_.export(outfile, "
+                    "level, namespace_, pretty_print=pretty_print)\n")
     return hasChildren
 # end generateExportChildren
 
@@ -2903,6 +2902,8 @@ def generateExportFn(wrt, prefix, element, namespace, nameSpacesDef):
         wrt("        outfile.write('>')\n")
         wrt("        self.exportChildren(outfile, level + 1, "
             "namespace_, name_, pretty_print=pretty_print)\n")
+        wrt("        outfile.write(self.convert_unicode("
+            "self.valueOf_))\n")
         wrt("        outfile.write('</%s%s>%s' % (namespace_, name_, eol_))\n")
     else:
         wrt("        if self.hasContent_():\n")
@@ -4922,8 +4923,8 @@ def generateHascontentMethod(wrt, prefix, element):
         if not firstTime:
             wrt(' or\n')
         firstTime = False
-        wrt('            1 if type(self.valueOf_) '
-            'in [int,float] else self.valueOf_')
+        wrt('            (1 if type(self.valueOf_) '
+            'in [int,float] else self.valueOf_)')
     parentName, parent = getParentName(element)
     if parentName:
         elName = element.getCleanName()