From c95e01f355ab72d2a1cb2d65fd97caf12a83d944 Mon Sep 17 00:00:00 2001
From: dkuhlman <none@none>
Date: Wed, 3 Sep 2014 11:55:39 -0700
Subject: [PATCH] Added check to generation of get_valueOf_ in
 generateToEtreeChildren

---
 README                 | 5 +++++
 generateDS.py          | 5 +++--
 tests/to_etree1_sup.py | 2 ++
 tests/to_etree2_sup.py | 2 ++
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/README b/README
index fc0286a..8ab152e 100644
--- a/README
+++ b/README
@@ -141,6 +141,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Change history
 --------------
 
+Version 2.12g (09/03/2014)
+- Minor fix to function generateToEtreeChildren.  Must generate
+  call to get_valueOf only when defined (i.e. when element is
+  simpleContent or isMixed).
+
 Version 2.12f (08/12/2014)
 - Fix for substitutionGroup conflict with keyword name mapping.
   Thanks to Leonid Minchin for finding and helping with this
diff --git a/generateDS.py b/generateDS.py
index 4c94c9a..ba951c5 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -2319,8 +2319,9 @@ def generateToEtreeChildren(wrt, element, Targetnamespace):
                             "mapping_=mapping_)\n" % (
                                 name, unmappedName,))
     else:
-        wrt("        if self.hasContent_():\n")
-        wrt("            element.text = self.gds_format_string(self.get_valueOf_())\n")
+        if element.getSimpleContent() or element.isMixed():
+            wrt("        if self.hasContent_():\n")
+            wrt("            element.text = self.gds_format_string(self.get_valueOf_())\n")
 #end generateToEtreeChildren
 
 
diff --git a/tests/to_etree1_sup.py b/tests/to_etree1_sup.py
index 3fc3ea6..75d42db 100644
--- a/tests/to_etree1_sup.py
+++ b/tests/to_etree1_sup.py
@@ -1557,6 +1557,8 @@ class paramType(GeneratedsSuper):
             element.set('type', self.gds_format_string(self.type_))
         if self.id is not None:
             element.set('id', self.gds_format_string(self.id))
+        if self.hasContent_():
+            element.text = self.gds_format_string(self.get_valueOf_())
         if mapping_ is not None:
             mapping_[self] = element
         return element
diff --git a/tests/to_etree2_sup.py b/tests/to_etree2_sup.py
index 3fc3ea6..75d42db 100644
--- a/tests/to_etree2_sup.py
+++ b/tests/to_etree2_sup.py
@@ -1557,6 +1557,8 @@ class paramType(GeneratedsSuper):
             element.set('type', self.gds_format_string(self.type_))
         if self.id is not None:
             element.set('id', self.gds_format_string(self.id))
+        if self.hasContent_():
+            element.text = self.gds_format_string(self.get_valueOf_())
         if mapping_ is not None:
             mapping_[self] = element
         return element
-- 
GitLab