#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Generated Thu Feb 29 18:07:10 2024 by generateDS.py version 2.43.3.
# Python 3.11.3 (main, Apr 19 2023, 18:49:55) [Clang 14.0.6 ]
#
# Command line options:
#   ('-f', '')
#   ('-o', 'schema/article_pt_lib.py')
#   ('-s', 'schema/article_pt.py')
#
# Command line arguments:
#   definitions/ARTICLE_PT.xsd
#
# Command line:
#   /Users/daniilossinkin/anaconda3/bin/generateDS -f -o "schema/article_pt_lib.py" -s "schema/article_pt.py" definitions/ARTICLE_PT.xsd
#
# Current working directory (os.getcwd()):
#   imports
#

import sys
try:
    ModulenotfoundExp_ = ModuleNotFoundError
except NameError:
    ModulenotfoundExp_ = ImportError
from six.moves import zip_longest
import os
import re as re_
import base64
import datetime as datetime_
import decimal as decimal_
from lxml import etree as etree_


Validate_simpletypes_ = True
SaveElementTreeNode = True
TagNamePrefix = ""
if sys.version_info.major == 2:
    BaseStrType_ = basestring
else:
    BaseStrType_ = str


def parsexml_(infile, parser=None, **kwargs):
    if parser is None:
        # Use the lxml ElementTree compatible parser so that, e.g.,
        #   we ignore comments.
        try:
            parser = etree_.ETCompatXMLParser()
        except AttributeError:
            # fallback to xml.etree
            parser = etree_.XMLParser()
    try:
        if isinstance(infile, os.PathLike):
            infile = os.path.join(infile)
    except AttributeError:
        pass
    doc = etree_.parse(infile, parser=parser, **kwargs)
    return doc

def parsexmlstring_(instring, parser=None, **kwargs):
    if parser is None:
        # Use the lxml ElementTree compatible parser so that, e.g.,
        #   we ignore comments.
        try:
            parser = etree_.ETCompatXMLParser()
        except AttributeError:
            # fallback to xml.etree
            parser = etree_.XMLParser()
    element = etree_.fromstring(instring, parser=parser, **kwargs)
    return element

#
# Namespace prefix definition table (and other attributes, too)
#
# The module generatedsnamespaces, if it is importable, must contain
# a dictionary named GeneratedsNamespaceDefs.  This Python dictionary
# should map element type names (strings) to XML schema namespace prefix
# definitions.  The export method for any class for which there is
# a namespace prefix definition, will export that definition in the
# XML representation of that element.  See the export method of
# any generated element type class for an example of the use of this
# table.
# A sample table is:
#
#     # File: generatedsnamespaces.py
#
#     GenerateDSNamespaceDefs = {
#         "ElementtypeA": "http://www.xxx.com/namespaceA",
#         "ElementtypeB": "http://www.xxx.com/namespaceB",
#     }
#
# Additionally, the generatedsnamespaces module can contain a python
# dictionary named GenerateDSNamespaceTypePrefixes that associates element
# types with the namespace prefixes that are to be added to the
# "xsi:type" attribute value.  See the _exportAttributes method of
# any generated element type and the generation of "xsi:type" for an
# example of the use of this table.
# An example table:
#
#     # File: generatedsnamespaces.py
#
#     GenerateDSNamespaceTypePrefixes = {
#         "ElementtypeC": "aaa:",
#         "ElementtypeD": "bbb:",
#     }
#

try:
    from generatedsnamespaces import GenerateDSNamespaceDefs as GenerateDSNamespaceDefs_
except ModulenotfoundExp_ :
    GenerateDSNamespaceDefs_ = {}
try:
    from generatedsnamespaces import GenerateDSNamespaceTypePrefixes as GenerateDSNamespaceTypePrefixes_
except ModulenotfoundExp_ :
    GenerateDSNamespaceTypePrefixes_ = {}

#
# You can replace the following class definition by defining an
# importable module named "generatedscollector" containing a class
# named "GdsCollector".  See the default class definition below for
# clues about the possible content of that class.
#
try:
    from generatedscollector import GdsCollector as GdsCollector_
except ModulenotfoundExp_ :

    class GdsCollector_(object):

        def __init__(self, messages=None):
            if messages is None:
                self.messages = []
            else:
                self.messages = messages

        def add_message(self, msg):
            self.messages.append(msg)

        def get_messages(self):
            return self.messages

        def clear_messages(self):
            self.messages = []

        def print_messages(self):
            for msg in self.messages:
                print("Warning: {}".format(msg))

        def write_messages(self, outstream):
            for msg in self.messages:
                outstream.write("Warning: {}\n".format(msg))


#
# The super-class for enum types
#

try:
    from enum import Enum
except ModulenotfoundExp_ :
    Enum = object

#
# The root super-class for element type classes
#
# Calls to the methods in these classes are generated by generateDS.py.
# You can replace these methods by re-implementing the following class
#   in a module named generatedssuper.py.

try:
    from generatedssuper import GeneratedsSuper
except ModulenotfoundExp_ as exp:
    try:
        from generatedssupersuper import GeneratedsSuperSuper
    except ModulenotfoundExp_ as exp:
        class GeneratedsSuperSuper(object):
            pass
    
    class GeneratedsSuper(GeneratedsSuperSuper):
        __hash__ = object.__hash__
        tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
        class _FixedOffsetTZ(datetime_.tzinfo):
            def __init__(self, offset, name):
                self.__offset = datetime_.timedelta(minutes=offset)
                self.__name = name
            def utcoffset(self, dt):
                return self.__offset
            def tzname(self, dt):
                return self.__name
            def dst(self, dt):
                return None
        def __str__(self):
            settings = {
                'str_pretty_print': True,
                'str_indent_level': 0,
                'str_namespaceprefix': '',
                'str_name': self.__class__.__name__,
                'str_namespacedefs': '',
            }
            for n in settings:
                if hasattr(self, n):
                    settings[n] = getattr(self, n)
            if sys.version_info.major == 2:
                from StringIO import StringIO
            else:
                from io import StringIO
            output = StringIO()
            self.export(
                output,
                settings['str_indent_level'],
                pretty_print=settings['str_pretty_print'],
                namespaceprefix_=settings['str_namespaceprefix'],
                name_=settings['str_name'],
                namespacedef_=settings['str_namespacedefs']
            )
            strval = output.getvalue()
            output.close()
            return strval
        def gds_format_string(self, input_data, input_name=''):
            return input_data
        def gds_parse_string(self, input_data, node=None, input_name=''):
            return input_data
        def gds_validate_string(self, input_data, node=None, input_name=''):
            if not input_data:
                return ''
            else:
                return input_data
        def gds_format_base64(self, input_data, input_name=''):
            return base64.b64encode(input_data).decode('ascii')
        def gds_validate_base64(self, input_data, node=None, input_name=''):
            return input_data
        def gds_format_integer(self, input_data, input_name=''):
            return '%d' % int(input_data)
        def gds_parse_integer(self, input_data, node=None, input_name=''):
            try:
                ival = int(input_data)
            except (TypeError, ValueError) as exp:
                raise_parse_error(node, 'Requires integer value: %s' % exp)
            return ival
        def gds_validate_integer(self, input_data, node=None, input_name=''):
            try:
                value = int(input_data)
            except (TypeError, ValueError):
                raise_parse_error(node, 'Requires integer value')
            return value
        def gds_format_integer_list(self, input_data, input_name=''):
            if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
                input_data = [str(s) for s in input_data]
            return '%s' % ' '.join(input_data)
        def gds_validate_integer_list(
                self, input_data, node=None, input_name=''):
            values = input_data.split()
            for value in values:
                try:
                    int(value)
                except (TypeError, ValueError):
                    raise_parse_error(node, 'Requires sequence of integer values')
            return values
        def gds_format_float(self, input_data, input_name=''):
            value = ('%.15f' % float(input_data)).rstrip('0')
            if value.endswith('.'):
                value += '0'
            return value
    
        def gds_parse_float(self, input_data, node=None, input_name=''):
            try:
                fval_ = float(input_data)
            except (TypeError, ValueError) as exp:
                raise_parse_error(node, 'Requires float or double value: %s' % exp)
            return fval_
        def gds_validate_float(self, input_data, node=None, input_name=''):
            try:
                value = float(input_data)
            except (TypeError, ValueError):
                raise_parse_error(node, 'Requires float value')
            return value
        def gds_format_float_list(self, input_data, input_name=''):
            if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
                input_data = [str(s) for s in input_data]
            return '%s' % ' '.join(input_data)
        def gds_validate_float_list(
                self, input_data, node=None, input_name=''):
            values = input_data.split()
            for value in values:
                try:
                    float(value)
                except (TypeError, ValueError):
                    raise_parse_error(node, 'Requires sequence of float values')
            return values
        def gds_format_decimal(self, input_data, input_name=''):
            return_value = '%s' % input_data
            if '.' in return_value:
                return_value = return_value.rstrip('0')
                if return_value.endswith('.'):
                    return_value = return_value.rstrip('.')
            return return_value
        def gds_parse_decimal(self, input_data, node=None, input_name=''):
            try:
                decimal_value = decimal_.Decimal(input_data)
            except (TypeError, ValueError):
                raise_parse_error(node, 'Requires decimal value')
            return decimal_value
        def gds_validate_decimal(self, input_data, node=None, input_name=''):
            try:
                value = decimal_.Decimal(input_data)
            except (TypeError, ValueError):
                raise_parse_error(node, 'Requires decimal value')
            return value
        def gds_format_decimal_list(self, input_data, input_name=''):
            if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
                input_data = [str(s) for s in input_data]
            return ' '.join([self.gds_format_decimal(item) for item in input_data])
        def gds_validate_decimal_list(
                self, input_data, node=None, input_name=''):
            values = input_data.split()
            for value in values:
                try:
                    decimal_.Decimal(value)
                except (TypeError, ValueError):
                    raise_parse_error(node, 'Requires sequence of decimal values')
            return values
        def gds_format_double(self, input_data, input_name=''):
            return '%s' % input_data
        def gds_parse_double(self, input_data, node=None, input_name=''):
            try:
                fval_ = float(input_data)
            except (TypeError, ValueError) as exp:
                raise_parse_error(node, 'Requires double or float value: %s' % exp)
            return fval_
        def gds_validate_double(self, input_data, node=None, input_name=''):
            try:
                value = float(input_data)
            except (TypeError, ValueError):
                raise_parse_error(node, 'Requires double or float value')
            return value
        def gds_format_double_list(self, input_data, input_name=''):
            if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
                input_data = [str(s) for s in input_data]
            return '%s' % ' '.join(input_data)
        def gds_validate_double_list(
                self, input_data, node=None, input_name=''):
            values = input_data.split()
            for value in values:
                try:
                    float(value)
                except (TypeError, ValueError):
                    raise_parse_error(
                        node, 'Requires sequence of double or float values')
            return values
        def gds_format_boolean(self, input_data, input_name=''):
            return ('%s' % input_data).lower()
        def gds_parse_boolean(self, input_data, node=None, input_name=''):
            input_data = input_data.strip()
            if input_data in ('true', '1'):
                bval = True
            elif input_data in ('false', '0'):
                bval = False
            else:
                raise_parse_error(node, 'Requires boolean value')
            return bval
        def gds_validate_boolean(self, input_data, node=None, input_name=''):
            if input_data not in (True, 1, False, 0, ):
                raise_parse_error(
                    node,
                    'Requires boolean value '
                    '(one of True, 1, False, 0)')
            return input_data
        def gds_format_boolean_list(self, input_data, input_name=''):
            if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
                input_data = [str(s) for s in input_data]
            return '%s' % ' '.join(input_data)
        def gds_validate_boolean_list(
                self, input_data, node=None, input_name=''):
            values = input_data.split()
            for value in values:
                value = self.gds_parse_boolean(value, node, input_name)
                if value not in (True, 1, False, 0, ):
                    raise_parse_error(
                        node,
                        'Requires sequence of boolean values '
                        '(one of True, 1, False, 0)')
            return values
        def gds_validate_datetime(self, input_data, node=None, input_name=''):
            return input_data
        def gds_format_datetime(self, input_data, input_name=''):
            if input_data.microsecond == 0:
                _svalue = '%04d-%02d-%02dT%02d:%02d:%02d' % (
                    input_data.year,
                    input_data.month,
                    input_data.day,
                    input_data.hour,
                    input_data.minute,
                    input_data.second,
                )
            else:
                _svalue = '%04d-%02d-%02dT%02d:%02d:%02d.%s' % (
                    input_data.year,
                    input_data.month,
                    input_data.day,
                    input_data.hour,
                    input_data.minute,
                    input_data.second,
                    ('%f' % (float(input_data.microsecond) / 1000000))[2:],
                )
            if input_data.tzinfo is not None:
                tzoff = input_data.tzinfo.utcoffset(input_data)
                if tzoff is not None:
                    total_seconds = tzoff.seconds + (86400 * tzoff.days)
                    if total_seconds == 0:
                        _svalue += 'Z'
                    else:
                        if total_seconds < 0:
                            _svalue += '-'
                            total_seconds *= -1
                        else:
                            _svalue += '+'
                        hours = total_seconds // 3600
                        minutes = (total_seconds - (hours * 3600)) // 60
                        _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
            return _svalue
        @classmethod
        def gds_parse_datetime(cls, input_data):
            tz = None
            if input_data[-1] == 'Z':
                tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
                input_data = input_data[:-1]
            else:
                results = GeneratedsSuper.tzoff_pattern.search(input_data)
                if results is not None:
                    tzoff_parts = results.group(2).split(':')
                    tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
                    if results.group(1) == '-':
                        tzoff *= -1
                    tz = GeneratedsSuper._FixedOffsetTZ(
                        tzoff, results.group(0))
                    input_data = input_data[:-6]
            time_parts = input_data.split('.')
            if len(time_parts) > 1:
                micro_seconds = int(float('0.' + time_parts[1]) * 1000000)
                input_data = '%s.%s' % (
                    time_parts[0], "{}".format(micro_seconds).rjust(6, "0"), )
                dt = datetime_.datetime.strptime(
                    input_data, '%Y-%m-%dT%H:%M:%S.%f')
            else:
                dt = datetime_.datetime.strptime(
                    input_data, '%Y-%m-%dT%H:%M:%S')
            dt = dt.replace(tzinfo=tz)
            return dt
        def gds_validate_date(self, input_data, node=None, input_name=''):
            return input_data
        def gds_format_date(self, input_data, input_name=''):
            _svalue = '%04d-%02d-%02d' % (
                input_data.year,
                input_data.month,
                input_data.day,
            )
            try:
                if input_data.tzinfo is not None:
                    tzoff = input_data.tzinfo.utcoffset(input_data)
                    if tzoff is not None:
                        total_seconds = tzoff.seconds + (86400 * tzoff.days)
                        if total_seconds == 0:
                            _svalue += 'Z'
                        else:
                            if total_seconds < 0:
                                _svalue += '-'
                                total_seconds *= -1
                            else:
                                _svalue += '+'
                            hours = total_seconds // 3600
                            minutes = (total_seconds - (hours * 3600)) // 60
                            _svalue += '{0:02d}:{1:02d}'.format(
                                hours, minutes)
            except AttributeError:
                pass
            return _svalue
        @classmethod
        def gds_parse_date(cls, input_data):
            tz = None
            if input_data[-1] == 'Z':
                tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
                input_data = input_data[:-1]
            else:
                results = GeneratedsSuper.tzoff_pattern.search(input_data)
                if results is not None:
                    tzoff_parts = results.group(2).split(':')
                    tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
                    if results.group(1) == '-':
                        tzoff *= -1
                    tz = GeneratedsSuper._FixedOffsetTZ(
                        tzoff, results.group(0))
                    input_data = input_data[:-6]
            dt = datetime_.datetime.strptime(input_data, '%Y-%m-%d')
            dt = dt.replace(tzinfo=tz)
            return dt.date()
        def gds_validate_time(self, input_data, node=None, input_name=''):
            return input_data
        def gds_format_time(self, input_data, input_name=''):
            if input_data.microsecond == 0:
                _svalue = '%02d:%02d:%02d' % (
                    input_data.hour,
                    input_data.minute,
                    input_data.second,
                )
            else:
                _svalue = '%02d:%02d:%02d.%s' % (
                    input_data.hour,
                    input_data.minute,
                    input_data.second,
                    ('%f' % (float(input_data.microsecond) / 1000000))[2:],
                )
            if input_data.tzinfo is not None:
                tzoff = input_data.tzinfo.utcoffset(input_data)
                if tzoff is not None:
                    total_seconds = tzoff.seconds + (86400 * tzoff.days)
                    if total_seconds == 0:
                        _svalue += 'Z'
                    else:
                        if total_seconds < 0:
                            _svalue += '-'
                            total_seconds *= -1
                        else:
                            _svalue += '+'
                        hours = total_seconds // 3600
                        minutes = (total_seconds - (hours * 3600)) // 60
                        _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
            return _svalue
        def gds_validate_simple_patterns(self, patterns, target):
            # pat is a list of lists of strings/patterns.
            # The target value must match at least one of the patterns
            # in order for the test to succeed.
            found1 = True
            target = str(target)
            for patterns1 in patterns:
                found2 = False
                for patterns2 in patterns1:
                    mo = re_.search(patterns2, target)
                    if mo is not None and len(mo.group(0)) == len(target):
                        found2 = True
                        break
                if not found2:
                    found1 = False
                    break
            return found1
        @classmethod
        def gds_parse_time(cls, input_data):
            tz = None
            if input_data[-1] == 'Z':
                tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
                input_data = input_data[:-1]
            else:
                results = GeneratedsSuper.tzoff_pattern.search(input_data)
                if results is not None:
                    tzoff_parts = results.group(2).split(':')
                    tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
                    if results.group(1) == '-':
                        tzoff *= -1
                    tz = GeneratedsSuper._FixedOffsetTZ(
                        tzoff, results.group(0))
                    input_data = input_data[:-6]
            if len(input_data.split('.')) > 1:
                dt = datetime_.datetime.strptime(input_data, '%H:%M:%S.%f')
            else:
                dt = datetime_.datetime.strptime(input_data, '%H:%M:%S')
            dt = dt.replace(tzinfo=tz)
            return dt.time()
        def gds_check_cardinality_(
                self, value, input_name,
                min_occurs=0, max_occurs=1, required=None):
            if value is None:
                length = 0
            elif isinstance(value, list):
                length = len(value)
            else:
                length = 1
            if required is not None :
                if required and length < 1:
                    self.gds_collector_.add_message(
                        "Required value {}{} is missing".format(
                            input_name, self.gds_get_node_lineno_()))
            if length < min_occurs:
                self.gds_collector_.add_message(
                    "Number of values for {}{} is below "
                    "the minimum allowed, "
                    "expected at least {}, found {}".format(
                        input_name, self.gds_get_node_lineno_(),
                        min_occurs, length))
            elif length > max_occurs:
                self.gds_collector_.add_message(
                    "Number of values for {}{} is above "
                    "the maximum allowed, "
                    "expected at most {}, found {}".format(
                        input_name, self.gds_get_node_lineno_(),
                        max_occurs, length))
        def gds_validate_builtin_ST_(
                self, validator, value, input_name,
                min_occurs=None, max_occurs=None, required=None):
            if value is not None:
                try:
                    validator(value, input_name=input_name)
                except GDSParseError as parse_error:
                    self.gds_collector_.add_message(str(parse_error))
        def gds_validate_defined_ST_(
                self, validator, value, input_name,
                min_occurs=None, max_occurs=None, required=None):
            if value is not None:
                try:
                    validator(value)
                except GDSParseError as parse_error:
                    self.gds_collector_.add_message(str(parse_error))
        def gds_str_lower(self, instring):
            return instring.lower()
        def get_path_(self, node):
            path_list = []
            self.get_path_list_(node, path_list)
            path_list.reverse()
            path = '/'.join(path_list)
            return path
        Tag_strip_pattern_ = re_.compile(r'\{.*\}')
        def get_path_list_(self, node, path_list):
            if node is None:
                return
            tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
            if tag:
                path_list.append(tag)
            self.get_path_list_(node.getparent(), path_list)
        def get_class_obj_(self, node, default_class=None):
            class_obj1 = default_class
            if 'xsi' in node.nsmap:
                classname = node.get('{%s}type' % node.nsmap['xsi'])
                if classname is not None:
                    names = classname.split(':')
                    if len(names) == 2:
                        classname = names[1]
                    class_obj2 = globals().get(classname)
                    if class_obj2 is not None:
                        class_obj1 = class_obj2
            return class_obj1
        def gds_build_any(self, node, type_name=None):
            # provide default value in case option --disable-xml is used.
            content = ""
            content = etree_.tostring(node, encoding="unicode")
            return content
        @classmethod
        def gds_reverse_node_mapping(cls, mapping):
            return dict(((v, k) for k, v in mapping.items()))
        @staticmethod
        def gds_encode(instring):
            if sys.version_info.major == 2:
                if ExternalEncoding:
                    encoding = ExternalEncoding
                else:
                    encoding = 'utf-8'
                return instring.encode(encoding)
            else:
                return instring
        @staticmethod
        def convert_unicode(instring):
            if isinstance(instring, str):
                result = quote_xml(instring)
            elif sys.version_info.major == 2 and isinstance(instring, unicode):
                result = quote_xml(instring).encode('utf8')
            else:
                result = GeneratedsSuper.gds_encode(str(instring))
            return result
        def __eq__(self, other):
            def excl_select_objs_(obj):
                return (obj[0] != 'parent_object_' and
                        obj[0] != 'gds_collector_')
            if type(self) != type(other):
                return False
            return all(x == y for x, y in zip_longest(
                filter(excl_select_objs_, self.__dict__.items()),
                filter(excl_select_objs_, other.__dict__.items())))
        def __ne__(self, other):
            return not self.__eq__(other)
        # Django ETL transform hooks.
        def gds_djo_etl_transform(self):
            pass
        def gds_djo_etl_transform_db_obj(self, dbobj):
            pass
        # SQLAlchemy ETL transform hooks.
        def gds_sqa_etl_transform(self):
            return 0, None
        def gds_sqa_etl_transform_db_obj(self, dbobj):
            pass
        def gds_get_node_lineno_(self):
            if (hasattr(self, "gds_elementtree_node_") and
                    self.gds_elementtree_node_ is not None):
                return ' near line {}'.format(
                    self.gds_elementtree_node_.sourceline)
            else:
                return ""
    
    
    def getSubclassFromModule_(module, class_):
        '''Get the subclass of a class from a specific module.'''
        name = class_.__name__ + 'Sub'
        if hasattr(module, name):
            return getattr(module, name)
        else:
            return None


