From e16b015b5b8ca516a1b39646e9b17bf8d6493a8b Mon Sep 17 00:00:00 2001
From: dkuhlman <none@none>
Date: Thu, 29 Jan 2015 11:07:15 -0800
Subject: [PATCH] Removed possible use of ElementTree.  Lxml now required.

---
 README                                   |   7 ++
 generateDS.html                          |  21 +----
 generateDS.py                            | 104 ++-------------------
 generateDS.txt                           |  18 +---
 gui/generateds_gui.py                    |   2 +-
 librarytemplate_howto.html               |   6 +-
 librarytemplate_howto.txt                |   2 +-
 process_includes.py                      |   2 +-
 setup.py                                 |   2 +-
 tests/OnePer/oneperType00_1One.py        |  54 +----------
 tests/OnePer/oneperType00_2One.py        |  54 +----------
 tests/OnePer/oneperType01_1One.py        |  54 +----------
 tests/OnePer/oneperType01_2One.py        |  54 +----------
 tests/OnePer/oneperType02_1One.py        |  54 +----------
 tests/OnePer/oneperType02_2One.py        |  54 +----------
 tests/OnePer/oneperType03_1One.py        |  54 +----------
 tests/OnePer/oneperType03_2One.py        |  54 +----------
 tests/abstract_type1_sub.py              |  52 +----------
 tests/abstract_type1_sup.py              |  54 +----------
 tests/abstract_type2_sub.py              |  52 +----------
 tests/abstract_type2_sup.py              |  54 +----------
 tests/annotations1_sub.py                |  52 +----------
 tests/annotations1_sup.py                |  58 ++----------
 tests/annotations2_sub.py                |  52 +----------
 tests/annotations2_sup.py                |  58 ++----------
 tests/anonymous_type1_sub.py             |  52 +----------
 tests/anonymous_type1_sup.py             |  54 +----------
 tests/anonymous_type2_sub.py             |  52 +----------
 tests/anonymous_type2_sup.py             |  54 +----------
 tests/anysimpletype1_sub.py              |  52 +----------
 tests/anysimpletype1_sup.py              |  54 +----------
 tests/anysimpletype2_sub.py              |  52 +----------
 tests/anysimpletype2_sup.py              |  54 +----------
 tests/anywildcard1_sub.py                |  52 +----------
 tests/anywildcard1_sup.py                |  56 +-----------
 tests/anywildcard2_sub.py                |  52 +----------
 tests/anywildcard2_sup.py                |  56 +-----------
 tests/attr_groups1_sub.py                |  52 +----------
 tests/attr_groups1_sup.py                |  64 ++-----------
 tests/attr_groups2_sub.py                |  52 +----------
 tests/attr_groups2_sup.py                |  64 ++-----------
 tests/extensions1_sub.py                 |  52 +----------
 tests/extensions1_sup.py                 |  60 ++----------
 tests/extensions2_sub.py                 |  52 +----------
 tests/extensions2_sup.py                 |  60 ++----------
 tests/mapcleanname1_sub.py               |  52 +----------
 tests/mapcleanname1_sup.py               |  82 ++++-------------
 tests/mapcleanname2_sub.py               |  52 +----------
 tests/mapcleanname2_sup.py               |  82 ++++-------------
 tests/out1_sub.py                        |  52 +----------
 tests/out1_sup.py                        |  99 ++++++--------------
 tests/out2_sub.py                        |  52 +----------
 tests/out2_sup.py                        |  99 ++++++--------------
 tests/people_procincl1_sub.py            |  52 +----------
 tests/people_procincl1_sup.py            | 101 ++++++---------------
 tests/people_procincl2_sub.py            |  52 +----------
 tests/people_procincl2_sup.py            | 101 ++++++---------------
 tests/prefix_classname1_sub.py           |  52 +----------
 tests/prefix_classname1_sup.py           |  99 ++++++--------------
 tests/prefix_classname2_sub.py           |  52 +----------
 tests/prefix_classname2_sup.py           |  99 ++++++--------------
 tests/recursive_simpletype1_sub.py       |  52 +----------
 tests/recursive_simpletype1_sup.py       |  56 +-----------
 tests/recursive_simpletype2_sub.py       |  52 +----------
 tests/recursive_simpletype2_sup.py       |  56 +-----------
 tests/reference_simpletype1_sub.py       |  52 +----------
 tests/reference_simpletype1_sup.py       |  62 ++-----------
 tests/reference_simpletype2_sub.py       |  52 +----------
 tests/reference_simpletype2_sup.py       |  62 ++-----------
 tests/simplecontent_restriction1_sub.py  |  52 +----------
 tests/simplecontent_restriction1_sup.py  |  54 +----------
 tests/simplecontent_restriction2_sub.py  |  52 +----------
 tests/simplecontent_restriction2_sup.py  |  54 +----------
 tests/simpletype_memberspecs1_sub.py     |  52 +----------
 tests/simpletype_memberspecs1_sup.py     |  54 +----------
 tests/simpletype_memberspecs2_sub.py     |  52 +----------
 tests/simpletype_memberspecs2_sup.py     |  54 +----------
 tests/simpletypes_other1_sub.py          |  52 +----------
 tests/simpletypes_other1_sup.py          |  70 +++-----------
 tests/simpletypes_other2_sub.py          |  52 +----------
 tests/simpletypes_other2_sup.py          |  70 +++-----------
 tests/to_etree1_sub.py                   |  52 +----------
 tests/to_etree1_sup.py                   | 111 +++++++----------------
 tests/to_etree2_sub.py                   |  52 +----------
 tests/to_etree2_sup.py                   | 111 +++++++----------------
 tests/validate_simpletypes1_sub.py       |  52 +----------
 tests/validate_simpletypes1_sup.py       |  69 +++-----------
 tests/validate_simpletypes1_warnings.txt |  34 +++----
 tests/validate_simpletypes2_sub.py       |  52 +----------
 tests/validate_simpletypes2_sup.py       |  69 +++-----------
 tests/validate_simpletypes2_warnings.txt |  34 +++----
 tutorial/generateds_tutorial.html        |   8 +-
 tutorial/generateds_tutorial.txt         |   2 +-
 tutorial/generateds_tutorial.zip         | Bin 48767 -> 48768 bytes
 94 files changed, 644 insertions(+), 4416 deletions(-)

diff --git a/README b/README
index 276cbfd..c5a7bab 100644
--- a/README
+++ b/README
@@ -141,6 +141,13 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Change history
 --------------
 
