karrio-canadapost 2025.5rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. karrio/mappers/canadapost/__init__.py +3 -0
  2. karrio/mappers/canadapost/mapper.py +88 -0
  3. karrio/mappers/canadapost/proxy.py +373 -0
  4. karrio/mappers/canadapost/settings.py +23 -0
  5. karrio/plugins/canadapost/__init__.py +23 -0
  6. karrio/providers/canadapost/__init__.py +25 -0
  7. karrio/providers/canadapost/error.py +42 -0
  8. karrio/providers/canadapost/manifest.py +127 -0
  9. karrio/providers/canadapost/pickup/__init__.py +3 -0
  10. karrio/providers/canadapost/pickup/cancel.py +33 -0
  11. karrio/providers/canadapost/pickup/create.py +217 -0
  12. karrio/providers/canadapost/pickup/update.py +55 -0
  13. karrio/providers/canadapost/rate.py +192 -0
  14. karrio/providers/canadapost/shipment/__init__.py +8 -0
  15. karrio/providers/canadapost/shipment/cancel.py +53 -0
  16. karrio/providers/canadapost/shipment/create.py +308 -0
  17. karrio/providers/canadapost/tracking.py +75 -0
  18. karrio/providers/canadapost/units.py +285 -0
  19. karrio/providers/canadapost/utils.py +92 -0
  20. karrio/schemas/canadapost/__init__.py +0 -0
  21. karrio/schemas/canadapost/authreturn.py +3389 -0
  22. karrio/schemas/canadapost/common.py +2037 -0
  23. karrio/schemas/canadapost/customerinfo.py +2307 -0
  24. karrio/schemas/canadapost/discovery.py +3016 -0
  25. karrio/schemas/canadapost/manifest.py +3704 -0
  26. karrio/schemas/canadapost/merchantregistration.py +1498 -0
  27. karrio/schemas/canadapost/messages.py +1431 -0
  28. karrio/schemas/canadapost/ncshipment.py +7231 -0
  29. karrio/schemas/canadapost/openreturn.py +2438 -0
  30. karrio/schemas/canadapost/pickup.py +1407 -0
  31. karrio/schemas/canadapost/pickuprequest.py +6794 -0
  32. karrio/schemas/canadapost/postoffice.py +2240 -0
  33. karrio/schemas/canadapost/rating.py +5308 -0
  34. karrio/schemas/canadapost/serviceinfo.py +1505 -0
  35. karrio/schemas/canadapost/shipment.py +9982 -0
  36. karrio/schemas/canadapost/track.py +3100 -0
  37. karrio_canadapost-2025.5rc1.dist-info/METADATA +44 -0
  38. karrio_canadapost-2025.5rc1.dist-info/RECORD +41 -0
  39. karrio_canadapost-2025.5rc1.dist-info/WHEEL +5 -0
  40. karrio_canadapost-2025.5rc1.dist-info/entry_points.txt +2 -0
  41. karrio_canadapost-2025.5rc1.dist-info/top_level.txt +3 -0