#
# If you have installed IPython you can uncomment and use the following.
# IPython is available from http://ipython.scipy.org/.
#

## from IPython.Shell import IPShellEmbed
## args = ''
## ipshell = IPShellEmbed(args,
##     banner = 'Dropping into IPython',
##     exit_msg = 'Leaving Interpreter, back to program.')

# Then use the following line where and when you want to drop into the
# IPython shell:
#    ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')

#
# Globals
#

ExternalEncoding = ''
# Set this to false in order to deactivate during export, the use of
# name space prefixes captured from the input document.
UseCapturedNS_ = True
CapturedNsmap_ = {}
Tag_pattern_ = re_.compile(r'({.*})?(.*)')
String_cleanup_pat_ = re_.compile(r"[\n\r\s]+")
Namespace_extract_pat_ = re_.compile(r'{(.*)}(.*)')
CDATA_pattern_ = re_.compile(r"<!\[CDATA\[.*?\]\]>", re_.DOTALL)

# Change this to redirect the generated superclass module to use a
# specific subclass module.
CurrentSubclassModule_ = None

#
# Support/utility functions.
#


def showIndent(outfile, level, pretty_print=True):
    if pretty_print:
        for idx in range(level):
            outfile.write('    ')


def quote_xml(inStr):
    "Escape markup chars, but do not modify CDATA sections."
    if not inStr:
        return ''
    s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
    s2 = ''
    pos = 0
    matchobjects = CDATA_pattern_.finditer(s1)
    for mo in matchobjects:
        s3 = s1[pos:mo.start()]
        s2 += quote_xml_aux(s3)
        s2 += s1[mo.start():mo.end()]
        pos = mo.end()
    s3 = s1[pos:]
    s2 += quote_xml_aux(s3)
    return s2


def quote_xml_aux(inStr):
    s1 = inStr.replace('&', '&amp;')
    s1 = s1.replace('<', '&lt;')
    s1 = s1.replace('>', '&gt;')
    return s1


def quote_attrib(inStr):
    s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
    s1 = s1.replace('&', '&amp;')
    s1 = s1.replace('<', '&lt;')
    s1 = s1.replace('>', '&gt;')
    s1 = s1.replace('\n', '&#10;')
    if '"' in s1:
        if "'" in s1:
            s1 = '"%s"' % s1.replace('"', "&quot;")
        else:
            s1 = "'%s'" % s1
    else:
        s1 = '"%s"' % s1
    return s1


def quote_python(inStr):
    s1 = inStr
    if s1.find("'") == -1:
        if s1.find('\n') == -1:
            return "'%s'" % s1
        else:
            return "'''%s'''" % s1
    else:
        if s1.find('"') != -1:
            s1 = s1.replace('"', '\\"')
        if s1.find('\n') == -1:
            return '"%s"' % s1
        else:
            return '"""%s"""' % s1


def get_all_text_(node):
    if node.text is not None:
        text = node.text
    else:
        text = ''
    for child in node:
        if child.tail is not None:
            text += child.tail
    return text


def find_attr_value_(attr_name, node):
    attrs = node.attrib
    attr_parts = attr_name.split(':')
    value = None
    if len(attr_parts) == 1:
        value = attrs.get(attr_name)
    elif len(attr_parts) == 2:
        prefix, name = attr_parts
        if prefix == 'xml':
            namespace = 'http://www.w3.org/XML/1998/namespace'
        else:
            namespace = node.nsmap.get(prefix)
        if namespace is not None:
            value = attrs.get('{%s}%s' % (namespace, name, ))
    return value


def encode_str_2_3(instr):
    return instr


class GDSParseError(Exception):
    pass


def raise_parse_error(node, msg):
    if node is not None:
        msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
    raise GDSParseError(msg)


class MixedContainer:
    # Constants for category:
    CategoryNone = 0
    CategoryText = 1
    CategorySimple = 2
    CategoryComplex = 3
    # Constants for content_type:
    TypeNone = 0
    TypeText = 1
    TypeString = 2
    TypeInteger = 3
    TypeFloat = 4
    TypeDecimal = 5
    TypeDouble = 6
    TypeBoolean = 7
    TypeBase64 = 8
    def __init__(self, category, content_type, name, value):
        self.category = category
        self.content_type = content_type
        self.name = name
        self.value = value
    def getCategory(self):
        return self.category
    def getContenttype(self, content_type):
        return self.content_type
    def getValue(self):
        return self.value
    def getName(self):
        return self.name
    def export(self, outfile, level, name, namespace,
               pretty_print=True):
        if self.category == MixedContainer.CategoryText:
            # Prevent exporting empty content as empty lines.
            if self.value.strip():
                outfile.write(self.value)
        elif self.category == MixedContainer.CategorySimple:
            self.exportSimple(outfile, level, name)
        else:    # category == MixedContainer.CategoryComplex
            self.value.export(
                outfile, level, namespace, name_=name,
                pretty_print=pretty_print)
    def exportSimple(self, outfile, level, name):
        if self.content_type == MixedContainer.TypeString:
            outfile.write('<%s>%s</%s>' % (
                self.name, self.value, self.name))
        elif self.content_type == MixedContainer.TypeInteger or \
                self.content_type == MixedContainer.TypeBoolean:
            outfile.write('<%s>%d</%s>' % (
                self.name, self.value, self.name))
        elif self.content_type == MixedContainer.TypeFloat or \
                self.content_type == MixedContainer.TypeDecimal:
            outfile.write('<%s>%f</%s>' % (
                self.name, self.value, self.name))
        elif self.content_type == MixedContainer.TypeDouble:
            outfile.write('<%s>%g</%s>' % (
                self.name, self.value, self.name))
        elif self.content_type == MixedContainer.TypeBase64:
            outfile.write('<%s>%s</%s>' % (
                self.name,
                base64.b64encode(self.value),
                self.name))
    def to_etree(self, element, mapping_=None, reverse_mapping_=None, nsmap_=None):
        if self.category == MixedContainer.CategoryText:
            # Prevent exporting empty content as empty lines.
            if self.value.strip():
                if len(element) > 0:
                    if element[-1].tail is None:
                        element[-1].tail = self.value
                    else:
                        element[-1].tail += self.value
                else:
                    if element.text is None:
                        element.text = self.value
                    else:
                        element.text += self.value
        elif self.category == MixedContainer.CategorySimple:
            subelement = etree_.SubElement(
                element, '%s' % self.name)
            subelement.text = self.to_etree_simple()
        else:    # category == MixedContainer.CategoryComplex
            self.value.to_etree(element)
    def to_etree_simple(self, mapping_=None, reverse_mapping_=None, nsmap_=None):
        if self.content_type == MixedContainer.TypeString:
            text = self.value
        elif (self.content_type == MixedContainer.TypeInteger or
                self.content_type == MixedContainer.TypeBoolean):
            text = '%d' % self.value
        elif (self.content_type == MixedContainer.TypeFloat or
                self.content_type == MixedContainer.TypeDecimal):
            text = '%f' % self.value
        elif self.content_type == MixedContainer.TypeDouble:
            text = '%g' % self.value
        elif self.content_type == MixedContainer.TypeBase64:
            text = '%s' % base64.b64encode(self.value)
        return text
    def exportLiteral(self, outfile, level, name):
        if self.category == MixedContainer.CategoryText:
            showIndent(outfile, level)
            outfile.write(
                'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
                    self.category, self.content_type,
                    self.name, self.value))
        elif self.category == MixedContainer.CategorySimple:
            showIndent(outfile, level)
            outfile.write(
                'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
                    self.category, self.content_type,
                    self.name, self.value))
        else:    # category == MixedContainer.CategoryComplex
            showIndent(outfile, level)
            outfile.write(
                'model_.MixedContainer(%d, %d, "%s",\n' % (
                    self.category, self.content_type, self.name,))
            self.value.exportLiteral(outfile, level + 1)
            showIndent(outfile, level)
            outfile.write(')\n')


class MemberSpec_(object):
    def __init__(self, name='', data_type='', container=0,
            optional=0, child_attrs=None, choice=None):
        self.name = name
        self.data_type = data_type
        self.container = container
        self.child_attrs = child_attrs
        self.choice = choice
        self.optional = optional
    def set_name(self, name): self.name = name
    def get_name(self): return self.name
    def set_data_type(self, data_type): self.data_type = data_type
    def get_data_type_chain(self): return self.data_type
    def get_data_type(self):
        if isinstance(self.data_type, list):
            if len(self.data_type) > 0:
                return self.data_type[-1]
            else:
                return 'xs:string'
        else:
            return self.data_type
    def set_container(self, container): self.container = container
    def get_container(self): return self.container
    def set_child_attrs(self, child_attrs): self.child_attrs = child_attrs
    def get_child_attrs(self): return self.child_attrs
    def set_choice(self, choice): self.choice = choice
    def get_choice(self): return self.choice
    def set_optional(self, optional): self.optional = optional
    def get_optional(self): return self.optional


def _cast(typ, value):
    if typ is None or value is None:
        return value
    return typ(value)


#
# Start enum classes
#
class com_cisag_pgm_bi_model_DateTimeSpecialValue(str, Enum):
    INVALID_TIME_STAMP='INVALID_TIME_STAMP'
    MAX_TIME_STAMP='MAX_TIME_STAMP'
    MIN_TIME_STAMP='MIN_TIME_STAMP'
    NONE='NONE'
    UNDEFINED_TIME_STAMP='UNDEFINED_TIME_STAMP'
    _=''