+Version 2.15a (02/26/2015)
+- Modifications so that we generate code that can be used by Python 3.
+  Thanks much to Richard Gerkin for this work.
+- Removed possible use of ElementTree.  Lxml is now a requirement
+  for both running generateDS.py itself and for running the
+  generated code.
+
 Version 2.14a (11/26/2014)
 - Fixed export of simpleType lists (added "' '.join(data)".  Thanks
   to Per Rosengren for catching this.
diff --git a/generateDS.html b/generateDS.html
index 1338aeb..a1673a4 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.14a</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.15a</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">October 30, 2014</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">January 29, 2015</td>
 </tr>
 </tbody>
 </table>
@@ -1403,12 +1403,6 @@ command line option.</p>
 inserted in the XML Schema by importing and using
 <tt class="docutils literal">process_includes.py</tt>, which is included in the <tt class="docutils literal">generateDS.py</tt>
 distribution.</p>
-<p><tt class="docutils literal">process_includes.py</tt> will use either <tt class="docutils literal">lxml</tt> or <tt class="docutils literal">ElementTree</tt>,
-but its preference is <tt class="docutils literal">lxml</tt> because <tt class="docutils literal">lxml</tt> attempts to preserve
-namespace prefixes.  So if your XML Schemas have <tt class="docutils literal">&lt;include ... /&gt;</tt>
-elements in them, you might want to consider installing <tt class="docutils literal">lxml</tt>, even
-though <tt class="docutils literal">ElementTree</tt> is in the Python standard library for Python
-versions &gt;= 2.5.</p>
 <p>The include file processing is capable of retrieve included files
 via FTP and HTTP internet protocols as well as from the local file
 system.</p>
@@ -2942,13 +2936,6 @@ memory problem to some extent when the minidom parser is used.</p>
 script scans your XML Schema document and, recursively, documents
 that are included looking for <tt class="docutils literal">include</tt> elements; it inserts all
 content into a single document, which it writes out.</p>
-<p>Since <tt class="docutils literal">process_includes.py</tt> uses the ElementTree API, in order
-to use <tt class="docutils literal">process_includes.py</tt> you will need one of the following:</p>
-<ul class="simple">
-<li>Python 2.5 or newer -- ElementTree is in the Python-2.5 distribution.  Or,</li>
-<li><a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a>.  Or,</li>
-<li><a class="reference external" href="http://lxml.de/index.html">lxml</a> -- another implementation of the ElementTree API.</li>
-</ul>
 <p>Here are samples of how you might use <tt class="docutils literal">process_includes.py</tt>, if
 your schema contains <tt class="docutils literal">include</tt> elements.</p>
 <p>Example 1:</p>
@@ -2988,8 +2975,8 @@ following among others:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-<a class="reference external" href="/home/dkuhlman/a1/Python/GenerateDS/Hg/generateds/generateDS.txt">View document source</a>.
-Generated on: 2014-10-30 20:13 UTC.
+<a class="reference external" href="generateDS.txt">View document source</a>.
+Generated on: 2015-01-29 19:05 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 b3fdc8e..bba3662 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -184,7 +184,7 @@ logging.disable(logging.INFO)
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.14a'
+VERSION = '2.15a'
 ##VERSION##
 
 GenerateProperties = 0
@@ -4646,60 +4646,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -5723,58 +5677,12 @@ TEMPLATE_SUBCLASS_HEADER = """\
 #
 
 import sys
+from lxml import etree as etree_
 
 import %s as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -6537,7 +6445,7 @@ def main():
         if option[0] == '--session':
             sessionFilename = option[1]
             from libgenerateDS.gui import generateds_gui_session
-            from xml.etree import ElementTree as etree
+            from lxml import etree
             doc = etree.parse(sessionFilename)
             rootNode = doc.getroot()
             sessionObj = generateds_gui_session.sessionType()
diff --git a/generateDS.txt b/generateDS.txt
index e180b80..8400144 100644
--- a/generateDS.txt
+++ b/generateDS.txt
@@ -12,7 +12,7 @@ generateDS -- Generate Data Structures from XML Schema
 
 .. version
 
-:revision: 2.14a
+:revision: 2.15a
 
 .. version
 
@@ -1173,13 +1173,6 @@ inserted in the XML Schema by importing and using
 ``process_includes.py``, which is included in the ``generateDS.py``
 distribution.
 
-``process_includes.py`` will use either ``lxml`` or ``ElementTree``,
-but its preference is ``lxml`` because ``lxml`` attempts to preserve
-namespace prefixes.  So if your XML Schemas have ``<include ... />``
-elements in them, you might want to consider installing ``lxml``, even
-though ``ElementTree`` is in the Python standard library for Python
-versions >= 2.5.
-
 The include file processing is capable of retrieve included files
 via FTP and HTTP internet protocols as well as from the local file
 system.
@@ -2879,15 +2872,6 @@ script scans your XML Schema document and, recursively, documents
 that are included looking for ``include`` elements; it inserts all
 content into a single document, which it writes out.
 
-Since ``process_includes.py`` uses the ElementTree API, in order
-to use ``process_includes.py`` you will need one of the following:
-
-- Python 2.5 or newer -- ElementTree is in the Python-2.5 distribution.  Or,
-
-- `ElementTree`_.  Or,
-
-- `lxml`_ -- another implementation of the ElementTree API.
-
 Here are samples of how you might use ``process_includes.py``, if
 your schema contains ``include`` elements.
 
diff --git a/gui/generateds_gui.py b/gui/generateds_gui.py
index d0e31e8..e1d2646 100755
--- a/gui/generateds_gui.py
+++ b/gui/generateds_gui.py
@@ -31,7 +31,7 @@ from libgenerateDS.gui import generateds_gui_session
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.14a'
+VERSION = '2.15a'
 ##VERSION##
 
 
diff --git a/librarytemplate_howto.html b/librarytemplate_howto.html
index eeb4574..f445187 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.14a</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.15a</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">October 18, 2014</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">January 29, 2015</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: 2014-10-18 18:20 UTC.
+Generated on: 2015-01-29 19:05 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 1ead80d..8ae28ac 100644
--- a/librarytemplate_howto.txt
+++ b/librarytemplate_howto.txt
@@ -8,7 +8,7 @@ How to package a generateDS.py generated library
 
 .. version
 
-:revision: 2.14a
+:revision: 2.15a
 
 .. version
 
diff --git a/process_includes.py b/process_includes.py
index 166239b..8c326a1 100755
--- a/process_includes.py
+++ b/process_includes.py
@@ -30,7 +30,7 @@ from lxml import etree
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-VERSION = '2.14a'
+VERSION = '2.15a'
 ##VERSION##
 
 CatalogDict = {}
diff --git a/setup.py b/setup.py
index 6f85b8b..c24e551 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ setup(name="generateDS",
 # Do not modify the following VERSION comments.
 # Used by updateversion.py.
 ##VERSION##
-    version="2.14a",
+    version="2.15a",
 ##VERSION##
     author="Dave Kuhlman",
     author_email="dkuhlman@davekuhlman.org",
diff --git a/tests/OnePer/oneperType00_1One.py b/tests/OnePer/oneperType00_1One.py
index 472670c..d5e769e 100644
--- a/tests/OnePer/oneperType00_1One.py
+++ b/tests/OnePer/oneperType00_1One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -770,7 +724,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType00_2One.py b/tests/OnePer/oneperType00_2One.py
index 472670c..d5e769e 100644
--- a/tests/OnePer/oneperType00_2One.py
+++ b/tests/OnePer/oneperType00_2One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -770,7 +724,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType01_1One.py b/tests/OnePer/oneperType01_1One.py
index 77416e7..6e34e60 100644
--- a/tests/OnePer/oneperType01_1One.py
+++ b/tests/OnePer/oneperType01_1One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -849,7 +803,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType01_2One.py b/tests/OnePer/oneperType01_2One.py
index 77416e7..6e34e60 100644
--- a/tests/OnePer/oneperType01_2One.py
+++ b/tests/OnePer/oneperType01_2One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -849,7 +803,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType02_1One.py b/tests/OnePer/oneperType02_1One.py
index 5762061..2940142 100644
--- a/tests/OnePer/oneperType02_1One.py
+++ b/tests/OnePer/oneperType02_1One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -849,7 +803,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType02_2One.py b/tests/OnePer/oneperType02_2One.py
index 5762061..2940142 100644
--- a/tests/OnePer/oneperType02_2One.py
+++ b/tests/OnePer/oneperType02_2One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -849,7 +803,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType03_1One.py b/tests/OnePer/oneperType03_1One.py
index 2d315e5..7115e39 100644
--- a/tests/OnePer/oneperType03_1One.py
+++ b/tests/OnePer/oneperType03_1One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -848,7 +802,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/OnePer/oneperType03_2One.py b/tests/OnePer/oneperType03_2One.py
index 2d315e5..7115e39 100644
--- a/tests/OnePer/oneperType03_2One.py
+++ b/tests/OnePer/oneperType03_2One.py
@@ -30,60 +30,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -99,7 +53,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -848,7 +802,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/abstract_type1_sub.py b/tests/abstract_type1_sub.py
index 1e5bee0..c7f59b9 100644
--- a/tests/abstract_type1_sub.py
+++ b/tests/abstract_type1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import abstract_type2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -219,7 +173,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/abstract_type1_sup.py b/tests/abstract_type1_sup.py
index e11fc33..9776dbd 100644
--- a/tests/abstract_type1_sup.py
+++ b/tests/abstract_type1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -991,7 +945,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/abstract_type2_sub.py b/tests/abstract_type2_sub.py
index 1e5bee0..c7f59b9 100644
--- a/tests/abstract_type2_sub.py
+++ b/tests/abstract_type2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import abstract_type2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -219,7 +173,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/abstract_type2_sup.py b/tests/abstract_type2_sup.py
index e11fc33..9776dbd 100644
--- a/tests/abstract_type2_sup.py
+++ b/tests/abstract_type2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -991,7 +945,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/annotations1_sub.py b/tests/annotations1_sub.py
index 72f1e4f..be5202a 100644
--- a/tests/annotations1_sub.py
+++ b/tests/annotations1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import annotations2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -212,7 +166,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/annotations1_sup.py b/tests/annotations1_sup.py
index 727bdab..f3c1c5f 100644
--- a/tests/annotations1_sup.py
+++ b/tests/annotations1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -867,7 +821,7 @@ class document2Type(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'rating')
             self.rating = ival_
@@ -973,7 +927,7 @@ class document3Type(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'rating')
             self.rating = ival_
@@ -993,7 +947,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/annotations2_sub.py b/tests/annotations2_sub.py
index 72f1e4f..be5202a 100644
--- a/tests/annotations2_sub.py
+++ b/tests/annotations2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import annotations2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -212,7 +166,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/annotations2_sup.py b/tests/annotations2_sup.py
index 727bdab..f3c1c5f 100644
--- a/tests/annotations2_sup.py
+++ b/tests/annotations2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -867,7 +821,7 @@ class document2Type(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'rating')
             self.rating = ival_
@@ -973,7 +927,7 @@ class document3Type(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'rating')
             self.rating = ival_
@@ -993,7 +947,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anonymous_type1_sub.py b/tests/anonymous_type1_sub.py
index d1edd83..6363dc8 100644
--- a/tests/anonymous_type1_sub.py
+++ b/tests/anonymous_type1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import anonymous_type2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -219,7 +173,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anonymous_type1_sup.py b/tests/anonymous_type1_sup.py
index 06b1887..86be032 100644
--- a/tests/anonymous_type1_sup.py
+++ b/tests/anonymous_type1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1059,7 +1013,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anonymous_type2_sub.py b/tests/anonymous_type2_sub.py
index d1edd83..6363dc8 100644
--- a/tests/anonymous_type2_sub.py
+++ b/tests/anonymous_type2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import anonymous_type2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -219,7 +173,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anonymous_type2_sup.py b/tests/anonymous_type2_sup.py
index 06b1887..86be032 100644
--- a/tests/anonymous_type2_sup.py
+++ b/tests/anonymous_type2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1059,7 +1013,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anysimpletype1_sub.py b/tests/anysimpletype1_sub.py
index 8814a2e..cc9a996 100644
--- a/tests/anysimpletype1_sub.py
+++ b/tests/anysimpletype1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import anysimpletype2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -205,7 +159,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anysimpletype1_sup.py b/tests/anysimpletype1_sup.py
index 7897acb..1c877f4 100644
--- a/tests/anysimpletype1_sup.py
+++ b/tests/anysimpletype1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -875,7 +829,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anysimpletype2_sub.py b/tests/anysimpletype2_sub.py
index 8814a2e..cc9a996 100644
--- a/tests/anysimpletype2_sub.py
+++ b/tests/anysimpletype2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import anysimpletype2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -205,7 +159,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anysimpletype2_sup.py b/tests/anysimpletype2_sup.py
index 7897acb..1c877f4 100644
--- a/tests/anysimpletype2_sup.py
+++ b/tests/anysimpletype2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -875,7 +829,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anywildcard1_sub.py b/tests/anywildcard1_sub.py
index 6fd3abc..af1a259 100644
--- a/tests/anywildcard1_sub.py
+++ b/tests/anywildcard1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import anywildcard2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -233,7 +187,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anywildcard1_sup.py b/tests/anywildcard1_sup.py
index 9c55f8e..1d7a177 100644
--- a/tests/anywildcard1_sup.py
+++ b/tests/anywildcard1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1086,7 +1040,7 @@ class CatalogType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'catagory')
             self.catagory = ival_
@@ -1275,7 +1229,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anywildcard2_sub.py b/tests/anywildcard2_sub.py
index 6fd3abc..af1a259 100644
--- a/tests/anywildcard2_sub.py
+++ b/tests/anywildcard2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import anywildcard2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -233,7 +187,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/anywildcard2_sup.py b/tests/anywildcard2_sup.py
index 9c55f8e..1d7a177 100644
--- a/tests/anywildcard2_sup.py
+++ b/tests/anywildcard2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1086,7 +1040,7 @@ class CatalogType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'catagory')
             self.catagory = ival_
@@ -1275,7 +1229,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/attr_groups1_sub.py b/tests/attr_groups1_sub.py
index e087586..16a4a86 100644
--- a/tests/attr_groups1_sub.py
+++ b/tests/attr_groups1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import attr_groups2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -198,7 +152,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/attr_groups1_sup.py b/tests/attr_groups1_sup.py
index 2965b9d..269e4de 100644
--- a/tests/attr_groups1_sup.py
+++ b/tests/attr_groups1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -819,7 +773,7 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('value04')
             try:
                 self.value04 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value05', node)
         if value is not None and 'value05' not in already_processed:
@@ -830,14 +784,14 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('value06')
             try:
                 self.value06 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value07', node)
         if value is not None and 'value07' not in already_processed:
             already_processed.add('value07')
             try:
                 self.value07 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value01', node)
         if value is not None and 'value01' not in already_processed:
@@ -848,7 +802,7 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('value02')
             try:
                 self.value02 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value03', node)
         if value is not None and 'value03' not in already_processed:
@@ -859,7 +813,7 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('sequence')
             try:
                 self.sequence = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
     def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
         if nodeName_ == 'returnedTags':
@@ -880,7 +834,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/attr_groups2_sub.py b/tests/attr_groups2_sub.py
index e087586..16a4a86 100644
--- a/tests/attr_groups2_sub.py
+++ b/tests/attr_groups2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import attr_groups2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -198,7 +152,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/attr_groups2_sup.py b/tests/attr_groups2_sup.py
index 2965b9d..269e4de 100644
--- a/tests/attr_groups2_sup.py
+++ b/tests/attr_groups2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -819,7 +773,7 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('value04')
             try:
                 self.value04 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value05', node)
         if value is not None and 'value05' not in already_processed:
@@ -830,14 +784,14 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('value06')
             try:
                 self.value06 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value07', node)
         if value is not None and 'value07' not in already_processed:
             already_processed.add('value07')
             try:
                 self.value07 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value01', node)
         if value is not None and 'value01' not in already_processed:
@@ -848,7 +802,7 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('value02')
             try:
                 self.value02 = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value03', node)
         if value is not None and 'value03' not in already_processed:
@@ -859,7 +813,7 @@ class GetUserReq(GeneratedsSuper):
             already_processed.add('sequence')
             try:
                 self.sequence = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
     def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
         if nodeName_ == 'returnedTags':
@@ -880,7 +834,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/extensions1_sub.py b/tests/extensions1_sub.py
index c1e79eb..669c801 100644
--- a/tests/extensions1_sub.py
+++ b/tests/extensions1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import extensions2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -275,7 +229,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/extensions1_sup.py b/tests/extensions1_sup.py
index 0bb74ac..5cfb5a8 100644
--- a/tests/extensions1_sup.py
+++ b/tests/extensions1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1046,6 +1000,7 @@ class simpleFactoidType(GeneratedsSuper):
     def validate_RelationType(self, value):
         # Validate type RelationType, a restriction on RelationType2.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['down', 'add']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1054,6 +1009,7 @@ class simpleFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['up', 'subtract']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1062,6 +1018,7 @@ class simpleFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['right', 'divide']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1169,6 +1126,7 @@ class mixedFactoidType(GeneratedsSuper):
     def validate_RelationType(self, value):
         # Validate type RelationType, a restriction on RelationType2.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['down', 'add']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1177,6 +1135,7 @@ class mixedFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['up', 'subtract']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1185,6 +1144,7 @@ class mixedFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['right', 'divide']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1841,7 +1801,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/extensions2_sub.py b/tests/extensions2_sub.py
index c1e79eb..669c801 100644
--- a/tests/extensions2_sub.py
+++ b/tests/extensions2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import extensions2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -275,7 +229,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/extensions2_sup.py b/tests/extensions2_sup.py
index 0bb74ac..5cfb5a8 100644
--- a/tests/extensions2_sup.py
+++ b/tests/extensions2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1046,6 +1000,7 @@ class simpleFactoidType(GeneratedsSuper):
     def validate_RelationType(self, value):
         # Validate type RelationType, a restriction on RelationType2.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['down', 'add']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1054,6 +1009,7 @@ class simpleFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['up', 'subtract']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1062,6 +1018,7 @@ class simpleFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['right', 'divide']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1169,6 +1126,7 @@ class mixedFactoidType(GeneratedsSuper):
     def validate_RelationType(self, value):
         # Validate type RelationType, a restriction on RelationType2.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['down', 'add']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1177,6 +1135,7 @@ class mixedFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['up', 'subtract']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1185,6 +1144,7 @@ class mixedFactoidType(GeneratedsSuper):
                     break
             if not enumeration_respectee:
                 warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on RelationType' % {"value" : value.encode("utf-8")} )
+            value = str(value)
             enumerations = ['right', 'divide']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1841,7 +1801,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/mapcleanname1_sub.py b/tests/mapcleanname1_sub.py
index 29b2d56..b5a5741 100644
--- a/tests/mapcleanname1_sub.py
+++ b/tests/mapcleanname1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import mapcleanname2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -240,7 +194,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/mapcleanname1_sup.py b/tests/mapcleanname1_sup.py
index 409eb9c..35f9e0b 100644
--- a/tests/mapcleanname1_sup.py
+++ b/tests/mapcleanname1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -785,7 +739,7 @@ class complex_type01(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value01')
             self.integer_value01.append(ival_)
@@ -793,7 +747,7 @@ class complex_type01(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value01')
             self.float_value01 = fval_
@@ -931,7 +885,7 @@ class complex_type02(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value02')
             self.integer_value02.append(ival_)
@@ -939,7 +893,7 @@ class complex_type02(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value02')
             self.float_value02 = fval_
@@ -1066,7 +1020,7 @@ class complex_type03(complex_type02):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value03')
             self.integer_value03.append(ival_)
@@ -1074,7 +1028,7 @@ class complex_type03(complex_type02):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value03')
             self.float_value03 = fval_
@@ -1208,7 +1162,7 @@ class type_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value02')
             self.integer_value02.append(ival_)
@@ -1216,7 +1170,7 @@ class type_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value02')
             self.float_value02 = fval_
@@ -1343,7 +1297,7 @@ class complex_type04(type_):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value03')
             self.integer_value03.append(ival_)
@@ -1351,7 +1305,7 @@ class complex_type04(type_):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value03')
             self.float_value03 = fval_
@@ -1485,7 +1439,7 @@ class build_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value02')
             self.integer_value02.append(ival_)
@@ -1493,7 +1447,7 @@ class build_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value02')
             self.float_value02 = fval_
@@ -1620,7 +1574,7 @@ class complex_type05(build_):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value03')
             self.integer_value03.append(ival_)
@@ -1628,7 +1582,7 @@ class complex_type05(build_):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value03')
             self.float_value03 = fval_
@@ -1647,7 +1601,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/mapcleanname2_sub.py b/tests/mapcleanname2_sub.py
index 29b2d56..b5a5741 100644
--- a/tests/mapcleanname2_sub.py
+++ b/tests/mapcleanname2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import mapcleanname2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -240,7 +194,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/mapcleanname2_sup.py b/tests/mapcleanname2_sup.py
index 409eb9c..35f9e0b 100644
--- a/tests/mapcleanname2_sup.py
+++ b/tests/mapcleanname2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -785,7 +739,7 @@ class complex_type01(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value01')
             self.integer_value01.append(ival_)
@@ -793,7 +747,7 @@ class complex_type01(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value01')
             self.float_value01 = fval_
@@ -931,7 +885,7 @@ class complex_type02(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value02')
             self.integer_value02.append(ival_)
@@ -939,7 +893,7 @@ class complex_type02(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value02')
             self.float_value02 = fval_
@@ -1066,7 +1020,7 @@ class complex_type03(complex_type02):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value03')
             self.integer_value03.append(ival_)
@@ -1074,7 +1028,7 @@ class complex_type03(complex_type02):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value03')
             self.float_value03 = fval_
@@ -1208,7 +1162,7 @@ class type_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value02')
             self.integer_value02.append(ival_)
@@ -1216,7 +1170,7 @@ class type_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value02')
             self.float_value02 = fval_
@@ -1343,7 +1297,7 @@ class complex_type04(type_):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value03')
             self.integer_value03.append(ival_)
@@ -1351,7 +1305,7 @@ class complex_type04(type_):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value03')
             self.float_value03 = fval_
@@ -1485,7 +1439,7 @@ class build_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value02')
             self.integer_value02.append(ival_)
@@ -1493,7 +1447,7 @@ class build_(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value02')
             self.float_value02 = fval_
@@ -1620,7 +1574,7 @@ class complex_type05(build_):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_value03')
             self.integer_value03.append(ival_)
@@ -1628,7 +1582,7 @@ class complex_type05(build_):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'float_value03')
             self.float_value03 = fval_
@@ -1647,7 +1601,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/out1_sub.py b/tests/out1_sub.py
index 9cfb8b4..aaec107 100644
--- a/tests/out1_sub.py
+++ b/tests/out1_sub.py
@@ -23,58 +23,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import out2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -274,7 +228,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/out1_sup.py b/tests/out1_sup.py
index 96a6724..0f320c9 100644
--- a/tests/out1_sup.py
+++ b/tests/out1_sup.py
@@ -28,60 +28,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -97,7 +51,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1323,14 +1277,14 @@ class person(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1353,7 +1307,7 @@ class person(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1521,6 +1475,7 @@ class programmer(person):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1725,7 +1680,7 @@ class programmer(person):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -1734,7 +1689,7 @@ class programmer(person):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -1743,7 +1698,7 @@ class programmer(person):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -1752,7 +1707,7 @@ class programmer(person):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -1770,7 +1725,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -1780,7 +1735,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -1790,7 +1745,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -1800,7 +1755,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -1823,7 +1778,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -1831,7 +1786,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -2534,7 +2489,7 @@ class agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2713,7 +2668,7 @@ class special_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2961,7 +2916,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2969,7 +2924,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2977,7 +2932,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2985,7 +2940,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -3138,14 +3093,14 @@ class info(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -3295,7 +3250,7 @@ class client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -3361,7 +3316,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/out2_sub.py b/tests/out2_sub.py
index 9cfb8b4..aaec107 100644
--- a/tests/out2_sub.py
+++ b/tests/out2_sub.py
@@ -23,58 +23,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import out2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -274,7 +228,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/out2_sup.py b/tests/out2_sup.py
index 96a6724..0f320c9 100644
--- a/tests/out2_sup.py
+++ b/tests/out2_sup.py
@@ -28,60 +28,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -97,7 +51,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1323,14 +1277,14 @@ class person(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1353,7 +1307,7 @@ class person(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1521,6 +1475,7 @@ class programmer(person):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1725,7 +1680,7 @@ class programmer(person):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -1734,7 +1689,7 @@ class programmer(person):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -1743,7 +1698,7 @@ class programmer(person):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -1752,7 +1707,7 @@ class programmer(person):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -1770,7 +1725,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -1780,7 +1735,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -1790,7 +1745,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -1800,7 +1755,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -1823,7 +1778,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -1831,7 +1786,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -2534,7 +2489,7 @@ class agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2713,7 +2668,7 @@ class special_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2961,7 +2916,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2969,7 +2924,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2977,7 +2932,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2985,7 +2940,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -3138,14 +3093,14 @@ class info(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -3295,7 +3250,7 @@ class client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -3361,7 +3316,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/people_procincl1_sub.py b/tests/people_procincl1_sub.py
index 043e65d..09f65ca 100644
--- a/tests/people_procincl1_sub.py
+++ b/tests/people_procincl1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import people_procincl2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -303,7 +257,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/people_procincl1_sup.py b/tests/people_procincl1_sup.py
index 53ebbc0..49d9a6f 100644
--- a/tests/people_procincl1_sup.py
+++ b/tests/people_procincl1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1283,14 +1237,14 @@ class person(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1313,7 +1267,7 @@ class person(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1711,7 +1665,7 @@ class agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -1865,7 +1819,7 @@ class special_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2079,7 +2033,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2087,7 +2041,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2095,7 +2049,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2103,7 +2057,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -2210,14 +2164,14 @@ class info(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -2316,7 +2270,7 @@ class vehicle(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'wheelcount')
             self.wheelcount = ival_
@@ -2590,6 +2544,7 @@ class programmer(person):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -2787,7 +2742,7 @@ class programmer(person):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -2796,7 +2751,7 @@ class programmer(person):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -2805,7 +2760,7 @@ class programmer(person):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -2814,7 +2769,7 @@ class programmer(person):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -2832,7 +2787,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -2842,7 +2797,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -2852,7 +2807,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -2862,7 +2817,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -2881,7 +2836,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -2889,7 +2844,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -3000,7 +2955,7 @@ class client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -3242,7 +3197,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/people_procincl2_sub.py b/tests/people_procincl2_sub.py
index 043e65d..09f65ca 100644
--- a/tests/people_procincl2_sub.py
+++ b/tests/people_procincl2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import people_procincl2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -303,7 +257,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/people_procincl2_sup.py b/tests/people_procincl2_sup.py
index 53ebbc0..49d9a6f 100644
--- a/tests/people_procincl2_sup.py
+++ b/tests/people_procincl2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1283,14 +1237,14 @@ class person(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1313,7 +1267,7 @@ class person(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1711,7 +1665,7 @@ class agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -1865,7 +1819,7 @@ class special_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2079,7 +2033,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2087,7 +2041,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2095,7 +2049,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2103,7 +2057,7 @@ class booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -2210,14 +2164,14 @@ class info(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -2316,7 +2270,7 @@ class vehicle(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'wheelcount')
             self.wheelcount = ival_
@@ -2590,6 +2544,7 @@ class programmer(person):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -2787,7 +2742,7 @@ class programmer(person):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -2796,7 +2751,7 @@ class programmer(person):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -2805,7 +2760,7 @@ class programmer(person):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -2814,7 +2769,7 @@ class programmer(person):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -2832,7 +2787,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -2842,7 +2797,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -2852,7 +2807,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -2862,7 +2817,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -2881,7 +2836,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -2889,7 +2844,7 @@ class programmer(person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -3000,7 +2955,7 @@ class client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -3242,7 +3197,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/prefix_classname1_sub.py b/tests/prefix_classname1_sub.py
index a196947..c9fe113 100644
--- a/tests/prefix_classname1_sub.py
+++ b/tests/prefix_classname1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import prefix_classname2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -275,7 +229,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/prefix_classname1_sup.py b/tests/prefix_classname1_sup.py
index 105305a..c8af5ad 100644
--- a/tests/prefix_classname1_sup.py
+++ b/tests/prefix_classname1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1227,14 +1181,14 @@ class tomato_person(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1257,7 +1211,7 @@ class tomato_person(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1379,6 +1333,7 @@ class tomato_programmer(tomato_person):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1583,7 +1538,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -1592,7 +1547,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -1601,7 +1556,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -1610,7 +1565,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -1628,7 +1583,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -1638,7 +1593,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -1648,7 +1603,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -1658,7 +1613,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -1681,7 +1636,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -1689,7 +1644,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -2208,7 +2163,7 @@ class tomato_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2341,7 +2296,7 @@ class tomato_special_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2543,7 +2498,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2551,7 +2506,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2559,7 +2514,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2567,7 +2522,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -2674,14 +2629,14 @@ class tomato_info(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -2785,7 +2740,7 @@ class tomato_client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -2805,7 +2760,7 @@ Usage: python <tomato_Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/prefix_classname2_sub.py b/tests/prefix_classname2_sub.py
index a196947..c9fe113 100644
--- a/tests/prefix_classname2_sub.py
+++ b/tests/prefix_classname2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import prefix_classname2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -275,7 +229,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/prefix_classname2_sup.py b/tests/prefix_classname2_sup.py
index 105305a..c8af5ad 100644
--- a/tests/prefix_classname2_sup.py
+++ b/tests/prefix_classname2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1227,14 +1181,14 @@ class tomato_person(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1257,7 +1211,7 @@ class tomato_person(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1379,6 +1333,7 @@ class tomato_programmer(tomato_person):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1583,7 +1538,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -1592,7 +1547,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -1601,7 +1556,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -1610,7 +1565,7 @@ class tomato_programmer(tomato_person):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -1628,7 +1583,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -1638,7 +1593,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -1648,7 +1603,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -1658,7 +1613,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -1681,7 +1636,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -1689,7 +1644,7 @@ class tomato_programmer(tomato_person):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -2208,7 +2163,7 @@ class tomato_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2341,7 +2296,7 @@ class tomato_special_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2543,7 +2498,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2551,7 +2506,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2559,7 +2514,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2567,7 +2522,7 @@ class tomato_booster(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -2674,14 +2629,14 @@ class tomato_info(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -2785,7 +2740,7 @@ class tomato_client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -2805,7 +2760,7 @@ Usage: python <tomato_Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/recursive_simpletype1_sub.py b/tests/recursive_simpletype1_sub.py
index 131671e..269c0e7 100644
--- a/tests/recursive_simpletype1_sub.py
+++ b/tests/recursive_simpletype1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import recursive_simpletype2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -198,7 +152,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/recursive_simpletype1_sup.py b/tests/recursive_simpletype1_sup.py
index a51e719..6acffe8 100644
--- a/tests/recursive_simpletype1_sup.py
+++ b/tests/recursive_simpletype1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -756,7 +710,7 @@ class PersonType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'personId')
             self.personId = ival_
@@ -782,7 +736,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/recursive_simpletype2_sub.py b/tests/recursive_simpletype2_sub.py
index 131671e..269c0e7 100644
--- a/tests/recursive_simpletype2_sub.py
+++ b/tests/recursive_simpletype2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import recursive_simpletype2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -198,7 +152,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/recursive_simpletype2_sup.py b/tests/recursive_simpletype2_sup.py
index a51e719..6acffe8 100644
--- a/tests/recursive_simpletype2_sup.py
+++ b/tests/recursive_simpletype2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -756,7 +710,7 @@ class PersonType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'personId')
             self.personId = ival_
@@ -782,7 +736,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/reference_simpletype1_sub.py b/tests/reference_simpletype1_sub.py
index be2d572..3bc7669 100644
--- a/tests/reference_simpletype1_sub.py
+++ b/tests/reference_simpletype1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import reference_simpletype2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -198,7 +152,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/reference_simpletype1_sup.py b/tests/reference_simpletype1_sup.py
index faae4b3..c5ae428 100644
--- a/tests/reference_simpletype1_sup.py
+++ b/tests/reference_simpletype1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -765,21 +719,21 @@ class dummy(GeneratedsSuper):
             already_processed.add('test_ref_attr')
             try:
                 self.test_ref_attr = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('test_normal_attr', node)
         if value is not None and 'test_normal_attr' not in already_processed:
             already_processed.add('test_normal_attr')
             try:
                 self.test_normal_attr = int(value)
-            except ValueError, exp:
+            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':
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'test_ref_element')
             self.test_ref_element = ival_
@@ -787,7 +741,7 @@ class dummy(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'test_normal_element')
             self.test_normal_element = ival_
@@ -804,7 +758,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/reference_simpletype2_sub.py b/tests/reference_simpletype2_sub.py
index be2d572..3bc7669 100644
--- a/tests/reference_simpletype2_sub.py
+++ b/tests/reference_simpletype2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import reference_simpletype2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -198,7 +152,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/reference_simpletype2_sup.py b/tests/reference_simpletype2_sup.py
index faae4b3..c5ae428 100644
--- a/tests/reference_simpletype2_sup.py
+++ b/tests/reference_simpletype2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -765,21 +719,21 @@ class dummy(GeneratedsSuper):
             already_processed.add('test_ref_attr')
             try:
                 self.test_ref_attr = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('test_normal_attr', node)
         if value is not None and 'test_normal_attr' not in already_processed:
             already_processed.add('test_normal_attr')
             try:
                 self.test_normal_attr = int(value)
-            except ValueError, exp:
+            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':
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'test_ref_element')
             self.test_ref_element = ival_
@@ -787,7 +741,7 @@ class dummy(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'test_normal_element')
             self.test_normal_element = ival_
@@ -804,7 +758,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simplecontent_restriction1_sub.py b/tests/simplecontent_restriction1_sub.py
index 904619e..f74b7a5 100644
--- a/tests/simplecontent_restriction1_sub.py
+++ b/tests/simplecontent_restriction1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import simplecontent_restriction2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -212,7 +166,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simplecontent_restriction1_sup.py b/tests/simplecontent_restriction1_sup.py
index c987b2d..286175e 100644
--- a/tests/simplecontent_restriction1_sup.py
+++ b/tests/simplecontent_restriction1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1006,7 +960,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simplecontent_restriction2_sub.py b/tests/simplecontent_restriction2_sub.py
index 904619e..f74b7a5 100644
--- a/tests/simplecontent_restriction2_sub.py
+++ b/tests/simplecontent_restriction2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import simplecontent_restriction2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -212,7 +166,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simplecontent_restriction2_sup.py b/tests/simplecontent_restriction2_sup.py
index c987b2d..286175e 100644
--- a/tests/simplecontent_restriction2_sup.py
+++ b/tests/simplecontent_restriction2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1006,7 +960,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletype_memberspecs1_sub.py b/tests/simpletype_memberspecs1_sub.py
index eae5e69..aacb59d 100644
--- a/tests/simpletype_memberspecs1_sub.py
+++ b/tests/simpletype_memberspecs1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import simpletype_memberspecs2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -205,7 +159,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletype_memberspecs1_sup.py b/tests/simpletype_memberspecs1_sup.py
index 0d03196..624ce0a 100644
--- a/tests/simpletype_memberspecs1_sup.py
+++ b/tests/simpletype_memberspecs1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -836,7 +790,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletype_memberspecs2_sub.py b/tests/simpletype_memberspecs2_sub.py
index eae5e69..aacb59d 100644
--- a/tests/simpletype_memberspecs2_sub.py
+++ b/tests/simpletype_memberspecs2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import simpletype_memberspecs2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -205,7 +159,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletype_memberspecs2_sup.py b/tests/simpletype_memberspecs2_sup.py
index 0d03196..624ce0a 100644
--- a/tests/simpletype_memberspecs2_sup.py
+++ b/tests/simpletype_memberspecs2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -836,7 +790,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletypes_other1_sub.py b/tests/simpletypes_other1_sub.py
index 6eae03b..5b76f3b 100644
--- a/tests/simpletypes_other1_sub.py
+++ b/tests/simpletypes_other1_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import simpletypes_other2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -205,7 +159,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletypes_other1_sup.py b/tests/simpletypes_other1_sup.py
index 7c6dab2..32d2608 100644
--- a/tests/simpletypes_other1_sup.py
+++ b/tests/simpletypes_other1_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1171,7 +1125,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integerVal1')
             self.integerVal1 = ival_
@@ -1179,7 +1133,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integerVal2')
             self.integerVal2.append(ival_)
@@ -1215,7 +1169,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'decimalVal1')
             self.decimalVal1 = fval_
@@ -1223,7 +1177,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'decimalVal2')
             self.decimalVal2.append(fval_)
@@ -1231,7 +1185,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'doubleVal1')
             self.doubleVal1 = fval_
@@ -1239,7 +1193,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'doubleVal2')
             self.doubleVal2.append(fval_)
@@ -1247,7 +1201,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'floatVal1')
             self.floatVal1 = fval_
@@ -1255,7 +1209,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'floatVal2')
             self.floatVal2.append(fval_)
@@ -1289,7 +1243,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletypes_other2_sub.py b/tests/simpletypes_other2_sub.py
index 6eae03b..5b76f3b 100644
--- a/tests/simpletypes_other2_sub.py
+++ b/tests/simpletypes_other2_sub.py
@@ -24,58 +24,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import simpletypes_other2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -205,7 +159,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/simpletypes_other2_sup.py b/tests/simpletypes_other2_sup.py
index 7c6dab2..32d2608 100644
--- a/tests/simpletypes_other2_sup.py
+++ b/tests/simpletypes_other2_sup.py
@@ -29,60 +29,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -98,7 +52,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1171,7 +1125,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integerVal1')
             self.integerVal1 = ival_
@@ -1179,7 +1133,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integerVal2')
             self.integerVal2.append(ival_)
@@ -1215,7 +1169,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'decimalVal1')
             self.decimalVal1 = fval_
@@ -1223,7 +1177,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'decimalVal2')
             self.decimalVal2.append(fval_)
@@ -1231,7 +1185,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'doubleVal1')
             self.doubleVal1 = fval_
@@ -1239,7 +1193,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'doubleVal2')
             self.doubleVal2.append(fval_)
@@ -1247,7 +1201,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'floatVal1')
             self.floatVal1 = fval_
@@ -1255,7 +1209,7 @@ class simpleTypeTest(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'floatVal2')
             self.floatVal2.append(fval_)
@@ -1289,7 +1243,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/to_etree1_sub.py b/tests/to_etree1_sub.py
index 295c011..7f874cb 100644
--- a/tests/to_etree1_sub.py
+++ b/tests/to_etree1_sub.py
@@ -26,58 +26,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import to_etree2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -319,7 +273,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/to_etree1_sup.py b/tests/to_etree1_sup.py
index 91e61af..134f962 100644
--- a/tests/to_etree1_sup.py
+++ b/tests/to_etree1_sup.py
@@ -31,60 +31,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -100,7 +54,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1072,14 +1026,14 @@ class personType(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1102,7 +1056,7 @@ class personType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1130,7 +1084,7 @@ class personType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'range')
             self.range_ = ival_
@@ -1288,6 +1242,7 @@ class programmerType(personType):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1395,7 +1350,7 @@ class programmerType(personType):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -1404,7 +1359,7 @@ class programmerType(personType):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -1413,7 +1368,7 @@ class programmerType(personType):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -1422,7 +1377,7 @@ class programmerType(personType):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -1440,7 +1395,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -1450,7 +1405,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -1460,7 +1415,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -1470,7 +1425,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -1497,7 +1452,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -1505,7 +1460,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -1620,7 +1575,7 @@ class paramType(GeneratedsSuper):
             already_processed.add('flow')
             try:
                 self.flow = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             self.validate_FlowType(self.flow)    # validate type FlowType
         value = find_attr_value_('sid', node)
@@ -1748,7 +1703,7 @@ class python_programmerType(programmerType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'flowvalue')
             self.flowvalue = ival_
@@ -1995,7 +1950,7 @@ class agentType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2095,7 +2050,7 @@ class special_agentType(agentType):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2190,7 +2145,7 @@ class weird_agentType(agentType):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2332,7 +2287,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2340,7 +2295,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2348,7 +2303,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2356,7 +2311,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -2427,14 +2382,14 @@ class infoType(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -2502,7 +2457,7 @@ class vehicleType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'wheelcount')
             self.wheelcount = ival_
@@ -2704,7 +2659,7 @@ class hot_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2776,7 +2731,7 @@ class client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -2809,7 +2764,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/to_etree2_sub.py b/tests/to_etree2_sub.py
index 295c011..7f874cb 100644
--- a/tests/to_etree2_sub.py
+++ b/tests/to_etree2_sub.py
@@ -26,58 +26,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import to_etree2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -319,7 +273,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/to_etree2_sup.py b/tests/to_etree2_sup.py
index 91e61af..134f962 100644
--- a/tests/to_etree2_sup.py
+++ b/tests/to_etree2_sup.py
@@ -31,60 +31,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -100,7 +54,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -1072,14 +1026,14 @@ class personType(GeneratedsSuper):
             already_processed.add('ratio')
             try:
                 self.ratio = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (ratio): %s' % exp)
         value = find_attr_value_('id', node)
         if value is not None and 'id' not in already_processed:
             already_processed.add('id')
             try:
                 self.id = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('value', node)
         if value is not None and 'value' not in already_processed:
@@ -1102,7 +1056,7 @@ class personType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'category')
             self.category = ival_
@@ -1130,7 +1084,7 @@ class personType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'range')
             self.range_ = ival_
@@ -1288,6 +1242,7 @@ class programmerType(personType):
     def validate_ArrayTypes(self, value):
         # Validate type ArrayTypes, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1395,7 +1350,7 @@ class programmerType(personType):
             already_processed.add('attrnegint')
             try:
                 self.attrnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnegint >= 0:
                 raise_parse_error(node, 'Invalid NegativeInteger')
@@ -1404,7 +1359,7 @@ class programmerType(personType):
             already_processed.add('attrposint')
             try:
                 self.attrposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrposint <= 0:
                 raise_parse_error(node, 'Invalid PositiveInteger')
@@ -1413,7 +1368,7 @@ class programmerType(personType):
             already_processed.add('attrnonnegint')
             try:
                 self.attrnonnegint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonnegint < 0:
                 raise_parse_error(node, 'Invalid NonNegativeInteger')
@@ -1422,7 +1377,7 @@ class programmerType(personType):
             already_processed.add('attrnonposint')
             try:
                 self.attrnonposint = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             if self.attrnonposint > 0:
                 raise_parse_error(node, 'Invalid NonPositiveInteger')
@@ -1440,7 +1395,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ <= 0:
                 raise_parse_error(child_, 'requires positiveInteger')
@@ -1450,7 +1405,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ > 0:
                 raise_parse_error(child_, 'requires nonPositiveInteger')
@@ -1460,7 +1415,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ >= 0:
                 raise_parse_error(child_, 'requires negativeInteger')
@@ -1470,7 +1425,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             if ival_ < 0:
                 raise_parse_error(child_, 'requires nonNegativeInteger')
@@ -1497,7 +1452,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'elshort')
             self.elshort = ival_
@@ -1505,7 +1460,7 @@ class programmerType(personType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'ellong')
             self.ellong = ival_
@@ -1620,7 +1575,7 @@ class paramType(GeneratedsSuper):
             already_processed.add('flow')
             try:
                 self.flow = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
             self.validate_FlowType(self.flow)    # validate type FlowType
         value = find_attr_value_('sid', node)
@@ -1748,7 +1703,7 @@ class python_programmerType(programmerType):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'flowvalue')
             self.flowvalue = ival_
@@ -1995,7 +1950,7 @@ class agentType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2095,7 +2050,7 @@ class special_agentType(agentType):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2190,7 +2145,7 @@ class weird_agentType(agentType):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2332,7 +2287,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_name')
             self.other_name = fval_
@@ -2340,7 +2295,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'class')
             self.class_ = fval_
@@ -2348,7 +2303,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'other_value')
             self.other_value.append(fval_)
@@ -2356,7 +2311,7 @@ class boosterType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'type')
             self.type_.append(fval_)
@@ -2427,14 +2382,14 @@ class infoType(GeneratedsSuper):
             already_processed.add('rating')
             try:
                 self.rating = float(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise ValueError('Bad float/double attribute (rating): %s' % exp)
         value = find_attr_value_('type', node)
         if value is not None and 'type' not in already_processed:
             already_processed.add('type')
             try:
                 self.type_ = int(value)
-            except ValueError, exp:
+            except ValueError as exp:
                 raise_parse_error(node, 'Bad integer attribute: %s' % exp)
         value = find_attr_value_('name', node)
         if value is not None and 'name' not in already_processed:
@@ -2502,7 +2457,7 @@ class vehicleType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'wheelcount')
             self.wheelcount = ival_
@@ -2704,7 +2659,7 @@ class hot_agent(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'priority')
             self.priority = fval_
@@ -2776,7 +2731,7 @@ class client_handlerType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'refid')
             self.refid = ival_
@@ -2809,7 +2764,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/validate_simpletypes1_sub.py b/tests/validate_simpletypes1_sub.py
index 334881a..2fcfe92 100644
--- a/tests/validate_simpletypes1_sub.py
+++ b/tests/validate_simpletypes1_sub.py
@@ -23,58 +23,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import validate_simpletypes2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -218,7 +172,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/validate_simpletypes1_sup.py b/tests/validate_simpletypes1_sup.py
index 8833541..23e576d 100644
--- a/tests/validate_simpletypes1_sup.py
+++ b/tests/validate_simpletypes1_sup.py
@@ -28,60 +28,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -97,7 +51,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -961,6 +915,7 @@ class simpleOneType(GeneratedsSuper):
     def validate_token_enum_st(self, value):
         # Validate type token_enum_st, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1145,7 +1100,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_range_1_value')
             self.integer_range_1_value = ival_
@@ -1169,7 +1124,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_range_incl_value')
             self.integer_range_incl_value = ival_
@@ -1178,7 +1133,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_range_excl_value')
             self.integer_range_excl_value = ival_
@@ -1197,7 +1152,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'totalDigits_value')
             self.totalDigits_value = fval_
@@ -1206,7 +1161,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'anonymous_float_value')
             self.anonymous_float_value = fval_
@@ -1215,7 +1170,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'primative_integer')
             self.primative_integer = ival_
@@ -1223,7 +1178,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'primative_float')
             self.primative_float = fval_
@@ -1422,7 +1377,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/validate_simpletypes1_warnings.txt b/tests/validate_simpletypes1_warnings.txt
index 381f25b..5e14182 100644
--- a/tests/validate_simpletypes1_warnings.txt
+++ b/tests/validate_simpletypes1_warnings.txt
@@ -1,34 +1,34 @@
-tests/validate_simpletypes2_sup.py:949: UserWarning: Value "2" does not match xsd minExclusive restriction on integer_range_1_st
+tests/validate_simpletypes2_sup.py:903: UserWarning: Value "2" does not match xsd minExclusive restriction on integer_range_1_st
   warnings_.warn('Value "%(value)s" does not match xsd minExclusive restriction on integer_range_1_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:959: UserWarning: Value "mmaaa1234mnopzzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
+tests/validate_simpletypes2_sup.py:913: UserWarning: Value "mmaaa1234mnopzzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
   warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, ))
-tests/validate_simpletypes2_sup.py:971: UserWarning: Value "floatxx" does not match xsd enumeration restriction on token_enum_st
+tests/validate_simpletypes2_sup.py:926: UserWarning: Value "floatxx" does not match xsd enumeration restriction on token_enum_st
   warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on token_enum_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:978: UserWarning: Value "22" does not match xsd maxInclusive restriction on integer_range_incl_st
+tests/validate_simpletypes2_sup.py:933: UserWarning: Value "22" does not match xsd maxInclusive restriction on integer_range_incl_st
   warnings_.warn('Value "%(value)s" does not match xsd maxInclusive restriction on integer_range_incl_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:983: UserWarning: Value "-40" does not match xsd minExclusive restriction on integer_range_excl_st
+tests/validate_simpletypes2_sup.py:938: UserWarning: Value "-40" does not match xsd minExclusive restriction on integer_range_excl_st
   warnings_.warn('Value "%(value)s" does not match xsd minExclusive restriction on integer_range_excl_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:992: UserWarning: Value "mno pqr" does not match xsd minLength restriction on min_max_length_st
+tests/validate_simpletypes2_sup.py:947: UserWarning: Value "mno pqr" does not match xsd minLength restriction on min_max_length_st
   warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on min_max_length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:997: UserWarning: Value "012345" does not match xsd length restriction on length_st
+tests/validate_simpletypes2_sup.py:952: UserWarning: Value "012345" does not match xsd length restriction on length_st
   warnings_.warn('Value "%(value)s" does not match xsd length restriction on length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:1007: UserWarning: Value "0.2" does not match xsd minInclusive restriction on anonymous_float_valueType
+tests/validate_simpletypes2_sup.py:962: UserWarning: Value "0.2" does not match xsd minInclusive restriction on anonymous_float_valueType
   warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on anonymous_float_valueType' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:951: UserWarning: Value "9" does not match xsd maxExclusive restriction on integer_range_1_st
+tests/validate_simpletypes2_sup.py:905: UserWarning: Value "9" does not match xsd maxExclusive restriction on integer_range_1_st
   warnings_.warn('Value "%(value)s" does not match xsd maxExclusive restriction on integer_range_1_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:959: UserWarning: Value "aaa1234mnopzzzbcd" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
+tests/validate_simpletypes2_sup.py:913: UserWarning: Value "aaa1234mnopzzzbcd" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
   warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, ))
-tests/validate_simpletypes2_sup.py:976: UserWarning: Value "-50" does not match xsd minInclusive restriction on integer_range_incl_st
+tests/validate_simpletypes2_sup.py:931: UserWarning: Value "-50" does not match xsd minInclusive restriction on integer_range_incl_st
   warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on integer_range_incl_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:990: UserWarning: Value "asdf asdf asdf asdf asdf asdf" does not match xsd maxLength restriction on min_max_length_st
+tests/validate_simpletypes2_sup.py:945: UserWarning: Value "asdf asdf asdf asdf asdf asdf" does not match xsd maxLength restriction on min_max_length_st
   warnings_.warn('Value "%(value)s" does not match xsd maxLength restriction on min_max_length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:997: UserWarning: Value "01234567890" does not match xsd length restriction on length_st
+tests/validate_simpletypes2_sup.py:952: UserWarning: Value "01234567890" does not match xsd length restriction on length_st
   warnings_.warn('Value "%(value)s" does not match xsd length restriction on length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:1009: UserWarning: Value "6.6" does not match xsd maxInclusive restriction on anonymous_float_valueType
+tests/validate_simpletypes2_sup.py:964: UserWarning: Value "6.6" does not match xsd maxInclusive restriction on anonymous_float_valueType
   warnings_.warn('Value "%(value)s" does not match xsd maxInclusive restriction on anonymous_float_valueType' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:956: UserWarning: Value "aaa12zzz" does not match xsd minLength restriction on pattern_st
+tests/validate_simpletypes2_sup.py:910: UserWarning: Value "aaa12zzz" does not match xsd minLength restriction on pattern_st
   warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on pattern_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:959: UserWarning: Value "aaa12zzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
+tests/validate_simpletypes2_sup.py:913: UserWarning: Value "aaa12zzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
   warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, ))
-tests/validate_simpletypes2_sup.py:1341: UserWarning: Value "pqrst" does not match xsd minLength restriction on simpleTwoElementTwoType
+tests/validate_simpletypes2_sup.py:1296: UserWarning: Value "pqrst" does not match xsd minLength restriction on simpleTwoElementTwoType
   warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on simpleTwoElementTwoType' % {"value" : value.encode("utf-8")} )
diff --git a/tests/validate_simpletypes2_sub.py b/tests/validate_simpletypes2_sub.py
index 334881a..2fcfe92 100644
--- a/tests/validate_simpletypes2_sub.py
+++ b/tests/validate_simpletypes2_sub.py
@@ -23,58 +23,12 @@
 #
 
 import sys
+from lxml import etree as etree_
 
 import validate_simpletypes2_sup as supermod
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -218,7 +172,7 @@ Usage: python ???.py <infilename>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/validate_simpletypes2_sup.py b/tests/validate_simpletypes2_sup.py
index 8833541..23e576d 100644
--- a/tests/validate_simpletypes2_sup.py
+++ b/tests/validate_simpletypes2_sup.py
@@ -28,60 +28,14 @@ import re as re_
 import base64
 import datetime as datetime_
 import warnings as warnings_
+from lxml import etree as etree_
 
 
 Validate_simpletypes_ = True
 
 
-etree_ = None
-Verbose_import_ = False
-(
-    XMLParser_import_none, XMLParser_import_lxml,
-    XMLParser_import_elementtree
-) = range(3)
-XMLParser_import_library = None
-try:
-    # lxml
-    from lxml import etree as etree_
-    XMLParser_import_library = XMLParser_import_lxml
-    if Verbose_import_:
-        print("running with lxml.etree")
-except ImportError:
-    try:
-        # cElementTree from Python 2.5+
-        import xml.etree.cElementTree as etree_
-        XMLParser_import_library = XMLParser_import_elementtree
-        if Verbose_import_:
-            print("running with cElementTree on Python 2.5+")
-    except ImportError:
-        try:
-            # ElementTree from Python 2.5+
-            import xml.etree.ElementTree as etree_
-            XMLParser_import_library = XMLParser_import_elementtree
-            if Verbose_import_:
-                print("running with ElementTree on Python 2.5+")
-        except ImportError:
-            try:
-                # normal cElementTree install
-                import cElementTree as etree_
-                XMLParser_import_library = XMLParser_import_elementtree
-                if Verbose_import_:
-                    print("running with cElementTree")
-            except ImportError:
-                try:
-                    # normal ElementTree install
-                    import elementtree.ElementTree as etree_
-                    XMLParser_import_library = XMLParser_import_elementtree
-                    if Verbose_import_:
-                        print("running with ElementTree")
-                except ImportError:
-                    raise ImportError(
-                        "Failed to import ElementTree from any known place")
-
-
 def parsexml_(*args, **kwargs):
-    if (XMLParser_import_library == XMLParser_import_lxml and
-            'parser' not in kwargs):
+    if 'parser' not in kwargs:
         # Use the lxml ElementTree compatible parser so that, e.g.,
         #   we ignore comments.
         kwargs['parser'] = etree_.ETCompatXMLParser()
@@ -97,7 +51,7 @@ def parsexml_(*args, **kwargs):
 
 try:
     from generatedssuper import GeneratedsSuper
-except ImportError, exp:
+except ImportError as exp:
 
     class GeneratedsSuper(object):
         tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
@@ -961,6 +915,7 @@ class simpleOneType(GeneratedsSuper):
     def validate_token_enum_st(self, value):
         # Validate type token_enum_st, a restriction on xs:NMTOKEN.
         if value is not None and Validate_simpletypes_:
+            value = str(value)
             enumerations = ['float', 'int', 'Name', 'token']
             enumeration_respectee = False
             for enum in enumerations:
@@ -1145,7 +1100,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_range_1_value')
             self.integer_range_1_value = ival_
@@ -1169,7 +1124,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_range_incl_value')
             self.integer_range_incl_value = ival_
@@ -1178,7 +1133,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'integer_range_excl_value')
             self.integer_range_excl_value = ival_
@@ -1197,7 +1152,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'totalDigits_value')
             self.totalDigits_value = fval_
@@ -1206,7 +1161,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'anonymous_float_value')
             self.anonymous_float_value = fval_
@@ -1215,7 +1170,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 ival_ = int(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires integer: %s' % exp)
             ival_ = self.gds_validate_integer(ival_, node, 'primative_integer')
             self.primative_integer = ival_
@@ -1223,7 +1178,7 @@ class simpleOneType(GeneratedsSuper):
             sval_ = child_.text
             try:
                 fval_ = float(sval_)
-            except (TypeError, ValueError), exp:
+            except (TypeError, ValueError) as exp:
                 raise_parse_error(child_, 'requires float or double: %s' % exp)
             fval_ = self.gds_validate_float(fval_, node, 'primative_float')
             self.primative_float = fval_
@@ -1422,7 +1377,7 @@ Usage: python <Parser>.py [ -s ] <in_xml_file>
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(1)
 
 
diff --git a/tests/validate_simpletypes2_warnings.txt b/tests/validate_simpletypes2_warnings.txt
index 381f25b..5e14182 100644
--- a/tests/validate_simpletypes2_warnings.txt
+++ b/tests/validate_simpletypes2_warnings.txt
@@ -1,34 +1,34 @@
-tests/validate_simpletypes2_sup.py:949: UserWarning: Value "2" does not match xsd minExclusive restriction on integer_range_1_st
+tests/validate_simpletypes2_sup.py:903: UserWarning: Value "2" does not match xsd minExclusive restriction on integer_range_1_st
   warnings_.warn('Value "%(value)s" does not match xsd minExclusive restriction on integer_range_1_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:959: UserWarning: Value "mmaaa1234mnopzzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
+tests/validate_simpletypes2_sup.py:913: UserWarning: Value "mmaaa1234mnopzzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
   warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, ))
-tests/validate_simpletypes2_sup.py:971: UserWarning: Value "floatxx" does not match xsd enumeration restriction on token_enum_st
+tests/validate_simpletypes2_sup.py:926: UserWarning: Value "floatxx" does not match xsd enumeration restriction on token_enum_st
   warnings_.warn('Value "%(value)s" does not match xsd enumeration restriction on token_enum_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:978: UserWarning: Value "22" does not match xsd maxInclusive restriction on integer_range_incl_st
+tests/validate_simpletypes2_sup.py:933: UserWarning: Value "22" does not match xsd maxInclusive restriction on integer_range_incl_st
   warnings_.warn('Value "%(value)s" does not match xsd maxInclusive restriction on integer_range_incl_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:983: UserWarning: Value "-40" does not match xsd minExclusive restriction on integer_range_excl_st
+tests/validate_simpletypes2_sup.py:938: UserWarning: Value "-40" does not match xsd minExclusive restriction on integer_range_excl_st
   warnings_.warn('Value "%(value)s" does not match xsd minExclusive restriction on integer_range_excl_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:992: UserWarning: Value "mno pqr" does not match xsd minLength restriction on min_max_length_st
+tests/validate_simpletypes2_sup.py:947: UserWarning: Value "mno pqr" does not match xsd minLength restriction on min_max_length_st
   warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on min_max_length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:997: UserWarning: Value "012345" does not match xsd length restriction on length_st
+tests/validate_simpletypes2_sup.py:952: UserWarning: Value "012345" does not match xsd length restriction on length_st
   warnings_.warn('Value "%(value)s" does not match xsd length restriction on length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:1007: UserWarning: Value "0.2" does not match xsd minInclusive restriction on anonymous_float_valueType
+tests/validate_simpletypes2_sup.py:962: UserWarning: Value "0.2" does not match xsd minInclusive restriction on anonymous_float_valueType
   warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on anonymous_float_valueType' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:951: UserWarning: Value "9" does not match xsd maxExclusive restriction on integer_range_1_st
+tests/validate_simpletypes2_sup.py:905: UserWarning: Value "9" does not match xsd maxExclusive restriction on integer_range_1_st
   warnings_.warn('Value "%(value)s" does not match xsd maxExclusive restriction on integer_range_1_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:959: UserWarning: Value "aaa1234mnopzzzbcd" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
+tests/validate_simpletypes2_sup.py:913: UserWarning: Value "aaa1234mnopzzzbcd" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
   warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, ))
-tests/validate_simpletypes2_sup.py:976: UserWarning: Value "-50" does not match xsd minInclusive restriction on integer_range_incl_st
+tests/validate_simpletypes2_sup.py:931: UserWarning: Value "-50" does not match xsd minInclusive restriction on integer_range_incl_st
   warnings_.warn('Value "%(value)s" does not match xsd minInclusive restriction on integer_range_incl_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:990: UserWarning: Value "asdf asdf asdf asdf asdf asdf" does not match xsd maxLength restriction on min_max_length_st
+tests/validate_simpletypes2_sup.py:945: UserWarning: Value "asdf asdf asdf asdf asdf asdf" does not match xsd maxLength restriction on min_max_length_st
   warnings_.warn('Value "%(value)s" does not match xsd maxLength restriction on min_max_length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:997: UserWarning: Value "01234567890" does not match xsd length restriction on length_st
+tests/validate_simpletypes2_sup.py:952: UserWarning: Value "01234567890" does not match xsd length restriction on length_st
   warnings_.warn('Value "%(value)s" does not match xsd length restriction on length_st' % {"value" : value.encode("utf-8")} )
-tests/validate_simpletypes2_sup.py:1009: UserWarning: Value "6.6" does not match xsd maxInclusive restriction on anonymous_float_valueType
+tests/validate_simpletypes2_sup.py:964: UserWarning: Value "6.6" does not match xsd maxInclusive restriction on anonymous_float_valueType
   warnings_.warn('Value "%(value)s" does not match xsd maxInclusive restriction on anonymous_float_valueType' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:956: UserWarning: Value "aaa12zzz" does not match xsd minLength restriction on pattern_st
+tests/validate_simpletypes2_sup.py:910: UserWarning: Value "aaa12zzz" does not match xsd minLength restriction on pattern_st
   warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on pattern_st' % {"value" : value} )
-tests/validate_simpletypes2_sup.py:959: UserWarning: Value "aaa12zzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
+tests/validate_simpletypes2_sup.py:913: UserWarning: Value "aaa12zzz" does not match xsd pattern restrictions: [['^aaa.*zzz$', '^bbb.*xxx$'], ['^.*123.*$', '^.*456.*$']]
   warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_pattern_st_patterns_, ))
-tests/validate_simpletypes2_sup.py:1341: UserWarning: Value "pqrst" does not match xsd minLength restriction on simpleTwoElementTwoType
+tests/validate_simpletypes2_sup.py:1296: UserWarning: Value "pqrst" does not match xsd minLength restriction on simpleTwoElementTwoType
   warnings_.warn('Value "%(value)s" does not match xsd minLength restriction on simpleTwoElementTwoType' % {"value" : value.encode("utf-8")} )
diff --git a/tutorial/generateds_tutorial.html b/tutorial/generateds_tutorial.html
index 900698b..2566d9a 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.14a</td>
+<tr class="field"><th class="field-name">revision:</th><td class="field-body">2.15a</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">October 18, 2014</td>
+<tr class="field"><th class="field-name">date:</th><td class="field-body">January 29, 2015</td>
 </tr>
 </tbody>
 </table>
@@ -1209,8 +1209,8 @@ named <tt class="docutils literal">garden_api.py</tt>, you can create an instanc
 </div>
 <div class="footer">
 <hr class="footer" />
-<a class="reference external" href="tutorial/generateds_tutorial.txt">View document source</a>.
-Generated on: 2014-10-18 18:15 UTC.
+<a class="reference external" href="generateds_tutorial.txt">View document source</a>.
+Generated on: 2015-01-29 19:05 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 6637dc9..d01a293 100644
--- a/tutorial/generateds_tutorial.txt
+++ b/tutorial/generateds_tutorial.txt
@@ -11,7 +11,7 @@ generateDS -- Introduction and Tutorial
 
 .. version
 
-:revision: 2.14a
+:revision: 2.15a
 
 .. version
 
diff --git a/tutorial/generateds_tutorial.zip b/tutorial/generateds_tutorial.zip
index cdf284fae5e32d19e27e4f8da4ae82d05ffee84d..d60fe859bc6af1e822b306176c76527c30b63a20 100644
GIT binary patch
delta 13551
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

delta 13617
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

-- 
GitLab