diff --git a/README.rst b/README.rst index ea22cdcfddf032a17926d6cccc8560e36d7979ea..e692f4dc4a99d4cd10c8241d87b17bfc1d8203f7 100644 --- a/README.rst +++ b/README.rst @@ -141,6 +141,16 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Change history -------------- +Version 2.29.23 (08/16/2018) + +- Added new command line option "--create-mandatory-children". If a + child is defined with minOccurs="1" and maxOccurs="1" and the + child is xs:complexType and the child is not defined with + xs:simpleContent, then in the element's constructor generate code + that automatically creates an instance of the child. Thanks to + Vincent Helfre for analyzing this issue and providing guidance + toward a solution. + Version 2.29.22 (08/03/2018) - Fixed exception that occurs when (1) an xs:complexType is defined diff --git a/generateDS.html b/generateDS.html index ae3ed4795f72884b4c1574396ebfa15a7bf0ab26..6dda5e420b568fd96fcffa89bd7366f85d01c301 100644 --- a/generateDS.html +++ b/generateDS.html @@ -220,7 +220,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.22</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.23</td> </tr> </tbody> </table> @@ -229,7 +229,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">August 03, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">August 16, 2018</td> </tr> </tbody> </table> @@ -661,6 +661,14 @@ Options: Default: "[('[-:.]', '_')]" --mixed-case-enums If used, do not uppercase simpleType enums names. Default is to make enum names uppercase. + --create-mandatory-children + If a child is defined with minOccurs="1" and + maxOccurs="1" and the child is xs:complexType + and the child is not defined with + xs:simpleContent, then in the element's + constructor generate code that automatically + creates an instance of the child. The default + is False, i.e. do not automatically create child. -q, --no-questions Do not ask questions, for example, force overwrite. --no-warnings Do not print warning messages. @@ -979,6 +987,15 @@ characters. Example: <dd>Do not uppercase the names of simpleType enums. The default (if this option is omitted) is to make generated enum names uppercase.</dd> +<dt>create-mandatory-children</dt> +<dd>If a child is defined with minOccurs="1" and maxOccurs="1" and +the child is xs:complexType and the child is not defined with +xs:simpleContent, then in the element's constructor generate +code that automatically creates an instance of the child. The +default is False, i.e. do not automatically create the child. +Note that if a value for the child's parameter is passed to the +constructor (which overrides the default value of None), then +the constructor will not create an instance.</dd> <dt>q, no-questions</dt> <dd>Do not ask questions. For example, if the "-f" command line option is omitted and the ouput file exists, then generateDS.py @@ -3392,7 +3409,7 @@ following among others:</p> <div class="footer"> <hr class="footer" /> <a class="reference external" href="generateDS.txt">View document source</a>. -Generated on: 2018-08-03 21:41 UTC. +Generated on: 2018-08-16 22:29 UTC. Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. </div> diff --git a/generateDS.py b/generateDS.py index b74ac86616de293714e0ca27524730c99925f410..0f475485824ef99cec2e11a80f6ed1af64b78350 100755 --- a/generateDS.py +++ b/generateDS.py @@ -126,6 +126,14 @@ Options: Default: "[('[-:.]', '_')]" --mixed-case-enums If used, do not uppercase simpleType enums names. Default is to make enum names uppercase. + --create-mandatory-children + If a child is defined with minOccurs="1" and + maxOccurs="1" and the child is xs:complexType + and the child is not defined with + xs:simpleContent, then in the element's + constructor generate code that automatically + creates an instance of the child. The default + is False, i.e. do not automatically create child. -q, --no-questions Do not ask questions, for example, force overwrite. --no-warnings Do not print warning messages. @@ -227,7 +235,7 @@ _log = logging.getLogger(__name__) # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.29.22' +VERSION = '2.29.23' ##VERSION## BaseStrTypes = six.string_types @@ -253,6 +261,7 @@ NoQuestions = False NoDates = False NoVersion = False AlwaysExportDefault = False +CreateMandatoryChildren = False Dirpath = [] ExternalEncoding = '' Namespacedef = '' @@ -3707,7 +3716,8 @@ def generateBuildStandard_1( childType == NonPositiveIntegerType or childType == NegativeIntegerType or childType == NonNegativeIntegerType): - wrt(" %s nodeName_ == '%s':\n" % (keyword, origName, )) + wrt(" %s nodeName_ == '%s' and child_.text:\n" % ( + keyword, origName, )) wrt(" sval_ = child_.text\n") wrt(" try:\n") wrt(" ival_ = int(sval_)\n") @@ -3756,7 +3766,8 @@ def generateBuildStandard_1( elif (childType == FloatType or childType == DoubleType or childType == DecimalType): - wrt(" %s nodeName_ == '%s':\n" % (keyword, origName, )) + wrt(" %s nodeName_ == '%s' and child_.text:\n" % ( + keyword, origName, )) wrt(" sval_ = child_.text\n") wrt(" try:\n") wrt(" fval_ = float(sval_)\n") @@ -4239,6 +4250,11 @@ def generateCtor(wrt, prefix, element): _log.debug("Constructor child: %s" % name) _log.debug("Dump: %s" % child.__dict__) childType = child.getType() + childTypeDef = ElementDict.get(childType) + if childTypeDef is not None: + childSimpleContent = childTypeDef.getSimpleContent() + else: + childSimpleContent = False if childType == AnyTypeIdentifier: if child.getMaxOccurs() > 1: wrt(' if anytypeobjs_ is None:\n') @@ -4283,6 +4299,18 @@ def generateCtor(wrt, prefix, element): wrt(' self.%s = []\n' % (name, )) wrt(' else:\n') wrt(' self.%s = %s\n' % (name, mbrname)) + elif (CreateMandatoryChildren and + child.getMinOccurs() == 1 and + child.getMaxOccurs() == 1 and + child.isComplex() and + not childSimpleContent): + wrt(' if %s is None:\n' % (mbrname, )) + className = child.getType() + className = cleanupName(className) + wrt(' self.%s = globals()["%s"]()\n' % ( + name, className, )) + wrt(' else:\n') + wrt(' self.%s = %s\n' % (name, mbrname)) else: typeObj = ElementDict.get(child.getType()) if (child.getDefault() and @@ -7266,7 +7294,7 @@ def main(): UseGeneratedssuperLookup, UseSourceFileAsModuleName, \ PreserveCdataTags, CleanupNameList, \ NoWarnings, AlwaysExportDefault, \ - UppercaseEnums + UppercaseEnums, CreateMandatoryChildren outputText = True args = sys.argv[1:] try: @@ -7289,6 +7317,7 @@ def main(): 'no-warnings', 'no-collect-includes', 'no-redefine-groups', 'always-export-default', 'mixed-case-enums', + 'create-mandatory-children', ]) except getopt.GetoptError: usage() @@ -7312,6 +7341,7 @@ def main(): noCollectIncludes = False noRedefineGroups = False UppercaseEnums = True + CreateMandatoryChildren = False for option in options: if option[0] == '--session': sessionFilename = option[1] @@ -7496,6 +7526,8 @@ def main(): AlwaysExportDefault = True elif option[0] == '--mixed-case-enums': UppercaseEnums = False + elif option[0] == '--create-mandatory-children': + CreateMandatoryChildren = True if showVersion: print('generateDS.py version %s' % VERSION) sys.exit(0) diff --git a/generateDS.txt b/generateDS.txt index 7df9aaf1e662c54e94e57e11d9800eab187fb913..df257a6acd8bb926dddaa4855b1c41d72cfbb8cd 100644 --- a/generateDS.txt +++ b/generateDS.txt @@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema .. version -:revision: 2.29.22 +:revision: 2.29.23 .. version @@ -348,6 +348,14 @@ Here is the usage message displayed by ``generateDS.py``:: Default: "[('[-:.]', '_')]" --mixed-case-enums If used, do not uppercase simpleType enums names. Default is to make enum names uppercase. + --create-mandatory-children + If a child is defined with minOccurs="1" and + maxOccurs="1" and the child is xs:complexType + and the child is not defined with + xs:simpleContent, then in the element's + constructor generate code that automatically + creates an instance of the child. The default + is False, i.e. do not automatically create child. -q, --no-questions Do not ask questions, for example, force overwrite. --no-warnings Do not print warning messages. @@ -701,6 +709,16 @@ mixed-case-enums this option is omitted) is to make generated enum names uppercase. +create-mandatory-children + If a child is defined with minOccurs="1" and maxOccurs="1" and + the child is xs:complexType and the child is not defined with + xs:simpleContent, then in the element's constructor generate + code that automatically creates an instance of the child. The + default is False, i.e. do not automatically create the child. + Note that if a value for the child's parameter is passed to the + constructor (which overrides the default value of None), then + the constructor will not create an instance. + q, no-questions Do not ask questions. For example, if the "-f" command line option is omitted and the ouput file exists, then generateDS.py diff --git a/generateds_gui_notes.html b/generateds_gui_notes.html index 1ef344490b508caa495c23c857deb5e416a8b173..4749cd33462f0576b607d3e4bfa325b577f81249 100644 --- a/generateds_gui_notes.html +++ b/generateds_gui_notes.html @@ -220,7 +220,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.22</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.23</td> </tr> </tbody> </table> @@ -229,7 +229,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">August 03, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">August 16, 2018</td> </tr> </tbody> </table> @@ -401,7 +401,7 @@ $ mv generateds_gui.mo locale/ru/LC_MESSAGES/ <div class="footer"> <hr class="footer" /> <a class="reference external" href="generateds_gui_notes.txt">View document source</a>. -Generated on: 2018-08-03 21:41 UTC. +Generated on: 2018-08-16 22:29 UTC. Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. </div> diff --git a/generateds_gui_notes.txt b/generateds_gui_notes.txt index 5cf503ea9b8ecd5f2ec28fcfc82f5d4789004f6c..2bed9231a7cc749dc9c2ea2f42426c7db52b7675 100644 --- a/generateds_gui_notes.txt +++ b/generateds_gui_notes.txt @@ -12,7 +12,7 @@ GenerateDS GUI Notes .. version -:revision: 2.29.22 +:revision: 2.29.23 .. version diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py index 2abb8e5ce40a93b5077d4d7a7fb1269be595b3cb..c0c1d36def19802c8ce85bd9567c2a1cdf55abdf 100644 --- a/gui/generateds_gui.py +++ b/gui/generateds_gui.py @@ -41,7 +41,7 @@ from libgenerateDS.gui import generateds_gui_session # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.29.22' +VERSION = '2.29.23' ##VERSION## diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html index 6f7d1f0858b03aa5405de80a3d34a906f1c32734..7049ae9f4320acaaa1e9e91b70109a7ff9faf8ac 100644 --- a/librarytemplate_howto.html +++ b/librarytemplate_howto.html @@ -217,7 +217,7 @@ dkuhlman (at) davekuhlman (dot) org <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.22</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.23</td> </tr> </tbody> </table> @@ -226,7 +226,7 @@ dkuhlman (at) davekuhlman (dot) org <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">August 03, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">August 16, 2018</td> </tr> </tbody> </table> @@ -380,7 +380,7 @@ this command for your needs. For example, you may need to use <div class="footer"> <hr class="footer" /> <a class="reference external" href="librarytemplate_howto.txt">View document source</a>. -Generated on: 2018-08-03 21:41 UTC. +Generated on: 2018-08-16 22:29 UTC. Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. </div> diff --git a/librarytemplate_howto.txt b/librarytemplate_howto.txt index 7b6984337e8a9c7cd443a9ed562fa1d94637e63d..971c8fd74349590b3f4cf2a9b4a7a1eee0f28f24 100644 --- a/librarytemplate_howto.txt +++ b/librarytemplate_howto.txt @@ -8,7 +8,7 @@ How to package a generateDS.py generated library .. version -:revision: 2.29.22 +:revision: 2.29.23 .. version diff --git a/process_includes.py b/process_includes.py index 1c451f1c5ab9b93b4605ed7d543cf95d8370194b..f083e639f08cecf0ea09e8c3a738e3da4280afd6 100755 --- a/process_includes.py +++ b/process_includes.py @@ -40,7 +40,7 @@ except ImportError: # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## -VERSION = '2.29.22' +VERSION = '2.29.23' ##VERSION## CatalogDict = {} diff --git a/setup.py b/setup.py index 3feac89da2b96a3676ac7f30acb8a16a295ba342..834c8f3b8515f6093596081b36d4234861512709 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setup( # Do not modify the following VERSION comments. # Used by updateversion.py. ##VERSION## - version="2.29.22", + version="2.29.23", ##VERSION## author="Dave Kuhlman", author_email="dkuhlman@davekuhlman.org", diff --git a/tests/annotations1_sup.py b/tests/annotations1_sup.py index bd590ce7480b15cd614eb7e7b482f64bb66dcf9c..0d81841ec1a2b942d6b3adc60f316669ebee1bc5 100644 --- a/tests/annotations1_sup.py +++ b/tests/annotations1_sup.py @@ -912,7 +912,7 @@ class document2Type(GeneratedsSuper): comments_ = child_.text comments_ = self.gds_validate_string(comments_, node, 'comments') self.comments = comments_ - elif nodeName_ == 'rating': + elif nodeName_ == 'rating' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1011,7 +1011,7 @@ class document3Type(GeneratedsSuper): comments_ = child_.text comments_ = self.gds_validate_string(comments_, node, 'comments') self.comments = comments_ - elif nodeName_ == 'rating': + elif nodeName_ == 'rating' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/anywildcard1_sup.py b/tests/anywildcard1_sup.py index f8186dd65426318e445b0589a64213f6ed40c47a..1965ae0ad13eb7858f2ccb1516f38729ed1a408c 100644 --- a/tests/anywildcard1_sup.py +++ b/tests/anywildcard1_sup.py @@ -1106,7 +1106,7 @@ class CatalogType(GeneratedsSuper): name_ = child_.text name_ = self.gds_validate_string(name_, node, 'name') self.name = name_ - elif nodeName_ == 'catagory': + elif nodeName_ == 'catagory' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/defaults_cases1_sup.py b/tests/defaults_cases1_sup.py index 320918040a3aa1e6b116785613932529e4140103..45383327c3ae7e72516f3216b8b7cf08d36f9926 100644 --- a/tests/defaults_cases1_sup.py +++ b/tests/defaults_cases1_sup.py @@ -990,7 +990,7 @@ class DefaultType1(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'normal01': + if nodeName_ == 'normal01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1002,7 +1002,7 @@ class DefaultType1(GeneratedsSuper): normal02_ = child_.text normal02_ = self.gds_validate_string(normal02_, node, 'normal02') self.normal02 = normal02_ - elif nodeName_ == 'default01': + elif nodeName_ == 'default01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1014,7 +1014,7 @@ class DefaultType1(GeneratedsSuper): default02_ = child_.text default02_ = self.gds_validate_string(default02_, node, 'default02') self.default02 = default02_ - elif nodeName_ == 'normal03': + elif nodeName_ == 'normal03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1022,7 +1022,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal03') self.normal03 = fval_ - elif nodeName_ == 'normal04': + elif nodeName_ == 'normal04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1030,7 +1030,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal04') self.normal04 = fval_ - elif nodeName_ == 'default03': + elif nodeName_ == 'default03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1038,7 +1038,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default03') self.default03 = fval_ - elif nodeName_ == 'default04': + elif nodeName_ == 'default04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1286,7 +1286,7 @@ class FixedType1(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'normal01': + if nodeName_ == 'normal01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1298,7 +1298,7 @@ class FixedType1(GeneratedsSuper): normal02_ = child_.text normal02_ = self.gds_validate_string(normal02_, node, 'normal02') self.normal02 = normal02_ - elif nodeName_ == 'fixed01': + elif nodeName_ == 'fixed01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1310,7 +1310,7 @@ class FixedType1(GeneratedsSuper): fixed02_ = child_.text fixed02_ = self.gds_validate_string(fixed02_, node, 'fixed02') self.fixed02 = fixed02_ - elif nodeName_ == 'normal03': + elif nodeName_ == 'normal03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1318,7 +1318,7 @@ class FixedType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal03') self.normal03 = fval_ - elif nodeName_ == 'normal04': + elif nodeName_ == 'normal04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1326,7 +1326,7 @@ class FixedType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal04') self.normal04 = fval_ - elif nodeName_ == 'fixed03': + elif nodeName_ == 'fixed03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1334,7 +1334,7 @@ class FixedType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'fixed03') self.fixed03 = fval_ - elif nodeName_ == 'fixed04': + elif nodeName_ == 'fixed04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/defaults_cases_always1_sup.py b/tests/defaults_cases_always1_sup.py index c4a28c0bd8f40e4f5e0962e7ad71e4c1caa2196b..fc155a581b7bbdabb1b2e549b548aa003c7f4ef9 100644 --- a/tests/defaults_cases_always1_sup.py +++ b/tests/defaults_cases_always1_sup.py @@ -955,7 +955,7 @@ class DefaultType1(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'normal01': + if nodeName_ == 'normal01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -967,7 +967,7 @@ class DefaultType1(GeneratedsSuper): normal02_ = child_.text normal02_ = self.gds_validate_string(normal02_, node, 'normal02') self.normal02 = normal02_ - elif nodeName_ == 'default01': + elif nodeName_ == 'default01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -979,7 +979,7 @@ class DefaultType1(GeneratedsSuper): default02_ = child_.text default02_ = self.gds_validate_string(default02_, node, 'default02') self.default02 = default02_ - elif nodeName_ == 'normal03': + elif nodeName_ == 'normal03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -987,7 +987,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal03') self.normal03 = fval_ - elif nodeName_ == 'normal04': + elif nodeName_ == 'normal04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -995,7 +995,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal04') self.normal04 = fval_ - elif nodeName_ == 'default03': + elif nodeName_ == 'default03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1003,7 +1003,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default03') self.default03 = fval_ - elif nodeName_ == 'default04': + elif nodeName_ == 'default04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/defaults_cases_always2_sup.py b/tests/defaults_cases_always2_sup.py index c4a28c0bd8f40e4f5e0962e7ad71e4c1caa2196b..fc155a581b7bbdabb1b2e549b548aa003c7f4ef9 100644 --- a/tests/defaults_cases_always2_sup.py +++ b/tests/defaults_cases_always2_sup.py @@ -955,7 +955,7 @@ class DefaultType1(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'normal01': + if nodeName_ == 'normal01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -967,7 +967,7 @@ class DefaultType1(GeneratedsSuper): normal02_ = child_.text normal02_ = self.gds_validate_string(normal02_, node, 'normal02') self.normal02 = normal02_ - elif nodeName_ == 'default01': + elif nodeName_ == 'default01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -979,7 +979,7 @@ class DefaultType1(GeneratedsSuper): default02_ = child_.text default02_ = self.gds_validate_string(default02_, node, 'default02') self.default02 = default02_ - elif nodeName_ == 'normal03': + elif nodeName_ == 'normal03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -987,7 +987,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal03') self.normal03 = fval_ - elif nodeName_ == 'normal04': + elif nodeName_ == 'normal04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -995,7 +995,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal04') self.normal04 = fval_ - elif nodeName_ == 'default03': + elif nodeName_ == 'default03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1003,7 +1003,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default03') self.default03 = fval_ - elif nodeName_ == 'default04': + elif nodeName_ == 'default04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/defaults_coverage1_sup.py b/tests/defaults_coverage1_sup.py index 052c02a4d04cdfb9bf6358adc63da8a941f1a2f9..318cf4aa46eeb8668063ca002e6423da0d59d3c5 100644 --- a/tests/defaults_coverage1_sup.py +++ b/tests/defaults_coverage1_sup.py @@ -1039,7 +1039,7 @@ class DefaultType1(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'default01': + if nodeName_ == 'default01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1047,7 +1047,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'default01') self.default01 = ival_ - elif nodeName_ == 'normal01': + elif nodeName_ == 'normal01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1063,7 +1063,7 @@ class DefaultType1(GeneratedsSuper): normal02_ = child_.text normal02_ = self.gds_validate_string(normal02_, node, 'normal02') self.normal02 = normal02_ - elif nodeName_ == 'default03': + elif nodeName_ == 'default03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1071,7 +1071,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default03') self.default03 = fval_ - elif nodeName_ == 'normal03': + elif nodeName_ == 'normal03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1079,7 +1079,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal03') self.normal03 = fval_ - elif nodeName_ == 'default04': + elif nodeName_ == 'default04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1087,7 +1087,7 @@ class DefaultType1(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default04') self.default04 = fval_ - elif nodeName_ == 'normal04': + elif nodeName_ == 'normal04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1374,7 +1374,7 @@ class DefaultType2(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'default01': + if nodeName_ == 'default01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1382,7 +1382,7 @@ class DefaultType2(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'default01') self.default01 = ival_ - elif nodeName_ == 'normal01': + elif nodeName_ == 'normal01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1398,7 +1398,7 @@ class DefaultType2(GeneratedsSuper): normal02_ = child_.text normal02_ = self.gds_validate_string(normal02_, node, 'normal02') self.normal02 = normal02_ - elif nodeName_ == 'default03': + elif nodeName_ == 'default03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1406,7 +1406,7 @@ class DefaultType2(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default03') self.default03 = fval_ - elif nodeName_ == 'normal03': + elif nodeName_ == 'normal03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1414,7 +1414,7 @@ class DefaultType2(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'normal03') self.normal03 = fval_ - elif nodeName_ == 'default04': + elif nodeName_ == 'default04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1422,7 +1422,7 @@ class DefaultType2(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'default04') self.default04 = fval_ - elif nodeName_ == 'normal04': + elif nodeName_ == 'normal04' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/ipo1_sup.py b/tests/ipo1_sup.py index 82cd1f9f371525397a828abb544cc17679895881..9f64f692f6953b9aa6f6793f8e296c975df5609a 100644 --- a/tests/ipo1_sup.py +++ b/tests/ipo1_sup.py @@ -1067,7 +1067,7 @@ class item(GeneratedsSuper): productName_ = child_.text productName_ = self.gds_validate_string(productName_, node, 'productName') self.productName = productName_ - elif nodeName_ == 'quantity': + elif nodeName_ == 'quantity' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1077,7 +1077,7 @@ class item(GeneratedsSuper): raise_parse_error(child_, 'requires positiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'quantity') self.quantity = ival_ - elif nodeName_ == 'USPrice': + elif nodeName_ == 'USPrice' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1371,7 +1371,7 @@ class USAddress(Address): self.state = state_ # validate type USState self.validate_USState(self.state) - elif nodeName_ == 'zip': + elif nodeName_ == 'zip' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/ipo2_sup.py b/tests/ipo2_sup.py index 82cd1f9f371525397a828abb544cc17679895881..9f64f692f6953b9aa6f6793f8e296c975df5609a 100644 --- a/tests/ipo2_sup.py +++ b/tests/ipo2_sup.py @@ -1067,7 +1067,7 @@ class item(GeneratedsSuper): productName_ = child_.text productName_ = self.gds_validate_string(productName_, node, 'productName') self.productName = productName_ - elif nodeName_ == 'quantity': + elif nodeName_ == 'quantity' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1077,7 +1077,7 @@ class item(GeneratedsSuper): raise_parse_error(child_, 'requires positiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'quantity') self.quantity = ival_ - elif nodeName_ == 'USPrice': + elif nodeName_ == 'USPrice' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1371,7 +1371,7 @@ class USAddress(Address): self.state = state_ # validate type USState self.validate_USState(self.state) - elif nodeName_ == 'zip': + elif nodeName_ == 'zip' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/mapcleanname1_sup.py b/tests/mapcleanname1_sup.py index 2c6b831321f2237fe20f55c1be2a33ed8c88a374..0dfcead668d949caa6b54b451ba111dc85cf350c 100644 --- a/tests/mapcleanname1_sup.py +++ b/tests/mapcleanname1_sup.py @@ -831,7 +831,7 @@ class complex_type01(GeneratedsSuper): string_value01_ = child_.text string_value01_ = self.gds_validate_string(string_value01_, node, 'string_value01') self.string_value01 = string_value01_ - elif nodeName_ == 'integer_value01': + elif nodeName_ == 'integer_value01' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -839,7 +839,7 @@ class complex_type01(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value01') self.integer_value01.append(ival_) - elif nodeName_ == 'float_value01': + elif nodeName_ == 'float_value01' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -961,7 +961,7 @@ class complex_type02(GeneratedsSuper): string_value02_ = child_.text string_value02_ = self.gds_validate_string(string_value02_, node, 'string_value02') self.string_value02 = string_value02_ - elif nodeName_ == 'integer_value02': + elif nodeName_ == 'integer_value02' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -969,7 +969,7 @@ class complex_type02(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value02') self.integer_value02.append(ival_) - elif nodeName_ == 'float_value02': + elif nodeName_ == 'float_value02' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1079,7 +1079,7 @@ class complex_type03(complex_type02): string_value03_ = child_.text string_value03_ = self.gds_validate_string(string_value03_, node, 'string_value03') self.string_value03 = string_value03_ - elif nodeName_ == 'integer_value03': + elif nodeName_ == 'integer_value03' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1087,7 +1087,7 @@ class complex_type03(complex_type02): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value03') self.integer_value03.append(ival_) - elif nodeName_ == 'float_value03': + elif nodeName_ == 'float_value03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1205,7 +1205,7 @@ class type_(GeneratedsSuper): string_value02_ = child_.text string_value02_ = self.gds_validate_string(string_value02_, node, 'string_value02') self.string_value02 = string_value02_ - elif nodeName_ == 'integer_value02': + elif nodeName_ == 'integer_value02' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1213,7 +1213,7 @@ class type_(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value02') self.integer_value02.append(ival_) - elif nodeName_ == 'float_value02': + elif nodeName_ == 'float_value02' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1323,7 +1323,7 @@ class complex_type04(type_): string_value03_ = child_.text string_value03_ = self.gds_validate_string(string_value03_, node, 'string_value03') self.string_value03 = string_value03_ - elif nodeName_ == 'integer_value03': + elif nodeName_ == 'integer_value03' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1331,7 +1331,7 @@ class complex_type04(type_): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value03') self.integer_value03.append(ival_) - elif nodeName_ == 'float_value03': + elif nodeName_ == 'float_value03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1449,7 +1449,7 @@ class build_(GeneratedsSuper): string_value02_ = child_.text string_value02_ = self.gds_validate_string(string_value02_, node, 'string_value02') self.string_value02 = string_value02_ - elif nodeName_ == 'integer_value02': + elif nodeName_ == 'integer_value02' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1457,7 +1457,7 @@ class build_(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value02') self.integer_value02.append(ival_) - elif nodeName_ == 'float_value02': + elif nodeName_ == 'float_value02' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1567,7 +1567,7 @@ class complex_type05(build_): string_value03_ = child_.text string_value03_ = self.gds_validate_string(string_value03_, node, 'string_value03') self.string_value03 = string_value03_ - elif nodeName_ == 'integer_value03': + elif nodeName_ == 'integer_value03' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1575,7 +1575,7 @@ class complex_type05(build_): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integer_value03') self.integer_value03.append(ival_) - elif nodeName_ == 'float_value03': + elif nodeName_ == 'float_value03' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/mixedcontent1_sup.py b/tests/mixedcontent1_sup.py index 4c311da4883d300921ca0a936cb80811f8921c82..218fff3f155505c4dbf0039ebc3219bd4f74d566 100644 --- a/tests/mixedcontent1_sup.py +++ b/tests/mixedcontent1_sup.py @@ -1055,7 +1055,7 @@ class nestedType(GeneratedsSuper): nested2_ = child_.text nested2_ = self.gds_validate_string(nested2_, node, 'nested2') self.nested2.append(nested2_) - elif nodeName_ == 'nested3': + elif nodeName_ == 'nested3' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/mixedcontent2_sup.py b/tests/mixedcontent2_sup.py index 4c311da4883d300921ca0a936cb80811f8921c82..218fff3f155505c4dbf0039ebc3219bd4f74d566 100644 --- a/tests/mixedcontent2_sup.py +++ b/tests/mixedcontent2_sup.py @@ -1055,7 +1055,7 @@ class nestedType(GeneratedsSuper): nested2_ = child_.text nested2_ = self.gds_validate_string(nested2_, node, 'nested2') self.nested2.append(nested2_) - elif nodeName_ == 'nested3': + elif nodeName_ == 'nested3' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/out1_sup.py b/tests/out1_sup.py index 93c84986bb801622d6ffe063a508e4f0605ed83b..12f1c213b944f96897b01e22daefaa1911f2e380 100644 --- a/tests/out1_sup.py +++ b/tests/out1_sup.py @@ -1460,7 +1460,7 @@ class person(GeneratedsSuper): interest_ = child_.text interest_ = self.gds_validate_string(interest_, node, 'interest') self.interest.append(interest_) - elif nodeName_ == 'category': + elif nodeName_ == 'category' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1886,7 +1886,7 @@ class programmer(person): email_ = child_.text email_ = self.gds_validate_string(email_, node, 'email') self.email = email_ - elif nodeName_ == 'elposint': + elif nodeName_ == 'elposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1896,7 +1896,7 @@ class programmer(person): raise_parse_error(child_, 'requires positiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elposint') self.elposint = ival_ - elif nodeName_ == 'elnonposint': + elif nodeName_ == 'elnonposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1906,7 +1906,7 @@ class programmer(person): raise_parse_error(child_, 'requires nonPositiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnonposint') self.elnonposint = ival_ - elif nodeName_ == 'elnegint': + elif nodeName_ == 'elnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1916,7 +1916,7 @@ class programmer(person): raise_parse_error(child_, 'requires negativeInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnegint') self.elnegint = ival_ - elif nodeName_ == 'elnonnegint': + elif nodeName_ == 'elnonnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1942,7 +1942,7 @@ class programmer(person): eltoken_ = "" eltoken_ = self.gds_validate_string(eltoken_, node, 'eltoken') self.eltoken = eltoken_ - elif nodeName_ == 'elshort': + elif nodeName_ == 'elshort' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1950,7 +1950,7 @@ class programmer(person): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'elshort') self.elshort = ival_ - elif nodeName_ == 'ellong': + elif nodeName_ == 'ellong' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2686,7 +2686,7 @@ class agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2873,7 +2873,7 @@ class special_agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -3129,7 +3129,7 @@ class booster(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'other-name': + elif nodeName_ == 'other-name' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -3137,7 +3137,7 @@ class booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_name') self.other_name = fval_ - elif nodeName_ == 'class': + elif nodeName_ == 'class' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -3145,7 +3145,7 @@ class booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'class') self.class_ = fval_ - elif nodeName_ == 'other-value': + elif nodeName_ == 'other-value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -3153,7 +3153,7 @@ class booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_value') self.other_value.append(fval_) - elif nodeName_ == 'type': + elif nodeName_ == 'type' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -3479,7 +3479,7 @@ class client_handlerType(GeneratedsSuper): fullname_ = child_.text fullname_ = self.gds_validate_string(fullname_, node, 'fullname') self.fullname = fullname_ - elif nodeName_ == 'refid': + elif nodeName_ == 'refid' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/people_procincl1_sup.py b/tests/people_procincl1_sup.py index 11849ef0f7ae813c4c94f5023ee3e745d5e53d42..2264fa3a11a58d21400c6e64580761cef8d205d2 100644 --- a/tests/people_procincl1_sup.py +++ b/tests/people_procincl1_sup.py @@ -1247,7 +1247,7 @@ class person(GeneratedsSuper): interest_ = child_.text interest_ = self.gds_validate_string(interest_, node, 'interest') self.interest.append(interest_) - elif nodeName_ == 'category': + elif nodeName_ == 'category' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1588,7 +1588,7 @@ class agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1726,7 +1726,7 @@ class special_agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1894,7 +1894,7 @@ class booster(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'other-name': + elif nodeName_ == 'other-name' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1902,7 +1902,7 @@ class booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_name') self.other_name = fval_ - elif nodeName_ == 'class': + elif nodeName_ == 'class' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1910,7 +1910,7 @@ class booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'class') self.class_ = fval_ - elif nodeName_ == 'other-value': + elif nodeName_ == 'other-value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1918,7 +1918,7 @@ class booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_value') self.other_value.append(fval_) - elif nodeName_ == 'type': + elif nodeName_ == 'type' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2114,7 +2114,7 @@ class vehicle(GeneratedsSuper): already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'wheelcount': + if nodeName_ == 'wheelcount' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2559,7 +2559,7 @@ class programmer(person): email_ = child_.text email_ = self.gds_validate_string(email_, node, 'email') self.email = email_ - elif nodeName_ == 'elposint': + elif nodeName_ == 'elposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2569,7 +2569,7 @@ class programmer(person): raise_parse_error(child_, 'requires positiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elposint') self.elposint = ival_ - elif nodeName_ == 'elnonposint': + elif nodeName_ == 'elnonposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2579,7 +2579,7 @@ class programmer(person): raise_parse_error(child_, 'requires nonPositiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnonposint') self.elnonposint = ival_ - elif nodeName_ == 'elnegint': + elif nodeName_ == 'elnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2589,7 +2589,7 @@ class programmer(person): raise_parse_error(child_, 'requires negativeInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnegint') self.elnegint = ival_ - elif nodeName_ == 'elnonnegint': + elif nodeName_ == 'elnonnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2611,7 +2611,7 @@ class programmer(person): eltoken_ = "" eltoken_ = self.gds_validate_string(eltoken_, node, 'eltoken') self.eltoken = eltoken_ - elif nodeName_ == 'elshort': + elif nodeName_ == 'elshort' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2619,7 +2619,7 @@ class programmer(person): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'elshort') self.elshort = ival_ - elif nodeName_ == 'ellong': + elif nodeName_ == 'ellong' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2724,7 +2724,7 @@ class client_handlerType(GeneratedsSuper): fullname_ = child_.text fullname_ = self.gds_validate_string(fullname_, node, 'fullname') self.fullname = fullname_ - elif nodeName_ == 'refid': + elif nodeName_ == 'refid' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/prefix_classname1_sup.py b/tests/prefix_classname1_sup.py index 7d3c39ae43023dc5590de7c0bf0fd760413a136c..ccaed9788052bac0893471dca0e38e4944b12a84 100644 --- a/tests/prefix_classname1_sup.py +++ b/tests/prefix_classname1_sup.py @@ -1206,7 +1206,7 @@ class tomato_person(GeneratedsSuper): interest_ = child_.text interest_ = self.gds_validate_string(interest_, node, 'interest') self.interest.append(interest_) - elif nodeName_ == 'category': + elif nodeName_ == 'category' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1513,7 +1513,7 @@ class tomato_programmer(tomato_person): email_ = child_.text email_ = self.gds_validate_string(email_, node, 'email') self.email = email_ - elif nodeName_ == 'elposint': + elif nodeName_ == 'elposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1523,7 +1523,7 @@ class tomato_programmer(tomato_person): raise_parse_error(child_, 'requires positiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elposint') self.elposint = ival_ - elif nodeName_ == 'elnonposint': + elif nodeName_ == 'elnonposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1533,7 +1533,7 @@ class tomato_programmer(tomato_person): raise_parse_error(child_, 'requires nonPositiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnonposint') self.elnonposint = ival_ - elif nodeName_ == 'elnegint': + elif nodeName_ == 'elnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1543,7 +1543,7 @@ class tomato_programmer(tomato_person): raise_parse_error(child_, 'requires negativeInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnegint') self.elnegint = ival_ - elif nodeName_ == 'elnonnegint': + elif nodeName_ == 'elnonnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1569,7 +1569,7 @@ class tomato_programmer(tomato_person): eltoken_ = "" eltoken_ = self.gds_validate_string(eltoken_, node, 'eltoken') self.eltoken = eltoken_ - elif nodeName_ == 'elshort': + elif nodeName_ == 'elshort' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1577,7 +1577,7 @@ class tomato_programmer(tomato_person): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'elshort') self.elshort = ival_ - elif nodeName_ == 'ellong': + elif nodeName_ == 'ellong' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2032,7 +2032,7 @@ class tomato_agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2149,7 +2149,7 @@ class tomato_special_agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2308,7 +2308,7 @@ class tomato_booster(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'other-name': + elif nodeName_ == 'other-name' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2316,7 +2316,7 @@ class tomato_booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_name') self.other_name = fval_ - elif nodeName_ == 'class': + elif nodeName_ == 'class' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2324,7 +2324,7 @@ class tomato_booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'class') self.class_ = fval_ - elif nodeName_ == 'other-value': + elif nodeName_ == 'other-value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2332,7 +2332,7 @@ class tomato_booster(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_value') self.other_value.append(fval_) - elif nodeName_ == 'type': + elif nodeName_ == 'type' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2530,7 +2530,7 @@ class tomato_client_handlerType(GeneratedsSuper): fullname_ = child_.text fullname_ = self.gds_validate_string(fullname_, node, 'fullname') self.fullname = fullname_ - elif nodeName_ == 'refid': + elif nodeName_ == 'refid' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/recursive_simpletype1_sup.py b/tests/recursive_simpletype1_sup.py index ad25d513e54ad98b608db4c301757d1e37bd3b2f..850c8c3cde81c62d8e183aa65ea4c76d5397b950 100644 --- a/tests/recursive_simpletype1_sup.py +++ b/tests/recursive_simpletype1_sup.py @@ -814,7 +814,7 @@ class PersonType(GeneratedsSuper): def buildAttributes(self, node, attrs, already_processed): pass def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'personId': + if nodeName_ == 'personId' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/reference_simpletype1_sup.py b/tests/reference_simpletype1_sup.py index a65f20083559720b68962e98bcec13352233a059..9b1015f3352f337c3a8b163600b11cba3166f2b8 100644 --- a/tests/reference_simpletype1_sup.py +++ b/tests/reference_simpletype1_sup.py @@ -833,7 +833,7 @@ class dummy(GeneratedsSuper): except ValueError as exp: raise_parse_error(node, 'Bad integer attribute: %s' % exp) def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'test_ref_element': + if nodeName_ == 'test_ref_element' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -841,7 +841,7 @@ class dummy(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'test_ref_element') self.test_ref_element = ival_ - elif nodeName_ == 'test_normal_element': + elif nodeName_ == 'test_normal_element' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/simpletypes_other1_sup.py b/tests/simpletypes_other1_sup.py index 2e3d06224384774eda470924d8ae94d27cccd975..1a9c41171e3612f9e8efee701d0a410ed14294e1 100644 --- a/tests/simpletypes_other1_sup.py +++ b/tests/simpletypes_other1_sup.py @@ -1117,7 +1117,7 @@ class simpleTypeTestDefs(GeneratedsSuper): datetime5_ = child_.text datetime5_ = self.gds_validate_string(datetime5_, node, 'datetime5') self.datetime5 = datetime5_ - elif nodeName_ == 'integerVal1': + elif nodeName_ == 'integerVal1' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1125,7 +1125,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'integerVal1') self.integerVal1 = ival_ - elif nodeName_ == 'integerVal2': + elif nodeName_ == 'integerVal2' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1161,7 +1161,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires boolean') ival_ = self.gds_validate_boolean(ival_, node, 'booleanVal2') self.booleanVal2.append(ival_) - elif nodeName_ == 'decimalVal1': + elif nodeName_ == 'decimalVal1' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1169,7 +1169,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'decimalVal1') self.decimalVal1 = fval_ - elif nodeName_ == 'decimalVal2': + elif nodeName_ == 'decimalVal2' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1177,7 +1177,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'decimalVal2') self.decimalVal2.append(fval_) - elif nodeName_ == 'doubleVal1': + elif nodeName_ == 'doubleVal1' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1185,7 +1185,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'doubleVal1') self.doubleVal1 = fval_ - elif nodeName_ == 'doubleVal2': + elif nodeName_ == 'doubleVal2' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1193,7 +1193,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'doubleVal2') self.doubleVal2.append(fval_) - elif nodeName_ == 'floatVal1': + elif nodeName_ == 'floatVal1' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1201,7 +1201,7 @@ class simpleTypeTestDefs(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'floatVal1') self.floatVal1 = fval_ - elif nodeName_ == 'floatVal2': + elif nodeName_ == 'floatVal2' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/to_etree1_sup.py b/tests/to_etree1_sup.py index d3602083b39f339c48456d6a1bfc774e0df00ee0..93dfd28ebb481f092e3eeff2eced8166f80bf7e0 100644 --- a/tests/to_etree1_sup.py +++ b/tests/to_etree1_sup.py @@ -1192,7 +1192,7 @@ class personType(GeneratedsSuper): interest_ = child_.text interest_ = self.gds_validate_string(interest_, node, 'interest') self.interest.append(interest_) - elif nodeName_ == 'category': + elif nodeName_ == 'category' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1220,7 +1220,7 @@ class personType(GeneratedsSuper): description_ = child_.text description_ = self.gds_validate_string(description_, node, 'description') self.description = description_ - elif nodeName_ == 'range': + elif nodeName_ == 'range' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1542,7 +1542,7 @@ class programmerType(personType): email_ = child_.text email_ = self.gds_validate_string(email_, node, 'email') self.email = email_ - elif nodeName_ == 'elposint': + elif nodeName_ == 'elposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1552,7 +1552,7 @@ class programmerType(personType): raise_parse_error(child_, 'requires positiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elposint') self.elposint = ival_ - elif nodeName_ == 'elnonposint': + elif nodeName_ == 'elnonposint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1562,7 +1562,7 @@ class programmerType(personType): raise_parse_error(child_, 'requires nonPositiveInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnonposint') self.elnonposint = ival_ - elif nodeName_ == 'elnegint': + elif nodeName_ == 'elnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1572,7 +1572,7 @@ class programmerType(personType): raise_parse_error(child_, 'requires negativeInteger') ival_ = self.gds_validate_integer(ival_, node, 'elnegint') self.elnegint = ival_ - elif nodeName_ == 'elnonnegint': + elif nodeName_ == 'elnonnegint' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1602,7 +1602,7 @@ class programmerType(personType): eltoken_ = "" eltoken_ = self.gds_validate_string(eltoken_, node, 'eltoken') self.eltoken = eltoken_ - elif nodeName_ == 'elshort': + elif nodeName_ == 'elshort' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1610,7 +1610,7 @@ class programmerType(personType): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'elshort') self.elshort = ival_ - elif nodeName_ == 'ellong': + elif nodeName_ == 'ellong' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1864,7 +1864,7 @@ class python_programmerType(programmerType): favorite_editor_ = child_.text favorite_editor_ = self.gds_validate_string(favorite_editor_, node, 'favorite_editor') self.favorite_editor = favorite_editor_ - elif nodeName_ == 'flowvalue': + elif nodeName_ == 'flowvalue' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2122,7 +2122,7 @@ class agentType(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2240,7 +2240,7 @@ class special_agentType(agentType): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2340,7 +2340,7 @@ class weird_agentType(agentType): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2487,7 +2487,7 @@ class boosterType(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'other-name': + elif nodeName_ == 'other-name' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2495,7 +2495,7 @@ class boosterType(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_name') self.other_name = fval_ - elif nodeName_ == 'class': + elif nodeName_ == 'class' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2503,7 +2503,7 @@ class boosterType(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'class') self.class_ = fval_ - elif nodeName_ == 'other-value': + elif nodeName_ == 'other-value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2511,7 +2511,7 @@ class boosterType(GeneratedsSuper): raise_parse_error(child_, 'requires float or double: %s' % exp) fval_ = self.gds_validate_float(fval_, node, 'other_value') self.other_value.append(fval_) - elif nodeName_ == 'type': + elif nodeName_ == 'type' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2667,7 +2667,7 @@ class vehicleType(GeneratedsSuper): already_processed.add('xsi:type') self.extensiontype_ = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'wheelcount': + if nodeName_ == 'wheelcount' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -2884,7 +2884,7 @@ class hot_agent(GeneratedsSuper): lastname_ = child_.text lastname_ = self.gds_validate_string(lastname_, node, 'lastname') self.lastname = lastname_ - elif nodeName_ == 'priority': + elif nodeName_ == 'priority' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -2961,7 +2961,7 @@ class client_handlerType(GeneratedsSuper): fullname_ = child_.text fullname_ = self.gds_validate_string(fullname_, node, 'fullname') self.fullname = fullname_ - elif nodeName_ == 'refid': + elif nodeName_ == 'refid' and child_.text: sval_ = child_.text try: ival_ = int(sval_) diff --git a/tests/validate_simpletypes1_sup.py b/tests/validate_simpletypes1_sup.py index 772c0fd50e8dc446fb7df5f03fadc3bba3d6c323..98d98e800d0568e38086ac8d5b45c03a31a1a62c 100644 --- a/tests/validate_simpletypes1_sup.py +++ b/tests/validate_simpletypes1_sup.py @@ -1361,7 +1361,7 @@ class simpleOneType(GeneratedsSuper): self.integer_range_1_value_with_default = value self.validate_integer_range_1_st(self.integer_range_1_value_with_default) # validate type integer_range_1_st def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'integer_range_1_value': + if nodeName_ == 'integer_range_1_value' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1383,7 +1383,7 @@ class simpleOneType(GeneratedsSuper): self.token_enum_value = token_enum_value_ # validate type token_enum_st self.validate_token_enum_st(self.token_enum_value) - elif nodeName_ == 'integer_range_incl_value': + elif nodeName_ == 'integer_range_incl_value' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1393,7 +1393,7 @@ class simpleOneType(GeneratedsSuper): self.integer_range_incl_value = ival_ # validate type integer_range_incl_st self.validate_integer_range_incl_st(self.integer_range_incl_value) - elif nodeName_ == 'integer_range_excl_value': + elif nodeName_ == 'integer_range_excl_value' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1415,7 +1415,7 @@ class simpleOneType(GeneratedsSuper): self.length_value = length_value_ # validate type length_st self.validate_length_st(self.length_value) - elif nodeName_ == 'totalDigits_value': + elif nodeName_ == 'totalDigits_value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1509,7 +1509,7 @@ class simpleOneType(GeneratedsSuper): self.unicode_pattern_value = unicode_pattern_value_ # validate type unicode_pattern_st self.validate_unicode_pattern_st(self.unicode_pattern_value) - elif nodeName_ == 'anonymous_float_value': + elif nodeName_ == 'anonymous_float_value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1519,7 +1519,7 @@ class simpleOneType(GeneratedsSuper): self.anonymous_float_value = fval_ # validate type anonymous_float_valueType self.validate_anonymous_float_valueType(self.anonymous_float_value) - elif nodeName_ == 'primative_integer': + elif nodeName_ == 'primative_integer' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1527,7 +1527,7 @@ class simpleOneType(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'primative_integer') self.primative_integer = ival_ - elif nodeName_ == 'primative_float': + elif nodeName_ == 'primative_float' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tests/validate_simpletypes2_sup.py b/tests/validate_simpletypes2_sup.py index 772c0fd50e8dc446fb7df5f03fadc3bba3d6c323..98d98e800d0568e38086ac8d5b45c03a31a1a62c 100644 --- a/tests/validate_simpletypes2_sup.py +++ b/tests/validate_simpletypes2_sup.py @@ -1361,7 +1361,7 @@ class simpleOneType(GeneratedsSuper): self.integer_range_1_value_with_default = value self.validate_integer_range_1_st(self.integer_range_1_value_with_default) # validate type integer_range_1_st def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): - if nodeName_ == 'integer_range_1_value': + if nodeName_ == 'integer_range_1_value' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1383,7 +1383,7 @@ class simpleOneType(GeneratedsSuper): self.token_enum_value = token_enum_value_ # validate type token_enum_st self.validate_token_enum_st(self.token_enum_value) - elif nodeName_ == 'integer_range_incl_value': + elif nodeName_ == 'integer_range_incl_value' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1393,7 +1393,7 @@ class simpleOneType(GeneratedsSuper): self.integer_range_incl_value = ival_ # validate type integer_range_incl_st self.validate_integer_range_incl_st(self.integer_range_incl_value) - elif nodeName_ == 'integer_range_excl_value': + elif nodeName_ == 'integer_range_excl_value' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1415,7 +1415,7 @@ class simpleOneType(GeneratedsSuper): self.length_value = length_value_ # validate type length_st self.validate_length_st(self.length_value) - elif nodeName_ == 'totalDigits_value': + elif nodeName_ == 'totalDigits_value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1509,7 +1509,7 @@ class simpleOneType(GeneratedsSuper): self.unicode_pattern_value = unicode_pattern_value_ # validate type unicode_pattern_st self.validate_unicode_pattern_st(self.unicode_pattern_value) - elif nodeName_ == 'anonymous_float_value': + elif nodeName_ == 'anonymous_float_value' and child_.text: sval_ = child_.text try: fval_ = float(sval_) @@ -1519,7 +1519,7 @@ class simpleOneType(GeneratedsSuper): self.anonymous_float_value = fval_ # validate type anonymous_float_valueType self.validate_anonymous_float_valueType(self.anonymous_float_value) - elif nodeName_ == 'primative_integer': + elif nodeName_ == 'primative_integer' and child_.text: sval_ = child_.text try: ival_ = int(sval_) @@ -1527,7 +1527,7 @@ class simpleOneType(GeneratedsSuper): raise_parse_error(child_, 'requires integer: %s' % exp) ival_ = self.gds_validate_integer(ival_, node, 'primative_integer') self.primative_integer = ival_ - elif nodeName_ == 'primative_float': + elif nodeName_ == 'primative_float' and child_.text: sval_ = child_.text try: fval_ = float(sval_) diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html index 3730ea9d5e7cb11c33252b744eacf1c1e830cea9..5ecb04453c468e31fabcc0760a82e498d41a491e 100644 --- a/tutorial/generateds_tutorial.html +++ b/tutorial/generateds_tutorial.html @@ -219,7 +219,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.22</td> +<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.29.23</td> </tr> </tbody> </table> @@ -228,7 +228,7 @@ They are used by updateversion.py. --> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">date:</th><td class="field-body">August 03, 2018</td> +<tr class="field"><th class="field-name">date:</th><td class="field-body">August 16, 2018</td> </tr> </tbody> </table> @@ -1210,7 +1210,7 @@ named <tt class="docutils literal">garden_api.py</tt>, you can create an instanc <div class="footer"> <hr class="footer" /> <a class="reference external" href="generateds_tutorial.txt">View document source</a>. -Generated on: 2018-08-03 21:41 UTC. +Generated on: 2018-08-16 22:29 UTC. Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. </div> diff --git a/tutorial/generateds_tutorial.txt b/tutorial/generateds_tutorial.txt index a85b9c3aa100780c6596d49ff04d1192fdbb77bf..dddd8f7e7e2827c829196f1dd0c0ead493472db7 100644 --- a/tutorial/generateds_tutorial.txt +++ b/tutorial/generateds_tutorial.txt @@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial .. version -:revision: 2.29.22 +:revision: 2.29.23 .. version diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip index 49e34849c5ccb29209e2ae4cdd5357a819ce7325..b1d6245bda6c9fa3d2b918bc5768299980209f80 100644 Binary files a/tutorial/generateds_tutorial.zip and b/tutorial/generateds_tutorial.zip differ