#
# Start data representation classes
#
class semiramis(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, created=None, locale=None, nlsMode='SINGLE_LANGUAGE', dateTimeMode='NORMALIZED', Item=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        if isinstance(created, BaseStrType_):
            initvalue_ = datetime_.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S')
        else:
            initvalue_ = created
        self.created = initvalue_
        self.locale = _cast(None, locale)
        self.locale_nsprefix_ = None
        self.nlsMode = _cast(None, nlsMode)
        self.nlsMode_nsprefix_ = None
        self.dateTimeMode = _cast(None, dateTimeMode)
        self.dateTimeMode_nsprefix_ = None
        if Item is None:
            self.Item = []
        else:
            self.Item = Item
        self.Item_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, semiramis)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if semiramis.subclass:
            return semiramis.subclass(*args_, **kwargs_)
        else:
            return semiramis(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_Item(self):
        return self.Item
    def set_Item(self, Item):
        self.Item = Item
    def add_Item(self, value):
        self.Item.append(value)
    def insert_Item_at(self, index, value):
        self.Item.insert(index, value)
    def replace_Item_at(self, index, value):
        self.Item[index] = value
    def get_created(self):
        return self.created
    def set_created(self, created):
        self.created = created
    def get_locale(self):
        return self.locale
    def set_locale(self, locale):
        self.locale = locale
    def get_nlsMode(self):
        return self.nlsMode
    def set_nlsMode(self, nlsMode):
        self.nlsMode = nlsMode
    def get_dateTimeMode(self):
        return self.dateTimeMode
    def set_dateTimeMode(self, dateTimeMode):
        self.dateTimeMode = dateTimeMode
    def has__content(self):
        if (
            self.Item
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='semiramis', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('semiramis')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'semiramis':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='semiramis')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='semiramis', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='semiramis'):
        if self.created is not None and 'created' not in already_processed:
            already_processed.add('created')
            outfile.write(' created="%s"' % self.gds_format_datetime(self.created, input_name='created'))
        if self.locale is not None and 'locale' not in already_processed:
            already_processed.add('locale')
            outfile.write(' locale=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.locale), input_name='locale')), ))
        if self.nlsMode != "SINGLE_LANGUAGE" and 'nlsMode' not in already_processed:
            already_processed.add('nlsMode')
            outfile.write(' nlsMode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.nlsMode), input_name='nlsMode')), ))
        if self.dateTimeMode is not None and 'dateTimeMode' not in already_processed:
            already_processed.add('dateTimeMode')
            outfile.write(' dateTimeMode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.dateTimeMode), input_name='dateTimeMode')), ))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='semiramis', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        for Item_ in self.Item:
            namespaceprefix_ = self.Item_nsprefix_ + ':' if (UseCapturedNS_ and self.Item_nsprefix_) else ''
            Item_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Item', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('created', node)
        if value is not None and 'created' not in already_processed:
            already_processed.add('created')
            try:
                self.created = self.gds_parse_datetime(value)
            except ValueError as exp:
                raise ValueError('Bad date-time attribute (created): %s' % exp)
        value = find_attr_value_('locale', node)
        if value is not None and 'locale' not in already_processed:
            already_processed.add('locale')
            self.locale = value
        value = find_attr_value_('nlsMode', node)
        if value is not None and 'nlsMode' not in already_processed:
            already_processed.add('nlsMode')
            self.nlsMode = value
        value = find_attr_value_('dateTimeMode', node)
        if value is not None and 'dateTimeMode' not in already_processed:
            already_processed.add('dateTimeMode')
            self.dateTimeMode = value
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'Item':
            obj_ = ItemType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Item.append(obj_)
            obj_.original_tagname_ = 'Item'
# end class semiramis


class ItemType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, description=None, longDescription=None, imp_activeColor=None, imp_soldOut=None, imp_salesStop=None, DefaultVariantItem=None, ReferenceItem=None, Imp_CareReference1=None, Imp_CareReference2=None, Imp_CareReference3=None, Imp_CareReference4=None, Imp_CareReference5=None, Imp_CareReference6=None, Imp_CareReferenceGroup=None, Imp_Collection=None, Imp_ItemGroup=None, Imp_ItemThemeGroup=None, Imp_KindOfFabric=None, Imp_MaterialComposition1=None, Imp_MaterialComposition2=None, Imp_MaterialComposition3=None, Imp_PackagingType=None, Imp_SizeRegister=None, Imp_Size=None, Imp_Color=None, Uoms=None, Texts=None, ItemPackagingUoms=None, OrganizationalUnitItems=None, InventoryItems=None, SalesItems=None, Imp_ItemDeliveryDates=None, Imp_ItemColorImages=None, Imp_ItemProductLines=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
        self.longDescription = longDescription
        self.longDescription_nsprefix_ = None
        self.imp_activeColor = imp_activeColor
        self.imp_activeColor_nsprefix_ = None
        self.imp_soldOut = imp_soldOut
        self.imp_soldOut_nsprefix_ = None
        self.imp_salesStop = imp_salesStop
        self.imp_salesStop_nsprefix_ = None
        self.DefaultVariantItem = DefaultVariantItem
        self.DefaultVariantItem_nsprefix_ = None
        self.ReferenceItem = ReferenceItem
        self.ReferenceItem_nsprefix_ = None
        self.Imp_CareReference1 = Imp_CareReference1
        self.Imp_CareReference1_nsprefix_ = None
        self.Imp_CareReference2 = Imp_CareReference2
        self.Imp_CareReference2_nsprefix_ = None
        self.Imp_CareReference3 = Imp_CareReference3
        self.Imp_CareReference3_nsprefix_ = None
        self.Imp_CareReference4 = Imp_CareReference4
        self.Imp_CareReference4_nsprefix_ = None
        self.Imp_CareReference5 = Imp_CareReference5
        self.Imp_CareReference5_nsprefix_ = None
        self.Imp_CareReference6 = Imp_CareReference6
        self.Imp_CareReference6_nsprefix_ = None
        self.Imp_CareReferenceGroup = Imp_CareReferenceGroup
        self.Imp_CareReferenceGroup_nsprefix_ = None
        self.Imp_Collection = Imp_Collection
        self.Imp_Collection_nsprefix_ = None
        self.Imp_ItemGroup = Imp_ItemGroup
        self.Imp_ItemGroup_nsprefix_ = None
        self.Imp_ItemThemeGroup = Imp_ItemThemeGroup
        self.Imp_ItemThemeGroup_nsprefix_ = None
        self.Imp_KindOfFabric = Imp_KindOfFabric
        self.Imp_KindOfFabric_nsprefix_ = None
        self.Imp_MaterialComposition1 = Imp_MaterialComposition1
        self.Imp_MaterialComposition1_nsprefix_ = None
        self.Imp_MaterialComposition2 = Imp_MaterialComposition2
        self.Imp_MaterialComposition2_nsprefix_ = None
        self.Imp_MaterialComposition3 = Imp_MaterialComposition3
        self.Imp_MaterialComposition3_nsprefix_ = None
        self.Imp_PackagingType = Imp_PackagingType
        self.Imp_PackagingType_nsprefix_ = None
        self.Imp_SizeRegister = Imp_SizeRegister
        self.Imp_SizeRegister_nsprefix_ = None
        self.Imp_Size = Imp_Size
        self.Imp_Size_nsprefix_ = None
        self.Imp_Color = Imp_Color
        self.Imp_Color_nsprefix_ = None
        if Uoms is None:
            self.Uoms = []
        else:
            self.Uoms = Uoms
        self.Uoms_nsprefix_ = None
        if Texts is None:
            self.Texts = []
        else:
            self.Texts = Texts
        self.Texts_nsprefix_ = None
        if ItemPackagingUoms is None:
            self.ItemPackagingUoms = []
        else:
            self.ItemPackagingUoms = ItemPackagingUoms
        self.ItemPackagingUoms_nsprefix_ = None
        if OrganizationalUnitItems is None:
            self.OrganizationalUnitItems = []
        else:
            self.OrganizationalUnitItems = OrganizationalUnitItems
        self.OrganizationalUnitItems_nsprefix_ = None
        if InventoryItems is None:
            self.InventoryItems = []
        else:
            self.InventoryItems = InventoryItems
        self.InventoryItems_nsprefix_ = None
        if SalesItems is None:
            self.SalesItems = []
        else:
            self.SalesItems = SalesItems
        self.SalesItems_nsprefix_ = None
        if Imp_ItemDeliveryDates is None:
            self.Imp_ItemDeliveryDates = []
        else:
            self.Imp_ItemDeliveryDates = Imp_ItemDeliveryDates
        self.Imp_ItemDeliveryDates_nsprefix_ = None
        if Imp_ItemColorImages is None:
            self.Imp_ItemColorImages = []
        else:
            self.Imp_ItemColorImages = Imp_ItemColorImages
        self.Imp_ItemColorImages_nsprefix_ = None
        if Imp_ItemProductLines is None:
            self.Imp_ItemProductLines = []
        else:
            self.Imp_ItemProductLines = Imp_ItemProductLines
        self.Imp_ItemProductLines_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ItemType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ItemType.subclass:
            return ItemType.subclass(*args_, **kwargs_)
        else:
            return ItemType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_longDescription(self):
        return self.longDescription
    def set_longDescription(self, longDescription):
        self.longDescription = longDescription
    def get_imp_activeColor(self):
        return self.imp_activeColor
    def set_imp_activeColor(self, imp_activeColor):
        self.imp_activeColor = imp_activeColor
    def get_imp_soldOut(self):
        return self.imp_soldOut
    def set_imp_soldOut(self, imp_soldOut):
        self.imp_soldOut = imp_soldOut
    def get_imp_salesStop(self):
        return self.imp_salesStop
    def set_imp_salesStop(self, imp_salesStop):
        self.imp_salesStop = imp_salesStop
    def get_DefaultVariantItem(self):
        return self.DefaultVariantItem
    def set_DefaultVariantItem(self, DefaultVariantItem):
        self.DefaultVariantItem = DefaultVariantItem
    def get_ReferenceItem(self):
        return self.ReferenceItem
    def set_ReferenceItem(self, ReferenceItem):
        self.ReferenceItem = ReferenceItem
    def get_Imp_CareReference1(self):
        return self.Imp_CareReference1
    def set_Imp_CareReference1(self, Imp_CareReference1):
        self.Imp_CareReference1 = Imp_CareReference1
    def get_Imp_CareReference2(self):
        return self.Imp_CareReference2
    def set_Imp_CareReference2(self, Imp_CareReference2):
        self.Imp_CareReference2 = Imp_CareReference2
    def get_Imp_CareReference3(self):
        return self.Imp_CareReference3
    def set_Imp_CareReference3(self, Imp_CareReference3):
        self.Imp_CareReference3 = Imp_CareReference3
    def get_Imp_CareReference4(self):
        return self.Imp_CareReference4
    def set_Imp_CareReference4(self, Imp_CareReference4):
        self.Imp_CareReference4 = Imp_CareReference4
    def get_Imp_CareReference5(self):
        return self.Imp_CareReference5
    def set_Imp_CareReference5(self, Imp_CareReference5):
        self.Imp_CareReference5 = Imp_CareReference5
    def get_Imp_CareReference6(self):
        return self.Imp_CareReference6
    def set_Imp_CareReference6(self, Imp_CareReference6):
        self.Imp_CareReference6 = Imp_CareReference6
    def get_Imp_CareReferenceGroup(self):
        return self.Imp_CareReferenceGroup
    def set_Imp_CareReferenceGroup(self, Imp_CareReferenceGroup):
        self.Imp_CareReferenceGroup = Imp_CareReferenceGroup
    def get_Imp_Collection(self):
        return self.Imp_Collection
    def set_Imp_Collection(self, Imp_Collection):
        self.Imp_Collection = Imp_Collection
    def get_Imp_ItemGroup(self):
        return self.Imp_ItemGroup
    def set_Imp_ItemGroup(self, Imp_ItemGroup):
        self.Imp_ItemGroup = Imp_ItemGroup
    def get_Imp_ItemThemeGroup(self):
        return self.Imp_ItemThemeGroup
    def set_Imp_ItemThemeGroup(self, Imp_ItemThemeGroup):
        self.Imp_ItemThemeGroup = Imp_ItemThemeGroup
    def get_Imp_KindOfFabric(self):
        return self.Imp_KindOfFabric
    def set_Imp_KindOfFabric(self, Imp_KindOfFabric):
        self.Imp_KindOfFabric = Imp_KindOfFabric
    def get_Imp_MaterialComposition1(self):
        return self.Imp_MaterialComposition1
    def set_Imp_MaterialComposition1(self, Imp_MaterialComposition1):
        self.Imp_MaterialComposition1 = Imp_MaterialComposition1
    def get_Imp_MaterialComposition2(self):
        return self.Imp_MaterialComposition2
    def set_Imp_MaterialComposition2(self, Imp_MaterialComposition2):
        self.Imp_MaterialComposition2 = Imp_MaterialComposition2
    def get_Imp_MaterialComposition3(self):
        return self.Imp_MaterialComposition3
    def set_Imp_MaterialComposition3(self, Imp_MaterialComposition3):
        self.Imp_MaterialComposition3 = Imp_MaterialComposition3
    def get_Imp_PackagingType(self):
        return self.Imp_PackagingType
    def set_Imp_PackagingType(self, Imp_PackagingType):
        self.Imp_PackagingType = Imp_PackagingType
    def get_Imp_SizeRegister(self):
        return self.Imp_SizeRegister
    def set_Imp_SizeRegister(self, Imp_SizeRegister):
        self.Imp_SizeRegister = Imp_SizeRegister
    def get_Imp_Size(self):
        return self.Imp_Size
    def set_Imp_Size(self, Imp_Size):
        self.Imp_Size = Imp_Size
    def get_Imp_Color(self):
        return self.Imp_Color
    def set_Imp_Color(self, Imp_Color):
        self.Imp_Color = Imp_Color
    def get_Uoms(self):
        return self.Uoms
    def set_Uoms(self, Uoms):
        self.Uoms = Uoms
    def add_Uoms(self, value):
        self.Uoms.append(value)
    def insert_Uoms_at(self, index, value):
        self.Uoms.insert(index, value)
    def replace_Uoms_at(self, index, value):
        self.Uoms[index] = value
    def get_Texts(self):
        return self.Texts
    def set_Texts(self, Texts):
        self.Texts = Texts
    def add_Texts(self, value):
        self.Texts.append(value)
    def insert_Texts_at(self, index, value):
        self.Texts.insert(index, value)
    def replace_Texts_at(self, index, value):
        self.Texts[index] = value
    def get_ItemPackagingUoms(self):
        return self.ItemPackagingUoms
    def set_ItemPackagingUoms(self, ItemPackagingUoms):
        self.ItemPackagingUoms = ItemPackagingUoms
    def add_ItemPackagingUoms(self, value):
        self.ItemPackagingUoms.append(value)
    def insert_ItemPackagingUoms_at(self, index, value):
        self.ItemPackagingUoms.insert(index, value)
    def replace_ItemPackagingUoms_at(self, index, value):
        self.ItemPackagingUoms[index] = value
    def get_OrganizationalUnitItems(self):
        return self.OrganizationalUnitItems
    def set_OrganizationalUnitItems(self, OrganizationalUnitItems):
        self.OrganizationalUnitItems = OrganizationalUnitItems
    def add_OrganizationalUnitItems(self, value):
        self.OrganizationalUnitItems.append(value)
    def insert_OrganizationalUnitItems_at(self, index, value):
        self.OrganizationalUnitItems.insert(index, value)
    def replace_OrganizationalUnitItems_at(self, index, value):
        self.OrganizationalUnitItems[index] = value
    def get_InventoryItems(self):
        return self.InventoryItems
    def set_InventoryItems(self, InventoryItems):
        self.InventoryItems = InventoryItems
    def add_InventoryItems(self, value):
        self.InventoryItems.append(value)
    def insert_InventoryItems_at(self, index, value):
        self.InventoryItems.insert(index, value)
    def replace_InventoryItems_at(self, index, value):
        self.InventoryItems[index] = value
    def get_SalesItems(self):
        return self.SalesItems
    def set_SalesItems(self, SalesItems):
        self.SalesItems = SalesItems
    def add_SalesItems(self, value):
        self.SalesItems.append(value)
    def insert_SalesItems_at(self, index, value):
        self.SalesItems.insert(index, value)
    def replace_SalesItems_at(self, index, value):
        self.SalesItems[index] = value
    def get_Imp_ItemDeliveryDates(self):
        return self.Imp_ItemDeliveryDates
    def set_Imp_ItemDeliveryDates(self, Imp_ItemDeliveryDates):
        self.Imp_ItemDeliveryDates = Imp_ItemDeliveryDates
    def add_Imp_ItemDeliveryDates(self, value):
        self.Imp_ItemDeliveryDates.append(value)
    def insert_Imp_ItemDeliveryDates_at(self, index, value):
        self.Imp_ItemDeliveryDates.insert(index, value)
    def replace_Imp_ItemDeliveryDates_at(self, index, value):
        self.Imp_ItemDeliveryDates[index] = value
    def get_Imp_ItemColorImages(self):
        return self.Imp_ItemColorImages
    def set_Imp_ItemColorImages(self, Imp_ItemColorImages):
        self.Imp_ItemColorImages = Imp_ItemColorImages
    def add_Imp_ItemColorImages(self, value):
        self.Imp_ItemColorImages.append(value)
    def insert_Imp_ItemColorImages_at(self, index, value):
        self.Imp_ItemColorImages.insert(index, value)
    def replace_Imp_ItemColorImages_at(self, index, value):
        self.Imp_ItemColorImages[index] = value
    def get_Imp_ItemProductLines(self):
        return self.Imp_ItemProductLines
    def set_Imp_ItemProductLines(self, Imp_ItemProductLines):
        self.Imp_ItemProductLines = Imp_ItemProductLines
    def add_Imp_ItemProductLines(self, value):
        self.Imp_ItemProductLines.append(value)
    def insert_Imp_ItemProductLines_at(self, index, value):
        self.Imp_ItemProductLines.insert(index, value)
    def replace_Imp_ItemProductLines_at(self, index, value):
        self.Imp_ItemProductLines[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.description is not None or
            self.longDescription is not None or
            self.imp_activeColor is not None or
            self.imp_soldOut is not None or
            self.imp_salesStop is not None or
            self.DefaultVariantItem is not None or
            self.ReferenceItem is not None or
            self.Imp_CareReference1 is not None or
            self.Imp_CareReference2 is not None or
            self.Imp_CareReference3 is not None or
            self.Imp_CareReference4 is not None or
            self.Imp_CareReference5 is not None or
            self.Imp_CareReference6 is not None or
            self.Imp_CareReferenceGroup is not None or
            self.Imp_Collection is not None or
            self.Imp_ItemGroup is not None or
            self.Imp_ItemThemeGroup is not None or
            self.Imp_KindOfFabric is not None or
            self.Imp_MaterialComposition1 is not None or
            self.Imp_MaterialComposition2 is not None or
            self.Imp_MaterialComposition3 is not None or
            self.Imp_PackagingType is not None or
            self.Imp_SizeRegister is not None or
            self.Imp_Size is not None or
            self.Imp_Color is not None or
            self.Uoms or
            self.Texts or
            self.ItemPackagingUoms or
            self.OrganizationalUnitItems or
            self.InventoryItems or
            self.SalesItems or
            self.Imp_ItemDeliveryDates or
            self.Imp_ItemColorImages or
            self.Imp_ItemProductLines
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ItemType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ItemType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ItemType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ItemType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ItemType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
        if self.longDescription is not None:
            namespaceprefix_ = self.longDescription_nsprefix_ + ':' if (UseCapturedNS_ and self.longDescription_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%slongDescription>%s</%slongDescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.longDescription), input_name='longDescription')), namespaceprefix_ , eol_))
        if self.imp_activeColor is not None:
            namespaceprefix_ = self.imp_activeColor_nsprefix_ + ':' if (UseCapturedNS_ and self.imp_activeColor_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%simp_activeColor>%s</%simp_activeColor>%s' % (namespaceprefix_ , self.gds_format_boolean(self.imp_activeColor, input_name='imp_activeColor'), namespaceprefix_ , eol_))
        if self.imp_soldOut is not None:
            namespaceprefix_ = self.imp_soldOut_nsprefix_ + ':' if (UseCapturedNS_ and self.imp_soldOut_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%simp_soldOut>%s</%simp_soldOut>%s' % (namespaceprefix_ , self.gds_format_boolean(self.imp_soldOut, input_name='imp_soldOut'), namespaceprefix_ , eol_))
        if self.imp_salesStop is not None:
            namespaceprefix_ = self.imp_salesStop_nsprefix_ + ':' if (UseCapturedNS_ and self.imp_salesStop_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%simp_salesStop>%s</%simp_salesStop>%s' % (namespaceprefix_ , self.gds_format_boolean(self.imp_salesStop, input_name='imp_salesStop'), namespaceprefix_ , eol_))
        if self.DefaultVariantItem is not None:
            namespaceprefix_ = self.DefaultVariantItem_nsprefix_ + ':' if (UseCapturedNS_ and self.DefaultVariantItem_nsprefix_) else ''
            self.DefaultVariantItem.export(outfile, level, namespaceprefix_, namespacedef_='', name_='DefaultVariantItem', pretty_print=pretty_print)
        if self.ReferenceItem is not None:
            namespaceprefix_ = self.ReferenceItem_nsprefix_ + ':' if (UseCapturedNS_ and self.ReferenceItem_nsprefix_) else ''
            self.ReferenceItem.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ReferenceItem', pretty_print=pretty_print)
        if self.Imp_CareReference1 is not None:
            namespaceprefix_ = self.Imp_CareReference1_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReference1_nsprefix_) else ''
            self.Imp_CareReference1.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReference1', pretty_print=pretty_print)
        if self.Imp_CareReference2 is not None:
            namespaceprefix_ = self.Imp_CareReference2_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReference2_nsprefix_) else ''
            self.Imp_CareReference2.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReference2', pretty_print=pretty_print)
        if self.Imp_CareReference3 is not None:
            namespaceprefix_ = self.Imp_CareReference3_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReference3_nsprefix_) else ''
            self.Imp_CareReference3.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReference3', pretty_print=pretty_print)
        if self.Imp_CareReference4 is not None:
            namespaceprefix_ = self.Imp_CareReference4_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReference4_nsprefix_) else ''
            self.Imp_CareReference4.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReference4', pretty_print=pretty_print)
        if self.Imp_CareReference5 is not None:
            namespaceprefix_ = self.Imp_CareReference5_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReference5_nsprefix_) else ''
            self.Imp_CareReference5.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReference5', pretty_print=pretty_print)
        if self.Imp_CareReference6 is not None:
            namespaceprefix_ = self.Imp_CareReference6_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReference6_nsprefix_) else ''
            self.Imp_CareReference6.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReference6', pretty_print=pretty_print)
        if self.Imp_CareReferenceGroup is not None:
            namespaceprefix_ = self.Imp_CareReferenceGroup_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_CareReferenceGroup_nsprefix_) else ''
            self.Imp_CareReferenceGroup.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_CareReferenceGroup', pretty_print=pretty_print)
        if self.Imp_Collection is not None:
            namespaceprefix_ = self.Imp_Collection_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_Collection_nsprefix_) else ''
            self.Imp_Collection.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_Collection', pretty_print=pretty_print)
        if self.Imp_ItemGroup is not None:
            namespaceprefix_ = self.Imp_ItemGroup_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_ItemGroup_nsprefix_) else ''
            self.Imp_ItemGroup.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_ItemGroup', pretty_print=pretty_print)
        if self.Imp_ItemThemeGroup is not None:
            namespaceprefix_ = self.Imp_ItemThemeGroup_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_ItemThemeGroup_nsprefix_) else ''
            self.Imp_ItemThemeGroup.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_ItemThemeGroup', pretty_print=pretty_print)
        if self.Imp_KindOfFabric is not None:
            namespaceprefix_ = self.Imp_KindOfFabric_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_KindOfFabric_nsprefix_) else ''
            self.Imp_KindOfFabric.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_KindOfFabric', pretty_print=pretty_print)
        if self.Imp_MaterialComposition1 is not None:
            namespaceprefix_ = self.Imp_MaterialComposition1_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_MaterialComposition1_nsprefix_) else ''
            self.Imp_MaterialComposition1.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_MaterialComposition1', pretty_print=pretty_print)
        if self.Imp_MaterialComposition2 is not None:
            namespaceprefix_ = self.Imp_MaterialComposition2_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_MaterialComposition2_nsprefix_) else ''
            self.Imp_MaterialComposition2.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_MaterialComposition2', pretty_print=pretty_print)
        if self.Imp_MaterialComposition3 is not None:
            namespaceprefix_ = self.Imp_MaterialComposition3_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_MaterialComposition3_nsprefix_) else ''
            self.Imp_MaterialComposition3.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_MaterialComposition3', pretty_print=pretty_print)
        if self.Imp_PackagingType is not None:
            namespaceprefix_ = self.Imp_PackagingType_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_PackagingType_nsprefix_) else ''
            self.Imp_PackagingType.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_PackagingType', pretty_print=pretty_print)
        if self.Imp_SizeRegister is not None:
            namespaceprefix_ = self.Imp_SizeRegister_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_SizeRegister_nsprefix_) else ''
            self.Imp_SizeRegister.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_SizeRegister', pretty_print=pretty_print)
        if self.Imp_Size is not None:
            namespaceprefix_ = self.Imp_Size_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_Size_nsprefix_) else ''
            self.Imp_Size.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_Size', pretty_print=pretty_print)
        if self.Imp_Color is not None:
            namespaceprefix_ = self.Imp_Color_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_Color_nsprefix_) else ''
            self.Imp_Color.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_Color', pretty_print=pretty_print)
        for Uoms_ in self.Uoms:
            namespaceprefix_ = self.Uoms_nsprefix_ + ':' if (UseCapturedNS_ and self.Uoms_nsprefix_) else ''
            Uoms_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Uoms', pretty_print=pretty_print)
        for Texts_ in self.Texts:
            namespaceprefix_ = self.Texts_nsprefix_ + ':' if (UseCapturedNS_ and self.Texts_nsprefix_) else ''
            Texts_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Texts', pretty_print=pretty_print)
        for ItemPackagingUoms_ in self.ItemPackagingUoms:
            namespaceprefix_ = self.ItemPackagingUoms_nsprefix_ + ':' if (UseCapturedNS_ and self.ItemPackagingUoms_nsprefix_) else ''
            ItemPackagingUoms_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ItemPackagingUoms', pretty_print=pretty_print)
        for OrganizationalUnitItems_ in self.OrganizationalUnitItems:
            namespaceprefix_ = self.OrganizationalUnitItems_nsprefix_ + ':' if (UseCapturedNS_ and self.OrganizationalUnitItems_nsprefix_) else ''
            OrganizationalUnitItems_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='OrganizationalUnitItems', pretty_print=pretty_print)
        for InventoryItems_ in self.InventoryItems:
            namespaceprefix_ = self.InventoryItems_nsprefix_ + ':' if (UseCapturedNS_ and self.InventoryItems_nsprefix_) else ''
            InventoryItems_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='InventoryItems', pretty_print=pretty_print)
        for SalesItems_ in self.SalesItems:
            namespaceprefix_ = self.SalesItems_nsprefix_ + ':' if (UseCapturedNS_ and self.SalesItems_nsprefix_) else ''
            SalesItems_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='SalesItems', pretty_print=pretty_print)
        for Imp_ItemDeliveryDates_ in self.Imp_ItemDeliveryDates:
            namespaceprefix_ = self.Imp_ItemDeliveryDates_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_ItemDeliveryDates_nsprefix_) else ''
            Imp_ItemDeliveryDates_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_ItemDeliveryDates', pretty_print=pretty_print)
        for Imp_ItemColorImages_ in self.Imp_ItemColorImages:
            namespaceprefix_ = self.Imp_ItemColorImages_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_ItemColorImages_nsprefix_) else ''
            Imp_ItemColorImages_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_ItemColorImages', pretty_print=pretty_print)
        for Imp_ItemProductLines_ in self.Imp_ItemProductLines:
            namespaceprefix_ = self.Imp_ItemProductLines_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_ItemProductLines_nsprefix_) else ''
            Imp_ItemProductLines_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_ItemProductLines', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
        elif nodeName_ == 'longDescription':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'longDescription')
            value_ = self.gds_validate_string(value_, node, 'longDescription')
            self.longDescription = value_
            self.longDescription_nsprefix_ = child_.prefix
        elif nodeName_ == 'imp_activeColor':
            sval_ = child_.text
            ival_ = self.gds_parse_boolean(sval_, node, 'imp_activeColor')
            ival_ = self.gds_validate_boolean(ival_, node, 'imp_activeColor')
            self.imp_activeColor = ival_
            self.imp_activeColor_nsprefix_ = child_.prefix
        elif nodeName_ == 'imp_soldOut':
            sval_ = child_.text
            ival_ = self.gds_parse_boolean(sval_, node, 'imp_soldOut')
            ival_ = self.gds_validate_boolean(ival_, node, 'imp_soldOut')
            self.imp_soldOut = ival_
            self.imp_soldOut_nsprefix_ = child_.prefix
        elif nodeName_ == 'imp_salesStop':
            sval_ = child_.text
            ival_ = self.gds_parse_boolean(sval_, node, 'imp_salesStop')
            ival_ = self.gds_validate_boolean(ival_, node, 'imp_salesStop')
            self.imp_salesStop = ival_
            self.imp_salesStop_nsprefix_ = child_.prefix
        elif nodeName_ == 'DefaultVariantItem':
            obj_ = DefaultVariantItemType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.DefaultVariantItem = obj_
            obj_.original_tagname_ = 'DefaultVariantItem'
        elif nodeName_ == 'ReferenceItem':
            obj_ = ReferenceItemType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.ReferenceItem = obj_
            obj_.original_tagname_ = 'ReferenceItem'
        elif nodeName_ == 'Imp_CareReference1':
            obj_ = Imp_CareReference1Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReference1 = obj_
            obj_.original_tagname_ = 'Imp_CareReference1'
        elif nodeName_ == 'Imp_CareReference2':
            obj_ = Imp_CareReference2Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReference2 = obj_
            obj_.original_tagname_ = 'Imp_CareReference2'
        elif nodeName_ == 'Imp_CareReference3':
            obj_ = Imp_CareReference3Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReference3 = obj_
            obj_.original_tagname_ = 'Imp_CareReference3'
        elif nodeName_ == 'Imp_CareReference4':
            obj_ = Imp_CareReference4Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReference4 = obj_
            obj_.original_tagname_ = 'Imp_CareReference4'
        elif nodeName_ == 'Imp_CareReference5':
            obj_ = Imp_CareReference5Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReference5 = obj_
            obj_.original_tagname_ = 'Imp_CareReference5'
        elif nodeName_ == 'Imp_CareReference6':
            obj_ = Imp_CareReference6Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReference6 = obj_
            obj_.original_tagname_ = 'Imp_CareReference6'
        elif nodeName_ == 'Imp_CareReferenceGroup':
            obj_ = Imp_CareReferenceGroupType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_CareReferenceGroup = obj_
            obj_.original_tagname_ = 'Imp_CareReferenceGroup'
        elif nodeName_ == 'Imp_Collection':
            obj_ = Imp_CollectionType1.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_Collection = obj_
            obj_.original_tagname_ = 'Imp_Collection'
        elif nodeName_ == 'Imp_ItemGroup':
            obj_ = Imp_ItemGroupType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_ItemGroup = obj_
            obj_.original_tagname_ = 'Imp_ItemGroup'
        elif nodeName_ == 'Imp_ItemThemeGroup':
            obj_ = Imp_ItemThemeGroupType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_ItemThemeGroup = obj_
            obj_.original_tagname_ = 'Imp_ItemThemeGroup'
        elif nodeName_ == 'Imp_KindOfFabric':
            obj_ = Imp_KindOfFabricType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_KindOfFabric = obj_
            obj_.original_tagname_ = 'Imp_KindOfFabric'
        elif nodeName_ == 'Imp_MaterialComposition1':
            obj_ = Imp_MaterialComposition1Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_MaterialComposition1 = obj_
            obj_.original_tagname_ = 'Imp_MaterialComposition1'
        elif nodeName_ == 'Imp_MaterialComposition2':
            obj_ = Imp_MaterialComposition2Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_MaterialComposition2 = obj_
            obj_.original_tagname_ = 'Imp_MaterialComposition2'
        elif nodeName_ == 'Imp_MaterialComposition3':
            obj_ = Imp_MaterialComposition3Type.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_MaterialComposition3 = obj_
            obj_.original_tagname_ = 'Imp_MaterialComposition3'
        elif nodeName_ == 'Imp_PackagingType':
            obj_ = Imp_PackagingTypeType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_PackagingType = obj_
            obj_.original_tagname_ = 'Imp_PackagingType'
        elif nodeName_ == 'Imp_SizeRegister':
            obj_ = Imp_SizeRegisterType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_SizeRegister = obj_
            obj_.original_tagname_ = 'Imp_SizeRegister'
        elif nodeName_ == 'Imp_Size':
            obj_ = Imp_SizeType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_Size = obj_
            obj_.original_tagname_ = 'Imp_Size'
        elif nodeName_ == 'Imp_Color':
            obj_ = Imp_ColorType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_Color = obj_
            obj_.original_tagname_ = 'Imp_Color'
        elif nodeName_ == 'Uoms':
            obj_ = UomsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Uoms.append(obj_)
            obj_.original_tagname_ = 'Uoms'
        elif nodeName_ == 'Texts':
            obj_ = TextsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Texts.append(obj_)
            obj_.original_tagname_ = 'Texts'
        elif nodeName_ == 'ItemPackagingUoms':
            obj_ = ItemPackagingUomsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.ItemPackagingUoms.append(obj_)
            obj_.original_tagname_ = 'ItemPackagingUoms'
        elif nodeName_ == 'OrganizationalUnitItems':
            obj_ = OrganizationalUnitItemsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.OrganizationalUnitItems.append(obj_)
            obj_.original_tagname_ = 'OrganizationalUnitItems'
        elif nodeName_ == 'InventoryItems':
            obj_ = InventoryItemsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.InventoryItems.append(obj_)
            obj_.original_tagname_ = 'InventoryItems'
        elif nodeName_ == 'SalesItems':
            obj_ = SalesItemsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.SalesItems.append(obj_)
            obj_.original_tagname_ = 'SalesItems'
        elif nodeName_ == 'Imp_ItemDeliveryDates':
            obj_ = Imp_ItemDeliveryDatesType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_ItemDeliveryDates.append(obj_)
            obj_.original_tagname_ = 'Imp_ItemDeliveryDates'
        elif nodeName_ == 'Imp_ItemColorImages':
            obj_ = Imp_ItemColorImagesType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_ItemColorImages.append(obj_)
            obj_.original_tagname_ = 'Imp_ItemColorImages'
        elif nodeName_ == 'Imp_ItemProductLines':
            obj_ = Imp_ItemProductLinesType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_ItemProductLines.append(obj_)
            obj_.original_tagname_ = 'Imp_ItemProductLines'