@@ -0,0 +1,2438 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #
5
+ # Generated Sat Mar 16 02:19:31 2024 by generateDS.py version 2.43.3.
6
+ # Python 3.12.2 (main, Feb 28 2024, 21:12:07) [GCC 11.4.0]
7
+ #
8
+ # Command line options:
9
+ # ('--no-namespace-defs', '')
10
+ # ('-o', './karrio/schemas/canadapost/openreturn.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./schemas/openreturn.xsd
14
+ #
15
+ # Command line:
16
+ # /home/kserver/Workspace/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio/schemas/canadapost/openreturn.py" ./schemas/openreturn.xsd
17
+ #
18
+ # Current working directory (os.getcwd()):
19
+ # canadapost
20
+ #
21
+
22
+ import sys
23
+ try:
24
+ ModulenotfoundExp_ = ModuleNotFoundError
25
+ except NameError:
26
+ ModulenotfoundExp_ = ImportError
27
+ from six.moves import zip_longest
28
+ import os
29
+ import re as re_
30
+ import base64
31
+ import datetime as datetime_
32
+ import decimal as decimal_
33
+ from lxml import etree as etree_
34
+
35
+
36
+ Validate_simpletypes_ = True
37
+ SaveElementTreeNode = True
38
+ TagNamePrefix = ""
39
+ if sys.version_info.major == 2:
40
+ BaseStrType_ = basestring
41
+ else:
42
+ BaseStrType_ = str
43
+
44
+
45
+ def parsexml_(infile, parser=None, **kwargs):
46
+ if parser is None:
47
+ # Use the lxml ElementTree compatible parser so that, e.g.,
48
+ # we ignore comments.
49
+ try:
50
+ parser = etree_.ETCompatXMLParser()
51
+ except AttributeError:
52
+ # fallback to xml.etree
53
+ parser = etree_.XMLParser()
54
+ try:
55
+ if isinstance(infile, os.PathLike):
56
+ infile = os.path.join(infile)
57
+ except AttributeError:
58
+ pass
59
+ doc = etree_.parse(infile, parser=parser, **kwargs)
60
+ return doc
61
+
62
+ def parsexmlstring_(instring, parser=None, **kwargs):
63
+ if parser is None:
64
+ # Use the lxml ElementTree compatible parser so that, e.g.,
65
+ # we ignore comments.
66
+ try:
67
+ parser = etree_.ETCompatXMLParser()
68
+ except AttributeError:
69
+ # fallback to xml.etree
70
+ parser = etree_.XMLParser()
71
+ element = etree_.fromstring(instring, parser=parser, **kwargs)
72
+ return element
73
+
74
+ #
75
+ # Namespace prefix definition table (and other attributes, too)
76
+ #
77
+ # The module generatedsnamespaces, if it is importable, must contain
78
+ # a dictionary named GeneratedsNamespaceDefs. This Python dictionary
79
+ # should map element type names (strings) to XML schema namespace prefix
80
+ # definitions. The export method for any class for which there is
81
+ # a namespace prefix definition, will export that definition in the
82
+ # XML representation of that element. See the export method of
83
+ # any generated element type class for an example of the use of this
84
+ # table.
85
+ # A sample table is:
86
+ #
87
+ # # File: generatedsnamespaces.py
88
+ #
89
+ # GenerateDSNamespaceDefs = {
90
+ # "ElementtypeA": "http://www.xxx.com/namespaceA",
91
+ # "ElementtypeB": "http://www.xxx.com/namespaceB",
92
+ # }
93
+ #
94
+ # Additionally, the generatedsnamespaces module can contain a python
95
+ # dictionary named GenerateDSNamespaceTypePrefixes that associates element
96
+ # types with the namespace prefixes that are to be added to the
97
+ # "xsi:type" attribute value. See the _exportAttributes method of
98
+ # any generated element type and the generation of "xsi:type" for an
99
+ # example of the use of this table.
100
+ # An example table:
101
+ #
102
+ # # File: generatedsnamespaces.py
103
+ #
104
+ # GenerateDSNamespaceTypePrefixes = {
105
+ # "ElementtypeC": "aaa:",
106
+ # "ElementtypeD": "bbb:",
107
+ # }
108
+ #
109
+
110
+ try:
111
+ from generatedsnamespaces import GenerateDSNamespaceDefs as GenerateDSNamespaceDefs_
112
+ except ModulenotfoundExp_ :
113
+ GenerateDSNamespaceDefs_ = {}
114
+ try:
115
+ from generatedsnamespaces import GenerateDSNamespaceTypePrefixes as GenerateDSNamespaceTypePrefixes_
116
+ except ModulenotfoundExp_ :
117
+ GenerateDSNamespaceTypePrefixes_ = {}
118
+
119
+ #
120
+ # You can replace the following class definition by defining an
121
+ # importable module named "generatedscollector" containing a class
122
+ # named "GdsCollector". See the default class definition below for
123
+ # clues about the possible content of that class.
124
+ #
125
+ try:
126
+ from generatedscollector import GdsCollector as GdsCollector_
127
+ except ModulenotfoundExp_ :
128
+
129
+ class GdsCollector_(object):
130
+
131
+ def __init__(self, messages=None):
132
+ if messages is None:
133
+ self.messages = []
134
+ else:
135
+ self.messages = messages
136
+
137
+ def add_message(self, msg):
138
+ self.messages.append(msg)
139
+
140
+ def get_messages(self):
141
+ return self.messages
142
+
143
+ def clear_messages(self):
144
+ self.messages = []
145
+
146
+ def print_messages(self):
147
+ for msg in self.messages:
148
+ print("Warning: {}".format(msg))
149
+
150
+ def write_messages(self, outstream):
151
+ for msg in self.messages:
152
+ outstream.write("Warning: {}\n".format(msg))
153
+
154
+
155
+ #
156
+ # The super-class for enum types
157
+ #
158
+
159
+ try:
160
+ from enum import Enum
161
+ except ModulenotfoundExp_ :
162
+ Enum = object
163
+
164
+ #
165
+ # The root super-class for element type classes
166
+ #
167
+ # Calls to the methods in these classes are generated by generateDS.py.
168
+ # You can replace these methods by re-implementing the following class
169
+ # in a module named generatedssuper.py.
170
+
171
+ try:
172
+ from generatedssuper import GeneratedsSuper
173
+ except ModulenotfoundExp_ as exp:
174
+ try:
175
+ from generatedssupersuper import GeneratedsSuperSuper
176
+ except ModulenotfoundExp_ as exp:
177
+ class GeneratedsSuperSuper(object):
178
+ pass
179
+
180
+ class GeneratedsSuper(GeneratedsSuperSuper):
181
+ __hash__ = object.__hash__
182
+ tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
183
+ class _FixedOffsetTZ(datetime_.tzinfo):
184
+ def __init__(self, offset, name):
185
+ self.__offset = datetime_.timedelta(minutes=offset)
186
+ self.__name = name
187
+ def utcoffset(self, dt):
188
+ return self.__offset
189
+ def tzname(self, dt):
190
+ return self.__name
191
+ def dst(self, dt):
192
+ return None
193
+ def __str__(self):
194
+ settings = {
195
+ 'str_pretty_print': True,
196
+ 'str_indent_level': 0,
197
+ 'str_namespaceprefix': '',
198
+ 'str_name': self.__class__.__name__,
199
+ 'str_namespacedefs': '',
200
+ }
201
+ for n in settings:
202
+ if hasattr(self, n):
203
+ settings[n] = getattr(self, n)
204
+ if sys.version_info.major == 2:
205
+ from StringIO import StringIO
206
+ else:
207
+ from io import StringIO
208
+ output = StringIO()
209
+ self.export(
210
+ output,
211
+ settings['str_indent_level'],
212
+ pretty_print=settings['str_pretty_print'],
213
+ namespaceprefix_=settings['str_namespaceprefix'],
214
+ name_=settings['str_name'],
215
+ namespacedef_=settings['str_namespacedefs']
216
+ )
217
+ strval = output.getvalue()
218
+ output.close()
219
+ return strval
220
+ def gds_format_string(self, input_data, input_name=''):
221
+ return input_data
222
+ def gds_parse_string(self, input_data, node=None, input_name=''):
223
+ return input_data
224
+ def gds_validate_string(self, input_data, node=None, input_name=''):
225
+ if not input_data:
226
+ return ''
227
+ else:
228
+ return input_data
229
+ def gds_format_base64(self, input_data, input_name=''):
230
+ return base64.b64encode(input_data).decode('ascii')
231
+ def gds_validate_base64(self, input_data, node=None, input_name=''):
232
+ return input_data
233
+ def gds_format_integer(self, input_data, input_name=''):
234
+ return '%d' % int(input_data)
235
+ def gds_parse_integer(self, input_data, node=None, input_name=''):
236
+ try:
237
+ ival = int(input_data)
238
+ except (TypeError, ValueError) as exp:
239
+ raise_parse_error(node, 'Requires integer value: %s' % exp)
240
+ return ival
241
+ def gds_validate_integer(self, input_data, node=None, input_name=''):
242
+ try:
243
+ value = int(input_data)
244
+ except (TypeError, ValueError):
245
+ raise_parse_error(node, 'Requires integer value')
246
+ return value
247
+ def gds_format_integer_list(self, input_data, input_name=''):
248
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
249
+ input_data = [str(s) for s in input_data]
250
+ return '%s' % ' '.join(input_data)
251
+ def gds_validate_integer_list(
252
+ self, input_data, node=None, input_name=''):
253
+ values = input_data.split()
254
+ for value in values:
255
+ try:
256
+ int(value)
257
+ except (TypeError, ValueError):
258
+ raise_parse_error(node, 'Requires sequence of integer values')
259
+ return values
260
+ def gds_format_float(self, input_data, input_name=''):
261
+ value = ('%.15f' % float(input_data)).rstrip('0')
262
+ if value.endswith('.'):
263
+ value += '0'
264
+ return value
265
+
266
+ def gds_parse_float(self, input_data, node=None, input_name=''):
267
+ try:
268
+ fval_ = float(input_data)
269
+ except (TypeError, ValueError) as exp:
270
+ raise_parse_error(node, 'Requires float or double value: %s' % exp)
271
+ return fval_
272
+ def gds_validate_float(self, input_data, node=None, input_name=''):
273
+ try:
274
+ value = float(input_data)
275
+ except (TypeError, ValueError):
276
+ raise_parse_error(node, 'Requires float value')
277
+ return value
278
+ def gds_format_float_list(self, input_data, input_name=''):
279
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
280
+ input_data = [str(s) for s in input_data]
281
+ return '%s' % ' '.join(input_data)
282
+ def gds_validate_float_list(
283
+ self, input_data, node=None, input_name=''):
284
+ values = input_data.split()
285
+ for value in values:
286
+ try:
287
+ float(value)
288
+ except (TypeError, ValueError):
289
+ raise_parse_error(node, 'Requires sequence of float values')
290
+ return values
291
+ def gds_format_decimal(self, input_data, input_name=''):
292
+ return_value = '%s' % input_data
293
+ if '.' in return_value:
294
+ return_value = return_value.rstrip('0')
295
+ if return_value.endswith('.'):
296
+ return_value = return_value.rstrip('.')
297
+ return return_value
298
+ def gds_parse_decimal(self, input_data, node=None, input_name=''):
299
+ try:
300
+ decimal_value = decimal_.Decimal(input_data)
301
+ except (TypeError, ValueError):
302
+ raise_parse_error(node, 'Requires decimal value')
303
+ return decimal_value
304
+ def gds_validate_decimal(self, input_data, node=None, input_name=''):
305
+ try:
306
+ value = decimal_.Decimal(input_data)
307
+ except (TypeError, ValueError):
308
+ raise_parse_error(node, 'Requires decimal value')
309
+ return value
310
+ def gds_format_decimal_list(self, input_data, input_name=''):
311
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
312
+ input_data = [str(s) for s in input_data]
313
+ return ' '.join([self.gds_format_decimal(item) for item in input_data])
314
+ def gds_validate_decimal_list(
315
+ self, input_data, node=None, input_name=''):
316
+ values = input_data.split()
317
+ for value in values:
318
+ try:
319
+ decimal_.Decimal(value)
320
+ except (TypeError, ValueError):
321
+ raise_parse_error(node, 'Requires sequence of decimal values')
322
+ return values
323
+ def gds_format_double(self, input_data, input_name=''):
324
+ return '%s' % input_data
325
+ def gds_parse_double(self, input_data, node=None, input_name=''):
326
+ try:
327
+ fval_ = float(input_data)
328
+ except (TypeError, ValueError) as exp:
329
+ raise_parse_error(node, 'Requires double or float value: %s' % exp)
330
+ return fval_
331
+ def gds_validate_double(self, input_data, node=None, input_name=''):
332
+ try:
333
+ value = float(input_data)
334
+ except (TypeError, ValueError):
335
+ raise_parse_error(node, 'Requires double or float value')
336
+ return value
337
+ def gds_format_double_list(self, input_data, input_name=''):
338
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
339
+ input_data = [str(s) for s in input_data]
340
+ return '%s' % ' '.join(input_data)
341
+ def gds_validate_double_list(
342
+ self, input_data, node=None, input_name=''):
343
+ values = input_data.split()
344
+ for value in values:
345
+ try:
346
+ float(value)
347
+ except (TypeError, ValueError):
348
+ raise_parse_error(
349
+ node, 'Requires sequence of double or float values')
350
+ return values
351
+ def gds_format_boolean(self, input_data, input_name=''):
352
+ return ('%s' % input_data).lower()
353
+ def gds_parse_boolean(self, input_data, node=None, input_name=''):
354
+ input_data = input_data.strip()
355
+ if input_data in ('true', '1'):
356
+ bval = True
357
+ elif input_data in ('false', '0'):
358
+ bval = False
359
+ else:
360
+ raise_parse_error(node, 'Requires boolean value')
361
+ return bval
362
+ def gds_validate_boolean(self, input_data, node=None, input_name=''):
363
+ if input_data not in (True, 1, False, 0, ):
364
+ raise_parse_error(
365
+ node,
366
+ 'Requires boolean value '
367
+ '(one of True, 1, False, 0)')
368
+ return input_data
369
+ def gds_format_boolean_list(self, input_data, input_name=''):
370
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
371
+ input_data = [str(s) for s in input_data]
372
+ return '%s' % ' '.join(input_data)
373
+ def gds_validate_boolean_list(
374
+ self, input_data, node=None, input_name=''):
375
+ values = input_data.split()
376
+ for value in values:
377
+ value = self.gds_parse_boolean(value, node, input_name)
378
+ if value not in (True, 1, False, 0, ):
379
+ raise_parse_error(
380
+ node,
381
+ 'Requires sequence of boolean values '
382
+ '(one of True, 1, False, 0)')
383
+ return values
384
+ def gds_validate_datetime(self, input_data, node=None, input_name=''):
385
+ return input_data
386
+ def gds_format_datetime(self, input_data, input_name=''):
387
+ if input_data.microsecond == 0:
388
+ _svalue = '%04d-%02d-%02dT%02d:%02d:%02d' % (
389
+ input_data.year,
390
+ input_data.month,
391
+ input_data.day,
392
+ input_data.hour,
393
+ input_data.minute,
394
+ input_data.second,
395
+ )
396
+ else:
397
+ _svalue = '%04d-%02d-%02dT%02d:%02d:%02d.%s' % (
398
+ input_data.year,
399
+ input_data.month,
400
+ input_data.day,
401
+ input_data.hour,
402
+ input_data.minute,
403
+ input_data.second,
404
+ ('%f' % (float(input_data.microsecond) / 1000000))[2:],
405
+ )
406
+ if input_data.tzinfo is not None:
407
+ tzoff = input_data.tzinfo.utcoffset(input_data)
408
+ if tzoff is not None:
409
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
410
+ if total_seconds == 0:
411
+ _svalue += 'Z'
412
+ else:
413
+ if total_seconds < 0:
414
+ _svalue += '-'
415
+ total_seconds *= -1
416
+ else:
417
+ _svalue += '+'
418
+ hours = total_seconds // 3600
419
+ minutes = (total_seconds - (hours * 3600)) // 60
420
+ _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
421
+ return _svalue
422
+ @classmethod
423
+ def gds_parse_datetime(cls, input_data):
424
+ tz = None
425
+ if input_data[-1] == 'Z':
426
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
427
+ input_data = input_data[:-1]
428
+ else:
429
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
430
+ if results is not None:
431
+ tzoff_parts = results.group(2).split(':')
432
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
433
+ if results.group(1) == '-':
434
+ tzoff *= -1
435
+ tz = GeneratedsSuper._FixedOffsetTZ(
436
+ tzoff, results.group(0))
437
+ input_data = input_data[:-6]
438
+ time_parts = input_data.split('.')
439
+ if len(time_parts) > 1:
440
+ micro_seconds = int(float('0.' + time_parts[1]) * 1000000)
441
+ input_data = '%s.%s' % (
442
+ time_parts[0], "{}".format(micro_seconds).rjust(6, "0"), )
443
+ dt = datetime_.datetime.strptime(
444
+ input_data, '%Y-%m-%dT%H:%M:%S.%f')
445
+ else:
446
+ dt = datetime_.datetime.strptime(
447
+ input_data, '%Y-%m-%dT%H:%M:%S')
448
+ dt = dt.replace(tzinfo=tz)
449
+ return dt
450
+ def gds_validate_date(self, input_data, node=None, input_name=''):
451
+ return input_data
452
+ def gds_format_date(self, input_data, input_name=''):
453
+ _svalue = '%04d-%02d-%02d' % (
454
+ input_data.year,
455
+ input_data.month,
456
+ input_data.day,
457
+ )
458
+ try:
459
+ if input_data.tzinfo is not None:
460
+ tzoff = input_data.tzinfo.utcoffset(input_data)
461
+ if tzoff is not None:
462
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
463
+ if total_seconds == 0:
464
+ _svalue += 'Z'
465
+ else:
466
+ if total_seconds < 0:
467
+ _svalue += '-'
468
+ total_seconds *= -1
469
+ else:
470
+ _svalue += '+'
471
+ hours = total_seconds // 3600
472
+ minutes = (total_seconds - (hours * 3600)) // 60
473
+ _svalue += '{0:02d}:{1:02d}'.format(
474
+ hours, minutes)
475
+ except AttributeError:
476
+ pass
477
+ return _svalue
478
+ @classmethod
479
+ def gds_parse_date(cls, input_data):
480
+ tz = None
481
+ if input_data[-1] == 'Z':
482
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
483
+ input_data = input_data[:-1]
484
+ else:
485
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
486
+ if results is not None:
487
+ tzoff_parts = results.group(2).split(':')
488
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
489
+ if results.group(1) == '-':
490
+ tzoff *= -1
491
+ tz = GeneratedsSuper._FixedOffsetTZ(
492
+ tzoff, results.group(0))
493
+ input_data = input_data[:-6]
494
+ dt = datetime_.datetime.strptime(input_data, '%Y-%m-%d')
495
+ dt = dt.replace(tzinfo=tz)
496
+ return dt.date()
497
+ def gds_validate_time(self, input_data, node=None, input_name=''):
498
+ return input_data
499
+ def gds_format_time(self, input_data, input_name=''):
500
+ if input_data.microsecond == 0:
501
+ _svalue = '%02d:%02d:%02d' % (
502
+ input_data.hour,
503
+ input_data.minute,
504
+ input_data.second,
505
+ )
506
+ else:
507
+ _svalue = '%02d:%02d:%02d.%s' % (
508
+ input_data.hour,
509
+ input_data.minute,
510
+ input_data.second,
511
+ ('%f' % (float(input_data.microsecond) / 1000000))[2:],
512
+ )
513
+ if input_data.tzinfo is not None:
514
+ tzoff = input_data.tzinfo.utcoffset(input_data)
515
+ if tzoff is not None:
516
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
517
+ if total_seconds == 0:
518
+ _svalue += 'Z'
519
+ else:
520
+ if total_seconds < 0:
521
+ _svalue += '-'
522
+ total_seconds *= -1
523
+ else:
524
+ _svalue += '+'
525
+ hours = total_seconds // 3600
526
+ minutes = (total_seconds - (hours * 3600)) // 60
527
+ _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
528
+ return _svalue
529
+ def gds_validate_simple_patterns(self, patterns, target):
530
+ # pat is a list of lists of strings/patterns.
531
+ # The target value must match at least one of the patterns
532
+ # in order for the test to succeed.
533
+ found1 = True
534
+ target = str(target)
535
+ for patterns1 in patterns:
536
+ found2 = False
537
+ for patterns2 in patterns1:
538
+ mo = re_.search(patterns2, target)
539
+ if mo is not None and len(mo.group(0)) == len(target):
540
+ found2 = True
541
+ break
542
+ if not found2:
543
+ found1 = False
544
+ break
545
+ return found1
546
+ @classmethod
547
+ def gds_parse_time(cls, input_data):
548
+ tz = None
549
+ if input_data[-1] == 'Z':
550
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
551
+ input_data = input_data[:-1]
552
+ else:
553
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
554
+ if results is not None:
555
+ tzoff_parts = results.group(2).split(':')
556
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
557
+ if results.group(1) == '-':
558
+ tzoff *= -1
559
+ tz = GeneratedsSuper._FixedOffsetTZ(
560
+ tzoff, results.group(0))
561
+ input_data = input_data[:-6]
562
+ if len(input_data.split('.')) > 1:
563
+ dt = datetime_.datetime.strptime(input_data, '%H:%M:%S.%f')
564
+ else:
565
+ dt = datetime_.datetime.strptime(input_data, '%H:%M:%S')
566
+ dt = dt.replace(tzinfo=tz)
567
+ return dt.time()
568
+ def gds_check_cardinality_(
569
+ self, value, input_name,
570
+ min_occurs=0, max_occurs=1, required=None):
571
+ if value is None:
572
+ length = 0
573
+ elif isinstance(value, list):
574
+ length = len(value)
575
+ else:
576
+ length = 1
577
+ if required is not None :
578
+ if required and length < 1:
579
+ self.gds_collector_.add_message(
580
+ "Required value {}{} is missing".format(
581
+ input_name, self.gds_get_node_lineno_()))
582
+ if length < min_occurs:
583
+ self.gds_collector_.add_message(
584
+ "Number of values for {}{} is below "
585
+ "the minimum allowed, "
586
+ "expected at least {}, found {}".format(
587
+ input_name, self.gds_get_node_lineno_(),
588
+ min_occurs, length))
589
+ elif length > max_occurs:
590
+ self.gds_collector_.add_message(
591
+ "Number of values for {}{} is above "
592
+ "the maximum allowed, "
593
+ "expected at most {}, found {}".format(
594
+ input_name, self.gds_get_node_lineno_(),
595
+ max_occurs, length))
596
+ def gds_validate_builtin_ST_(
597
+ self, validator, value, input_name,
598
+ min_occurs=None, max_occurs=None, required=None):
599
+ if value is not None:
600
+ try:
601
+ validator(value, input_name=input_name)
602
+ except GDSParseError as parse_error:
603
+ self.gds_collector_.add_message(str(parse_error))
604
+ def gds_validate_defined_ST_(
605
+ self, validator, value, input_name,
606
+ min_occurs=None, max_occurs=None, required=None):
607
+ if value is not None:
608
+ try:
609
+ validator(value)
610
+ except GDSParseError as parse_error:
611
+ self.gds_collector_.add_message(str(parse_error))
612
+ def gds_str_lower(self, instring):
613
+ return instring.lower()
614
+ def get_path_(self, node):
615
+ path_list = []
616
+ self.get_path_list_(node, path_list)
617
+ path_list.reverse()
618
+ path = '/'.join(path_list)
619
+ return path
620
+ Tag_strip_pattern_ = re_.compile(r'\{.*\}')
621
+ def get_path_list_(self, node, path_list):
622
+ if node is None:
623
+ return
624
+ tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
625
+ if tag:
626
+ path_list.append(tag)
627
+ self.get_path_list_(node.getparent(), path_list)
628
+ def get_class_obj_(self, node, default_class=None):
629
+ class_obj1 = default_class
630
+ if 'xsi' in node.nsmap:
631
+ classname = node.get('{%s}type' % node.nsmap['xsi'])
632
+ if classname is not None:
633
+ names = classname.split(':')
634
+ if len(names) == 2:
635
+ classname = names[1]
636
+ class_obj2 = globals().get(classname)
637
+ if class_obj2 is not None:
638
+ class_obj1 = class_obj2
639
+ return class_obj1
640
+ def gds_build_any(self, node, type_name=None):
641
+ # provide default value in case option --disable-xml is used.
642
+ content = ""
643
+ content = etree_.tostring(node, encoding="unicode")
644
+ return content
645
+ @classmethod
646
+ def gds_reverse_node_mapping(cls, mapping):
647
+ return dict(((v, k) for k, v in mapping.items()))
648
+ @staticmethod
649
+ def gds_encode(instring):
650
+ if sys.version_info.major == 2:
651
+ if ExternalEncoding:
652
+ encoding = ExternalEncoding
653
+ else:
654
+ encoding = 'utf-8'
655
+ return instring.encode(encoding)
656
+ else:
657
+ return instring
658
+ @staticmethod
659
+ def convert_unicode(instring):
660
+ if isinstance(instring, str):
661
+ result = quote_xml(instring)
662
+ elif sys.version_info.major == 2 and isinstance(instring, unicode):
663
+ result = quote_xml(instring).encode('utf8')
664
+ else:
665
+ result = GeneratedsSuper.gds_encode(str(instring))
666
+ return result
667
+ def __eq__(self, other):
668
+ def excl_select_objs_(obj):
669
+ return (obj[0] != 'parent_object_' and
670
+ obj[0] != 'gds_collector_')
671
+ if type(self) != type(other):
672
+ return False
673
+ return all(x == y for x, y in zip_longest(
674
+ filter(excl_select_objs_, self.__dict__.items()),
675
+ filter(excl_select_objs_, other.__dict__.items())))
676
+ def __ne__(self, other):
677
+ return not self.__eq__(other)
678
+ # Django ETL transform hooks.
679
+ def gds_djo_etl_transform(self):
680
+ pass
681
+ def gds_djo_etl_transform_db_obj(self, dbobj):
682
+ pass
683
+ # SQLAlchemy ETL transform hooks.
684
+ def gds_sqa_etl_transform(self):
685
+ return 0, None
686
+ def gds_sqa_etl_transform_db_obj(self, dbobj):
687
+ pass
688
+ def gds_get_node_lineno_(self):
689
+ if (hasattr(self, "gds_elementtree_node_") and
690
+ self.gds_elementtree_node_ is not None):
691
+ return ' near line {}'.format(
692
+ self.gds_elementtree_node_.sourceline)
693
+ else:
694
+ return ""
695
+
696
+
697
+ def getSubclassFromModule_(module, class_):
698
+ '''Get the subclass of a class from a specific module.'''
699
+ name = class_.__name__ + 'Sub'
700
+ if hasattr(module, name):
701
+ return getattr(module, name)
702
+ else:
703
+ return None
704
+
705
+
706
+ #
707
+ # If you have installed IPython you can uncomment and use the following.
708
+ # IPython is available from http://ipython.scipy.org/.
709
+ #
710
+
711
+ ## from IPython.Shell import IPShellEmbed
712
+ ## args = ''
713
+ ## ipshell = IPShellEmbed(args,
714
+ ## banner = 'Dropping into IPython',
715
+ ## exit_msg = 'Leaving Interpreter, back to program.')
716
+
717
+ # Then use the following line where and when you want to drop into the
718
+ # IPython shell:
719
+ # ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
720
+
721
+ #
722
+ # Globals
723
+ #
724
+
725
+ ExternalEncoding = ''
726
+ # Set this to false in order to deactivate during export, the use of
727
+ # name space prefixes captured from the input document.
728
+ UseCapturedNS_ = True
729
+ CapturedNsmap_ = {}
730
+ Tag_pattern_ = re_.compile(r'({.*})?(.*)')
731
+ String_cleanup_pat_ = re_.compile(r"[\n\r\s]+")
732
+ Namespace_extract_pat_ = re_.compile(r'{(.*)}(.*)')
733
+ CDATA_pattern_ = re_.compile(r"<!\[CDATA\[.*?\]\]>", re_.DOTALL)
734
+
735
+ # Change this to redirect the generated superclass module to use a
736
+ # specific subclass module.
737
+ CurrentSubclassModule_ = None
738
+
739
+ #
740
+ # Support/utility functions.
741
+ #
742
+
743
+
744
+ def showIndent(outfile, level, pretty_print=True):
745
+ if pretty_print:
746
+ for idx in range(level):
747
+ outfile.write(' ')
748
+
749
+
750
+ def quote_xml(inStr):
751
+ "Escape markup chars, but do not modify CDATA sections."
752
+ if not inStr:
753
+ return ''
754
+ s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
755
+ s2 = ''
756
+ pos = 0
757
+ matchobjects = CDATA_pattern_.finditer(s1)
758
+ for mo in matchobjects:
759
+ s3 = s1[pos:mo.start()]
760
+ s2 += quote_xml_aux(s3)
761
+ s2 += s1[mo.start():mo.end()]
762
+ pos = mo.end()
763
+ s3 = s1[pos:]
764
+ s2 += quote_xml_aux(s3)
765
+ return s2
766
+
767
+
768
+ def quote_xml_aux(inStr):
769
+ s1 = inStr.replace('&', '&amp;')
770
+ s1 = s1.replace('<', '&lt;')
771
+ s1 = s1.replace('>', '&gt;')
772
+ return s1
773
+
774
+
775
+ def quote_attrib(inStr):
776
+ s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
777
+ s1 = s1.replace('&', '&amp;')
778
+ s1 = s1.replace('<', '&lt;')
779
+ s1 = s1.replace('>', '&gt;')
780
+ s1 = s1.replace('\n', '&#10;')
781
+ if '"' in s1:
782
+ if "'" in s1:
783
+ s1 = '"%s"' % s1.replace('"', "&quot;")
784
+ else:
785
+ s1 = "'%s'" % s1
786
+ else:
787
+ s1 = '"%s"' % s1
788
+ return s1
789
+
790
+
791
+ def quote_python(inStr):
792
+ s1 = inStr
793
+ if s1.find("'") == -1:
794
+ if s1.find('\n') == -1:
795
+ return "'%s'" % s1
796
+ else:
797
+ return "'''%s'''" % s1
798
+ else:
799
+ if s1.find('"') != -1:
800
+ s1 = s1.replace('"', '\\"')
801
+ if s1.find('\n') == -1:
802
+ return '"%s"' % s1
803
+ else:
804
+ return '"""%s"""' % s1
805
+
806
+
807
+ def get_all_text_(node):
808
+ if node.text is not None:
809
+ text = node.text
810
+ else:
811
+ text = ''
812
+ for child in node:
813
+ if child.tail is not None:
814
+ text += child.tail
815
+ return text
816
+
817
+
818
+ def find_attr_value_(attr_name, node):
819
+ attrs = node.attrib
820
+ attr_parts = attr_name.split(':')
821
+ value = None
822
+ if len(attr_parts) == 1:
823
+ value = attrs.get(attr_name)
824
+ elif len(attr_parts) == 2:
825
+ prefix, name = attr_parts
826
+ if prefix == 'xml':
827
+ namespace = 'http://www.w3.org/XML/1998/namespace'
828
+ else:
829
+ namespace = node.nsmap.get(prefix)
830
+ if namespace is not None:
831
+ value = attrs.get('{%s}%s' % (namespace, name, ))
832
+ return value
833
+
834
+
835
+ def encode_str_2_3(instr):
836
+ return instr
837
+
838
+
839
+ class GDSParseError(Exception):
840
+ pass
841
+
842
+
843
+ def raise_parse_error(node, msg):
844
+ if node is not None:
845
+ msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
846
+ raise GDSParseError(msg)
847
+
848
+
849
+ class MixedContainer:
850
+ # Constants for category:
851
+ CategoryNone = 0
852
+ CategoryText = 1
853
+ CategorySimple = 2
854
+ CategoryComplex = 3
855
+ # Constants for content_type:
856
+ TypeNone = 0
857
+ TypeText = 1
858
+ TypeString = 2
859
+ TypeInteger = 3
860
+ TypeFloat = 4
861
+ TypeDecimal = 5
862
+ TypeDouble = 6
863
+ TypeBoolean = 7
864
+ TypeBase64 = 8
865
+ def __init__(self, category, content_type, name, value):
866
+ self.category = category
867
+ self.content_type = content_type
868
+ self.name = name
869
+ self.value = value
870
+ def getCategory(self):
871
+ return self.category
872
+ def getContenttype(self, content_type):
873
+ return self.content_type
874
+ def getValue(self):
875
+ return self.value
876
+ def getName(self):
877
+ return self.name
878
+ def export(self, outfile, level, name, namespace,
879
+ pretty_print=True):
880
+ if self.category == MixedContainer.CategoryText:
881
+ # Prevent exporting empty content as empty lines.
882
+ if self.value.strip():
883
+ outfile.write(self.value)
884
+ elif self.category == MixedContainer.CategorySimple:
885
+ self.exportSimple(outfile, level, name)
886
+ else: # category == MixedContainer.CategoryComplex
887
+ self.value.export(
888
+ outfile, level, namespace, name_=name,
889
+ pretty_print=pretty_print)
890
+ def exportSimple(self, outfile, level, name):
891
+ if self.content_type == MixedContainer.TypeString:
892
+ outfile.write('<%s>%s</%s>' % (
893
+ self.name, self.value, self.name))
894
+ elif self.content_type == MixedContainer.TypeInteger or \
895
+ self.content_type == MixedContainer.TypeBoolean:
896
+ outfile.write('<%s>%d</%s>' % (
897
+ self.name, self.value, self.name))
898
+ elif self.content_type == MixedContainer.TypeFloat or \
899
+ self.content_type == MixedContainer.TypeDecimal:
900
+ outfile.write('<%s>%f</%s>' % (
901
+ self.name, self.value, self.name))
902
+ elif self.content_type == MixedContainer.TypeDouble:
903
+ outfile.write('<%s>%g</%s>' % (
904
+ self.name, self.value, self.name))
905
+ elif self.content_type == MixedContainer.TypeBase64:
906
+ outfile.write('<%s>%s</%s>' % (
907
+ self.name,
908
+ base64.b64encode(self.value),
909
+ self.name))
910
+ def to_etree(self, element, mapping_=None, reverse_mapping_=None, nsmap_=None):
911
+ if self.category == MixedContainer.CategoryText:
912
+ # Prevent exporting empty content as empty lines.
913
+ if self.value.strip():
914
+ if len(element) > 0:
915
+ if element[-1].tail is None:
916
+ element[-1].tail = self.value
917
+ else:
918
+ element[-1].tail += self.value
919
+ else:
920
+ if element.text is None:
921
+ element.text = self.value
922
+ else:
923
+ element.text += self.value
924
+ elif self.category == MixedContainer.CategorySimple:
925
+ subelement = etree_.SubElement(
926
+ element, '%s' % self.name)
927
+ subelement.text = self.to_etree_simple()
928
+ else: # category == MixedContainer.CategoryComplex
929
+ self.value.to_etree(element)
930
+ def to_etree_simple(self, mapping_=None, reverse_mapping_=None, nsmap_=None):
931
+ if self.content_type == MixedContainer.TypeString:
932
+ text = self.value
933
+ elif (self.content_type == MixedContainer.TypeInteger or
934
+ self.content_type == MixedContainer.TypeBoolean):
935
+ text = '%d' % self.value
936
+ elif (self.content_type == MixedContainer.TypeFloat or
937
+ self.content_type == MixedContainer.TypeDecimal):
938
+ text = '%f' % self.value
939
+ elif self.content_type == MixedContainer.TypeDouble:
940
+ text = '%g' % self.value
941
+ elif self.content_type == MixedContainer.TypeBase64:
942
+ text = '%s' % base64.b64encode(self.value)
943
+ return text
944
+ def exportLiteral(self, outfile, level, name):
945
+ if self.category == MixedContainer.CategoryText:
946
+ showIndent(outfile, level)
947
+ outfile.write(
948
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
949
+ self.category, self.content_type,
950
+ self.name, self.value))
951
+ elif self.category == MixedContainer.CategorySimple:
952
+ showIndent(outfile, level)
953
+ outfile.write(
954
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
955
+ self.category, self.content_type,
956
+ self.name, self.value))
957
+ else: # category == MixedContainer.CategoryComplex
958
+ showIndent(outfile, level)
959
+ outfile.write(
960
+ 'model_.MixedContainer(%d, %d, "%s",\n' % (
961
+ self.category, self.content_type, self.name,))
962
+ self.value.exportLiteral(outfile, level + 1)
963
+ showIndent(outfile, level)
964
+ outfile.write(')\n')
965
+
966
+
967
+ class MemberSpec_(object):
968
+ def __init__(self, name='', data_type='', container=0,
969
+ optional=0, child_attrs=None, choice=None):
970
+ self.name = name
971
+ self.data_type = data_type
972
+ self.container = container
973
+ self.child_attrs = child_attrs
974
+ self.choice = choice
975
+ self.optional = optional
976
+ def set_name(self, name): self.name = name
977
+ def get_name(self): return self.name
978
+ def set_data_type(self, data_type): self.data_type = data_type
979
+ def get_data_type_chain(self): return self.data_type
980
+ def get_data_type(self):
981
+ if isinstance(self.data_type, list):
982
+ if len(self.data_type) > 0:
983
+ return self.data_type[-1]
984
+ else:
985
+ return 'xs:string'
986
+ else:
987
+ return self.data_type
988
+ def set_container(self, container): self.container = container
989
+ def get_container(self): return self.container
990
+ def set_child_attrs(self, child_attrs): self.child_attrs = child_attrs
991
+ def get_child_attrs(self): return self.child_attrs
992
+ def set_choice(self, choice): self.choice = choice
993
+ def get_choice(self): return self.choice
994
+ def set_optional(self, optional): self.optional = optional
995
+ def get_optional(self): return self.optional
996
+
997
+
998
+ def _cast(typ, value):
999
+ if typ is None or value is None:
1000
+ return value
1001
+ return typ(value)
1002
+
1003
+
1004
+ #
1005
+ # Start enum classes
1006
+ #
1007
+ class RelType(str, Enum):
1008
+ SELF='self'
1009
+ DETAILS='details'
1010
+ NEXT_ARTIFACT='nextArtifact'
1011
+ TEMPLATE='template'
1012
+
1013
+
1014
+ class encodingType(str, Enum):
1015
+ PDF='PDF'
1016
+ ZPL='ZPL'
1017
+
1018
+
1019
+ class output_formatType(str, Enum):
1020
+ _8_5_X_11='8.5x11'
1021
+ _4_X_6='4x6'
1022
+ _3_X_5='3x5'
1023
+
1024
+
1025
+ #
1026
+ # Start data representation classes
1027
+ #
1028
+ class OpenReturnType(GeneratedsSuper):
1029
+ __hash__ = GeneratedsSuper.__hash__
1030
+ subclass = None
1031
+ superclass = None
1032
+ def __init__(self, max_number_of_artifacts=None, service_code=None, receiver=None, print_preferences=None, settlement_info=None, gds_collector_=None, **kwargs_):
1033
+ self.gds_collector_ = gds_collector_
1034
+ self.gds_elementtree_node_ = None
1035
+ self.original_tagname_ = None
1036
+ self.parent_object_ = kwargs_.get('parent_object_')
1037
+ self.ns_prefix_ = None
1038
+ self.max_number_of_artifacts = max_number_of_artifacts
1039
+ self.max_number_of_artifacts_nsprefix_ = None
1040
+ self.service_code = service_code
1041
+ self.service_code_nsprefix_ = None
1042
+ self.receiver = receiver
1043
+ self.receiver_nsprefix_ = None
1044
+ self.print_preferences = print_preferences
1045
+ self.print_preferences_nsprefix_ = None
1046
+ self.settlement_info = settlement_info
1047
+ self.settlement_info_nsprefix_ = None
1048
+ def factory(*args_, **kwargs_):
1049
+ if CurrentSubclassModule_ is not None:
1050
+ subclass = getSubclassFromModule_(
1051
+ CurrentSubclassModule_, OpenReturnType)
1052
+ if subclass is not None:
1053
+ return subclass(*args_, **kwargs_)
1054
+ if OpenReturnType.subclass:
1055
+ return OpenReturnType.subclass(*args_, **kwargs_)
1056
+ else:
1057
+ return OpenReturnType(*args_, **kwargs_)
1058
+ factory = staticmethod(factory)
1059
+ def get_ns_prefix_(self):
1060
+ return self.ns_prefix_
1061
+ def set_ns_prefix_(self, ns_prefix):
1062
+ self.ns_prefix_ = ns_prefix
1063
+ def get_max_number_of_artifacts(self):
1064
+ return self.max_number_of_artifacts
1065
+ def set_max_number_of_artifacts(self, max_number_of_artifacts):
1066
+ self.max_number_of_artifacts = max_number_of_artifacts
1067
+ def get_service_code(self):
1068
+ return self.service_code
1069
+ def set_service_code(self, service_code):
1070
+ self.service_code = service_code
1071
+ def get_receiver(self):
1072
+ return self.receiver
1073
+ def set_receiver(self, receiver):
1074
+ self.receiver = receiver
1075
+ def get_print_preferences(self):
1076
+ return self.print_preferences
1077
+ def set_print_preferences(self, print_preferences):
1078
+ self.print_preferences = print_preferences
1079
+ def get_settlement_info(self):
1080
+ return self.settlement_info
1081
+ def set_settlement_info(self, settlement_info):
1082
+ self.settlement_info = settlement_info
1083
+ def has__content(self):
1084
+ if (
1085
+ self.max_number_of_artifacts is not None or
1086
+ self.service_code is not None or
1087
+ self.receiver is not None or
1088
+ self.print_preferences is not None or
1089
+ self.settlement_info is not None
1090
+ ):
1091
+ return True
1092
+ else:
1093
+ return False
1094
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnType', pretty_print=True):
1095
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('OpenReturnType')
1096
+ if imported_ns_def_ is not None:
1097
+ namespacedef_ = imported_ns_def_
1098
+ if pretty_print:
1099
+ eol_ = '\n'
1100
+ else:
1101
+ eol_ = ''
1102
+ if self.original_tagname_ is not None and name_ == 'OpenReturnType':
1103
+ name_ = self.original_tagname_
1104
+ if UseCapturedNS_ and self.ns_prefix_:
1105
+ namespaceprefix_ = self.ns_prefix_ + ':'
1106
+ showIndent(outfile, level, pretty_print)
1107
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1108
+ already_processed = set()
1109
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='OpenReturnType')
1110
+ if self.has__content():
1111
+ outfile.write('>%s' % (eol_, ))
1112
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='OpenReturnType', pretty_print=pretty_print)
1113
+ showIndent(outfile, level, pretty_print)
1114
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1115
+ else:
1116
+ outfile.write('/>%s' % (eol_, ))
1117
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='OpenReturnType'):
1118
+ pass
1119
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnType', fromsubclass_=False, pretty_print=True):
1120
+ if pretty_print:
1121
+ eol_ = '\n'
1122
+ else:
1123
+ eol_ = ''
1124
+ if self.max_number_of_artifacts is not None:
1125
+ namespaceprefix_ = self.max_number_of_artifacts_nsprefix_ + ':' if (UseCapturedNS_ and self.max_number_of_artifacts_nsprefix_) else ''
1126
+ showIndent(outfile, level, pretty_print)
1127
+ outfile.write('<%smax-number-of-artifacts>%s</%smax-number-of-artifacts>%s' % (namespaceprefix_ , self.gds_format_integer(self.max_number_of_artifacts, input_name='max-number-of-artifacts'), namespaceprefix_ , eol_))
1128
+ if self.service_code is not None:
1129
+ namespaceprefix_ = self.service_code_nsprefix_ + ':' if (UseCapturedNS_ and self.service_code_nsprefix_) else ''
1130
+ showIndent(outfile, level, pretty_print)
1131
+ outfile.write('<%sservice-code>%s</%sservice-code>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.service_code), input_name='service-code')), namespaceprefix_ , eol_))
1132
+ if self.receiver is not None:
1133
+ namespaceprefix_ = self.receiver_nsprefix_ + ':' if (UseCapturedNS_ and self.receiver_nsprefix_) else ''
1134
+ self.receiver.export(outfile, level, namespaceprefix_, namespacedef_='', name_='receiver', pretty_print=pretty_print)
1135
+ if self.print_preferences is not None:
1136
+ namespaceprefix_ = self.print_preferences_nsprefix_ + ':' if (UseCapturedNS_ and self.print_preferences_nsprefix_) else ''
1137
+ self.print_preferences.export(outfile, level, namespaceprefix_, namespacedef_='', name_='print-preferences', pretty_print=pretty_print)
1138
+ if self.settlement_info is not None:
1139
+ namespaceprefix_ = self.settlement_info_nsprefix_ + ':' if (UseCapturedNS_ and self.settlement_info_nsprefix_) else ''
1140
+ self.settlement_info.export(outfile, level, namespaceprefix_, namespacedef_='', name_='settlement-info', pretty_print=pretty_print)
1141
+ def build(self, node, gds_collector_=None):
1142
+ self.gds_collector_ = gds_collector_
1143
+ if SaveElementTreeNode:
1144
+ self.gds_elementtree_node_ = node
1145
+ already_processed = set()
1146
+ self.ns_prefix_ = node.prefix
1147
+ self._buildAttributes(node, node.attrib, already_processed)
1148
+ for child in node:
1149
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1150
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1151
+ return self
1152
+ def _buildAttributes(self, node, attrs, already_processed):
1153
+ pass
1154
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1155
+ if nodeName_ == 'max-number-of-artifacts' and child_.text:
1156
+ sval_ = child_.text
1157
+ ival_ = self.gds_parse_integer(sval_, node, 'max_number_of_artifacts')
1158
+ if ival_ <= 0:
1159
+ raise_parse_error(child_, 'requires positiveInteger')
1160
+ ival_ = self.gds_validate_integer(ival_, node, 'max_number_of_artifacts')
1161
+ self.max_number_of_artifacts = ival_
1162
+ self.max_number_of_artifacts_nsprefix_ = child_.prefix
1163
+ elif nodeName_ == 'service-code':
1164
+ value_ = child_.text
1165
+ value_ = self.gds_parse_string(value_, node, 'service_code')
1166
+ value_ = self.gds_validate_string(value_, node, 'service_code')
1167
+ self.service_code = value_
1168
+ self.service_code_nsprefix_ = child_.prefix
1169
+ elif nodeName_ == 'receiver':
1170
+ obj_ = DomesticAddressType.factory(parent_object_=self)
1171
+ obj_.build(child_, gds_collector_=gds_collector_)
1172
+ self.receiver = obj_
1173
+ obj_.original_tagname_ = 'receiver'
1174
+ elif nodeName_ == 'print-preferences':
1175
+ obj_ = PrintPreferencesType.factory(parent_object_=self)
1176
+ obj_.build(child_, gds_collector_=gds_collector_)
1177
+ self.print_preferences = obj_
1178
+ obj_.original_tagname_ = 'print-preferences'
1179
+ elif nodeName_ == 'settlement-info':
1180
+ obj_ = SettlementInfoType.factory(parent_object_=self)
1181
+ obj_.build(child_, gds_collector_=gds_collector_)
1182
+ self.settlement_info = obj_
1183
+ obj_.original_tagname_ = 'settlement-info'
1184
+ # end class OpenReturnType
1185
+
1186
+
1187
+ class OpenReturnDetailsType(GeneratedsSuper):
1188
+ __hash__ = GeneratedsSuper.__hash__
1189
+ subclass = None
1190
+ superclass = None
1191
+ def __init__(self, artifacts_remaining=None, open_return=None, gds_collector_=None, **kwargs_):
1192
+ self.gds_collector_ = gds_collector_
1193
+ self.gds_elementtree_node_ = None
1194
+ self.original_tagname_ = None
1195
+ self.parent_object_ = kwargs_.get('parent_object_')
1196
+ self.ns_prefix_ = None
1197
+ self.artifacts_remaining = artifacts_remaining
1198
+ self.artifacts_remaining_nsprefix_ = None
1199
+ self.open_return = open_return
1200
+ self.open_return_nsprefix_ = None
1201
+ def factory(*args_, **kwargs_):
1202
+ if CurrentSubclassModule_ is not None:
1203
+ subclass = getSubclassFromModule_(
1204
+ CurrentSubclassModule_, OpenReturnDetailsType)
1205
+ if subclass is not None:
1206
+ return subclass(*args_, **kwargs_)
1207
+ if OpenReturnDetailsType.subclass:
1208
+ return OpenReturnDetailsType.subclass(*args_, **kwargs_)
1209
+ else:
1210
+ return OpenReturnDetailsType(*args_, **kwargs_)
1211
+ factory = staticmethod(factory)
1212
+ def get_ns_prefix_(self):
1213
+ return self.ns_prefix_
1214
+ def set_ns_prefix_(self, ns_prefix):
1215
+ self.ns_prefix_ = ns_prefix
1216
+ def get_artifacts_remaining(self):
1217
+ return self.artifacts_remaining
1218
+ def set_artifacts_remaining(self, artifacts_remaining):
1219
+ self.artifacts_remaining = artifacts_remaining
1220
+ def get_open_return(self):
1221
+ return self.open_return
1222
+ def set_open_return(self, open_return):
1223
+ self.open_return = open_return
1224
+ def has__content(self):
1225
+ if (
1226
+ self.artifacts_remaining is not None or
1227
+ self.open_return is not None
1228
+ ):
1229
+ return True
1230
+ else:
1231
+ return False
1232
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnDetailsType', pretty_print=True):
1233
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('OpenReturnDetailsType')
1234
+ if imported_ns_def_ is not None:
1235
+ namespacedef_ = imported_ns_def_
1236
+ if pretty_print:
1237
+ eol_ = '\n'
1238
+ else:
1239
+ eol_ = ''
1240
+ if self.original_tagname_ is not None and name_ == 'OpenReturnDetailsType':
1241
+ name_ = self.original_tagname_
1242
+ if UseCapturedNS_ and self.ns_prefix_:
1243
+ namespaceprefix_ = self.ns_prefix_ + ':'
1244
+ showIndent(outfile, level, pretty_print)
1245
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1246
+ already_processed = set()
1247
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='OpenReturnDetailsType')
1248
+ if self.has__content():
1249
+ outfile.write('>%s' % (eol_, ))
1250
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='OpenReturnDetailsType', pretty_print=pretty_print)
1251
+ showIndent(outfile, level, pretty_print)
1252
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1253
+ else:
1254
+ outfile.write('/>%s' % (eol_, ))
1255
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='OpenReturnDetailsType'):
1256
+ pass
1257
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnDetailsType', fromsubclass_=False, pretty_print=True):
1258
+ if pretty_print:
1259
+ eol_ = '\n'
1260
+ else:
1261
+ eol_ = ''
1262
+ if self.artifacts_remaining is not None:
1263
+ namespaceprefix_ = self.artifacts_remaining_nsprefix_ + ':' if (UseCapturedNS_ and self.artifacts_remaining_nsprefix_) else ''
1264
+ showIndent(outfile, level, pretty_print)
1265
+ outfile.write('<%sartifacts-remaining>%s</%sartifacts-remaining>%s' % (namespaceprefix_ , self.gds_format_integer(self.artifacts_remaining, input_name='artifacts-remaining'), namespaceprefix_ , eol_))
1266
+ if self.open_return is not None:
1267
+ namespaceprefix_ = self.open_return_nsprefix_ + ':' if (UseCapturedNS_ and self.open_return_nsprefix_) else ''
1268
+ self.open_return.export(outfile, level, namespaceprefix_, namespacedef_='', name_='open-return', pretty_print=pretty_print)
1269
+ def build(self, node, gds_collector_=None):
1270
+ self.gds_collector_ = gds_collector_
1271
+ if SaveElementTreeNode:
1272
+ self.gds_elementtree_node_ = node
1273
+ already_processed = set()
1274
+ self.ns_prefix_ = node.prefix
1275
+ self._buildAttributes(node, node.attrib, already_processed)
1276
+ for child in node:
1277
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1278
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1279
+ return self
1280
+ def _buildAttributes(self, node, attrs, already_processed):
1281
+ pass
1282
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1283
+ if nodeName_ == 'artifacts-remaining' and child_.text:
1284
+ sval_ = child_.text
1285
+ ival_ = self.gds_parse_integer(sval_, node, 'artifacts_remaining')
1286
+ if ival_ < 0:
1287
+ raise_parse_error(child_, 'requires nonNegativeInteger')
1288
+ ival_ = self.gds_validate_integer(ival_, node, 'artifacts_remaining')
1289
+ self.artifacts_remaining = ival_
1290
+ self.artifacts_remaining_nsprefix_ = child_.prefix
1291
+ elif nodeName_ == 'open-return':
1292
+ obj_ = OpenReturnType.factory(parent_object_=self)
1293
+ obj_.build(child_, gds_collector_=gds_collector_)
1294
+ self.open_return = obj_
1295
+ obj_.original_tagname_ = 'open-return'
1296
+ # end class OpenReturnDetailsType
1297
+
1298
+
1299
+ class OpenReturnInfoType(GeneratedsSuper):
1300
+ __hash__ = GeneratedsSuper.__hash__
1301
+ subclass = None
1302
+ superclass = None
1303
+ def __init__(self, artifacts_remaining=None, links=None, gds_collector_=None, **kwargs_):
1304
+ self.gds_collector_ = gds_collector_
1305
+ self.gds_elementtree_node_ = None
1306
+ self.original_tagname_ = None
1307
+ self.parent_object_ = kwargs_.get('parent_object_')
1308
+ self.ns_prefix_ = None
1309
+ self.artifacts_remaining = artifacts_remaining
1310
+ self.artifacts_remaining_nsprefix_ = None
1311
+ self.links = links
1312
+ self.links_nsprefix_ = None
1313
+ def factory(*args_, **kwargs_):
1314
+ if CurrentSubclassModule_ is not None:
1315
+ subclass = getSubclassFromModule_(
1316
+ CurrentSubclassModule_, OpenReturnInfoType)
1317
+ if subclass is not None:
1318
+ return subclass(*args_, **kwargs_)
1319
+ if OpenReturnInfoType.subclass:
1320
+ return OpenReturnInfoType.subclass(*args_, **kwargs_)
1321
+ else:
1322
+ return OpenReturnInfoType(*args_, **kwargs_)
1323
+ factory = staticmethod(factory)
1324
+ def get_ns_prefix_(self):
1325
+ return self.ns_prefix_
1326
+ def set_ns_prefix_(self, ns_prefix):
1327
+ self.ns_prefix_ = ns_prefix
1328
+ def get_artifacts_remaining(self):
1329
+ return self.artifacts_remaining
1330
+ def set_artifacts_remaining(self, artifacts_remaining):
1331
+ self.artifacts_remaining = artifacts_remaining
1332
+ def get_links(self):
1333
+ return self.links
1334
+ def set_links(self, links):
1335
+ self.links = links
1336
+ def has__content(self):
1337
+ if (
1338
+ self.artifacts_remaining is not None or
1339
+ self.links is not None
1340
+ ):
1341
+ return True
1342
+ else:
1343
+ return False
1344
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnInfoType', pretty_print=True):
1345
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('OpenReturnInfoType')
1346
+ if imported_ns_def_ is not None:
1347
+ namespacedef_ = imported_ns_def_
1348
+ if pretty_print:
1349
+ eol_ = '\n'
1350
+ else:
1351
+ eol_ = ''
1352
+ if self.original_tagname_ is not None and name_ == 'OpenReturnInfoType':
1353
+ name_ = self.original_tagname_
1354
+ if UseCapturedNS_ and self.ns_prefix_:
1355
+ namespaceprefix_ = self.ns_prefix_ + ':'
1356
+ showIndent(outfile, level, pretty_print)
1357
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1358
+ already_processed = set()
1359
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='OpenReturnInfoType')
1360
+ if self.has__content():
1361
+ outfile.write('>%s' % (eol_, ))
1362
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='OpenReturnInfoType', pretty_print=pretty_print)
1363
+ showIndent(outfile, level, pretty_print)
1364
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1365
+ else:
1366
+ outfile.write('/>%s' % (eol_, ))
1367
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='OpenReturnInfoType'):
1368
+ pass
1369
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnInfoType', fromsubclass_=False, pretty_print=True):
1370
+ if pretty_print:
1371
+ eol_ = '\n'
1372
+ else:
1373
+ eol_ = ''
1374
+ if self.artifacts_remaining is not None:
1375
+ namespaceprefix_ = self.artifacts_remaining_nsprefix_ + ':' if (UseCapturedNS_ and self.artifacts_remaining_nsprefix_) else ''
1376
+ showIndent(outfile, level, pretty_print)
1377
+ outfile.write('<%sartifacts-remaining>%s</%sartifacts-remaining>%s' % (namespaceprefix_ , self.gds_format_integer(self.artifacts_remaining, input_name='artifacts-remaining'), namespaceprefix_ , eol_))
1378
+ if self.links is not None:
1379
+ namespaceprefix_ = self.links_nsprefix_ + ':' if (UseCapturedNS_ and self.links_nsprefix_) else ''
1380
+ showIndent(outfile, level, pretty_print)
1381
+ outfile.write('<%slinks>%s</%slinks>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.links), input_name='links')), namespaceprefix_ , eol_))
1382
+ def build(self, node, gds_collector_=None):
1383
+ self.gds_collector_ = gds_collector_
1384
+ if SaveElementTreeNode:
1385
+ self.gds_elementtree_node_ = node
1386
+ already_processed = set()
1387
+ self.ns_prefix_ = node.prefix
1388
+ self._buildAttributes(node, node.attrib, already_processed)
1389
+ for child in node:
1390
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1391
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1392
+ return self
1393
+ def _buildAttributes(self, node, attrs, already_processed):
1394
+ pass
1395
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1396
+ if nodeName_ == 'artifacts-remaining' and child_.text:
1397
+ sval_ = child_.text
1398
+ ival_ = self.gds_parse_integer(sval_, node, 'artifacts_remaining')
1399
+ if ival_ < 0:
1400
+ raise_parse_error(child_, 'requires nonNegativeInteger')
1401
+ ival_ = self.gds_validate_integer(ival_, node, 'artifacts_remaining')
1402
+ self.artifacts_remaining = ival_
1403
+ self.artifacts_remaining_nsprefix_ = child_.prefix
1404
+ elif nodeName_ == 'links':
1405
+ value_ = child_.text
1406
+ value_ = self.gds_parse_string(value_, node, 'links')
1407
+ value_ = self.gds_validate_string(value_, node, 'links')
1408
+ self.links = value_
1409
+ self.links_nsprefix_ = child_.prefix
1410
+ # end class OpenReturnInfoType
1411
+
1412
+
1413
+ class SettlementInfoType(GeneratedsSuper):
1414
+ __hash__ = GeneratedsSuper.__hash__
1415
+ subclass = None
1416
+ superclass = None
1417
+ def __init__(self, contract_id=None, gds_collector_=None, **kwargs_):
1418
+ self.gds_collector_ = gds_collector_
1419
+ self.gds_elementtree_node_ = None
1420
+ self.original_tagname_ = None
1421
+ self.parent_object_ = kwargs_.get('parent_object_')
1422
+ self.ns_prefix_ = None
1423
+ self.contract_id = contract_id
1424
+ self.contract_id_nsprefix_ = None
1425
+ def factory(*args_, **kwargs_):
1426
+ if CurrentSubclassModule_ is not None:
1427
+ subclass = getSubclassFromModule_(
1428
+ CurrentSubclassModule_, SettlementInfoType)
1429
+ if subclass is not None:
1430
+ return subclass(*args_, **kwargs_)
1431
+ if SettlementInfoType.subclass:
1432
+ return SettlementInfoType.subclass(*args_, **kwargs_)
1433
+ else:
1434
+ return SettlementInfoType(*args_, **kwargs_)
1435
+ factory = staticmethod(factory)
1436
+ def get_ns_prefix_(self):
1437
+ return self.ns_prefix_
1438
+ def set_ns_prefix_(self, ns_prefix):
1439
+ self.ns_prefix_ = ns_prefix
1440
+ def get_contract_id(self):
1441
+ return self.contract_id
1442
+ def set_contract_id(self, contract_id):
1443
+ self.contract_id = contract_id
1444
+ def has__content(self):
1445
+ if (
1446
+ self.contract_id is not None
1447
+ ):
1448
+ return True
1449
+ else:
1450
+ return False
1451
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='SettlementInfoType', pretty_print=True):
1452
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('SettlementInfoType')
1453
+ if imported_ns_def_ is not None:
1454
+ namespacedef_ = imported_ns_def_
1455
+ if pretty_print:
1456
+ eol_ = '\n'
1457
+ else:
1458
+ eol_ = ''
1459
+ if self.original_tagname_ is not None and name_ == 'SettlementInfoType':
1460
+ name_ = self.original_tagname_
1461
+ if UseCapturedNS_ and self.ns_prefix_:
1462
+ namespaceprefix_ = self.ns_prefix_ + ':'
1463
+ showIndent(outfile, level, pretty_print)
1464
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1465
+ already_processed = set()
1466
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='SettlementInfoType')
1467
+ if self.has__content():
1468
+ outfile.write('>%s' % (eol_, ))
1469
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='SettlementInfoType', pretty_print=pretty_print)
1470
+ showIndent(outfile, level, pretty_print)
1471
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1472
+ else:
1473
+ outfile.write('/>%s' % (eol_, ))
1474
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='SettlementInfoType'):
1475
+ pass
1476
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='SettlementInfoType', fromsubclass_=False, pretty_print=True):
1477
+ if pretty_print:
1478
+ eol_ = '\n'
1479
+ else:
1480
+ eol_ = ''
1481
+ if self.contract_id is not None:
1482
+ namespaceprefix_ = self.contract_id_nsprefix_ + ':' if (UseCapturedNS_ and self.contract_id_nsprefix_) else ''
1483
+ showIndent(outfile, level, pretty_print)
1484
+ outfile.write('<%scontract-id>%s</%scontract-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.contract_id), input_name='contract-id')), namespaceprefix_ , eol_))
1485
+ def build(self, node, gds_collector_=None):
1486
+ self.gds_collector_ = gds_collector_
1487
+ if SaveElementTreeNode:
1488
+ self.gds_elementtree_node_ = node
1489
+ already_processed = set()
1490
+ self.ns_prefix_ = node.prefix
1491
+ self._buildAttributes(node, node.attrib, already_processed)
1492
+ for child in node:
1493
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1494
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1495
+ return self
1496
+ def _buildAttributes(self, node, attrs, already_processed):
1497
+ pass
1498
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1499
+ if nodeName_ == 'contract-id':
1500
+ value_ = child_.text
1501
+ value_ = self.gds_parse_string(value_, node, 'contract_id')
1502
+ value_ = self.gds_validate_string(value_, node, 'contract_id')
1503
+ self.contract_id = value_
1504
+ self.contract_id_nsprefix_ = child_.prefix
1505
+ # end class SettlementInfoType
1506
+
1507
+
1508
+ class DomesticAddressType(GeneratedsSuper):
1509
+ __hash__ = GeneratedsSuper.__hash__
1510
+ subclass = None
1511
+ superclass = None
1512
+ def __init__(self, name=None, company=None, domestic_address=None, gds_collector_=None, **kwargs_):
1513
+ self.gds_collector_ = gds_collector_
1514
+ self.gds_elementtree_node_ = None
1515
+ self.original_tagname_ = None
1516
+ self.parent_object_ = kwargs_.get('parent_object_')
1517
+ self.ns_prefix_ = None
1518
+ self.name = name
1519
+ self.validate_ContactNameType(self.name)
1520
+ self.name_nsprefix_ = None
1521
+ self.company = company
1522
+ self.validate_CompanyNameType(self.company)
1523
+ self.company_nsprefix_ = None
1524
+ self.domestic_address = domestic_address
1525
+ self.domestic_address_nsprefix_ = None
1526
+ def factory(*args_, **kwargs_):
1527
+ if CurrentSubclassModule_ is not None:
1528
+ subclass = getSubclassFromModule_(
1529
+ CurrentSubclassModule_, DomesticAddressType)
1530
+ if subclass is not None:
1531
+ return subclass(*args_, **kwargs_)
1532
+ if DomesticAddressType.subclass:
1533
+ return DomesticAddressType.subclass(*args_, **kwargs_)
1534
+ else:
1535
+ return DomesticAddressType(*args_, **kwargs_)
1536
+ factory = staticmethod(factory)
1537
+ def get_ns_prefix_(self):
1538
+ return self.ns_prefix_
1539
+ def set_ns_prefix_(self, ns_prefix):
1540
+ self.ns_prefix_ = ns_prefix
1541
+ def get_name(self):
1542
+ return self.name
1543
+ def set_name(self, name):
1544
+ self.name = name
1545
+ def get_company(self):
1546
+ return self.company
1547
+ def set_company(self, company):
1548
+ self.company = company
1549
+ def get_domestic_address(self):
1550
+ return self.domestic_address
1551
+ def set_domestic_address(self, domestic_address):
1552
+ self.domestic_address = domestic_address
1553
+ def validate_ContactNameType(self, value):
1554
+ result = True
1555
+ # Validate type ContactNameType, a restriction on xsd:normalizedString.
1556
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1557
+ if not isinstance(value, str):
1558
+ lineno = self.gds_get_node_lineno_()
1559
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1560
+ return False
1561
+ if len(value) > 44:
1562
+ lineno = self.gds_get_node_lineno_()
1563
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on ContactNameType' % {"value": value, "lineno": lineno} )
1564
+ result = False
1565
+ return result
1566
+ def validate_CompanyNameType(self, value):
1567
+ result = True
1568
+ # Validate type CompanyNameType, a restriction on xsd:normalizedString.
1569
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1570
+ if not isinstance(value, str):
1571
+ lineno = self.gds_get_node_lineno_()
1572
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1573
+ return False
1574
+ if len(value) > 44:
1575
+ lineno = self.gds_get_node_lineno_()
1576
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on CompanyNameType' % {"value": value, "lineno": lineno} )
1577
+ result = False
1578
+ if len(value) < 1:
1579
+ lineno = self.gds_get_node_lineno_()
1580
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on CompanyNameType' % {"value" : value, "lineno": lineno} )
1581
+ result = False
1582
+ return result
1583
+ def has__content(self):
1584
+ if (
1585
+ self.name is not None or
1586
+ self.company is not None or
1587
+ self.domestic_address is not None
1588
+ ):
1589
+ return True
1590
+ else:
1591
+ return False
1592
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DomesticAddressType', pretty_print=True):
1593
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('DomesticAddressType')
1594
+ if imported_ns_def_ is not None:
1595
+ namespacedef_ = imported_ns_def_
1596
+ if pretty_print:
1597
+ eol_ = '\n'
1598
+ else:
1599
+ eol_ = ''
1600
+ if self.original_tagname_ is not None and name_ == 'DomesticAddressType':
1601
+ name_ = self.original_tagname_
1602
+ if UseCapturedNS_ and self.ns_prefix_:
1603
+ namespaceprefix_ = self.ns_prefix_ + ':'
1604
+ showIndent(outfile, level, pretty_print)
1605
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1606
+ already_processed = set()
1607
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DomesticAddressType')
1608
+ if self.has__content():
1609
+ outfile.write('>%s' % (eol_, ))
1610
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DomesticAddressType', pretty_print=pretty_print)
1611
+ showIndent(outfile, level, pretty_print)
1612
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1613
+ else:
1614
+ outfile.write('/>%s' % (eol_, ))
1615
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DomesticAddressType'):
1616
+ pass
1617
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DomesticAddressType', fromsubclass_=False, pretty_print=True):
1618
+ if pretty_print:
1619
+ eol_ = '\n'
1620
+ else:
1621
+ eol_ = ''
1622
+ if self.name is not None:
1623
+ namespaceprefix_ = self.name_nsprefix_ + ':' if (UseCapturedNS_ and self.name_nsprefix_) else ''
1624
+ showIndent(outfile, level, pretty_print)
1625
+ outfile.write('<%sname>%s</%sname>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.name), input_name='name')), namespaceprefix_ , eol_))
1626
+ if self.company is not None:
1627
+ namespaceprefix_ = self.company_nsprefix_ + ':' if (UseCapturedNS_ and self.company_nsprefix_) else ''
1628
+ showIndent(outfile, level, pretty_print)
1629
+ outfile.write('<%scompany>%s</%scompany>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.company), input_name='company')), namespaceprefix_ , eol_))
1630
+ if self.domestic_address is not None:
1631
+ namespaceprefix_ = self.domestic_address_nsprefix_ + ':' if (UseCapturedNS_ and self.domestic_address_nsprefix_) else ''
1632
+ self.domestic_address.export(outfile, level, namespaceprefix_, namespacedef_='', name_='domestic-address', pretty_print=pretty_print)
1633
+ def build(self, node, gds_collector_=None):
1634
+ self.gds_collector_ = gds_collector_
1635
+ if SaveElementTreeNode:
1636
+ self.gds_elementtree_node_ = node
1637
+ already_processed = set()
1638
+ self.ns_prefix_ = node.prefix
1639
+ self._buildAttributes(node, node.attrib, already_processed)
1640
+ for child in node:
1641
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1642
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1643
+ return self
1644
+ def _buildAttributes(self, node, attrs, already_processed):
1645
+ pass
1646
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1647
+ if nodeName_ == 'name':
1648
+ value_ = child_.text
1649
+ value_ = self.gds_parse_string(value_, node, 'name')
1650
+ value_ = self.gds_validate_string(value_, node, 'name')
1651
+ self.name = value_
1652
+ self.name_nsprefix_ = child_.prefix
1653
+ # validate type ContactNameType
1654
+ self.validate_ContactNameType(self.name)
1655
+ elif nodeName_ == 'company':
1656
+ value_ = child_.text
1657
+ value_ = self.gds_parse_string(value_, node, 'company')
1658
+ value_ = self.gds_validate_string(value_, node, 'company')
1659
+ self.company = value_
1660
+ self.company_nsprefix_ = child_.prefix
1661
+ # validate type CompanyNameType
1662
+ self.validate_CompanyNameType(self.company)
1663
+ elif nodeName_ == 'domestic-address':
1664
+ obj_ = DomesticAddressDetailsType.factory(parent_object_=self)
1665
+ obj_.build(child_, gds_collector_=gds_collector_)
1666
+ self.domestic_address = obj_
1667
+ obj_.original_tagname_ = 'domestic-address'
1668
+ # end class DomesticAddressType
1669
+
1670
+
1671
+ class DomesticAddressDetailsType(GeneratedsSuper):
1672
+ __hash__ = GeneratedsSuper.__hash__
1673
+ subclass = None
1674
+ superclass = None
1675
+ def __init__(self, address_line_1=None, address_line_2=None, city=None, province=None, postal_code=None, gds_collector_=None, **kwargs_):
1676
+ self.gds_collector_ = gds_collector_
1677
+ self.gds_elementtree_node_ = None
1678
+ self.original_tagname_ = None
1679
+ self.parent_object_ = kwargs_.get('parent_object_')
1680
+ self.ns_prefix_ = None
1681
+ self.address_line_1 = address_line_1
1682
+ self.validate_address_line_1Type(self.address_line_1)
1683
+ self.address_line_1_nsprefix_ = None
1684
+ self.address_line_2 = address_line_2
1685
+ self.validate_address_line_2Type(self.address_line_2)
1686
+ self.address_line_2_nsprefix_ = None
1687
+ self.city = city
1688
+ self.validate_cityType(self.city)
1689
+ self.city_nsprefix_ = None
1690
+ self.province = province
1691
+ self.province_nsprefix_ = None
1692
+ self.postal_code = postal_code
1693
+ self.postal_code_nsprefix_ = None
1694
+ def factory(*args_, **kwargs_):
1695
+ if CurrentSubclassModule_ is not None:
1696
+ subclass = getSubclassFromModule_(
1697
+ CurrentSubclassModule_, DomesticAddressDetailsType)
1698
+ if subclass is not None:
1699
+ return subclass(*args_, **kwargs_)
1700
+ if DomesticAddressDetailsType.subclass:
1701
+ return DomesticAddressDetailsType.subclass(*args_, **kwargs_)
1702
+ else:
1703
+ return DomesticAddressDetailsType(*args_, **kwargs_)
1704
+ factory = staticmethod(factory)
1705
+ def get_ns_prefix_(self):
1706
+ return self.ns_prefix_
1707
+ def set_ns_prefix_(self, ns_prefix):
1708
+ self.ns_prefix_ = ns_prefix
1709
+ def get_address_line_1(self):
1710
+ return self.address_line_1
1711
+ def set_address_line_1(self, address_line_1):
1712
+ self.address_line_1 = address_line_1
1713
+ def get_address_line_2(self):
1714
+ return self.address_line_2
1715
+ def set_address_line_2(self, address_line_2):
1716
+ self.address_line_2 = address_line_2
1717
+ def get_city(self):
1718
+ return self.city
1719
+ def set_city(self, city):
1720
+ self.city = city
1721
+ def get_province(self):
1722
+ return self.province
1723
+ def set_province(self, province):
1724
+ self.province = province
1725
+ def get_postal_code(self):
1726
+ return self.postal_code
1727
+ def set_postal_code(self, postal_code):
1728
+ self.postal_code = postal_code
1729
+ def validate_address_line_1Type(self, value):
1730
+ result = True
1731
+ # Validate type address-line-1Type, a restriction on xsd:normalizedString.
1732
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1733
+ if not isinstance(value, str):
1734
+ lineno = self.gds_get_node_lineno_()
1735
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1736
+ return False
1737
+ if len(value) > 44:
1738
+ lineno = self.gds_get_node_lineno_()
1739
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on address-line-1Type' % {"value": value, "lineno": lineno} )
1740
+ result = False
1741
+ if len(value) < 1:
1742
+ lineno = self.gds_get_node_lineno_()
1743
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on address-line-1Type' % {"value" : value, "lineno": lineno} )
1744
+ result = False
1745
+ return result
1746
+ def validate_address_line_2Type(self, value):
1747
+ result = True
1748
+ # Validate type address-line-2Type, a restriction on xsd:normalizedString.
1749
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1750
+ if not isinstance(value, str):
1751
+ lineno = self.gds_get_node_lineno_()
1752
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1753
+ return False
1754
+ if len(value) > 44:
1755
+ lineno = self.gds_get_node_lineno_()
1756
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on address-line-2Type' % {"value": value, "lineno": lineno} )
1757
+ result = False
1758
+ return result
1759
+ def validate_cityType(self, value):
1760
+ result = True
1761
+ # Validate type cityType, a restriction on xsd:normalizedString.
1762
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1763
+ if not isinstance(value, str):
1764
+ lineno = self.gds_get_node_lineno_()
1765
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1766
+ return False
1767
+ if len(value) > 40:
1768
+ lineno = self.gds_get_node_lineno_()
1769
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on cityType' % {"value": value, "lineno": lineno} )
1770
+ result = False
1771
+ if len(value) < 1:
1772
+ lineno = self.gds_get_node_lineno_()
1773
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on cityType' % {"value" : value, "lineno": lineno} )
1774
+ result = False
1775
+ return result
1776
+ def has__content(self):
1777
+ if (
1778
+ self.address_line_1 is not None or
1779
+ self.address_line_2 is not None or
1780
+ self.city is not None or
1781
+ self.province is not None or
1782
+ self.postal_code is not None
1783
+ ):
1784
+ return True
1785
+ else:
1786
+ return False
1787
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DomesticAddressDetailsType', pretty_print=True):
1788
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('DomesticAddressDetailsType')
1789
+ if imported_ns_def_ is not None:
1790
+ namespacedef_ = imported_ns_def_
1791
+ if pretty_print:
1792
+ eol_ = '\n'
1793
+ else:
1794
+ eol_ = ''
1795
+ if self.original_tagname_ is not None and name_ == 'DomesticAddressDetailsType':
1796
+ name_ = self.original_tagname_
1797
+ if UseCapturedNS_ and self.ns_prefix_:
1798
+ namespaceprefix_ = self.ns_prefix_ + ':'
1799
+ showIndent(outfile, level, pretty_print)
1800
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1801
+ already_processed = set()
1802
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DomesticAddressDetailsType')
1803
+ if self.has__content():
1804
+ outfile.write('>%s' % (eol_, ))
1805
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DomesticAddressDetailsType', pretty_print=pretty_print)
1806
+ showIndent(outfile, level, pretty_print)
1807
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1808
+ else:
1809
+ outfile.write('/>%s' % (eol_, ))
1810
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DomesticAddressDetailsType'):
1811
+ pass
1812
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DomesticAddressDetailsType', fromsubclass_=False, pretty_print=True):
1813
+ if pretty_print:
1814
+ eol_ = '\n'
1815
+ else:
1816
+ eol_ = ''
1817
+ if self.address_line_1 is not None:
1818
+ namespaceprefix_ = self.address_line_1_nsprefix_ + ':' if (UseCapturedNS_ and self.address_line_1_nsprefix_) else ''
1819
+ showIndent(outfile, level, pretty_print)
1820
+ outfile.write('<%saddress-line-1>%s</%saddress-line-1>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.address_line_1), input_name='address-line-1')), namespaceprefix_ , eol_))
1821
+ if self.address_line_2 is not None:
1822
+ namespaceprefix_ = self.address_line_2_nsprefix_ + ':' if (UseCapturedNS_ and self.address_line_2_nsprefix_) else ''
1823
+ showIndent(outfile, level, pretty_print)
1824
+ outfile.write('<%saddress-line-2>%s</%saddress-line-2>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.address_line_2), input_name='address-line-2')), namespaceprefix_ , eol_))
1825
+ if self.city is not None:
1826
+ namespaceprefix_ = self.city_nsprefix_ + ':' if (UseCapturedNS_ and self.city_nsprefix_) else ''
1827
+ showIndent(outfile, level, pretty_print)
1828
+ outfile.write('<%scity>%s</%scity>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.city), input_name='city')), namespaceprefix_ , eol_))
1829
+ if self.province is not None:
1830
+ namespaceprefix_ = self.province_nsprefix_ + ':' if (UseCapturedNS_ and self.province_nsprefix_) else ''
1831
+ showIndent(outfile, level, pretty_print)
1832
+ outfile.write('<%sprovince>%s</%sprovince>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.province), input_name='province')), namespaceprefix_ , eol_))
1833
+ if self.postal_code is not None:
1834
+ namespaceprefix_ = self.postal_code_nsprefix_ + ':' if (UseCapturedNS_ and self.postal_code_nsprefix_) else ''
1835
+ showIndent(outfile, level, pretty_print)
1836
+ outfile.write('<%spostal-code>%s</%spostal-code>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.postal_code), input_name='postal-code')), namespaceprefix_ , eol_))
1837
+ def build(self, node, gds_collector_=None):
1838
+ self.gds_collector_ = gds_collector_
1839
+ if SaveElementTreeNode:
1840
+ self.gds_elementtree_node_ = node
1841
+ already_processed = set()
1842
+ self.ns_prefix_ = node.prefix
1843
+ self._buildAttributes(node, node.attrib, already_processed)
1844
+ for child in node:
1845
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1846
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1847
+ return self
1848
+ def _buildAttributes(self, node, attrs, already_processed):
1849
+ pass
1850
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1851
+ if nodeName_ == 'address-line-1':
1852
+ value_ = child_.text
1853
+ value_ = self.gds_parse_string(value_, node, 'address_line_1')
1854
+ value_ = self.gds_validate_string(value_, node, 'address_line_1')
1855
+ self.address_line_1 = value_
1856
+ self.address_line_1_nsprefix_ = child_.prefix
1857
+ # validate type address-line-1Type
1858
+ self.validate_address_line_1Type(self.address_line_1)
1859
+ elif nodeName_ == 'address-line-2':
1860
+ value_ = child_.text
1861
+ value_ = self.gds_parse_string(value_, node, 'address_line_2')
1862
+ value_ = self.gds_validate_string(value_, node, 'address_line_2')
1863
+ self.address_line_2 = value_
1864
+ self.address_line_2_nsprefix_ = child_.prefix
1865
+ # validate type address-line-2Type
1866
+ self.validate_address_line_2Type(self.address_line_2)
1867
+ elif nodeName_ == 'city':
1868
+ value_ = child_.text
1869
+ value_ = self.gds_parse_string(value_, node, 'city')
1870
+ value_ = self.gds_validate_string(value_, node, 'city')
1871
+ self.city = value_
1872
+ self.city_nsprefix_ = child_.prefix
1873
+ # validate type cityType
1874
+ self.validate_cityType(self.city)
1875
+ elif nodeName_ == 'province':
1876
+ value_ = child_.text
1877
+ value_ = self.gds_parse_string(value_, node, 'province')
1878
+ value_ = self.gds_validate_string(value_, node, 'province')
1879
+ self.province = value_
1880
+ self.province_nsprefix_ = child_.prefix
1881
+ elif nodeName_ == 'postal-code':
1882
+ value_ = child_.text
1883
+ value_ = self.gds_parse_string(value_, node, 'postal_code')
1884
+ value_ = self.gds_validate_string(value_, node, 'postal_code')
1885
+ self.postal_code = value_
1886
+ self.postal_code_nsprefix_ = child_.prefix
1887
+ # end class DomesticAddressDetailsType
1888
+
1889
+
1890
+ class PrintPreferencesType(GeneratedsSuper):
1891
+ __hash__ = GeneratedsSuper.__hash__
1892
+ subclass = None
1893
+ superclass = None
1894
+ def __init__(self, output_format=None, customer_input_type=None, encoding=None, show_packing_instructions=None, gds_collector_=None, **kwargs_):
1895
+ self.gds_collector_ = gds_collector_
1896
+ self.gds_elementtree_node_ = None
1897
+ self.original_tagname_ = None
1898
+ self.parent_object_ = kwargs_.get('parent_object_')
1899
+ self.ns_prefix_ = None
1900
+ self.output_format = output_format
1901
+ self.validate_output_formatType(self.output_format)
1902
+ self.output_format_nsprefix_ = None
1903
+ self.customer_input_type = customer_input_type
1904
+ self.validate_customer_input_typeType(self.customer_input_type)
1905
+ self.customer_input_type_nsprefix_ = None
1906
+ self.encoding = encoding
1907
+ self.validate_encodingType(self.encoding)
1908
+ self.encoding_nsprefix_ = None
1909
+ self.show_packing_instructions = show_packing_instructions
1910
+ self.show_packing_instructions_nsprefix_ = None
1911
+ def factory(*args_, **kwargs_):
1912
+ if CurrentSubclassModule_ is not None:
1913
+ subclass = getSubclassFromModule_(
1914
+ CurrentSubclassModule_, PrintPreferencesType)
1915
+ if subclass is not None:
1916
+ return subclass(*args_, **kwargs_)
1917
+ if PrintPreferencesType.subclass:
1918
+ return PrintPreferencesType.subclass(*args_, **kwargs_)
1919
+ else:
1920
+ return PrintPreferencesType(*args_, **kwargs_)
1921
+ factory = staticmethod(factory)
1922
+ def get_ns_prefix_(self):
1923
+ return self.ns_prefix_
1924
+ def set_ns_prefix_(self, ns_prefix):
1925
+ self.ns_prefix_ = ns_prefix
1926
+ def get_output_format(self):
1927
+ return self.output_format
1928
+ def set_output_format(self, output_format):
1929
+ self.output_format = output_format
1930
+ def get_customer_input_type(self):
1931
+ return self.customer_input_type
1932
+ def set_customer_input_type(self, customer_input_type):
1933
+ self.customer_input_type = customer_input_type
1934
+ def get_encoding(self):
1935
+ return self.encoding
1936
+ def set_encoding(self, encoding):
1937
+ self.encoding = encoding
1938
+ def get_show_packing_instructions(self):
1939
+ return self.show_packing_instructions
1940
+ def set_show_packing_instructions(self, show_packing_instructions):
1941
+ self.show_packing_instructions = show_packing_instructions
1942
+ def validate_output_formatType(self, value):
1943
+ result = True
1944
+ # Validate type output-formatType, a restriction on xsd:string.
1945
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1946
+ if not isinstance(value, str):
1947
+ lineno = self.gds_get_node_lineno_()
1948
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1949
+ return False
1950
+ value = value
1951
+ enumerations = ['8.5x11', '4x6', '3x5']
1952
+ if value not in enumerations:
1953
+ lineno = self.gds_get_node_lineno_()
1954
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on output-formatType' % {"value" : encode_str_2_3(value), "lineno": lineno} )
1955
+ result = False
1956
+ return result
1957
+ def validate_customer_input_typeType(self, value):
1958
+ result = True
1959
+ # Validate type customer-input-typeType, a restriction on xsd:token.
1960
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1961
+ if not isinstance(value, str):
1962
+ lineno = self.gds_get_node_lineno_()
1963
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1964
+ return False
1965
+ if len(value) > 20:
1966
+ lineno = self.gds_get_node_lineno_()
1967
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on customer-input-typeType' % {"value": value, "lineno": lineno} )
1968
+ result = False
1969
+ return result
1970
+ def validate_encodingType(self, value):
1971
+ result = True
1972
+ # Validate type encodingType, a restriction on xsd:string.
1973
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1974
+ if not isinstance(value, str):
1975
+ lineno = self.gds_get_node_lineno_()
1976
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1977
+ return False
1978
+ value = value
1979
+ enumerations = ['PDF', 'ZPL']
1980
+ if value not in enumerations:
1981
+ lineno = self.gds_get_node_lineno_()
1982
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on encodingType' % {"value" : encode_str_2_3(value), "lineno": lineno} )
1983
+ result = False
1984
+ return result
1985
+ def has__content(self):
1986
+ if (
1987
+ self.output_format is not None or
1988
+ self.customer_input_type is not None or
1989
+ self.encoding is not None or
1990
+ self.show_packing_instructions is not None
1991
+ ):
1992
+ return True
1993
+ else:
1994
+ return False
1995
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PrintPreferencesType', pretty_print=True):
1996
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('PrintPreferencesType')
1997
+ if imported_ns_def_ is not None:
1998
+ namespacedef_ = imported_ns_def_
1999
+ if pretty_print:
2000
+ eol_ = '\n'
2001
+ else:
2002
+ eol_ = ''
2003
+ if self.original_tagname_ is not None and name_ == 'PrintPreferencesType':
2004
+ name_ = self.original_tagname_
2005
+ if UseCapturedNS_ and self.ns_prefix_:
2006
+ namespaceprefix_ = self.ns_prefix_ + ':'
2007
+ showIndent(outfile, level, pretty_print)
2008
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2009
+ already_processed = set()
2010
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='PrintPreferencesType')
2011
+ if self.has__content():
2012
+ outfile.write('>%s' % (eol_, ))
2013
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='PrintPreferencesType', pretty_print=pretty_print)
2014
+ showIndent(outfile, level, pretty_print)
2015
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2016
+ else:
2017
+ outfile.write('/>%s' % (eol_, ))
2018
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='PrintPreferencesType'):
2019
+ pass
2020
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PrintPreferencesType', fromsubclass_=False, pretty_print=True):
2021
+ if pretty_print:
2022
+ eol_ = '\n'
2023
+ else:
2024
+ eol_ = ''
2025
+ if self.output_format is not None:
2026
+ namespaceprefix_ = self.output_format_nsprefix_ + ':' if (UseCapturedNS_ and self.output_format_nsprefix_) else ''
2027
+ showIndent(outfile, level, pretty_print)
2028
+ outfile.write('<%soutput-format>%s</%soutput-format>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.output_format), input_name='output-format')), namespaceprefix_ , eol_))
2029
+ if self.customer_input_type is not None:
2030
+ namespaceprefix_ = self.customer_input_type_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_input_type_nsprefix_) else ''
2031
+ showIndent(outfile, level, pretty_print)
2032
+ outfile.write('<%scustomer-input-type>%s</%scustomer-input-type>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_input_type), input_name='customer-input-type')), namespaceprefix_ , eol_))
2033
+ if self.encoding is not None:
2034
+ namespaceprefix_ = self.encoding_nsprefix_ + ':' if (UseCapturedNS_ and self.encoding_nsprefix_) else ''
2035
+ showIndent(outfile, level, pretty_print)
2036
+ outfile.write('<%sencoding>%s</%sencoding>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.encoding), input_name='encoding')), namespaceprefix_ , eol_))
2037
+ if self.show_packing_instructions is not None:
2038
+ namespaceprefix_ = self.show_packing_instructions_nsprefix_ + ':' if (UseCapturedNS_ and self.show_packing_instructions_nsprefix_) else ''
2039
+ showIndent(outfile, level, pretty_print)
2040
+ outfile.write('<%sshow-packing-instructions>%s</%sshow-packing-instructions>%s' % (namespaceprefix_ , self.gds_format_boolean(self.show_packing_instructions, input_name='show-packing-instructions'), namespaceprefix_ , eol_))
2041
+ def build(self, node, gds_collector_=None):
2042
+ self.gds_collector_ = gds_collector_
2043
+ if SaveElementTreeNode:
2044
+ self.gds_elementtree_node_ = node
2045
+ already_processed = set()
2046
+ self.ns_prefix_ = node.prefix
2047
+ self._buildAttributes(node, node.attrib, already_processed)
2048
+ for child in node:
2049
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2050
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2051
+ return self
2052
+ def _buildAttributes(self, node, attrs, already_processed):
2053
+ pass
2054
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2055
+ if nodeName_ == 'output-format':
2056
+ value_ = child_.text
2057
+ value_ = self.gds_parse_string(value_, node, 'output_format')
2058
+ value_ = self.gds_validate_string(value_, node, 'output_format')
2059
+ self.output_format = value_
2060
+ self.output_format_nsprefix_ = child_.prefix
2061
+ # validate type output-formatType
2062
+ self.validate_output_formatType(self.output_format)
2063
+ elif nodeName_ == 'customer-input-type':
2064
+ value_ = child_.text
2065
+ if value_:
2066
+ value_ = re_.sub(String_cleanup_pat_, " ", value_).strip()
2067
+ else:
2068
+ value_ = ""
2069
+ value_ = self.gds_parse_string(value_, node, 'customer_input_type')
2070
+ value_ = self.gds_validate_string(value_, node, 'customer_input_type')
2071
+ self.customer_input_type = value_
2072
+ self.customer_input_type_nsprefix_ = child_.prefix
2073
+ # validate type customer-input-typeType
2074
+ self.validate_customer_input_typeType(self.customer_input_type)
2075
+ elif nodeName_ == 'encoding':
2076
+ value_ = child_.text
2077
+ value_ = self.gds_parse_string(value_, node, 'encoding')
2078
+ value_ = self.gds_validate_string(value_, node, 'encoding')
2079
+ self.encoding = value_
2080
+ self.encoding_nsprefix_ = child_.prefix
2081
+ # validate type encodingType
2082
+ self.validate_encodingType(self.encoding)
2083
+ elif nodeName_ == 'show-packing-instructions':
2084
+ sval_ = child_.text
2085
+ ival_ = self.gds_parse_boolean(sval_, node, 'show_packing_instructions')
2086
+ ival_ = self.gds_validate_boolean(ival_, node, 'show_packing_instructions')
2087
+ self.show_packing_instructions = ival_
2088
+ self.show_packing_instructions_nsprefix_ = child_.prefix
2089
+ # end class PrintPreferencesType
2090
+
2091
+
2092
+ class OpenReturnTemplatesInfoType(GeneratedsSuper):
2093
+ __hash__ = GeneratedsSuper.__hash__
2094
+ subclass = None
2095
+ superclass = None
2096
+ def __init__(self, link=None, gds_collector_=None, **kwargs_):
2097
+ self.gds_collector_ = gds_collector_
2098
+ self.gds_elementtree_node_ = None
2099
+ self.original_tagname_ = None
2100
+ self.parent_object_ = kwargs_.get('parent_object_')
2101
+ self.ns_prefix_ = None
2102
+ if link is None:
2103
+ self.link = []
2104
+ else:
2105
+ self.link = link
2106
+ self.link_nsprefix_ = None
2107
+ def factory(*args_, **kwargs_):
2108
+ if CurrentSubclassModule_ is not None:
2109
+ subclass = getSubclassFromModule_(
2110
+ CurrentSubclassModule_, OpenReturnTemplatesInfoType)
2111
+ if subclass is not None:
2112
+ return subclass(*args_, **kwargs_)
2113
+ if OpenReturnTemplatesInfoType.subclass:
2114
+ return OpenReturnTemplatesInfoType.subclass(*args_, **kwargs_)
2115
+ else:
2116
+ return OpenReturnTemplatesInfoType(*args_, **kwargs_)
2117
+ factory = staticmethod(factory)
2118
+ def get_ns_prefix_(self):
2119
+ return self.ns_prefix_
2120
+ def set_ns_prefix_(self, ns_prefix):
2121
+ self.ns_prefix_ = ns_prefix
2122
+ def get_link(self):
2123
+ return self.link
2124
+ def set_link(self, link):
2125
+ self.link = link
2126
+ def add_link(self, value):
2127
+ self.link.append(value)
2128
+ def insert_link_at(self, index, value):
2129
+ self.link.insert(index, value)
2130
+ def replace_link_at(self, index, value):
2131
+ self.link[index] = value
2132
+ def has__content(self):
2133
+ if (
2134
+ self.link
2135
+ ):
2136
+ return True
2137
+ else:
2138
+ return False
2139
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnTemplatesInfoType', pretty_print=True):
2140
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('OpenReturnTemplatesInfoType')
2141
+ if imported_ns_def_ is not None:
2142
+ namespacedef_ = imported_ns_def_
2143
+ if pretty_print:
2144
+ eol_ = '\n'
2145
+ else:
2146
+ eol_ = ''
2147
+ if self.original_tagname_ is not None and name_ == 'OpenReturnTemplatesInfoType':
2148
+ name_ = self.original_tagname_
2149
+ if UseCapturedNS_ and self.ns_prefix_:
2150
+ namespaceprefix_ = self.ns_prefix_ + ':'
2151
+ showIndent(outfile, level, pretty_print)
2152
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2153
+ already_processed = set()
2154
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='OpenReturnTemplatesInfoType')
2155
+ if self.has__content():
2156
+ outfile.write('>%s' % (eol_, ))
2157
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='OpenReturnTemplatesInfoType', pretty_print=pretty_print)
2158
+ showIndent(outfile, level, pretty_print)
2159
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2160
+ else:
2161
+ outfile.write('/>%s' % (eol_, ))
2162
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='OpenReturnTemplatesInfoType'):
2163
+ pass
2164
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='OpenReturnTemplatesInfoType', fromsubclass_=False, pretty_print=True):
2165
+ if pretty_print:
2166
+ eol_ = '\n'
2167
+ else:
2168
+ eol_ = ''
2169
+ for link_ in self.link:
2170
+ namespaceprefix_ = self.link_nsprefix_ + ':' if (UseCapturedNS_ and self.link_nsprefix_) else ''
2171
+ showIndent(outfile, level, pretty_print)
2172
+ outfile.write('<%slink>%s</%slink>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(link_), input_name='link')), namespaceprefix_ , eol_))
2173
+ def build(self, node, gds_collector_=None):
2174
+ self.gds_collector_ = gds_collector_
2175
+ if SaveElementTreeNode:
2176
+ self.gds_elementtree_node_ = node
2177
+ already_processed = set()
2178
+ self.ns_prefix_ = node.prefix
2179
+ self._buildAttributes(node, node.attrib, already_processed)
2180
+ for child in node:
2181
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2182
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2183
+ return self
2184
+ def _buildAttributes(self, node, attrs, already_processed):
2185
+ pass
2186
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2187
+ if nodeName_ == 'link':
2188
+ value_ = child_.text
2189
+ value_ = self.gds_parse_string(value_, node, 'link')
2190
+ value_ = self.gds_validate_string(value_, node, 'link')
2191
+ self.link.append(value_)
2192
+ self.link_nsprefix_ = child_.prefix
2193
+ # end class OpenReturnTemplatesInfoType
2194
+
2195
+
2196
+ #
2197
+ # End data representation classes.
2198
+ #
2199
+
2200
+
2201
+ GDSClassesMapping = {
2202
+ }
2203
+
2204
+
2205
+ USAGE_TEXT = """
2206
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
2207
+ """
2208
+
2209
+
2210
+ def usage():
2211
+ print(USAGE_TEXT)
2212
+ sys.exit(1)
2213
+
2214
+
2215
+ def get_root_tag(node):
2216
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
2217
+ prefix_tag = TagNamePrefix + tag
2218
+ rootClass = GDSClassesMapping.get(prefix_tag)
2219
+ if rootClass is None:
2220
+ rootClass = globals().get(prefix_tag)
2221
+ return tag, rootClass
2222
+
2223
+
2224
+ def get_required_ns_prefix_defs(rootNode):
2225
+ '''Get all name space prefix definitions required in this XML doc.
2226
+ Return a dictionary of definitions and a char string of definitions.
2227
+ '''
2228
+ nsmap = {
2229
+ prefix: uri
2230
+ for node in rootNode.iter()
2231
+ for (prefix, uri) in node.nsmap.items()
2232
+ if prefix is not None
2233
+ }
2234
+ namespacedefs = ' '.join([
2235
+ 'xmlns:{}="{}"'.format(prefix, uri)
2236
+ for prefix, uri in nsmap.items()
2237
+ ])
2238
+ return nsmap, namespacedefs
2239
+
2240
+
2241
+ def parse(inFileName, silence=False, print_warnings=True):
2242
+ global CapturedNsmap_
2243
+ gds_collector = GdsCollector_()
2244
+ parser = None
2245
+ doc = parsexml_(inFileName, parser)
2246
+ rootNode = doc.getroot()
2247
+ rootTag, rootClass = get_root_tag(rootNode)
2248
+ if rootClass is None:
2249
+ rootTag = 'OpenReturnType'
2250
+ rootClass = OpenReturnType
2251
+ rootObj = rootClass.factory()
2252
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2253
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
2254
+ if not SaveElementTreeNode:
2255
+ doc = None
2256
+ rootNode = None
2257
+ if not silence:
2258
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2259
+ rootObj.export(
2260
+ sys.stdout, 0, name_=rootTag,
2261
+ namespacedef_=namespacedefs,
2262
+ pretty_print=True)
2263
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2264
+ separator = ('-' * 50) + '\n'
2265
+ sys.stderr.write(separator)
2266
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2267
+ len(gds_collector.get_messages()), ))
2268
+ gds_collector.write_messages(sys.stderr)
2269
+ sys.stderr.write(separator)
2270
+ return rootObj
2271
+
2272
+
2273
+ def parseEtree(inFileName, silence=False, print_warnings=True,
2274
+ mapping=None, reverse_mapping=None, nsmap=None):
2275
+ parser = None
2276
+ doc = parsexml_(inFileName, parser)
2277
+ gds_collector = GdsCollector_()
2278
+ rootNode = doc.getroot()
2279
+ rootTag, rootClass = get_root_tag(rootNode)
2280
+ if rootClass is None:
2281
+ rootTag = 'OpenReturnType'
2282
+ rootClass = OpenReturnType
2283
+ rootObj = rootClass.factory()
2284
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2285
+ if mapping is None:
2286
+ mapping = {}
2287
+ if reverse_mapping is None:
2288
+ reverse_mapping = {}
2289
+ rootElement = rootObj.to_etree(
2290
+ None, name_=rootTag, mapping_=mapping,
2291
+ reverse_mapping_=reverse_mapping, nsmap_=nsmap)
2292
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
2293
+ # Enable Python to collect the space used by the DOM.
2294
+ if not SaveElementTreeNode:
2295
+ doc = None
2296
+ rootNode = None
2297
+ if not silence:
2298
+ content = etree_.tostring(
2299
+ rootElement, pretty_print=True,
2300
+ xml_declaration=True, encoding="utf-8")
2301
+ sys.stdout.write(str(content))
2302
+ sys.stdout.write('\n')
2303
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2304
+ separator = ('-' * 50) + '\n'
2305
+ sys.stderr.write(separator)
2306
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2307
+ len(gds_collector.get_messages()), ))
2308
+ gds_collector.write_messages(sys.stderr)
2309
+ sys.stderr.write(separator)
2310
+ return rootObj, rootElement, mapping, reverse_node_mapping
2311
+
2312
+
2313
+ def parseString(inString, silence=False, print_warnings=True):
2314
+ '''Parse a string, create the object tree, and export it.
2315
+
2316
+ Arguments:
2317
+ - inString -- A string. This XML fragment should not start
2318
+ with an XML declaration containing an encoding.
2319
+ - silence -- A boolean. If False, export the object.
2320
+ Returns -- The root object in the tree.
2321
+ '''
2322
+ parser = None
2323
+ rootNode= parsexmlstring_(inString, parser)
2324
+ gds_collector = GdsCollector_()
2325
+ rootTag, rootClass = get_root_tag(rootNode)
2326
+ if rootClass is None:
2327
+ rootTag = 'OpenReturnType'
2328
+ rootClass = OpenReturnType
2329
+ rootObj = rootClass.factory()
2330
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2331
+ if not SaveElementTreeNode:
2332
+ rootNode = None
2333
+ if not silence:
2334
+ sys.stdout.write('<?xml version="1.0" ?>\n')
2335
+ rootObj.export(
2336
+ sys.stdout, 0, name_=rootTag,
2337
+ namespacedef_='')
2338
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2339
+ separator = ('-' * 50) + '\n'
2340
+ sys.stderr.write(separator)
2341
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2342
+ len(gds_collector.get_messages()), ))
2343
+ gds_collector.write_messages(sys.stderr)
2344
+ sys.stderr.write(separator)
2345
+ return rootObj
2346
+
2347
+
2348
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
2349
+ parser = None
2350
+ doc = parsexml_(inFileName, parser)
2351
+ gds_collector = GdsCollector_()
2352
+ rootNode = doc.getroot()
2353
+ rootTag, rootClass = get_root_tag(rootNode)
2354
+ if rootClass is None:
2355
+ rootTag = 'OpenReturnType'
2356
+ rootClass = OpenReturnType
2357
+ rootObj = rootClass.factory()
2358
+ rootObj.build(rootNode, gds_collector_=gds_collector)
2359
+ # Enable Python to collect the space used by the DOM.
2360
+ if not SaveElementTreeNode:
2361
+ doc = None
2362
+ rootNode = None
2363
+ if not silence:
2364
+ sys.stdout.write('#from openreturn import *\n\n')
2365
+ sys.stdout.write('import openreturn as model_\n\n')
2366
+ sys.stdout.write('rootObj = model_.rootClass(\n')
2367
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
2368
+ sys.stdout.write(')\n')
2369
+ if print_warnings and len(gds_collector.get_messages()) > 0:
2370
+ separator = ('-' * 50) + '\n'
2371
+ sys.stderr.write(separator)
2372
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
2373
+ len(gds_collector.get_messages()), ))
2374
+ gds_collector.write_messages(sys.stderr)
2375
+ sys.stderr.write(separator)
2376
+ return rootObj
2377
+
2378
+
2379
+ def main():
2380
+ args = sys.argv[1:]
2381
+ if len(args) == 1:
2382
+ parse(args[0])
2383
+ else:
2384
+ usage()
2385
+
2386
+
2387
+ if __name__ == '__main__':
2388
+ #import pdb; pdb.set_trace()
2389
+ main()
2390
+
2391
+ RenameMappings_ = {
2392
+ }
2393
+
2394
+ #
2395
+ # Mapping of namespaces to types defined in them
2396
+ # and the file in which each is defined.
2397
+ # simpleTypes are marked "ST" and complexTypes "CT".
2398
+ NamespaceToDefMappings_ = {'http://www.canadapost.ca/ws/openreturn-v2': [('ContactNameType',
2399
+ './schemas/openreturn.xsd',
2400
+ 'ST'),
2401
+ ('CompanyNameType',
2402
+ './schemas/openreturn.xsd',
2403
+ 'ST'),
2404
+ ('OpenReturnType',
2405
+ './schemas/openreturn.xsd',
2406
+ 'CT'),
2407
+ ('OpenReturnDetailsType',
2408
+ './schemas/openreturn.xsd',
2409
+ 'CT'),
2410
+ ('OpenReturnInfoType',
2411
+ './schemas/openreturn.xsd',
2412
+ 'CT'),
2413
+ ('SettlementInfoType',
2414
+ './schemas/openreturn.xsd',
2415
+ 'CT'),
2416
+ ('DomesticAddressType',
2417
+ './schemas/openreturn.xsd',
2418
+ 'CT'),
2419
+ ('DomesticAddressDetailsType',
2420
+ './schemas/openreturn.xsd',
2421
+ 'CT'),
2422
+ ('PrintPreferencesType',
2423
+ './schemas/openreturn.xsd',
2424
+ 'CT'),
2425
+ ('OpenReturnTemplatesInfoType',
2426
+ './schemas/openreturn.xsd',
2427
+ 'CT')]}
2428
+
2429
+ __all__ = [
2430
+ "DomesticAddressDetailsType",
2431
+ "DomesticAddressType",
2432
+ "OpenReturnDetailsType",
2433
+ "OpenReturnInfoType",
2434
+ "OpenReturnTemplatesInfoType",
2435
+ "OpenReturnType",
2436
+ "PrintPreferencesType",
2437
+ "SettlementInfoType"
2438
+ ]