# end class ItemType


class DefaultVariantItemType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, Imp_Collection=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.Imp_Collection = Imp_Collection
        self.Imp_Collection_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, DefaultVariantItemType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if DefaultVariantItemType.subclass:
            return DefaultVariantItemType.subclass(*args_, **kwargs_)
        else:
            return DefaultVariantItemType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_Imp_Collection(self):
        return self.Imp_Collection
    def set_Imp_Collection(self, Imp_Collection):
        self.Imp_Collection = Imp_Collection
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.Imp_Collection is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='DefaultVariantItemType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('DefaultVariantItemType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'DefaultVariantItemType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DefaultVariantItemType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DefaultVariantItemType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DefaultVariantItemType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='DefaultVariantItemType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.Imp_Collection is not None:
            namespaceprefix_ = self.Imp_Collection_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_Collection_nsprefix_) else ''
            self.Imp_Collection.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_Collection', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'Imp_Collection':
            obj_ = Imp_CollectionType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_Collection = obj_
            obj_.original_tagname_ = 'Imp_Collection'
# end class DefaultVariantItemType


class Imp_CollectionType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CollectionType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CollectionType.subclass:
            return Imp_CollectionType.subclass(*args_, **kwargs_)
        else:
            return Imp_CollectionType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CollectionType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CollectionType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CollectionType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CollectionType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CollectionType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CollectionType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CollectionType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CollectionType


class ReferenceItemType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, description=None, longDescription=None, text=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
        self.longDescription = longDescription
        self.longDescription_nsprefix_ = None
        self.text = text
        self.text_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ReferenceItemType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ReferenceItemType.subclass:
            return ReferenceItemType.subclass(*args_, **kwargs_)
        else:
            return ReferenceItemType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_longDescription(self):
        return self.longDescription
    def set_longDescription(self, longDescription):
        self.longDescription = longDescription
    def get_text(self):
        return self.text
    def set_text(self, text):
        self.text = text
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.description is not None or
            self.longDescription is not None or
            self.text is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ReferenceItemType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ReferenceItemType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ReferenceItemType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ReferenceItemType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ReferenceItemType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ReferenceItemType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ReferenceItemType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
        if self.longDescription is not None:
            namespaceprefix_ = self.longDescription_nsprefix_ + ':' if (UseCapturedNS_ and self.longDescription_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%slongDescription>%s</%slongDescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.longDescription), input_name='longDescription')), namespaceprefix_ , eol_))
        if self.text is not None:
            namespaceprefix_ = self.text_nsprefix_ + ':' if (UseCapturedNS_ and self.text_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%stext>%s</%stext>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.text), input_name='text')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
        elif nodeName_ == 'longDescription':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'longDescription')
            value_ = self.gds_validate_string(value_, node, 'longDescription')
            self.longDescription = value_
            self.longDescription_nsprefix_ = child_.prefix
        elif nodeName_ == 'text':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'text')
            value_ = self.gds_validate_string(value_, node, 'text')
            self.text = value_
            self.text_nsprefix_ = child_.prefix
# end class ReferenceItemType


class Imp_CareReference1Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReference1Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReference1Type.subclass:
            return Imp_CareReference1Type.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReference1Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference1Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReference1Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReference1Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReference1Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReference1Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReference1Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference1Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReference1Type


class Imp_CareReference2Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReference2Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReference2Type.subclass:
            return Imp_CareReference2Type.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReference2Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference2Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReference2Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReference2Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReference2Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReference2Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReference2Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference2Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReference2Type


class Imp_CareReference3Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReference3Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReference3Type.subclass:
            return Imp_CareReference3Type.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReference3Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference3Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReference3Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReference3Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReference3Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReference3Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReference3Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference3Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReference3Type


class Imp_CareReference4Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReference4Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReference4Type.subclass:
            return Imp_CareReference4Type.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReference4Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference4Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReference4Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReference4Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReference4Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReference4Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReference4Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference4Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReference4Type


class Imp_CareReference5Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReference5Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReference5Type.subclass:
            return Imp_CareReference5Type.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReference5Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference5Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReference5Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReference5Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReference5Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReference5Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReference5Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference5Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReference5Type


class Imp_CareReference6Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReference6Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReference6Type.subclass:
            return Imp_CareReference6Type.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReference6Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference6Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReference6Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReference6Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReference6Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReference6Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReference6Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReference6Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReference6Type


class Imp_CareReferenceGroupType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CareReferenceGroupType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CareReferenceGroupType.subclass:
            return Imp_CareReferenceGroupType.subclass(*args_, **kwargs_)
        else:
            return Imp_CareReferenceGroupType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReferenceGroupType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CareReferenceGroupType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CareReferenceGroupType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CareReferenceGroupType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CareReferenceGroupType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CareReferenceGroupType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CareReferenceGroupType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CareReferenceGroupType


class Imp_CollectionType1(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_CollectionType1)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_CollectionType1.subclass:
            return Imp_CollectionType1.subclass(*args_, **kwargs_)
        else:
            return Imp_CollectionType1(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CollectionType1', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_CollectionType1')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_CollectionType1':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_CollectionType1')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_CollectionType1', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_CollectionType1'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_CollectionType1', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_CollectionType1


class Imp_ItemGroupType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_ItemGroupType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_ItemGroupType.subclass:
            return Imp_ItemGroupType.subclass(*args_, **kwargs_)
        else:
            return Imp_ItemGroupType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemGroupType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_ItemGroupType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_ItemGroupType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_ItemGroupType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_ItemGroupType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_ItemGroupType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemGroupType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_ItemGroupType


class Imp_ItemThemeGroupType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_ItemThemeGroupType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_ItemThemeGroupType.subclass:
            return Imp_ItemThemeGroupType.subclass(*args_, **kwargs_)
        else:
            return Imp_ItemThemeGroupType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemThemeGroupType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_ItemThemeGroupType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_ItemThemeGroupType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_ItemThemeGroupType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_ItemThemeGroupType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_ItemThemeGroupType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemThemeGroupType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_ItemThemeGroupType


class Imp_KindOfFabricType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_KindOfFabricType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_KindOfFabricType.subclass:
            return Imp_KindOfFabricType.subclass(*args_, **kwargs_)
        else:
            return Imp_KindOfFabricType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_KindOfFabricType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_KindOfFabricType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_KindOfFabricType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_KindOfFabricType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_KindOfFabricType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_KindOfFabricType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_KindOfFabricType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_KindOfFabricType


class Imp_MaterialComposition1Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_MaterialComposition1Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_MaterialComposition1Type.subclass:
            return Imp_MaterialComposition1Type.subclass(*args_, **kwargs_)
        else:
            return Imp_MaterialComposition1Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_MaterialComposition1Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_MaterialComposition1Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_MaterialComposition1Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_MaterialComposition1Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_MaterialComposition1Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_MaterialComposition1Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_MaterialComposition1Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_MaterialComposition1Type


class Imp_MaterialComposition2Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_MaterialComposition2Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_MaterialComposition2Type.subclass:
            return Imp_MaterialComposition2Type.subclass(*args_, **kwargs_)
        else:
            return Imp_MaterialComposition2Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_MaterialComposition2Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_MaterialComposition2Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_MaterialComposition2Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_MaterialComposition2Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_MaterialComposition2Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_MaterialComposition2Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_MaterialComposition2Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_MaterialComposition2Type


class Imp_MaterialComposition3Type(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_MaterialComposition3Type)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_MaterialComposition3Type.subclass:
            return Imp_MaterialComposition3Type.subclass(*args_, **kwargs_)
        else:
            return Imp_MaterialComposition3Type(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_MaterialComposition3Type', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_MaterialComposition3Type')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_MaterialComposition3Type':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_MaterialComposition3Type')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_MaterialComposition3Type', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_MaterialComposition3Type'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_MaterialComposition3Type', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_MaterialComposition3Type


class Imp_PackagingTypeType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_PackagingTypeType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_PackagingTypeType.subclass:
            return Imp_PackagingTypeType.subclass(*args_, **kwargs_)
        else:
            return Imp_PackagingTypeType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_PackagingTypeType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_PackagingTypeType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_PackagingTypeType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_PackagingTypeType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_PackagingTypeType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_PackagingTypeType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_PackagingTypeType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_PackagingTypeType


class Imp_SizeRegisterType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_SizeRegisterType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_SizeRegisterType.subclass:
            return Imp_SizeRegisterType.subclass(*args_, **kwargs_)
        else:
            return Imp_SizeRegisterType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_SizeRegisterType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_SizeRegisterType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_SizeRegisterType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_SizeRegisterType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_SizeRegisterType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_SizeRegisterType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_SizeRegisterType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_SizeRegisterType


class Imp_SizeType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, surcharge=None, SizeHierarchy=None, SizeRegister=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.surcharge = surcharge
        self.surcharge_nsprefix_ = None
        self.SizeHierarchy = SizeHierarchy
        self.SizeHierarchy_nsprefix_ = None
        self.SizeRegister = SizeRegister
        self.SizeRegister_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_SizeType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_SizeType.subclass:
            return Imp_SizeType.subclass(*args_, **kwargs_)
        else:
            return Imp_SizeType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_surcharge(self):
        return self.surcharge
    def set_surcharge(self, surcharge):
        self.surcharge = surcharge
    def get_SizeHierarchy(self):
        return self.SizeHierarchy
    def set_SizeHierarchy(self, SizeHierarchy):
        self.SizeHierarchy = SizeHierarchy
    def get_SizeRegister(self):
        return self.SizeRegister
    def set_SizeRegister(self, SizeRegister):
        self.SizeRegister = SizeRegister
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.surcharge is not None or
            self.SizeHierarchy is not None or
            self.SizeRegister is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_SizeType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_SizeType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_SizeType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_SizeType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_SizeType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_SizeType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_SizeType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.surcharge is not None:
            namespaceprefix_ = self.surcharge_nsprefix_ + ':' if (UseCapturedNS_ and self.surcharge_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%ssurcharge>%s</%ssurcharge>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.surcharge), input_name='surcharge')), namespaceprefix_ , eol_))
        if self.SizeHierarchy is not None:
            namespaceprefix_ = self.SizeHierarchy_nsprefix_ + ':' if (UseCapturedNS_ and self.SizeHierarchy_nsprefix_) else ''
            self.SizeHierarchy.export(outfile, level, namespaceprefix_, namespacedef_='', name_='SizeHierarchy', pretty_print=pretty_print)
        if self.SizeRegister is not None:
            namespaceprefix_ = self.SizeRegister_nsprefix_ + ':' if (UseCapturedNS_ and self.SizeRegister_nsprefix_) else ''
            self.SizeRegister.export(outfile, level, namespaceprefix_, namespacedef_='', name_='SizeRegister', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'surcharge':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'surcharge')
            value_ = self.gds_validate_string(value_, node, 'surcharge')
            self.surcharge = value_
            self.surcharge_nsprefix_ = child_.prefix
        elif nodeName_ == 'SizeHierarchy':
            obj_ = SizeHierarchyType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.SizeHierarchy = obj_
            obj_.original_tagname_ = 'SizeHierarchy'
        elif nodeName_ == 'SizeRegister':
            obj_ = SizeRegisterType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.SizeRegister = obj_
            obj_.original_tagname_ = 'SizeRegister'
# end class Imp_SizeType


class SizeHierarchyType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, SizeHierarchyType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if SizeHierarchyType.subclass:
            return SizeHierarchyType.subclass(*args_, **kwargs_)
        else:
            return SizeHierarchyType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SizeHierarchyType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('SizeHierarchyType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'SizeHierarchyType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='SizeHierarchyType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='SizeHierarchyType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='SizeHierarchyType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SizeHierarchyType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class SizeHierarchyType


class SizeRegisterType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, SizeRegisterType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if SizeRegisterType.subclass:
            return SizeRegisterType.subclass(*args_, **kwargs_)
        else:
            return SizeRegisterType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SizeRegisterType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('SizeRegisterType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'SizeRegisterType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='SizeRegisterType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='SizeRegisterType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='SizeRegisterType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SizeRegisterType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
# end class SizeRegisterType


class Imp_ColorType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_ColorType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_ColorType.subclass:
            return Imp_ColorType.subclass(*args_, **kwargs_)
        else:
            return Imp_ColorType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ColorType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_ColorType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_ColorType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_ColorType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_ColorType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_ColorType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ColorType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class Imp_ColorType


class UomsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, index=None, EANs=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.index = _cast(int, index)
        self.index_nsprefix_ = None
        if EANs is None:
            self.EANs = []
        else:
            self.EANs = EANs
        self.EANs_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, UomsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if UomsType.subclass:
            return UomsType.subclass(*args_, **kwargs_)
        else:
            return UomsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_EANs(self):
        return self.EANs
    def set_EANs(self, EANs):
        self.EANs = EANs
    def add_EANs(self, value):
        self.EANs.append(value)
    def insert_EANs_at(self, index, value):
        self.EANs.insert(index, value)
    def replace_EANs_at(self, index, value):
        self.EANs[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def get_index(self):
        return self.index
    def set_index(self, index):
        self.index = index
    def validate_java_lang_Integer(self, value):
        # Validate type java.lang.Integer, a restriction on xsd:integer.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, int):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (int)' % {"value": value, "lineno": lineno, })
                return False
            if value < -2147483648:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
            if value > 2147483647:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
    def has__content(self):
        if (
            self.EANs
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='UomsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('UomsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'UomsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='UomsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='UomsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='UomsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
        if self.index is not None and 'index' not in already_processed:
            already_processed.add('index')
            outfile.write(' index="%s"' % self.gds_format_integer(self.index, input_name='index'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='UomsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        for EANs_ in self.EANs:
            namespaceprefix_ = self.EANs_nsprefix_ + ':' if (UseCapturedNS_ and self.EANs_nsprefix_) else ''
            EANs_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='EANs', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
        value = find_attr_value_('index', node)
        if value is not None and 'index' not in already_processed:
            already_processed.add('index')
            self.index = self.gds_parse_integer(value, node, 'index')
            self.validate_java_lang_Integer(self.index)    # validate type java.lang.Integer
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'EANs':
            obj_ = EANsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.EANs.append(obj_)
            obj_.original_tagname_ = 'EANs'
# end class UomsType


class EANsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, id=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.id = id
        self.id_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, EANsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if EANsType.subclass:
            return EANsType.subclass(*args_, **kwargs_)
        else:
            return EANsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_id(self):
        return self.id
    def set_id(self, id):
        self.id = id
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.id is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='EANsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('EANsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'EANsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='EANsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='EANsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='EANsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='EANsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.id is not None:
            namespaceprefix_ = self.id_nsprefix_ + ':' if (UseCapturedNS_ and self.id_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sid>%s</%sid>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.id), input_name='id')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'id':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'id')
            value_ = self.gds_validate_string(value_, node, 'id')
            self.id = value_
            self.id_nsprefix_ = child_.prefix
# end class EANsType


class TextsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, language=None, text=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.language = language
        self.language_nsprefix_ = None
        self.text = text
        self.text_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, TextsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if TextsType.subclass:
            return TextsType.subclass(*args_, **kwargs_)
        else:
            return TextsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_language(self):
        return self.language
    def set_language(self, language):
        self.language = language
    def get_text(self):
        return self.text
    def set_text(self, text):
        self.text = text
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.language is not None or
            self.text is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='TextsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('TextsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'TextsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='TextsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='TextsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='TextsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='TextsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.language is not None:
            namespaceprefix_ = self.language_nsprefix_ + ':' if (UseCapturedNS_ and self.language_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%slanguage>%s</%slanguage>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.language), input_name='language')), namespaceprefix_ , eol_))
        if self.text is not None:
            namespaceprefix_ = self.text_nsprefix_ + ':' if (UseCapturedNS_ and self.text_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%stext>%s</%stext>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.text), input_name='text')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'language':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'language')
            value_ = self.gds_validate_string(value_, node, 'language')
            self.language = value_
            self.language_nsprefix_ = child_.prefix
        elif nodeName_ == 'text':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'text')
            value_ = self.gds_validate_string(value_, node, 'text')
            self.text = value_
            self.text_nsprefix_ = child_.prefix
# end class TextsType


class ItemPackagingUomsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, StorageUnit=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.StorageUnit = StorageUnit
        self.StorageUnit_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ItemPackagingUomsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ItemPackagingUomsType.subclass:
            return ItemPackagingUomsType.subclass(*args_, **kwargs_)
        else:
            return ItemPackagingUomsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_StorageUnit(self):
        return self.StorageUnit
    def set_StorageUnit(self, StorageUnit):
        self.StorageUnit = StorageUnit
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.StorageUnit is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemPackagingUomsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ItemPackagingUomsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ItemPackagingUomsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ItemPackagingUomsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ItemPackagingUomsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ItemPackagingUomsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemPackagingUomsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.StorageUnit is not None:
            namespaceprefix_ = self.StorageUnit_nsprefix_ + ':' if (UseCapturedNS_ and self.StorageUnit_nsprefix_) else ''
            self.StorageUnit.export(outfile, level, namespaceprefix_, namespacedef_='', name_='StorageUnit', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'StorageUnit':
            obj_ = StorageUnitType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.StorageUnit = obj_
            obj_.original_tagname_ = 'StorageUnit'
# end class ItemPackagingUomsType


class StorageUnitType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, eans=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        if eans is None:
            self.eans = []
        else:
            self.eans = eans
        self.eans_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, StorageUnitType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if StorageUnitType.subclass:
            return StorageUnitType.subclass(*args_, **kwargs_)
        else:
            return StorageUnitType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_eans(self):
        return self.eans
    def set_eans(self, eans):
        self.eans = eans
    def add_eans(self, value):
        self.eans.append(value)
    def insert_eans_at(self, index, value):
        self.eans.insert(index, value)
    def replace_eans_at(self, index, value):
        self.eans[index] = value
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.eans or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='StorageUnitType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('StorageUnitType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'StorageUnitType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='StorageUnitType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='StorageUnitType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='StorageUnitType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='StorageUnitType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        for eans_ in self.eans:
            namespaceprefix_ = self.eans_nsprefix_ + ':' if (UseCapturedNS_ and self.eans_nsprefix_) else ''
            eans_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='eans', pretty_print=pretty_print)
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'eans':
            obj_ = eansType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.eans.append(obj_)
            obj_.original_tagname_ = 'eans'
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class StorageUnitType


class eansType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, index=None, valueOf_=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.index = _cast(int, index)
        self.index_nsprefix_ = None
        self.valueOf_ = valueOf_
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, eansType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if eansType.subclass:
            return eansType.subclass(*args_, **kwargs_)
        else:
            return eansType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_index(self):
        return self.index
    def set_index(self, index):
        self.index = index
    def get_valueOf_(self): return self.valueOf_
    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
    def validate_java_lang_Integer(self, value):
        # Validate type java.lang.Integer, a restriction on xsd:integer.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, int):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (int)' % {"value": value, "lineno": lineno, })
                return False
            if value < -2147483648:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
            if value > 2147483647:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
    def has__content(self):
        if (
            (1 if type(self.valueOf_) in [int,float] else self.valueOf_)
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('eansType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'eansType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='eansType')
        outfile.write('>')
        self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
        outfile.write(self.convert_unicode(self.valueOf_))
        outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='eansType'):
        if self.index is not None and 'index' not in already_processed:
            already_processed.add('index')
            outfile.write(' index="%s"' % self.gds_format_integer(self.index, input_name='index'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType', fromsubclass_=False, pretty_print=True):
        pass
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        self.valueOf_ = get_all_text_(node)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('index', node)
        if value is not None and 'index' not in already_processed:
            already_processed.add('index')
            self.index = self.gds_parse_integer(value, node, 'index')
            self.validate_java_lang_Integer(self.index)    # validate type java.lang.Integer
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        pass
# end class eansType


class OrganizationalUnitItemsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, OriginalItem=None, AlternativeItems=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.OriginalItem = OriginalItem
        self.OriginalItem_nsprefix_ = None
        if AlternativeItems is None:
            self.AlternativeItems = []
        else:
            self.AlternativeItems = AlternativeItems
        self.AlternativeItems_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, OrganizationalUnitItemsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if OrganizationalUnitItemsType.subclass:
            return OrganizationalUnitItemsType.subclass(*args_, **kwargs_)
        else:
            return OrganizationalUnitItemsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_OriginalItem(self):
        return self.OriginalItem
    def set_OriginalItem(self, OriginalItem):
        self.OriginalItem = OriginalItem
    def get_AlternativeItems(self):
        return self.AlternativeItems
    def set_AlternativeItems(self, AlternativeItems):
        self.AlternativeItems = AlternativeItems
    def add_AlternativeItems(self, value):
        self.AlternativeItems.append(value)
    def insert_AlternativeItems_at(self, index, value):
        self.AlternativeItems.insert(index, value)
    def replace_AlternativeItems_at(self, index, value):
        self.AlternativeItems[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.OriginalItem is not None or
            self.AlternativeItems
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='OrganizationalUnitItemsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('OrganizationalUnitItemsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'OrganizationalUnitItemsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='OrganizationalUnitItemsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='OrganizationalUnitItemsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='OrganizationalUnitItemsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='OrganizationalUnitItemsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.OriginalItem is not None:
            namespaceprefix_ = self.OriginalItem_nsprefix_ + ':' if (UseCapturedNS_ and self.OriginalItem_nsprefix_) else ''
            self.OriginalItem.export(outfile, level, namespaceprefix_, namespacedef_='', name_='OriginalItem', pretty_print=pretty_print)
        for AlternativeItems_ in self.AlternativeItems:
            namespaceprefix_ = self.AlternativeItems_nsprefix_ + ':' if (UseCapturedNS_ and self.AlternativeItems_nsprefix_) else ''
            AlternativeItems_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='AlternativeItems', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'OriginalItem':
            obj_ = OriginalItemType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.OriginalItem = obj_
            obj_.original_tagname_ = 'OriginalItem'
        elif nodeName_ == 'AlternativeItems':
            obj_ = AlternativeItemsType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.AlternativeItems.append(obj_)
            obj_.original_tagname_ = 'AlternativeItems'
# end class OrganizationalUnitItemsType


class OriginalItemType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, eans=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        if eans is None:
            self.eans = []
        else:
            self.eans = eans
        self.eans_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, OriginalItemType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if OriginalItemType.subclass:
            return OriginalItemType.subclass(*args_, **kwargs_)
        else:
            return OriginalItemType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_eans(self):
        return self.eans
    def set_eans(self, eans):
        self.eans = eans
    def add_eans(self, value):
        self.eans.append(value)
    def insert_eans_at(self, index, value):
        self.eans.insert(index, value)
    def replace_eans_at(self, index, value):
        self.eans[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.eans
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='OriginalItemType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('OriginalItemType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'OriginalItemType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='OriginalItemType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='OriginalItemType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='OriginalItemType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='OriginalItemType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        for eans_ in self.eans:
            namespaceprefix_ = self.eans_nsprefix_ + ':' if (UseCapturedNS_ and self.eans_nsprefix_) else ''
            eans_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='eans', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'eans':
            obj_ = eansType2.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.eans.append(obj_)
            obj_.original_tagname_ = 'eans'
# end class OriginalItemType


class eansType2(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, index=None, valueOf_=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.index = _cast(int, index)
        self.index_nsprefix_ = None
        self.valueOf_ = valueOf_
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, eansType2)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if eansType2.subclass:
            return eansType2.subclass(*args_, **kwargs_)
        else:
            return eansType2(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_index(self):
        return self.index
    def set_index(self, index):
        self.index = index
    def get_valueOf_(self): return self.valueOf_
    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
    def validate_java_lang_Integer(self, value):
        # Validate type java.lang.Integer, a restriction on xsd:integer.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, int):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (int)' % {"value": value, "lineno": lineno, })
                return False
            if value < -2147483648:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
            if value > 2147483647:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
    def has__content(self):
        if (
            (1 if type(self.valueOf_) in [int,float] else self.valueOf_)
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType2', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('eansType2')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'eansType2':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='eansType2')
        outfile.write('>')
        self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
        outfile.write(self.convert_unicode(self.valueOf_))
        outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='eansType2'):
        if self.index is not None and 'index' not in already_processed:
            already_processed.add('index')
            outfile.write(' index="%s"' % self.gds_format_integer(self.index, input_name='index'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType2', fromsubclass_=False, pretty_print=True):
        pass
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        self.valueOf_ = get_all_text_(node)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('index', node)
        if value is not None and 'index' not in already_processed:
            already_processed.add('index')
            self.index = self.gds_parse_integer(value, node, 'index')
            self.validate_java_lang_Integer(self.index)    # validate type java.lang.Integer
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        pass
# end class eansType2


class AlternativeItemsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, Substitute=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.Substitute = Substitute
        self.Substitute_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, AlternativeItemsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if AlternativeItemsType.subclass:
            return AlternativeItemsType.subclass(*args_, **kwargs_)
        else:
            return AlternativeItemsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_Substitute(self):
        return self.Substitute
    def set_Substitute(self, Substitute):
        self.Substitute = Substitute
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.Substitute is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='AlternativeItemsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('AlternativeItemsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'AlternativeItemsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='AlternativeItemsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='AlternativeItemsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='AlternativeItemsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='AlternativeItemsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.Substitute is not None:
            namespaceprefix_ = self.Substitute_nsprefix_ + ':' if (UseCapturedNS_ and self.Substitute_nsprefix_) else ''
            self.Substitute.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Substitute', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'Substitute':
            obj_ = SubstituteType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Substitute = obj_
            obj_.original_tagname_ = 'Substitute'
# end class AlternativeItemsType


class SubstituteType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, DefaultVariantItem=None, ReferenceItem=None, ItemPackagingUoms=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.DefaultVariantItem = DefaultVariantItem
        self.DefaultVariantItem_nsprefix_ = None
        self.ReferenceItem = ReferenceItem
        self.ReferenceItem_nsprefix_ = None
        if ItemPackagingUoms is None:
            self.ItemPackagingUoms = []
        else:
            self.ItemPackagingUoms = ItemPackagingUoms
        self.ItemPackagingUoms_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, SubstituteType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if SubstituteType.subclass:
            return SubstituteType.subclass(*args_, **kwargs_)
        else:
            return SubstituteType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_DefaultVariantItem(self):
        return self.DefaultVariantItem
    def set_DefaultVariantItem(self, DefaultVariantItem):
        self.DefaultVariantItem = DefaultVariantItem
    def get_ReferenceItem(self):
        return self.ReferenceItem
    def set_ReferenceItem(self, ReferenceItem):
        self.ReferenceItem = ReferenceItem
    def get_ItemPackagingUoms(self):
        return self.ItemPackagingUoms
    def set_ItemPackagingUoms(self, ItemPackagingUoms):
        self.ItemPackagingUoms = ItemPackagingUoms
    def add_ItemPackagingUoms(self, value):
        self.ItemPackagingUoms.append(value)
    def insert_ItemPackagingUoms_at(self, index, value):
        self.ItemPackagingUoms.insert(index, value)
    def replace_ItemPackagingUoms_at(self, index, value):
        self.ItemPackagingUoms[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.DefaultVariantItem is not None or
            self.ReferenceItem is not None or
            self.ItemPackagingUoms
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SubstituteType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('SubstituteType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'SubstituteType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='SubstituteType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='SubstituteType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='SubstituteType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SubstituteType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.DefaultVariantItem is not None:
            namespaceprefix_ = self.DefaultVariantItem_nsprefix_ + ':' if (UseCapturedNS_ and self.DefaultVariantItem_nsprefix_) else ''
            self.DefaultVariantItem.export(outfile, level, namespaceprefix_, namespacedef_='', name_='DefaultVariantItem', pretty_print=pretty_print)
        if self.ReferenceItem is not None:
            namespaceprefix_ = self.ReferenceItem_nsprefix_ + ':' if (UseCapturedNS_ and self.ReferenceItem_nsprefix_) else ''
            self.ReferenceItem.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ReferenceItem', pretty_print=pretty_print)
        for ItemPackagingUoms_ in self.ItemPackagingUoms:
            namespaceprefix_ = self.ItemPackagingUoms_nsprefix_ + ':' if (UseCapturedNS_ and self.ItemPackagingUoms_nsprefix_) else ''
            ItemPackagingUoms_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ItemPackagingUoms', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'DefaultVariantItem':
            obj_ = DefaultVariantItemType3.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.DefaultVariantItem = obj_
            obj_.original_tagname_ = 'DefaultVariantItem'
        elif nodeName_ == 'ReferenceItem':
            obj_ = ReferenceItemType5.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.ReferenceItem = obj_
            obj_.original_tagname_ = 'ReferenceItem'
        elif nodeName_ == 'ItemPackagingUoms':
            obj_ = ItemPackagingUomsType7.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.ItemPackagingUoms.append(obj_)
            obj_.original_tagname_ = 'ItemPackagingUoms'
# end class SubstituteType


class DefaultVariantItemType3(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, eans=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        if eans is None:
            self.eans = []
        else:
            self.eans = eans
        self.eans_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, DefaultVariantItemType3)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if DefaultVariantItemType3.subclass:
            return DefaultVariantItemType3.subclass(*args_, **kwargs_)
        else:
            return DefaultVariantItemType3(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_eans(self):
        return self.eans
    def set_eans(self, eans):
        self.eans = eans
    def add_eans(self, value):
        self.eans.append(value)
    def insert_eans_at(self, index, value):
        self.eans.insert(index, value)
    def replace_eans_at(self, index, value):
        self.eans[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.eans
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='DefaultVariantItemType3', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('DefaultVariantItemType3')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'DefaultVariantItemType3':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DefaultVariantItemType3')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DefaultVariantItemType3', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DefaultVariantItemType3'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='DefaultVariantItemType3', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        for eans_ in self.eans:
            namespaceprefix_ = self.eans_nsprefix_ + ':' if (UseCapturedNS_ and self.eans_nsprefix_) else ''
            eans_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='eans', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'eans':
            obj_ = eansType4.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.eans.append(obj_)
            obj_.original_tagname_ = 'eans'
# end class DefaultVariantItemType3


class eansType4(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, index=None, valueOf_=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.index = _cast(int, index)
        self.index_nsprefix_ = None
        self.valueOf_ = valueOf_
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, eansType4)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if eansType4.subclass:
            return eansType4.subclass(*args_, **kwargs_)
        else:
            return eansType4(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_index(self):
        return self.index
    def set_index(self, index):
        self.index = index
    def get_valueOf_(self): return self.valueOf_
    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
    def validate_java_lang_Integer(self, value):
        # Validate type java.lang.Integer, a restriction on xsd:integer.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, int):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (int)' % {"value": value, "lineno": lineno, })
                return False
            if value < -2147483648:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
            if value > 2147483647:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
    def has__content(self):
        if (
            (1 if type(self.valueOf_) in [int,float] else self.valueOf_)
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType4', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('eansType4')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'eansType4':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='eansType4')
        outfile.write('>')
        self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
        outfile.write(self.convert_unicode(self.valueOf_))
        outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='eansType4'):
        if self.index is not None and 'index' not in already_processed:
            already_processed.add('index')
            outfile.write(' index="%s"' % self.gds_format_integer(self.index, input_name='index'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType4', fromsubclass_=False, pretty_print=True):
        pass
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        self.valueOf_ = get_all_text_(node)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('index', node)
        if value is not None and 'index' not in already_processed:
            already_processed.add('index')
            self.index = self.gds_parse_integer(value, node, 'index')
            self.validate_java_lang_Integer(self.index)    # validate type java.lang.Integer
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        pass
# end class eansType4


class ReferenceItemType5(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, eans=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        if eans is None:
            self.eans = []
        else:
            self.eans = eans
        self.eans_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ReferenceItemType5)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ReferenceItemType5.subclass:
            return ReferenceItemType5.subclass(*args_, **kwargs_)
        else:
            return ReferenceItemType5(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_eans(self):
        return self.eans
    def set_eans(self, eans):
        self.eans = eans
    def add_eans(self, value):
        self.eans.append(value)
    def insert_eans_at(self, index, value):
        self.eans.insert(index, value)
    def replace_eans_at(self, index, value):
        self.eans[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.eans
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ReferenceItemType5', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ReferenceItemType5')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ReferenceItemType5':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ReferenceItemType5')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ReferenceItemType5', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ReferenceItemType5'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ReferenceItemType5', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        for eans_ in self.eans:
            namespaceprefix_ = self.eans_nsprefix_ + ':' if (UseCapturedNS_ and self.eans_nsprefix_) else ''
            eans_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='eans', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'eans':
            obj_ = eansType6.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.eans.append(obj_)
            obj_.original_tagname_ = 'eans'
# end class ReferenceItemType5


class eansType6(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, index=None, valueOf_=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.index = _cast(int, index)
        self.index_nsprefix_ = None
        self.valueOf_ = valueOf_
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, eansType6)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if eansType6.subclass:
            return eansType6.subclass(*args_, **kwargs_)
        else:
            return eansType6(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_index(self):
        return self.index
    def set_index(self, index):
        self.index = index
    def get_valueOf_(self): return self.valueOf_
    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
    def validate_java_lang_Integer(self, value):
        # Validate type java.lang.Integer, a restriction on xsd:integer.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, int):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (int)' % {"value": value, "lineno": lineno, })
                return False
            if value < -2147483648:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
            if value > 2147483647:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
    def has__content(self):
        if (
            (1 if type(self.valueOf_) in [int,float] else self.valueOf_)
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType6', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('eansType6')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'eansType6':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='eansType6')
        outfile.write('>')
        self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
        outfile.write(self.convert_unicode(self.valueOf_))
        outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='eansType6'):
        if self.index is not None and 'index' not in already_processed:
            already_processed.add('index')
            outfile.write(' index="%s"' % self.gds_format_integer(self.index, input_name='index'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType6', fromsubclass_=False, pretty_print=True):
        pass
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        self.valueOf_ = get_all_text_(node)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('index', node)
        if value is not None and 'index' not in already_processed:
            already_processed.add('index')
            self.index = self.gds_parse_integer(value, node, 'index')
            self.validate_java_lang_Integer(self.index)    # validate type java.lang.Integer
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        pass
# end class eansType6


class ItemPackagingUomsType7(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, ean=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.ean = ean
        self.ean_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ItemPackagingUomsType7)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ItemPackagingUomsType7.subclass:
            return ItemPackagingUomsType7.subclass(*args_, **kwargs_)
        else:
            return ItemPackagingUomsType7(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_ean(self):
        return self.ean
    def set_ean(self, ean):
        self.ean = ean
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.ean is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemPackagingUomsType7', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ItemPackagingUomsType7')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ItemPackagingUomsType7':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ItemPackagingUomsType7')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ItemPackagingUomsType7', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ItemPackagingUomsType7'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemPackagingUomsType7', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.ean is not None:
            namespaceprefix_ = self.ean_nsprefix_ + ':' if (UseCapturedNS_ and self.ean_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sean>%s</%sean>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.ean), input_name='ean')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'ean':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'ean')
            value_ = self.gds_validate_string(value_, node, 'ean')
            self.ean = value_
            self.ean_nsprefix_ = child_.prefix
# end class ItemPackagingUomsType7


class InventoryItemsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, ItemStorageData=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        if ItemStorageData is None:
            self.ItemStorageData = []
        else:
            self.ItemStorageData = ItemStorageData
        self.ItemStorageData_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, InventoryItemsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if InventoryItemsType.subclass:
            return InventoryItemsType.subclass(*args_, **kwargs_)
        else:
            return InventoryItemsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_ItemStorageData(self):
        return self.ItemStorageData
    def set_ItemStorageData(self, ItemStorageData):
        self.ItemStorageData = ItemStorageData
    def add_ItemStorageData(self, value):
        self.ItemStorageData.append(value)
    def insert_ItemStorageData_at(self, index, value):
        self.ItemStorageData.insert(index, value)
    def replace_ItemStorageData_at(self, index, value):
        self.ItemStorageData[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.ItemStorageData
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='InventoryItemsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('InventoryItemsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'InventoryItemsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='InventoryItemsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='InventoryItemsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='InventoryItemsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='InventoryItemsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        for ItemStorageData_ in self.ItemStorageData:
            namespaceprefix_ = self.ItemStorageData_nsprefix_ + ':' if (UseCapturedNS_ and self.ItemStorageData_nsprefix_) else ''
            ItemStorageData_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ItemStorageData', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'ItemStorageData':
            obj_ = ItemStorageDataType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.ItemStorageData.append(obj_)
            obj_.original_tagname_ = 'ItemStorageData'
# end class InventoryItemsType


class ItemStorageDataType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, DefaultStorageUnit=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.DefaultStorageUnit = DefaultStorageUnit
        self.DefaultStorageUnit_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ItemStorageDataType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ItemStorageDataType.subclass:
            return ItemStorageDataType.subclass(*args_, **kwargs_)
        else:
            return ItemStorageDataType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_DefaultStorageUnit(self):
        return self.DefaultStorageUnit
    def set_DefaultStorageUnit(self, DefaultStorageUnit):
        self.DefaultStorageUnit = DefaultStorageUnit
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.DefaultStorageUnit is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemStorageDataType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ItemStorageDataType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ItemStorageDataType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ItemStorageDataType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ItemStorageDataType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ItemStorageDataType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ItemStorageDataType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.DefaultStorageUnit is not None:
            namespaceprefix_ = self.DefaultStorageUnit_nsprefix_ + ':' if (UseCapturedNS_ and self.DefaultStorageUnit_nsprefix_) else ''
            self.DefaultStorageUnit.export(outfile, level, namespaceprefix_, namespacedef_='', name_='DefaultStorageUnit', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'DefaultStorageUnit':
            obj_ = DefaultStorageUnitType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.DefaultStorageUnit = obj_
            obj_.original_tagname_ = 'DefaultStorageUnit'
# end class ItemStorageDataType


class DefaultStorageUnitType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, number=None, eans=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.number = number
        self.number_nsprefix_ = None
        if eans is None:
            self.eans = []
        else:
            self.eans = eans
        self.eans_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, DefaultStorageUnitType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if DefaultStorageUnitType.subclass:
            return DefaultStorageUnitType.subclass(*args_, **kwargs_)
        else:
            return DefaultStorageUnitType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_number(self):
        return self.number
    def set_number(self, number):
        self.number = number
    def get_eans(self):
        return self.eans
    def set_eans(self, eans):
        self.eans = eans
    def add_eans(self, value):
        self.eans.append(value)
    def insert_eans_at(self, index, value):
        self.eans.insert(index, value)
    def replace_eans_at(self, index, value):
        self.eans[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.number is not None or
            self.eans
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='DefaultStorageUnitType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('DefaultStorageUnitType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'DefaultStorageUnitType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DefaultStorageUnitType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DefaultStorageUnitType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DefaultStorageUnitType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='DefaultStorageUnitType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.number is not None:
            namespaceprefix_ = self.number_nsprefix_ + ':' if (UseCapturedNS_ and self.number_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%snumber>%s</%snumber>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.number), input_name='number')), namespaceprefix_ , eol_))
        for eans_ in self.eans:
            namespaceprefix_ = self.eans_nsprefix_ + ':' if (UseCapturedNS_ and self.eans_nsprefix_) else ''
            eans_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='eans', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'number':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'number')
            value_ = self.gds_validate_string(value_, node, 'number')
            self.number = value_
            self.number_nsprefix_ = child_.prefix
        elif nodeName_ == 'eans':
            obj_ = eansType8.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.eans.append(obj_)
            obj_.original_tagname_ = 'eans'
# end class DefaultStorageUnitType


class eansType8(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, index=None, valueOf_=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.index = _cast(int, index)
        self.index_nsprefix_ = None
        self.valueOf_ = valueOf_
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, eansType8)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if eansType8.subclass:
            return eansType8.subclass(*args_, **kwargs_)
        else:
            return eansType8(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_index(self):
        return self.index
    def set_index(self, index):
        self.index = index
    def get_valueOf_(self): return self.valueOf_
    def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
    def validate_java_lang_Integer(self, value):
        # Validate type java.lang.Integer, a restriction on xsd:integer.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, int):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (int)' % {"value": value, "lineno": lineno, })
                return False
            if value < -2147483648:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
            if value > 2147483647:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on java.lang.Integer' % {"value": value, "lineno": lineno} )
                result = False
    def has__content(self):
        if (
            (1 if type(self.valueOf_) in [int,float] else self.valueOf_)
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType8', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('eansType8')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'eansType8':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='eansType8')
        outfile.write('>')
        self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
        outfile.write(self.convert_unicode(self.valueOf_))
        outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='eansType8'):
        if self.index is not None and 'index' not in already_processed:
            already_processed.add('index')
            outfile.write(' index="%s"' % self.gds_format_integer(self.index, input_name='index'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='eansType8', fromsubclass_=False, pretty_print=True):
        pass
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        self.valueOf_ = get_all_text_(node)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('index', node)
        if value is not None and 'index' not in already_processed:
            already_processed.add('index')
            self.index = self.gds_parse_integer(value, node, 'index')
            self.validate_java_lang_Integer(self.index)    # validate type java.lang.Integer
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        pass
# end class eansType8


class SalesItemsType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, defaultStorageArea=None, classification1=None, classification2=None, classification3=None, classification4=None, classification5=None, priceClassification=None, Imp_SalesItemDeliveryDates=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.defaultStorageArea = defaultStorageArea
        self.defaultStorageArea_nsprefix_ = None
        self.classification1 = classification1
        self.classification1_nsprefix_ = None
        self.classification2 = classification2
        self.classification2_nsprefix_ = None
        self.classification3 = classification3
        self.classification3_nsprefix_ = None
        self.classification4 = classification4
        self.classification4_nsprefix_ = None
        self.classification5 = classification5
        self.classification5_nsprefix_ = None
        self.priceClassification = priceClassification
        self.priceClassification_nsprefix_ = None
        if Imp_SalesItemDeliveryDates is None:
            self.Imp_SalesItemDeliveryDates = []
        else:
            self.Imp_SalesItemDeliveryDates = Imp_SalesItemDeliveryDates
        self.Imp_SalesItemDeliveryDates_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, SalesItemsType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if SalesItemsType.subclass:
            return SalesItemsType.subclass(*args_, **kwargs_)
        else:
            return SalesItemsType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_defaultStorageArea(self):
        return self.defaultStorageArea
    def set_defaultStorageArea(self, defaultStorageArea):
        self.defaultStorageArea = defaultStorageArea
    def get_classification1(self):
        return self.classification1
    def set_classification1(self, classification1):
        self.classification1 = classification1
    def get_classification2(self):
        return self.classification2
    def set_classification2(self, classification2):
        self.classification2 = classification2
    def get_classification3(self):
        return self.classification3
    def set_classification3(self, classification3):
        self.classification3 = classification3
    def get_classification4(self):
        return self.classification4
    def set_classification4(self, classification4):
        self.classification4 = classification4
    def get_classification5(self):
        return self.classification5
    def set_classification5(self, classification5):
        self.classification5 = classification5
    def get_priceClassification(self):
        return self.priceClassification
    def set_priceClassification(self, priceClassification):
        self.priceClassification = priceClassification
    def get_Imp_SalesItemDeliveryDates(self):
        return self.Imp_SalesItemDeliveryDates
    def set_Imp_SalesItemDeliveryDates(self, Imp_SalesItemDeliveryDates):
        self.Imp_SalesItemDeliveryDates = Imp_SalesItemDeliveryDates
    def add_Imp_SalesItemDeliveryDates(self, value):
        self.Imp_SalesItemDeliveryDates.append(value)
    def insert_Imp_SalesItemDeliveryDates_at(self, index, value):
        self.Imp_SalesItemDeliveryDates.insert(index, value)
    def replace_Imp_SalesItemDeliveryDates_at(self, index, value):
        self.Imp_SalesItemDeliveryDates[index] = value
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.defaultStorageArea is not None or
            self.classification1 is not None or
            self.classification2 is not None or
            self.classification3 is not None or
            self.classification4 is not None or
            self.classification5 is not None or
            self.priceClassification is not None or
            self.Imp_SalesItemDeliveryDates
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SalesItemsType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('SalesItemsType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'SalesItemsType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='SalesItemsType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='SalesItemsType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='SalesItemsType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='SalesItemsType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.defaultStorageArea is not None:
            namespaceprefix_ = self.defaultStorageArea_nsprefix_ + ':' if (UseCapturedNS_ and self.defaultStorageArea_nsprefix_) else ''
            self.defaultStorageArea.export(outfile, level, namespaceprefix_, namespacedef_='', name_='defaultStorageArea', pretty_print=pretty_print)
        if self.classification1 is not None:
            namespaceprefix_ = self.classification1_nsprefix_ + ':' if (UseCapturedNS_ and self.classification1_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sclassification1>%s</%sclassification1>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.classification1), input_name='classification1')), namespaceprefix_ , eol_))
        if self.classification2 is not None:
            namespaceprefix_ = self.classification2_nsprefix_ + ':' if (UseCapturedNS_ and self.classification2_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sclassification2>%s</%sclassification2>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.classification2), input_name='classification2')), namespaceprefix_ , eol_))
        if self.classification3 is not None:
            namespaceprefix_ = self.classification3_nsprefix_ + ':' if (UseCapturedNS_ and self.classification3_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sclassification3>%s</%sclassification3>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.classification3), input_name='classification3')), namespaceprefix_ , eol_))
        if self.classification4 is not None:
            namespaceprefix_ = self.classification4_nsprefix_ + ':' if (UseCapturedNS_ and self.classification4_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sclassification4>%s</%sclassification4>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.classification4), input_name='classification4')), namespaceprefix_ , eol_))
        if self.classification5 is not None:
            namespaceprefix_ = self.classification5_nsprefix_ + ':' if (UseCapturedNS_ and self.classification5_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sclassification5>%s</%sclassification5>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.classification5), input_name='classification5')), namespaceprefix_ , eol_))
        if self.priceClassification is not None:
            namespaceprefix_ = self.priceClassification_nsprefix_ + ':' if (UseCapturedNS_ and self.priceClassification_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%spriceClassification>%s</%spriceClassification>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.priceClassification), input_name='priceClassification')), namespaceprefix_ , eol_))
        for Imp_SalesItemDeliveryDates_ in self.Imp_SalesItemDeliveryDates:
            namespaceprefix_ = self.Imp_SalesItemDeliveryDates_nsprefix_ + ':' if (UseCapturedNS_ and self.Imp_SalesItemDeliveryDates_nsprefix_) else ''
            Imp_SalesItemDeliveryDates_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Imp_SalesItemDeliveryDates', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'defaultStorageArea':
            obj_ = defaultStorageAreaType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.defaultStorageArea = obj_
            obj_.original_tagname_ = 'defaultStorageArea'
        elif nodeName_ == 'classification1':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'classification1')
            value_ = self.gds_validate_string(value_, node, 'classification1')
            self.classification1 = value_
            self.classification1_nsprefix_ = child_.prefix
        elif nodeName_ == 'classification2':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'classification2')
            value_ = self.gds_validate_string(value_, node, 'classification2')
            self.classification2 = value_
            self.classification2_nsprefix_ = child_.prefix
        elif nodeName_ == 'classification3':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'classification3')
            value_ = self.gds_validate_string(value_, node, 'classification3')
            self.classification3 = value_
            self.classification3_nsprefix_ = child_.prefix
        elif nodeName_ == 'classification4':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'classification4')
            value_ = self.gds_validate_string(value_, node, 'classification4')
            self.classification4 = value_
            self.classification4_nsprefix_ = child_.prefix
        elif nodeName_ == 'classification5':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'classification5')
            value_ = self.gds_validate_string(value_, node, 'classification5')
            self.classification5 = value_
            self.classification5_nsprefix_ = child_.prefix
        elif nodeName_ == 'priceClassification':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'priceClassification')
            value_ = self.gds_validate_string(value_, node, 'priceClassification')
            self.priceClassification = value_
            self.priceClassification_nsprefix_ = child_.prefix
        elif nodeName_ == 'Imp_SalesItemDeliveryDates':
            obj_ = Imp_SalesItemDeliveryDatesType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Imp_SalesItemDeliveryDates.append(obj_)
            obj_.original_tagname_ = 'Imp_SalesItemDeliveryDates'
# end class SalesItemsType


class defaultStorageAreaType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, warehouse=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.warehouse = warehouse
        self.warehouse_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, defaultStorageAreaType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if defaultStorageAreaType.subclass:
            return defaultStorageAreaType.subclass(*args_, **kwargs_)
        else:
            return defaultStorageAreaType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_warehouse(self):
        return self.warehouse
    def set_warehouse(self, warehouse):
        self.warehouse = warehouse
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.warehouse is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='defaultStorageAreaType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('defaultStorageAreaType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'defaultStorageAreaType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='defaultStorageAreaType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='defaultStorageAreaType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='defaultStorageAreaType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='defaultStorageAreaType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.warehouse is not None:
            namespaceprefix_ = self.warehouse_nsprefix_ + ':' if (UseCapturedNS_ and self.warehouse_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%swarehouse>%s</%swarehouse>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.warehouse), input_name='warehouse')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'warehouse':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'warehouse')
            value_ = self.gds_validate_string(value_, node, 'warehouse')
            self.warehouse = value_
            self.warehouse_nsprefix_ = child_.prefix
# end class defaultStorageAreaType


class Imp_SalesItemDeliveryDatesType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, deliveryDate=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.deliveryDate = deliveryDate
        self.deliveryDate_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_SalesItemDeliveryDatesType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_SalesItemDeliveryDatesType.subclass:
            return Imp_SalesItemDeliveryDatesType.subclass(*args_, **kwargs_)
        else:
            return Imp_SalesItemDeliveryDatesType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_deliveryDate(self):
        return self.deliveryDate
    def set_deliveryDate(self, deliveryDate):
        self.deliveryDate = deliveryDate
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.deliveryDate is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_SalesItemDeliveryDatesType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_SalesItemDeliveryDatesType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_SalesItemDeliveryDatesType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_SalesItemDeliveryDatesType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_SalesItemDeliveryDatesType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_SalesItemDeliveryDatesType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_SalesItemDeliveryDatesType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.deliveryDate is not None:
            namespaceprefix_ = self.deliveryDate_nsprefix_ + ':' if (UseCapturedNS_ and self.deliveryDate_nsprefix_) else ''
            self.deliveryDate.export(outfile, level, namespaceprefix_, namespacedef_='', name_='deliveryDate', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'deliveryDate':
            obj_ = deliveryDateType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.deliveryDate = obj_
            obj_.original_tagname_ = 'deliveryDate'
# end class Imp_SalesItemDeliveryDatesType


class deliveryDateType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, dateFrom=None, dateUntil=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.dateFrom = dateFrom
        self.dateFrom_nsprefix_ = None
        self.dateUntil = dateUntil
        self.dateUntil_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, deliveryDateType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if deliveryDateType.subclass:
            return deliveryDateType.subclass(*args_, **kwargs_)
        else:
            return deliveryDateType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_dateFrom(self):
        return self.dateFrom
    def set_dateFrom(self, dateFrom):
        self.dateFrom = dateFrom
    def get_dateUntil(self):
        return self.dateUntil
    def set_dateUntil(self, dateUntil):
        self.dateUntil = dateUntil
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.dateFrom is not None or
            self.dateUntil is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='deliveryDateType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('deliveryDateType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'deliveryDateType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='deliveryDateType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='deliveryDateType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='deliveryDateType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='deliveryDateType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.dateFrom is not None:
            namespaceprefix_ = self.dateFrom_nsprefix_ + ':' if (UseCapturedNS_ and self.dateFrom_nsprefix_) else ''
            self.dateFrom.export(outfile, level, namespaceprefix_, namespacedef_='', name_='dateFrom', pretty_print=pretty_print)
        if self.dateUntil is not None:
            namespaceprefix_ = self.dateUntil_nsprefix_ + ':' if (UseCapturedNS_ and self.dateUntil_nsprefix_) else ''
            self.dateUntil.export(outfile, level, namespaceprefix_, namespacedef_='', name_='dateUntil', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'dateFrom':
            obj_ = dateFromType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.dateFrom = obj_
            obj_.original_tagname_ = 'dateFrom'
        elif nodeName_ == 'dateUntil':
            obj_ = dateUntilType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.dateUntil = obj_
            obj_.original_tagname_ = 'dateUntil'
# end class deliveryDateType


class dateFromType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, specialValue=None, date=None, timeZone=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.specialValue = specialValue
        self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        self.specialValue_nsprefix_ = None
        if isinstance(date, BaseStrType_):
            initvalue_ = datetime_.datetime.strptime(date, '%Y-%m-%d').date()
        else:
            initvalue_ = date
        self.date = initvalue_
        self.date_nsprefix_ = None
        self.timeZone = timeZone
        self.timeZone_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, dateFromType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if dateFromType.subclass:
            return dateFromType.subclass(*args_, **kwargs_)
        else:
            return dateFromType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_specialValue(self):
        return self.specialValue
    def set_specialValue(self, specialValue):
        self.specialValue = specialValue
    def get_date(self):
        return self.date
    def set_date(self, date):
        self.date = date
    def get_timeZone(self):
        return self.timeZone
    def set_timeZone(self, timeZone):
        self.timeZone = timeZone
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self, value):
        result = True
        # Validate type com.cisag.pgm.bi.model.DateTimeSpecialValue, a restriction on xsd:string.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, str):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
                return False
            value = value
            enumerations = ['INVALID_TIME_STAMP', 'MAX_TIME_STAMP', 'MIN_TIME_STAMP', 'NONE', 'UNDEFINED_TIME_STAMP', '']
            if value not in enumerations:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on com.cisag.pgm.bi.model.DateTimeSpecialValue' % {"value" : encode_str_2_3(value), "lineno": lineno} )
                result = False
        return result
    def has__content(self):
        if (
            self.specialValue is not None or
            self.date is not None or
            self.timeZone is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateFromType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('dateFromType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'dateFromType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='dateFromType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='dateFromType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='dateFromType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateFromType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.specialValue is not None:
            namespaceprefix_ = self.specialValue_nsprefix_ + ':' if (UseCapturedNS_ and self.specialValue_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sspecialValue>%s</%sspecialValue>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.specialValue), input_name='specialValue')), namespaceprefix_ , eol_))
        if self.date is not None:
            namespaceprefix_ = self.date_nsprefix_ + ':' if (UseCapturedNS_ and self.date_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdate>%s</%sdate>%s' % (namespaceprefix_ , self.gds_format_date(self.date, input_name='date'), namespaceprefix_ , eol_))
        if self.timeZone is not None:
            namespaceprefix_ = self.timeZone_nsprefix_ + ':' if (UseCapturedNS_ and self.timeZone_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%stimeZone>%s</%stimeZone>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.timeZone), input_name='timeZone')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'specialValue':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'specialValue')
            value_ = self.gds_validate_string(value_, node, 'specialValue')
            self.specialValue = value_
            self.specialValue_nsprefix_ = child_.prefix
            # validate type com.cisag.pgm.bi.model.DateTimeSpecialValue
            self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        elif nodeName_ == 'date':
            sval_ = child_.text
            dval_ = self.gds_parse_date(sval_)
            self.date = dval_
            self.date_nsprefix_ = child_.prefix
        elif nodeName_ == 'timeZone':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'timeZone')
            value_ = self.gds_validate_string(value_, node, 'timeZone')
            self.timeZone = value_
            self.timeZone_nsprefix_ = child_.prefix
# end class dateFromType


class dateUntilType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, specialValue=None, date=None, timeZone=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.specialValue = specialValue
        self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        self.specialValue_nsprefix_ = None
        if isinstance(date, BaseStrType_):
            initvalue_ = datetime_.datetime.strptime(date, '%Y-%m-%d').date()
        else:
            initvalue_ = date
        self.date = initvalue_
        self.date_nsprefix_ = None
        self.timeZone = timeZone
        self.timeZone_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, dateUntilType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if dateUntilType.subclass:
            return dateUntilType.subclass(*args_, **kwargs_)
        else:
            return dateUntilType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_specialValue(self):
        return self.specialValue
    def set_specialValue(self, specialValue):
        self.specialValue = specialValue
    def get_date(self):
        return self.date
    def set_date(self, date):
        self.date = date
    def get_timeZone(self):
        return self.timeZone
    def set_timeZone(self, timeZone):
        self.timeZone = timeZone
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self, value):
        result = True
        # Validate type com.cisag.pgm.bi.model.DateTimeSpecialValue, a restriction on xsd:string.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, str):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
                return False
            value = value
            enumerations = ['INVALID_TIME_STAMP', 'MAX_TIME_STAMP', 'MIN_TIME_STAMP', 'NONE', 'UNDEFINED_TIME_STAMP', '']
            if value not in enumerations:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on com.cisag.pgm.bi.model.DateTimeSpecialValue' % {"value" : encode_str_2_3(value), "lineno": lineno} )
                result = False
        return result
    def has__content(self):
        if (
            self.specialValue is not None or
            self.date is not None or
            self.timeZone is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateUntilType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('dateUntilType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'dateUntilType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='dateUntilType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='dateUntilType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='dateUntilType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateUntilType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.specialValue is not None:
            namespaceprefix_ = self.specialValue_nsprefix_ + ':' if (UseCapturedNS_ and self.specialValue_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sspecialValue>%s</%sspecialValue>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.specialValue), input_name='specialValue')), namespaceprefix_ , eol_))
        if self.date is not None:
            namespaceprefix_ = self.date_nsprefix_ + ':' if (UseCapturedNS_ and self.date_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdate>%s</%sdate>%s' % (namespaceprefix_ , self.gds_format_date(self.date, input_name='date'), namespaceprefix_ , eol_))
        if self.timeZone is not None:
            namespaceprefix_ = self.timeZone_nsprefix_ + ':' if (UseCapturedNS_ and self.timeZone_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%stimeZone>%s</%stimeZone>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.timeZone), input_name='timeZone')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'specialValue':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'specialValue')
            value_ = self.gds_validate_string(value_, node, 'specialValue')
            self.specialValue = value_
            self.specialValue_nsprefix_ = child_.prefix
            # validate type com.cisag.pgm.bi.model.DateTimeSpecialValue
            self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        elif nodeName_ == 'date':
            sval_ = child_.text
            dval_ = self.gds_parse_date(sval_)
            self.date = dval_
            self.date_nsprefix_ = child_.prefix
        elif nodeName_ == 'timeZone':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'timeZone')
            value_ = self.gds_validate_string(value_, node, 'timeZone')
            self.timeZone = value_
            self.timeZone_nsprefix_ = child_.prefix
# end class dateUntilType


class Imp_ItemDeliveryDatesType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, deliveryDate=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.deliveryDate = deliveryDate
        self.deliveryDate_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_ItemDeliveryDatesType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_ItemDeliveryDatesType.subclass:
            return Imp_ItemDeliveryDatesType.subclass(*args_, **kwargs_)
        else:
            return Imp_ItemDeliveryDatesType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_deliveryDate(self):
        return self.deliveryDate
    def set_deliveryDate(self, deliveryDate):
        self.deliveryDate = deliveryDate
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.deliveryDate is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemDeliveryDatesType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_ItemDeliveryDatesType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_ItemDeliveryDatesType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_ItemDeliveryDatesType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_ItemDeliveryDatesType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_ItemDeliveryDatesType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemDeliveryDatesType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.deliveryDate is not None:
            namespaceprefix_ = self.deliveryDate_nsprefix_ + ':' if (UseCapturedNS_ and self.deliveryDate_nsprefix_) else ''
            self.deliveryDate.export(outfile, level, namespaceprefix_, namespacedef_='', name_='deliveryDate', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'deliveryDate':
            obj_ = deliveryDateType9.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.deliveryDate = obj_
            obj_.original_tagname_ = 'deliveryDate'
# end class Imp_ItemDeliveryDatesType


class deliveryDateType9(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, dateFrom=None, dateUntil=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.dateFrom = dateFrom
        self.dateFrom_nsprefix_ = None
        self.dateUntil = dateUntil
        self.dateUntil_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, deliveryDateType9)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if deliveryDateType9.subclass:
            return deliveryDateType9.subclass(*args_, **kwargs_)
        else:
            return deliveryDateType9(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_dateFrom(self):
        return self.dateFrom
    def set_dateFrom(self, dateFrom):
        self.dateFrom = dateFrom
    def get_dateUntil(self):
        return self.dateUntil
    def set_dateUntil(self, dateUntil):
        self.dateUntil = dateUntil
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.dateFrom is not None or
            self.dateUntil is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='deliveryDateType9', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('deliveryDateType9')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'deliveryDateType9':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='deliveryDateType9')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='deliveryDateType9', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='deliveryDateType9'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='deliveryDateType9', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.dateFrom is not None:
            namespaceprefix_ = self.dateFrom_nsprefix_ + ':' if (UseCapturedNS_ and self.dateFrom_nsprefix_) else ''
            self.dateFrom.export(outfile, level, namespaceprefix_, namespacedef_='', name_='dateFrom', pretty_print=pretty_print)
        if self.dateUntil is not None:
            namespaceprefix_ = self.dateUntil_nsprefix_ + ':' if (UseCapturedNS_ and self.dateUntil_nsprefix_) else ''
            self.dateUntil.export(outfile, level, namespaceprefix_, namespacedef_='', name_='dateUntil', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'dateFrom':
            obj_ = dateFromType10.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.dateFrom = obj_
            obj_.original_tagname_ = 'dateFrom'
        elif nodeName_ == 'dateUntil':
            obj_ = dateUntilType11.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.dateUntil = obj_
            obj_.original_tagname_ = 'dateUntil'
# end class deliveryDateType9


class dateFromType10(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, specialValue=None, date=None, timeZone=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.specialValue = specialValue
        self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        self.specialValue_nsprefix_ = None
        if isinstance(date, BaseStrType_):
            initvalue_ = datetime_.datetime.strptime(date, '%Y-%m-%d').date()
        else:
            initvalue_ = date
        self.date = initvalue_
        self.date_nsprefix_ = None
        self.timeZone = timeZone
        self.timeZone_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, dateFromType10)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if dateFromType10.subclass:
            return dateFromType10.subclass(*args_, **kwargs_)
        else:
            return dateFromType10(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_specialValue(self):
        return self.specialValue
    def set_specialValue(self, specialValue):
        self.specialValue = specialValue
    def get_date(self):
        return self.date
    def set_date(self, date):
        self.date = date
    def get_timeZone(self):
        return self.timeZone
    def set_timeZone(self, timeZone):
        self.timeZone = timeZone
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self, value):
        result = True
        # Validate type com.cisag.pgm.bi.model.DateTimeSpecialValue, a restriction on xsd:string.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, str):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
                return False
            value = value
            enumerations = ['INVALID_TIME_STAMP', 'MAX_TIME_STAMP', 'MIN_TIME_STAMP', 'NONE', 'UNDEFINED_TIME_STAMP', '']
            if value not in enumerations:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on com.cisag.pgm.bi.model.DateTimeSpecialValue' % {"value" : encode_str_2_3(value), "lineno": lineno} )
                result = False
        return result
    def has__content(self):
        if (
            self.specialValue is not None or
            self.date is not None or
            self.timeZone is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateFromType10', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('dateFromType10')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'dateFromType10':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='dateFromType10')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='dateFromType10', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='dateFromType10'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateFromType10', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.specialValue is not None:
            namespaceprefix_ = self.specialValue_nsprefix_ + ':' if (UseCapturedNS_ and self.specialValue_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sspecialValue>%s</%sspecialValue>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.specialValue), input_name='specialValue')), namespaceprefix_ , eol_))
        if self.date is not None:
            namespaceprefix_ = self.date_nsprefix_ + ':' if (UseCapturedNS_ and self.date_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdate>%s</%sdate>%s' % (namespaceprefix_ , self.gds_format_date(self.date, input_name='date'), namespaceprefix_ , eol_))
        if self.timeZone is not None:
            namespaceprefix_ = self.timeZone_nsprefix_ + ':' if (UseCapturedNS_ and self.timeZone_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%stimeZone>%s</%stimeZone>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.timeZone), input_name='timeZone')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'specialValue':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'specialValue')
            value_ = self.gds_validate_string(value_, node, 'specialValue')
            self.specialValue = value_
            self.specialValue_nsprefix_ = child_.prefix
            # validate type com.cisag.pgm.bi.model.DateTimeSpecialValue
            self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        elif nodeName_ == 'date':
            sval_ = child_.text
            dval_ = self.gds_parse_date(sval_)
            self.date = dval_
            self.date_nsprefix_ = child_.prefix
        elif nodeName_ == 'timeZone':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'timeZone')
            value_ = self.gds_validate_string(value_, node, 'timeZone')
            self.timeZone = value_
            self.timeZone_nsprefix_ = child_.prefix
# end class dateFromType10


class dateUntilType11(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, specialValue=None, date=None, timeZone=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.specialValue = specialValue
        self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        self.specialValue_nsprefix_ = None
        if isinstance(date, BaseStrType_):
            initvalue_ = datetime_.datetime.strptime(date, '%Y-%m-%d').date()
        else:
            initvalue_ = date
        self.date = initvalue_
        self.date_nsprefix_ = None
        self.timeZone = timeZone
        self.timeZone_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, dateUntilType11)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if dateUntilType11.subclass:
            return dateUntilType11.subclass(*args_, **kwargs_)
        else:
            return dateUntilType11(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_specialValue(self):
        return self.specialValue
    def set_specialValue(self, specialValue):
        self.specialValue = specialValue
    def get_date(self):
        return self.date
    def set_date(self, date):
        self.date = date
    def get_timeZone(self):
        return self.timeZone
    def set_timeZone(self, timeZone):
        self.timeZone = timeZone
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self, value):
        result = True
        # Validate type com.cisag.pgm.bi.model.DateTimeSpecialValue, a restriction on xsd:string.
        if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
            if not isinstance(value, str):
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
                return False
            value = value
            enumerations = ['INVALID_TIME_STAMP', 'MAX_TIME_STAMP', 'MIN_TIME_STAMP', 'NONE', 'UNDEFINED_TIME_STAMP', '']
            if value not in enumerations:
                lineno = self.gds_get_node_lineno_()
                self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on com.cisag.pgm.bi.model.DateTimeSpecialValue' % {"value" : encode_str_2_3(value), "lineno": lineno} )
                result = False
        return result
    def has__content(self):
        if (
            self.specialValue is not None or
            self.date is not None or
            self.timeZone is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateUntilType11', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('dateUntilType11')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'dateUntilType11':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='dateUntilType11')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='dateUntilType11', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='dateUntilType11'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='dateUntilType11', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.specialValue is not None:
            namespaceprefix_ = self.specialValue_nsprefix_ + ':' if (UseCapturedNS_ and self.specialValue_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sspecialValue>%s</%sspecialValue>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.specialValue), input_name='specialValue')), namespaceprefix_ , eol_))
        if self.date is not None:
            namespaceprefix_ = self.date_nsprefix_ + ':' if (UseCapturedNS_ and self.date_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdate>%s</%sdate>%s' % (namespaceprefix_ , self.gds_format_date(self.date, input_name='date'), namespaceprefix_ , eol_))
        if self.timeZone is not None:
            namespaceprefix_ = self.timeZone_nsprefix_ + ':' if (UseCapturedNS_ and self.timeZone_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%stimeZone>%s</%stimeZone>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.timeZone), input_name='timeZone')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'specialValue':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'specialValue')
            value_ = self.gds_validate_string(value_, node, 'specialValue')
            self.specialValue = value_
            self.specialValue_nsprefix_ = child_.prefix
            # validate type com.cisag.pgm.bi.model.DateTimeSpecialValue
            self.validate_com_cisag_pgm_bi_model_DateTimeSpecialValue(self.specialValue)
        elif nodeName_ == 'date':
            sval_ = child_.text
            dval_ = self.gds_parse_date(sval_)
            self.date = dval_
            self.date_nsprefix_ = child_.prefix
        elif nodeName_ == 'timeZone':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'timeZone')
            value_ = self.gds_validate_string(value_, node, 'timeZone')
            self.timeZone = value_
            self.timeZone_nsprefix_ = child_.prefix
# end class dateUntilType11


class Imp_ItemColorImagesType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, uri=None, itemImage=None, description=None, Color=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.uri = uri
        self.uri_nsprefix_ = None
        self.itemImage = itemImage
        self.itemImage_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
        self.Color = Color
        self.Color_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_ItemColorImagesType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_ItemColorImagesType.subclass:
            return Imp_ItemColorImagesType.subclass(*args_, **kwargs_)
        else:
            return Imp_ItemColorImagesType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_uri(self):
        return self.uri
    def set_uri(self, uri):
        self.uri = uri
    def get_itemImage(self):
        return self.itemImage
    def set_itemImage(self, itemImage):
        self.itemImage = itemImage
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_Color(self):
        return self.Color
    def set_Color(self, Color):
        self.Color = Color
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.uri is not None or
            self.itemImage is not None or
            self.description is not None or
            self.Color is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemColorImagesType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_ItemColorImagesType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_ItemColorImagesType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_ItemColorImagesType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_ItemColorImagesType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_ItemColorImagesType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemColorImagesType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.uri is not None:
            namespaceprefix_ = self.uri_nsprefix_ + ':' if (UseCapturedNS_ and self.uri_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%suri>%s</%suri>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.uri), input_name='uri')), namespaceprefix_ , eol_))
        if self.itemImage is not None:
            namespaceprefix_ = self.itemImage_nsprefix_ + ':' if (UseCapturedNS_ and self.itemImage_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sitemImage>%s</%sitemImage>%s' % (namespaceprefix_ , self.gds_format_boolean(self.itemImage, input_name='itemImage'), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
        if self.Color is not None:
            namespaceprefix_ = self.Color_nsprefix_ + ':' if (UseCapturedNS_ and self.Color_nsprefix_) else ''
            self.Color.export(outfile, level, namespaceprefix_, namespacedef_='', name_='Color', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'uri':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'uri')
            value_ = self.gds_validate_string(value_, node, 'uri')
            self.uri = value_
            self.uri_nsprefix_ = child_.prefix
        elif nodeName_ == 'itemImage':
            sval_ = child_.text
            ival_ = self.gds_parse_boolean(sval_, node, 'itemImage')
            ival_ = self.gds_validate_boolean(ival_, node, 'itemImage')
            self.itemImage = ival_
            self.itemImage_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
        elif nodeName_ == 'Color':
            obj_ = ColorType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.Color = obj_
            obj_.original_tagname_ = 'Color'
# end class Imp_ItemColorImagesType


class ColorType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ColorType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ColorType.subclass:
            return ColorType.subclass(*args_, **kwargs_)
        else:
            return ColorType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ColorType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ColorType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ColorType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ColorType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ColorType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ColorType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ColorType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
# end class ColorType


class Imp_ItemProductLinesType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, ProductLine=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.ProductLine = ProductLine
        self.ProductLine_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, Imp_ItemProductLinesType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if Imp_ItemProductLinesType.subclass:
            return Imp_ItemProductLinesType.subclass(*args_, **kwargs_)
        else:
            return Imp_ItemProductLinesType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_ProductLine(self):
        return self.ProductLine
    def set_ProductLine(self, ProductLine):
        self.ProductLine = ProductLine
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.ProductLine is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemProductLinesType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('Imp_ItemProductLinesType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'Imp_ItemProductLinesType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='Imp_ItemProductLinesType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='Imp_ItemProductLinesType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='Imp_ItemProductLinesType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='Imp_ItemProductLinesType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.ProductLine is not None:
            namespaceprefix_ = self.ProductLine_nsprefix_ + ':' if (UseCapturedNS_ and self.ProductLine_nsprefix_) else ''
            self.ProductLine.export(outfile, level, namespaceprefix_, namespacedef_='', name_='ProductLine', pretty_print=pretty_print)
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'ProductLine':
            obj_ = ProductLineType.factory(parent_object_=self)
            obj_.build(child_, gds_collector_=gds_collector_)
            self.ProductLine = obj_
            obj_.original_tagname_ = 'ProductLine'
# end class Imp_ItemProductLinesType


class ProductLineType(GeneratedsSuper):
    __hash__ = GeneratedsSuper.__hash__
    subclass = None
    superclass = None
    def __init__(self, mark=None, mode=None, invalid=None, code=None, description=None, gds_collector_=None, **kwargs_):
        self.gds_collector_ = gds_collector_
        self.gds_elementtree_node_ = None
        self.original_tagname_ = None
        self.parent_object_ = kwargs_.get('parent_object_')
        self.ns_prefix_ = None
        self.mark = _cast(None, mark)
        self.mark_nsprefix_ = None
        self.mode = _cast(None, mode)
        self.mode_nsprefix_ = None
        self.invalid = _cast(bool, invalid)
        self.invalid_nsprefix_ = None
        self.code = code
        self.code_nsprefix_ = None
        self.description = description
        self.description_nsprefix_ = None
    def factory(*args_, **kwargs_):
        if CurrentSubclassModule_ is not None:
            subclass = getSubclassFromModule_(
                CurrentSubclassModule_, ProductLineType)
            if subclass is not None:
                return subclass(*args_, **kwargs_)
        if ProductLineType.subclass:
            return ProductLineType.subclass(*args_, **kwargs_)
        else:
            return ProductLineType(*args_, **kwargs_)
    factory = staticmethod(factory)
    def get_ns_prefix_(self):
        return self.ns_prefix_
    def set_ns_prefix_(self, ns_prefix):
        self.ns_prefix_ = ns_prefix
    def get_code(self):
        return self.code
    def set_code(self, code):
        self.code = code
    def get_description(self):
        return self.description
    def set_description(self, description):
        self.description = description
    def get_mark(self):
        return self.mark
    def set_mark(self, mark):
        self.mark = mark
    def get_mode(self):
        return self.mode
    def set_mode(self, mode):
        self.mode = mode
    def get_invalid(self):
        return self.invalid
    def set_invalid(self, invalid):
        self.invalid = invalid
    def has__content(self):
        if (
            self.code is not None or
            self.description is not None
        ):
            return True
        else:
            return False
    def export(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ProductLineType', pretty_print=True):
        imported_ns_def_ = GenerateDSNamespaceDefs_.get('ProductLineType')
        if imported_ns_def_ is not None:
            namespacedef_ = imported_ns_def_
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.original_tagname_ is not None and name_ == 'ProductLineType':
            name_ = self.original_tagname_
        if UseCapturedNS_ and self.ns_prefix_:
            namespaceprefix_ = self.ns_prefix_ + ':'
        showIndent(outfile, level, pretty_print)
        outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
        already_processed = set()
        self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ProductLineType')
        if self.has__content():
            outfile.write('>%s' % (eol_, ))
            self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ProductLineType', pretty_print=pretty_print)
            showIndent(outfile, level, pretty_print)
            outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
        else:
            outfile.write('/>%s' % (eol_, ))
    def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ProductLineType'):
        if self.mark is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            outfile.write(' mark=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mark), input_name='mark')), ))
        if self.mode is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            outfile.write(' mode=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.mode), input_name='mode')), ))
        if self.invalid is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            outfile.write(' invalid="%s"' % self.gds_format_boolean(self.invalid, input_name='invalid'))
    def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_=' xmlns:None="com.cisag.app.general.obj.Item" ', name_='ProductLineType', fromsubclass_=False, pretty_print=True):
        if pretty_print:
            eol_ = '\n'
        else:
            eol_ = ''
        if self.code is not None:
            namespaceprefix_ = self.code_nsprefix_ + ':' if (UseCapturedNS_ and self.code_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%scode>%s</%scode>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.code), input_name='code')), namespaceprefix_ , eol_))
        if self.description is not None:
            namespaceprefix_ = self.description_nsprefix_ + ':' if (UseCapturedNS_ and self.description_nsprefix_) else ''
            showIndent(outfile, level, pretty_print)
            outfile.write('<%sdescription>%s</%sdescription>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.description), input_name='description')), namespaceprefix_ , eol_))
    def build(self, node, gds_collector_=None):
        self.gds_collector_ = gds_collector_
        if SaveElementTreeNode:
            self.gds_elementtree_node_ = node
        already_processed = set()
        self.ns_prefix_ = node.prefix
        self._buildAttributes(node, node.attrib, already_processed)
        for child in node:
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
            self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
        return self
    def _buildAttributes(self, node, attrs, already_processed):
        value = find_attr_value_('mark', node)
        if value is not None and 'mark' not in already_processed:
            already_processed.add('mark')
            self.mark = value
        value = find_attr_value_('mode', node)
        if value is not None and 'mode' not in already_processed:
            already_processed.add('mode')
            self.mode = value
        value = find_attr_value_('invalid', node)
        if value is not None and 'invalid' not in already_processed:
            already_processed.add('invalid')
            if value in ('true', '1'):
                self.invalid = True
            elif value in ('false', '0'):
                self.invalid = False
            else:
                raise_parse_error(node, 'Bad boolean attribute')
    def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
        if nodeName_ == 'code':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'code')
            value_ = self.gds_validate_string(value_, node, 'code')
            self.code = value_
            self.code_nsprefix_ = child_.prefix
        elif nodeName_ == 'description':
            value_ = child_.text
            value_ = self.gds_parse_string(value_, node, 'description')
            value_ = self.gds_validate_string(value_, node, 'description')
            self.description = value_
            self.description_nsprefix_ = child_.prefix
# end class ProductLineType


#
# End data representation classes.
#


GDSClassesMapping = {
}


USAGE_TEXT = """
Usage: python <Parser>.py [ -s ] <in_xml_file>
"""


def usage():
    print(USAGE_TEXT)
    sys.exit(1)


def get_root_tag(node):
    tag = Tag_pattern_.match(node.tag).groups()[-1]
    prefix_tag = TagNamePrefix + tag
    rootClass = GDSClassesMapping.get(prefix_tag)
    if rootClass is None:
        rootClass = globals().get(prefix_tag)
    return tag, rootClass


def get_required_ns_prefix_defs(rootNode):
    '''Get all name space prefix definitions required in this XML doc.
    Return a dictionary of definitions and a char string of definitions.
    '''
    nsmap = {
        prefix: uri
        for node in rootNode.iter()
        for (prefix, uri) in node.nsmap.items()
        if prefix is not None
    }
    namespacedefs = ' '.join([
        'xmlns:{}="{}"'.format(prefix, uri)
        for prefix, uri in nsmap.items()
    ])
    return nsmap, namespacedefs


def parse(inFileName, silence=False, print_warnings=True):
    global CapturedNsmap_
    gds_collector = GdsCollector_()
    parser = None
    doc = parsexml_(inFileName, parser)
    rootNode = doc.getroot()
    rootTag, rootClass = get_root_tag(rootNode)
    if rootClass is None:
        rootTag = 'semiramis'
        rootClass = semiramis
    rootObj = rootClass.factory()
    rootObj.build(rootNode, gds_collector_=gds_collector)
    CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
    if not SaveElementTreeNode:
        doc = None
        rootNode = None
    if not silence:
        sys.stdout.write('<?xml version="1.0" ?>\n')
        rootObj.export(
            sys.stdout, 0, name_=rootTag,
            namespacedef_=namespacedefs,
            pretty_print=True)
    if print_warnings and len(gds_collector.get_messages()) > 0:
        separator = ('-' * 50) + '\n'
        sys.stderr.write(separator)
        sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
            len(gds_collector.get_messages()), ))
        gds_collector.write_messages(sys.stderr)
        sys.stderr.write(separator)
    return rootObj


def parseEtree(inFileName, silence=False, print_warnings=True,
               mapping=None, reverse_mapping=None, nsmap=None):
    parser = None
    doc = parsexml_(inFileName, parser)
    gds_collector = GdsCollector_()
    rootNode = doc.getroot()
    rootTag, rootClass = get_root_tag(rootNode)
    if rootClass is None:
        rootTag = 'semiramis'
        rootClass = semiramis
    rootObj = rootClass.factory()
    rootObj.build(rootNode, gds_collector_=gds_collector)
    if mapping is None:
        mapping = {}
    if reverse_mapping is None:
        reverse_mapping = {}
    rootElement = rootObj.to_etree(
        None, name_=rootTag, mapping_=mapping,
        reverse_mapping_=reverse_mapping, nsmap_=nsmap)
    reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
    # Enable Python to collect the space used by the DOM.
    if not SaveElementTreeNode:
        doc = None
        rootNode = None
    if not silence:
        content = etree_.tostring(
            rootElement, pretty_print=True,
            xml_declaration=True, encoding="utf-8")
        sys.stdout.write(str(content))
        sys.stdout.write('\n')
    if print_warnings and len(gds_collector.get_messages()) > 0:
        separator = ('-' * 50) + '\n'
        sys.stderr.write(separator)
        sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
            len(gds_collector.get_messages()), ))
        gds_collector.write_messages(sys.stderr)
        sys.stderr.write(separator)
    return rootObj, rootElement, mapping, reverse_node_mapping


def parseString(inString, silence=False, print_warnings=True):
    '''Parse a string, create the object tree, and export it.

    Arguments:
    - inString -- A string.  This XML fragment should not start
      with an XML declaration containing an encoding.
    - silence -- A boolean.  If False, export the object.
    Returns -- The root object in the tree.
    '''
    parser = None
    rootNode= parsexmlstring_(inString, parser)
    gds_collector = GdsCollector_()
    rootTag, rootClass = get_root_tag(rootNode)
    if rootClass is None:
        rootTag = 'semiramis'
        rootClass = semiramis
    rootObj = rootClass.factory()
    rootObj.build(rootNode, gds_collector_=gds_collector)
    if not SaveElementTreeNode:
        rootNode = None
    if not silence:
        sys.stdout.write('<?xml version="1.0" ?>\n')
        rootObj.export(
            sys.stdout, 0, name_=rootTag,
            namespacedef_='')
    if print_warnings and len(gds_collector.get_messages()) > 0:
        separator = ('-' * 50) + '\n'
        sys.stderr.write(separator)
        sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
            len(gds_collector.get_messages()), ))
        gds_collector.write_messages(sys.stderr)
        sys.stderr.write(separator)
    return rootObj


def parseLiteral(inFileName, silence=False, print_warnings=True):
    parser = None
    doc = parsexml_(inFileName, parser)
    gds_collector = GdsCollector_()
    rootNode = doc.getroot()
    rootTag, rootClass = get_root_tag(rootNode)
    if rootClass is None:
        rootTag = 'semiramis'
        rootClass = semiramis
    rootObj = rootClass.factory()
    rootObj.build(rootNode, gds_collector_=gds_collector)
    # Enable Python to collect the space used by the DOM.
    if not SaveElementTreeNode:
        doc = None
        rootNode = None
    if not silence:
        sys.stdout.write('#from article_pt_lib import *\n\n')
        sys.stdout.write('import article_pt_lib as model_\n\n')
        sys.stdout.write('rootObj = model_.rootClass(\n')
        rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
        sys.stdout.write(')\n')
    if print_warnings and len(gds_collector.get_messages()) > 0:
        separator = ('-' * 50) + '\n'
        sys.stderr.write(separator)
        sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
            len(gds_collector.get_messages()), ))
        gds_collector.write_messages(sys.stderr)
        sys.stderr.write(separator)
    return rootObj


def main():
    args = sys.argv[1:]
    if len(args) == 1:
        parse(args[0])
    else:
        usage()


if __name__ == '__main__':
    #import pdb; pdb.set_trace()
    main()

RenameMappings_ = {
}

#
# Mapping of namespaces to types defined in them
# and the file in which each is defined.
# simpleTypes are marked "ST" and complexTypes "CT".
NamespaceToDefMappings_ = {'com.cisag.app.general.obj.Item': [('com.cisag.pgm.bi.model.DateTimeSpecialValue',
                                     'definitions/ARTICLE_PT.xsd',
                                     'ST'),
                                    ('java.lang.Byte',
                                     'definitions/ARTICLE_PT.xsd',
                                     'ST'),
                                    ('java.lang.Short',
                                     'definitions/ARTICLE_PT.xsd',
                                     'ST'),
                                    ('java.lang.Integer',
                                     'definitions/ARTICLE_PT.xsd',
                                     'ST'),
                                    ('java.lang.Long',
                                     'definitions/ARTICLE_PT.xsd',
                                     'ST'),
                                    ('java.lang.Character',
                                     'definitions/ARTICLE_PT.xsd',
                                     'ST')]}

__all__ = [
    "AlternativeItemsType",
    "ColorType",
    "DefaultStorageUnitType",
    "DefaultVariantItemType",
    "DefaultVariantItemType3",
    "EANsType",
    "Imp_CareReference1Type",
    "Imp_CareReference2Type",
    "Imp_CareReference3Type",
    "Imp_CareReference4Type",
    "Imp_CareReference5Type",
    "Imp_CareReference6Type",
    "Imp_CareReferenceGroupType",
    "Imp_CollectionType",
    "Imp_CollectionType1",
    "Imp_ColorType",
    "Imp_ItemColorImagesType",
    "Imp_ItemDeliveryDatesType",
    "Imp_ItemGroupType",
    "Imp_ItemProductLinesType",
    "Imp_ItemThemeGroupType",
    "Imp_KindOfFabricType",
    "Imp_MaterialComposition1Type",
    "Imp_MaterialComposition2Type",
    "Imp_MaterialComposition3Type",
    "Imp_PackagingTypeType",
    "Imp_SalesItemDeliveryDatesType",
    "Imp_SizeRegisterType",
    "Imp_SizeType",
    "InventoryItemsType",
    "ItemPackagingUomsType",
    "ItemPackagingUomsType7",
    "ItemStorageDataType",
    "ItemType",
    "OrganizationalUnitItemsType",
    "OriginalItemType",
    "ProductLineType",
    "ReferenceItemType",
    "ReferenceItemType5",
    "SalesItemsType",
    "SizeHierarchyType",
    "SizeRegisterType",
    "StorageUnitType",
    "SubstituteType",
    "TextsType",
    "UomsType",
    "dateFromType",
    "dateFromType10",
    "dateUntilType",
    "dateUntilType11",
    "defaultStorageAreaType",
    "deliveryDateType",
    "deliveryDateType9",
    "eansType",
    "eansType2",
    "eansType4",
    "eansType6",
    "eansType8",
    "semiramis"
]
