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,3389 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #
5
+ # Generated Sat Mar 16 02:19:28 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/authreturn.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./schemas/authreturn.xsd
14
+ #
15
+ # Command line:
16
+ # /home/kserver/Workspace/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio/schemas/canadapost/authreturn.py" ./schemas/authreturn.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
+ RETURN_LABEL='returnLabel'
1009
+
1010
+
1011
+ class email_subjectType(str, Enum):
1012
+ TRACKING='tracking'
1013
+ CUSTOMERREF_1='customer-ref-1'
1014
+ CUSTOMERREF_2='customer-ref-2'
1015
+
1016
+
1017
+ class encodingType(str, Enum):
1018
+ PDF='PDF'
1019
+ ZPL='ZPL'
1020
+
1021
+
1022
+ class output_formatType(str, Enum):
1023
+ _8_5_X_11='8.5x11'
1024
+ _4_X_6='4x6'
1025
+ _3_X_5='3x5'
1026
+
1027
+
1028
+ #
1029
+ # Start data representation classes
1030
+ #
1031
+ class AuthorizedReturnInfoType(GeneratedsSuper):
1032
+ __hash__ = GeneratedsSuper.__hash__
1033
+ subclass = None
1034
+ superclass = None
1035
+ def __init__(self, tracking_pin=None, public_key_info=None, links=None, gds_collector_=None, **kwargs_):
1036
+ self.gds_collector_ = gds_collector_
1037
+ self.gds_elementtree_node_ = None
1038
+ self.original_tagname_ = None
1039
+ self.parent_object_ = kwargs_.get('parent_object_')
1040
+ self.ns_prefix_ = None
1041
+ self.tracking_pin = tracking_pin
1042
+ self.validate_TrackingPINType(self.tracking_pin)
1043
+ self.tracking_pin_nsprefix_ = None
1044
+ self.public_key_info = public_key_info
1045
+ self.public_key_info_nsprefix_ = None
1046
+ self.links = links
1047
+ self.links_nsprefix_ = None
1048
+ def factory(*args_, **kwargs_):
1049
+ if CurrentSubclassModule_ is not None:
1050
+ subclass = getSubclassFromModule_(
1051
+ CurrentSubclassModule_, AuthorizedReturnInfoType)
1052
+ if subclass is not None:
1053
+ return subclass(*args_, **kwargs_)
1054
+ if AuthorizedReturnInfoType.subclass:
1055
+ return AuthorizedReturnInfoType.subclass(*args_, **kwargs_)
1056
+ else:
1057
+ return AuthorizedReturnInfoType(*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_tracking_pin(self):
1064
+ return self.tracking_pin
1065
+ def set_tracking_pin(self, tracking_pin):
1066
+ self.tracking_pin = tracking_pin
1067
+ def get_public_key_info(self):
1068
+ return self.public_key_info
1069
+ def set_public_key_info(self, public_key_info):
1070
+ self.public_key_info = public_key_info
1071
+ def get_links(self):
1072
+ return self.links
1073
+ def set_links(self, links):
1074
+ self.links = links
1075
+ def validate_TrackingPINType(self, value):
1076
+ result = True
1077
+ # Validate type TrackingPINType, a restriction on xsd:normalizedString.
1078
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1079
+ if not isinstance(value, str):
1080
+ lineno = self.gds_get_node_lineno_()
1081
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1082
+ return False
1083
+ if len(value) > 16:
1084
+ lineno = self.gds_get_node_lineno_()
1085
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on TrackingPINType' % {"value": value, "lineno": lineno} )
1086
+ result = False
1087
+ if len(value) < 11:
1088
+ lineno = self.gds_get_node_lineno_()
1089
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on TrackingPINType' % {"value" : value, "lineno": lineno} )
1090
+ result = False
1091
+ return result
1092
+ def has__content(self):
1093
+ if (
1094
+ self.tracking_pin is not None or
1095
+ self.public_key_info is not None or
1096
+ self.links is not None
1097
+ ):
1098
+ return True
1099
+ else:
1100
+ return False
1101
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AuthorizedReturnInfoType', pretty_print=True):
1102
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('AuthorizedReturnInfoType')
1103
+ if imported_ns_def_ is not None:
1104
+ namespacedef_ = imported_ns_def_
1105
+ if pretty_print:
1106
+ eol_ = '\n'
1107
+ else:
1108
+ eol_ = ''
1109
+ if self.original_tagname_ is not None and name_ == 'AuthorizedReturnInfoType':
1110
+ name_ = self.original_tagname_
1111
+ if UseCapturedNS_ and self.ns_prefix_:
1112
+ namespaceprefix_ = self.ns_prefix_ + ':'
1113
+ showIndent(outfile, level, pretty_print)
1114
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1115
+ already_processed = set()
1116
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='AuthorizedReturnInfoType')
1117
+ if self.has__content():
1118
+ outfile.write('>%s' % (eol_, ))
1119
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='AuthorizedReturnInfoType', pretty_print=pretty_print)
1120
+ showIndent(outfile, level, pretty_print)
1121
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1122
+ else:
1123
+ outfile.write('/>%s' % (eol_, ))
1124
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='AuthorizedReturnInfoType'):
1125
+ pass
1126
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AuthorizedReturnInfoType', fromsubclass_=False, pretty_print=True):
1127
+ if pretty_print:
1128
+ eol_ = '\n'
1129
+ else:
1130
+ eol_ = ''
1131
+ if self.tracking_pin is not None:
1132
+ namespaceprefix_ = self.tracking_pin_nsprefix_ + ':' if (UseCapturedNS_ and self.tracking_pin_nsprefix_) else ''
1133
+ showIndent(outfile, level, pretty_print)
1134
+ outfile.write('<%stracking-pin>%s</%stracking-pin>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.tracking_pin), input_name='tracking-pin')), namespaceprefix_ , eol_))
1135
+ if self.public_key_info is not None:
1136
+ namespaceprefix_ = self.public_key_info_nsprefix_ + ':' if (UseCapturedNS_ and self.public_key_info_nsprefix_) else ''
1137
+ self.public_key_info.export(outfile, level, namespaceprefix_, namespacedef_='', name_='public-key-info', pretty_print=pretty_print)
1138
+ if self.links is not None:
1139
+ namespaceprefix_ = self.links_nsprefix_ + ':' if (UseCapturedNS_ and self.links_nsprefix_) else ''
1140
+ showIndent(outfile, level, pretty_print)
1141
+ outfile.write('<%slinks>%s</%slinks>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.links), input_name='links')), namespaceprefix_ , eol_))
1142
+ def build(self, node, gds_collector_=None):
1143
+ self.gds_collector_ = gds_collector_
1144
+ if SaveElementTreeNode:
1145
+ self.gds_elementtree_node_ = node
1146
+ already_processed = set()
1147
+ self.ns_prefix_ = node.prefix
1148
+ self._buildAttributes(node, node.attrib, already_processed)
1149
+ for child in node:
1150
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1151
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1152
+ return self
1153
+ def _buildAttributes(self, node, attrs, already_processed):
1154
+ pass
1155
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1156
+ if nodeName_ == 'tracking-pin':
1157
+ value_ = child_.text
1158
+ value_ = self.gds_parse_string(value_, node, 'tracking_pin')
1159
+ value_ = self.gds_validate_string(value_, node, 'tracking_pin')
1160
+ self.tracking_pin = value_
1161
+ self.tracking_pin_nsprefix_ = child_.prefix
1162
+ # validate type TrackingPINType
1163
+ self.validate_TrackingPINType(self.tracking_pin)
1164
+ elif nodeName_ == 'public-key-info':
1165
+ obj_ = PublicKeyInfoType.factory(parent_object_=self)
1166
+ obj_.build(child_, gds_collector_=gds_collector_)
1167
+ self.public_key_info = obj_
1168
+ obj_.original_tagname_ = 'public-key-info'
1169
+ elif nodeName_ == 'links':
1170
+ value_ = child_.text
1171
+ value_ = self.gds_parse_string(value_, node, 'links')
1172
+ value_ = self.gds_validate_string(value_, node, 'links')
1173
+ self.links = value_
1174
+ self.links_nsprefix_ = child_.prefix
1175
+ # end class AuthorizedReturnInfoType
1176
+
1177
+
1178
+ class PublicKeyInfoType(GeneratedsSuper):
1179
+ __hash__ = GeneratedsSuper.__hash__
1180
+ subclass = None
1181
+ superclass = None
1182
+ def __init__(self, expiry_date=None, url=None, gds_collector_=None, **kwargs_):
1183
+ self.gds_collector_ = gds_collector_
1184
+ self.gds_elementtree_node_ = None
1185
+ self.original_tagname_ = None
1186
+ self.parent_object_ = kwargs_.get('parent_object_')
1187
+ self.ns_prefix_ = None
1188
+ if isinstance(expiry_date, BaseStrType_):
1189
+ initvalue_ = datetime_.datetime.strptime(expiry_date, '%Y-%m-%dT%H:%M:%S')
1190
+ else:
1191
+ initvalue_ = expiry_date
1192
+ self.expiry_date = initvalue_
1193
+ self.expiry_date_nsprefix_ = None
1194
+ self.url = url
1195
+ self.url_nsprefix_ = None
1196
+ def factory(*args_, **kwargs_):
1197
+ if CurrentSubclassModule_ is not None:
1198
+ subclass = getSubclassFromModule_(
1199
+ CurrentSubclassModule_, PublicKeyInfoType)
1200
+ if subclass is not None:
1201
+ return subclass(*args_, **kwargs_)
1202
+ if PublicKeyInfoType.subclass:
1203
+ return PublicKeyInfoType.subclass(*args_, **kwargs_)
1204
+ else:
1205
+ return PublicKeyInfoType(*args_, **kwargs_)
1206
+ factory = staticmethod(factory)
1207
+ def get_ns_prefix_(self):
1208
+ return self.ns_prefix_
1209
+ def set_ns_prefix_(self, ns_prefix):
1210
+ self.ns_prefix_ = ns_prefix
1211
+ def get_expiry_date(self):
1212
+ return self.expiry_date
1213
+ def set_expiry_date(self, expiry_date):
1214
+ self.expiry_date = expiry_date
1215
+ def get_url(self):
1216
+ return self.url
1217
+ def set_url(self, url):
1218
+ self.url = url
1219
+ def has__content(self):
1220
+ if (
1221
+ self.expiry_date is not None or
1222
+ self.url is not None
1223
+ ):
1224
+ return True
1225
+ else:
1226
+ return False
1227
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PublicKeyInfoType', pretty_print=True):
1228
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('PublicKeyInfoType')
1229
+ if imported_ns_def_ is not None:
1230
+ namespacedef_ = imported_ns_def_
1231
+ if pretty_print:
1232
+ eol_ = '\n'
1233
+ else:
1234
+ eol_ = ''
1235
+ if self.original_tagname_ is not None and name_ == 'PublicKeyInfoType':
1236
+ name_ = self.original_tagname_
1237
+ if UseCapturedNS_ and self.ns_prefix_:
1238
+ namespaceprefix_ = self.ns_prefix_ + ':'
1239
+ showIndent(outfile, level, pretty_print)
1240
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1241
+ already_processed = set()
1242
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='PublicKeyInfoType')
1243
+ if self.has__content():
1244
+ outfile.write('>%s' % (eol_, ))
1245
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='PublicKeyInfoType', pretty_print=pretty_print)
1246
+ showIndent(outfile, level, pretty_print)
1247
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1248
+ else:
1249
+ outfile.write('/>%s' % (eol_, ))
1250
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='PublicKeyInfoType'):
1251
+ pass
1252
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PublicKeyInfoType', fromsubclass_=False, pretty_print=True):
1253
+ if pretty_print:
1254
+ eol_ = '\n'
1255
+ else:
1256
+ eol_ = ''
1257
+ if self.expiry_date is not None:
1258
+ namespaceprefix_ = self.expiry_date_nsprefix_ + ':' if (UseCapturedNS_ and self.expiry_date_nsprefix_) else ''
1259
+ showIndent(outfile, level, pretty_print)
1260
+ outfile.write('<%sexpiry-date>%s</%sexpiry-date>%s' % (namespaceprefix_ , self.gds_format_datetime(self.expiry_date, input_name='expiry-date'), namespaceprefix_ , eol_))
1261
+ if self.url is not None:
1262
+ namespaceprefix_ = self.url_nsprefix_ + ':' if (UseCapturedNS_ and self.url_nsprefix_) else ''
1263
+ showIndent(outfile, level, pretty_print)
1264
+ outfile.write('<%surl>%s</%surl>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.url), input_name='url')), namespaceprefix_ , eol_))
1265
+ def build(self, node, gds_collector_=None):
1266
+ self.gds_collector_ = gds_collector_
1267
+ if SaveElementTreeNode:
1268
+ self.gds_elementtree_node_ = node
1269
+ already_processed = set()
1270
+ self.ns_prefix_ = node.prefix
1271
+ self._buildAttributes(node, node.attrib, already_processed)
1272
+ for child in node:
1273
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1274
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1275
+ return self
1276
+ def _buildAttributes(self, node, attrs, already_processed):
1277
+ pass
1278
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1279
+ if nodeName_ == 'expiry-date':
1280
+ sval_ = child_.text
1281
+ dval_ = self.gds_parse_datetime(sval_)
1282
+ self.expiry_date = dval_
1283
+ self.expiry_date_nsprefix_ = child_.prefix
1284
+ elif nodeName_ == 'url':
1285
+ value_ = child_.text
1286
+ value_ = self.gds_parse_string(value_, node, 'url')
1287
+ value_ = self.gds_validate_string(value_, node, 'url')
1288
+ self.url = value_
1289
+ self.url_nsprefix_ = child_.prefix
1290
+ # end class PublicKeyInfoType
1291
+
1292
+
1293
+ class AuthorizedReturnType(GeneratedsSuper):
1294
+ __hash__ = GeneratedsSuper.__hash__
1295
+ subclass = None
1296
+ superclass = None
1297
+ def __init__(self, create_public_key=None, service_code=None, returner=None, receiver=None, parcel_characteristics=None, print_preferences=None, settlement_info=None, references=None, notifications=None, gds_collector_=None, **kwargs_):
1298
+ self.gds_collector_ = gds_collector_
1299
+ self.gds_elementtree_node_ = None
1300
+ self.original_tagname_ = None
1301
+ self.parent_object_ = kwargs_.get('parent_object_')
1302
+ self.ns_prefix_ = None
1303
+ self.create_public_key = create_public_key
1304
+ self.validate_create_public_keyType(self.create_public_key)
1305
+ self.create_public_key_nsprefix_ = None
1306
+ self.service_code = service_code
1307
+ self.service_code_nsprefix_ = None
1308
+ self.returner = returner
1309
+ self.returner_nsprefix_ = None
1310
+ self.receiver = receiver
1311
+ self.receiver_nsprefix_ = None
1312
+ self.parcel_characteristics = parcel_characteristics
1313
+ self.parcel_characteristics_nsprefix_ = None
1314
+ self.print_preferences = print_preferences
1315
+ self.print_preferences_nsprefix_ = None
1316
+ self.settlement_info = settlement_info
1317
+ self.settlement_info_nsprefix_ = None
1318
+ self.references = references
1319
+ self.references_nsprefix_ = None
1320
+ self.notifications = notifications
1321
+ self.notifications_nsprefix_ = None
1322
+ def factory(*args_, **kwargs_):
1323
+ if CurrentSubclassModule_ is not None:
1324
+ subclass = getSubclassFromModule_(
1325
+ CurrentSubclassModule_, AuthorizedReturnType)
1326
+ if subclass is not None:
1327
+ return subclass(*args_, **kwargs_)
1328
+ if AuthorizedReturnType.subclass:
1329
+ return AuthorizedReturnType.subclass(*args_, **kwargs_)
1330
+ else:
1331
+ return AuthorizedReturnType(*args_, **kwargs_)
1332
+ factory = staticmethod(factory)
1333
+ def get_ns_prefix_(self):
1334
+ return self.ns_prefix_
1335
+ def set_ns_prefix_(self, ns_prefix):
1336
+ self.ns_prefix_ = ns_prefix
1337
+ def get_create_public_key(self):
1338
+ return self.create_public_key
1339
+ def set_create_public_key(self, create_public_key):
1340
+ self.create_public_key = create_public_key
1341
+ def get_service_code(self):
1342
+ return self.service_code
1343
+ def set_service_code(self, service_code):
1344
+ self.service_code = service_code
1345
+ def get_returner(self):
1346
+ return self.returner
1347
+ def set_returner(self, returner):
1348
+ self.returner = returner
1349
+ def get_receiver(self):
1350
+ return self.receiver
1351
+ def set_receiver(self, receiver):
1352
+ self.receiver = receiver
1353
+ def get_parcel_characteristics(self):
1354
+ return self.parcel_characteristics
1355
+ def set_parcel_characteristics(self, parcel_characteristics):
1356
+ self.parcel_characteristics = parcel_characteristics
1357
+ def get_print_preferences(self):
1358
+ return self.print_preferences
1359
+ def set_print_preferences(self, print_preferences):
1360
+ self.print_preferences = print_preferences
1361
+ def get_settlement_info(self):
1362
+ return self.settlement_info
1363
+ def set_settlement_info(self, settlement_info):
1364
+ self.settlement_info = settlement_info
1365
+ def get_references(self):
1366
+ return self.references
1367
+ def set_references(self, references):
1368
+ self.references = references
1369
+ def get_notifications(self):
1370
+ return self.notifications
1371
+ def set_notifications(self, notifications):
1372
+ self.notifications = notifications
1373
+ def validate_create_public_keyType(self, value):
1374
+ result = True
1375
+ # Validate type create-public-keyType, a restriction on xsd:boolean.
1376
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1377
+ if not self.gds_validate_simple_patterns(
1378
+ self.validate_create_public_keyType_patterns_, value):
1379
+ self.gds_collector_.add_message('Value "%s" does not match xsd pattern restrictions: %s' % (encode_str_2_3(value), self.validate_create_public_keyType_patterns_, ))
1380
+ result = False
1381
+ return result
1382
+ validate_create_public_keyType_patterns_ = [['^(true)$']]
1383
+ def has__content(self):
1384
+ if (
1385
+ self.create_public_key is not None or
1386
+ self.service_code is not None or
1387
+ self.returner is not None or
1388
+ self.receiver is not None or
1389
+ self.parcel_characteristics is not None or
1390
+ self.print_preferences is not None or
1391
+ self.settlement_info is not None or
1392
+ self.references is not None or
1393
+ self.notifications is not None
1394
+ ):
1395
+ return True
1396
+ else:
1397
+ return False
1398
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AuthorizedReturnType', pretty_print=True):
1399
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('AuthorizedReturnType')
1400
+ if imported_ns_def_ is not None:
1401
+ namespacedef_ = imported_ns_def_
1402
+ if pretty_print:
1403
+ eol_ = '\n'
1404
+ else:
1405
+ eol_ = ''
1406
+ if self.original_tagname_ is not None and name_ == 'AuthorizedReturnType':
1407
+ name_ = self.original_tagname_
1408
+ if UseCapturedNS_ and self.ns_prefix_:
1409
+ namespaceprefix_ = self.ns_prefix_ + ':'
1410
+ showIndent(outfile, level, pretty_print)
1411
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1412
+ already_processed = set()
1413
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='AuthorizedReturnType')
1414
+ if self.has__content():
1415
+ outfile.write('>%s' % (eol_, ))
1416
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='AuthorizedReturnType', pretty_print=pretty_print)
1417
+ showIndent(outfile, level, pretty_print)
1418
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1419
+ else:
1420
+ outfile.write('/>%s' % (eol_, ))
1421
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='AuthorizedReturnType'):
1422
+ pass
1423
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AuthorizedReturnType', fromsubclass_=False, pretty_print=True):
1424
+ if pretty_print:
1425
+ eol_ = '\n'
1426
+ else:
1427
+ eol_ = ''
1428
+ if self.create_public_key is not None:
1429
+ namespaceprefix_ = self.create_public_key_nsprefix_ + ':' if (UseCapturedNS_ and self.create_public_key_nsprefix_) else ''
1430
+ showIndent(outfile, level, pretty_print)
1431
+ outfile.write('<%screate-public-key>%s</%screate-public-key>%s' % (namespaceprefix_ , self.gds_format_boolean(self.create_public_key, input_name='create-public-key'), namespaceprefix_ , eol_))
1432
+ if self.service_code is not None:
1433
+ namespaceprefix_ = self.service_code_nsprefix_ + ':' if (UseCapturedNS_ and self.service_code_nsprefix_) else ''
1434
+ showIndent(outfile, level, pretty_print)
1435
+ 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_))
1436
+ if self.returner is not None:
1437
+ namespaceprefix_ = self.returner_nsprefix_ + ':' if (UseCapturedNS_ and self.returner_nsprefix_) else ''
1438
+ self.returner.export(outfile, level, namespaceprefix_, namespacedef_='', name_='returner', pretty_print=pretty_print)
1439
+ if self.receiver is not None:
1440
+ namespaceprefix_ = self.receiver_nsprefix_ + ':' if (UseCapturedNS_ and self.receiver_nsprefix_) else ''
1441
+ self.receiver.export(outfile, level, namespaceprefix_, namespacedef_='', name_='receiver', pretty_print=pretty_print)
1442
+ if self.parcel_characteristics is not None:
1443
+ namespaceprefix_ = self.parcel_characteristics_nsprefix_ + ':' if (UseCapturedNS_ and self.parcel_characteristics_nsprefix_) else ''
1444
+ self.parcel_characteristics.export(outfile, level, namespaceprefix_, namespacedef_='', name_='parcel-characteristics', pretty_print=pretty_print)
1445
+ if self.print_preferences is not None:
1446
+ namespaceprefix_ = self.print_preferences_nsprefix_ + ':' if (UseCapturedNS_ and self.print_preferences_nsprefix_) else ''
1447
+ self.print_preferences.export(outfile, level, namespaceprefix_, namespacedef_='', name_='print-preferences', pretty_print=pretty_print)
1448
+ if self.settlement_info is not None:
1449
+ namespaceprefix_ = self.settlement_info_nsprefix_ + ':' if (UseCapturedNS_ and self.settlement_info_nsprefix_) else ''
1450
+ self.settlement_info.export(outfile, level, namespaceprefix_, namespacedef_='', name_='settlement-info', pretty_print=pretty_print)
1451
+ if self.references is not None:
1452
+ namespaceprefix_ = self.references_nsprefix_ + ':' if (UseCapturedNS_ and self.references_nsprefix_) else ''
1453
+ self.references.export(outfile, level, namespaceprefix_, namespacedef_='', name_='references', pretty_print=pretty_print)
1454
+ if self.notifications is not None:
1455
+ namespaceprefix_ = self.notifications_nsprefix_ + ':' if (UseCapturedNS_ and self.notifications_nsprefix_) else ''
1456
+ self.notifications.export(outfile, level, namespaceprefix_, namespacedef_='', name_='notifications', pretty_print=pretty_print)
1457
+ def build(self, node, gds_collector_=None):
1458
+ self.gds_collector_ = gds_collector_
1459
+ if SaveElementTreeNode:
1460
+ self.gds_elementtree_node_ = node
1461
+ already_processed = set()
1462
+ self.ns_prefix_ = node.prefix
1463
+ self._buildAttributes(node, node.attrib, already_processed)
1464
+ for child in node:
1465
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1466
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1467
+ return self
1468
+ def _buildAttributes(self, node, attrs, already_processed):
1469
+ pass
1470
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1471
+ if nodeName_ == 'create-public-key':
1472
+ sval_ = child_.text
1473
+ ival_ = self.gds_parse_boolean(sval_, node, 'create_public_key')
1474
+ ival_ = self.gds_validate_boolean(ival_, node, 'create_public_key')
1475
+ self.create_public_key = ival_
1476
+ self.create_public_key_nsprefix_ = child_.prefix
1477
+ # validate type create-public-keyType
1478
+ self.validate_create_public_keyType(self.create_public_key)
1479
+ elif nodeName_ == 'service-code':
1480
+ value_ = child_.text
1481
+ value_ = self.gds_parse_string(value_, node, 'service_code')
1482
+ value_ = self.gds_validate_string(value_, node, 'service_code')
1483
+ self.service_code = value_
1484
+ self.service_code_nsprefix_ = child_.prefix
1485
+ elif nodeName_ == 'returner':
1486
+ obj_ = ReturnerType.factory(parent_object_=self)
1487
+ obj_.build(child_, gds_collector_=gds_collector_)
1488
+ self.returner = obj_
1489
+ obj_.original_tagname_ = 'returner'
1490
+ elif nodeName_ == 'receiver':
1491
+ obj_ = ReceiverType.factory(parent_object_=self)
1492
+ obj_.build(child_, gds_collector_=gds_collector_)
1493
+ self.receiver = obj_
1494
+ obj_.original_tagname_ = 'receiver'
1495
+ elif nodeName_ == 'parcel-characteristics':
1496
+ obj_ = ParcelCharacteristicsType.factory(parent_object_=self)
1497
+ obj_.build(child_, gds_collector_=gds_collector_)
1498
+ self.parcel_characteristics = obj_
1499
+ obj_.original_tagname_ = 'parcel-characteristics'
1500
+ elif nodeName_ == 'print-preferences':
1501
+ obj_ = PrintPreferencesType.factory(parent_object_=self)
1502
+ obj_.build(child_, gds_collector_=gds_collector_)
1503
+ self.print_preferences = obj_
1504
+ obj_.original_tagname_ = 'print-preferences'
1505
+ elif nodeName_ == 'settlement-info':
1506
+ obj_ = AuthSettlementInfoType.factory(parent_object_=self)
1507
+ obj_.build(child_, gds_collector_=gds_collector_)
1508
+ self.settlement_info = obj_
1509
+ obj_.original_tagname_ = 'settlement-info'
1510
+ elif nodeName_ == 'references':
1511
+ obj_ = ReferencesType.factory(parent_object_=self)
1512
+ obj_.build(child_, gds_collector_=gds_collector_)
1513
+ self.references = obj_
1514
+ obj_.original_tagname_ = 'references'
1515
+ elif nodeName_ == 'notifications':
1516
+ obj_ = NotificationsType.factory(parent_object_=self)
1517
+ obj_.build(child_, gds_collector_=gds_collector_)
1518
+ self.notifications = obj_
1519
+ obj_.original_tagname_ = 'notifications'
1520
+ # end class AuthorizedReturnType
1521
+
1522
+
1523
+ class AuthSettlementInfoType(GeneratedsSuper):
1524
+ __hash__ = GeneratedsSuper.__hash__
1525
+ subclass = None
1526
+ superclass = None
1527
+ def __init__(self, paid_by_customer=None, contract_id=None, gds_collector_=None, **kwargs_):
1528
+ self.gds_collector_ = gds_collector_
1529
+ self.gds_elementtree_node_ = None
1530
+ self.original_tagname_ = None
1531
+ self.parent_object_ = kwargs_.get('parent_object_')
1532
+ self.ns_prefix_ = None
1533
+ self.paid_by_customer = paid_by_customer
1534
+ self.paid_by_customer_nsprefix_ = None
1535
+ self.contract_id = contract_id
1536
+ self.contract_id_nsprefix_ = None
1537
+ def factory(*args_, **kwargs_):
1538
+ if CurrentSubclassModule_ is not None:
1539
+ subclass = getSubclassFromModule_(
1540
+ CurrentSubclassModule_, AuthSettlementInfoType)
1541
+ if subclass is not None:
1542
+ return subclass(*args_, **kwargs_)
1543
+ if AuthSettlementInfoType.subclass:
1544
+ return AuthSettlementInfoType.subclass(*args_, **kwargs_)
1545
+ else:
1546
+ return AuthSettlementInfoType(*args_, **kwargs_)
1547
+ factory = staticmethod(factory)
1548
+ def get_ns_prefix_(self):
1549
+ return self.ns_prefix_
1550
+ def set_ns_prefix_(self, ns_prefix):
1551
+ self.ns_prefix_ = ns_prefix
1552
+ def get_paid_by_customer(self):
1553
+ return self.paid_by_customer
1554
+ def set_paid_by_customer(self, paid_by_customer):
1555
+ self.paid_by_customer = paid_by_customer
1556
+ def get_contract_id(self):
1557
+ return self.contract_id
1558
+ def set_contract_id(self, contract_id):
1559
+ self.contract_id = contract_id
1560
+ def has__content(self):
1561
+ if (
1562
+ self.paid_by_customer is not None or
1563
+ self.contract_id is not None
1564
+ ):
1565
+ return True
1566
+ else:
1567
+ return False
1568
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AuthSettlementInfoType', pretty_print=True):
1569
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('AuthSettlementInfoType')
1570
+ if imported_ns_def_ is not None:
1571
+ namespacedef_ = imported_ns_def_
1572
+ if pretty_print:
1573
+ eol_ = '\n'
1574
+ else:
1575
+ eol_ = ''
1576
+ if self.original_tagname_ is not None and name_ == 'AuthSettlementInfoType':
1577
+ name_ = self.original_tagname_
1578
+ if UseCapturedNS_ and self.ns_prefix_:
1579
+ namespaceprefix_ = self.ns_prefix_ + ':'
1580
+ showIndent(outfile, level, pretty_print)
1581
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1582
+ already_processed = set()
1583
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='AuthSettlementInfoType')
1584
+ if self.has__content():
1585
+ outfile.write('>%s' % (eol_, ))
1586
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='AuthSettlementInfoType', pretty_print=pretty_print)
1587
+ showIndent(outfile, level, pretty_print)
1588
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1589
+ else:
1590
+ outfile.write('/>%s' % (eol_, ))
1591
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='AuthSettlementInfoType'):
1592
+ pass
1593
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AuthSettlementInfoType', fromsubclass_=False, pretty_print=True):
1594
+ if pretty_print:
1595
+ eol_ = '\n'
1596
+ else:
1597
+ eol_ = ''
1598
+ if self.paid_by_customer is not None:
1599
+ namespaceprefix_ = self.paid_by_customer_nsprefix_ + ':' if (UseCapturedNS_ and self.paid_by_customer_nsprefix_) else ''
1600
+ showIndent(outfile, level, pretty_print)
1601
+ outfile.write('<%spaid-by-customer>%s</%spaid-by-customer>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.paid_by_customer), input_name='paid-by-customer')), namespaceprefix_ , eol_))
1602
+ if self.contract_id is not None:
1603
+ namespaceprefix_ = self.contract_id_nsprefix_ + ':' if (UseCapturedNS_ and self.contract_id_nsprefix_) else ''
1604
+ showIndent(outfile, level, pretty_print)
1605
+ 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_))
1606
+ def build(self, node, gds_collector_=None):
1607
+ self.gds_collector_ = gds_collector_
1608
+ if SaveElementTreeNode:
1609
+ self.gds_elementtree_node_ = node
1610
+ already_processed = set()
1611
+ self.ns_prefix_ = node.prefix
1612
+ self._buildAttributes(node, node.attrib, already_processed)
1613
+ for child in node:
1614
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1615
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1616
+ return self
1617
+ def _buildAttributes(self, node, attrs, already_processed):
1618
+ pass
1619
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1620
+ if nodeName_ == 'paid-by-customer':
1621
+ value_ = child_.text
1622
+ value_ = self.gds_parse_string(value_, node, 'paid_by_customer')
1623
+ value_ = self.gds_validate_string(value_, node, 'paid_by_customer')
1624
+ self.paid_by_customer = value_
1625
+ self.paid_by_customer_nsprefix_ = child_.prefix
1626
+ elif nodeName_ == 'contract-id':
1627
+ value_ = child_.text
1628
+ value_ = self.gds_parse_string(value_, node, 'contract_id')
1629
+ value_ = self.gds_validate_string(value_, node, 'contract_id')
1630
+ self.contract_id = value_
1631
+ self.contract_id_nsprefix_ = child_.prefix
1632
+ # end class AuthSettlementInfoType
1633
+
1634
+
1635
+ class ReturnerType(GeneratedsSuper):
1636
+ __hash__ = GeneratedsSuper.__hash__
1637
+ subclass = None
1638
+ superclass = None
1639
+ def __init__(self, name=None, company=None, domestic_address=None, gds_collector_=None, **kwargs_):
1640
+ self.gds_collector_ = gds_collector_
1641
+ self.gds_elementtree_node_ = None
1642
+ self.original_tagname_ = None
1643
+ self.parent_object_ = kwargs_.get('parent_object_')
1644
+ self.ns_prefix_ = None
1645
+ self.name = name
1646
+ self.validate_ContactNameType(self.name)
1647
+ self.name_nsprefix_ = None
1648
+ self.company = company
1649
+ self.validate_CompanyNameType(self.company)
1650
+ self.company_nsprefix_ = None
1651
+ self.domestic_address = domestic_address
1652
+ self.domestic_address_nsprefix_ = None
1653
+ def factory(*args_, **kwargs_):
1654
+ if CurrentSubclassModule_ is not None:
1655
+ subclass = getSubclassFromModule_(
1656
+ CurrentSubclassModule_, ReturnerType)
1657
+ if subclass is not None:
1658
+ return subclass(*args_, **kwargs_)
1659
+ if ReturnerType.subclass:
1660
+ return ReturnerType.subclass(*args_, **kwargs_)
1661
+ else:
1662
+ return ReturnerType(*args_, **kwargs_)
1663
+ factory = staticmethod(factory)
1664
+ def get_ns_prefix_(self):
1665
+ return self.ns_prefix_
1666
+ def set_ns_prefix_(self, ns_prefix):
1667
+ self.ns_prefix_ = ns_prefix
1668
+ def get_name(self):
1669
+ return self.name
1670
+ def set_name(self, name):
1671
+ self.name = name
1672
+ def get_company(self):
1673
+ return self.company
1674
+ def set_company(self, company):
1675
+ self.company = company
1676
+ def get_domestic_address(self):
1677
+ return self.domestic_address
1678
+ def set_domestic_address(self, domestic_address):
1679
+ self.domestic_address = domestic_address
1680
+ def validate_ContactNameType(self, value):
1681
+ result = True
1682
+ # Validate type ContactNameType, a restriction on xsd:normalizedString.
1683
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1684
+ if not isinstance(value, str):
1685
+ lineno = self.gds_get_node_lineno_()
1686
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1687
+ return False
1688
+ if len(value) > 44:
1689
+ lineno = self.gds_get_node_lineno_()
1690
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on ContactNameType' % {"value": value, "lineno": lineno} )
1691
+ result = False
1692
+ if len(value) < 1:
1693
+ lineno = self.gds_get_node_lineno_()
1694
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on ContactNameType' % {"value" : value, "lineno": lineno} )
1695
+ result = False
1696
+ return result
1697
+ def validate_CompanyNameType(self, value):
1698
+ result = True
1699
+ # Validate type CompanyNameType, a restriction on xsd:normalizedString.
1700
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1701
+ if not isinstance(value, str):
1702
+ lineno = self.gds_get_node_lineno_()
1703
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1704
+ return False
1705
+ if len(value) > 44:
1706
+ lineno = self.gds_get_node_lineno_()
1707
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on CompanyNameType' % {"value": value, "lineno": lineno} )
1708
+ result = False
1709
+ if len(value) < 1:
1710
+ lineno = self.gds_get_node_lineno_()
1711
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on CompanyNameType' % {"value" : value, "lineno": lineno} )
1712
+ result = False
1713
+ return result
1714
+ def has__content(self):
1715
+ if (
1716
+ self.name is not None or
1717
+ self.company is not None or
1718
+ self.domestic_address is not None
1719
+ ):
1720
+ return True
1721
+ else:
1722
+ return False
1723
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ReturnerType', pretty_print=True):
1724
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ReturnerType')
1725
+ if imported_ns_def_ is not None:
1726
+ namespacedef_ = imported_ns_def_
1727
+ if pretty_print:
1728
+ eol_ = '\n'
1729
+ else:
1730
+ eol_ = ''
1731
+ if self.original_tagname_ is not None and name_ == 'ReturnerType':
1732
+ name_ = self.original_tagname_
1733
+ if UseCapturedNS_ and self.ns_prefix_:
1734
+ namespaceprefix_ = self.ns_prefix_ + ':'
1735
+ showIndent(outfile, level, pretty_print)
1736
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1737
+ already_processed = set()
1738
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ReturnerType')
1739
+ if self.has__content():
1740
+ outfile.write('>%s' % (eol_, ))
1741
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ReturnerType', pretty_print=pretty_print)
1742
+ showIndent(outfile, level, pretty_print)
1743
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1744
+ else:
1745
+ outfile.write('/>%s' % (eol_, ))
1746
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ReturnerType'):
1747
+ pass
1748
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ReturnerType', fromsubclass_=False, pretty_print=True):
1749
+ if pretty_print:
1750
+ eol_ = '\n'
1751
+ else:
1752
+ eol_ = ''
1753
+ if self.name is not None:
1754
+ namespaceprefix_ = self.name_nsprefix_ + ':' if (UseCapturedNS_ and self.name_nsprefix_) else ''
1755
+ showIndent(outfile, level, pretty_print)
1756
+ outfile.write('<%sname>%s</%sname>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.name), input_name='name')), namespaceprefix_ , eol_))
1757
+ if self.company is not None:
1758
+ namespaceprefix_ = self.company_nsprefix_ + ':' if (UseCapturedNS_ and self.company_nsprefix_) else ''
1759
+ showIndent(outfile, level, pretty_print)
1760
+ outfile.write('<%scompany>%s</%scompany>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.company), input_name='company')), namespaceprefix_ , eol_))
1761
+ if self.domestic_address is not None:
1762
+ namespaceprefix_ = self.domestic_address_nsprefix_ + ':' if (UseCapturedNS_ and self.domestic_address_nsprefix_) else ''
1763
+ self.domestic_address.export(outfile, level, namespaceprefix_, namespacedef_='', name_='domestic-address', pretty_print=pretty_print)
1764
+ def build(self, node, gds_collector_=None):
1765
+ self.gds_collector_ = gds_collector_
1766
+ if SaveElementTreeNode:
1767
+ self.gds_elementtree_node_ = node
1768
+ already_processed = set()
1769
+ self.ns_prefix_ = node.prefix
1770
+ self._buildAttributes(node, node.attrib, already_processed)
1771
+ for child in node:
1772
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1773
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1774
+ return self
1775
+ def _buildAttributes(self, node, attrs, already_processed):
1776
+ pass
1777
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1778
+ if nodeName_ == 'name':
1779
+ value_ = child_.text
1780
+ value_ = self.gds_parse_string(value_, node, 'name')
1781
+ value_ = self.gds_validate_string(value_, node, 'name')
1782
+ self.name = value_
1783
+ self.name_nsprefix_ = child_.prefix
1784
+ # validate type ContactNameType
1785
+ self.validate_ContactNameType(self.name)
1786
+ elif nodeName_ == 'company':
1787
+ value_ = child_.text
1788
+ value_ = self.gds_parse_string(value_, node, 'company')
1789
+ value_ = self.gds_validate_string(value_, node, 'company')
1790
+ self.company = value_
1791
+ self.company_nsprefix_ = child_.prefix
1792
+ # validate type CompanyNameType
1793
+ self.validate_CompanyNameType(self.company)
1794
+ elif nodeName_ == 'domestic-address':
1795
+ obj_ = DomesticAddressDetailsType.factory(parent_object_=self)
1796
+ obj_.build(child_, gds_collector_=gds_collector_)
1797
+ self.domestic_address = obj_
1798
+ obj_.original_tagname_ = 'domestic-address'
1799
+ # end class ReturnerType
1800
+
1801
+
1802
+ class ReceiverType(GeneratedsSuper):
1803
+ __hash__ = GeneratedsSuper.__hash__
1804
+ subclass = None
1805
+ superclass = None
1806
+ def __init__(self, name=None, company=None, email=None, receiver_voice_number=None, domestic_address=None, gds_collector_=None, **kwargs_):
1807
+ self.gds_collector_ = gds_collector_
1808
+ self.gds_elementtree_node_ = None
1809
+ self.original_tagname_ = None
1810
+ self.parent_object_ = kwargs_.get('parent_object_')
1811
+ self.ns_prefix_ = None
1812
+ self.name = name
1813
+ self.validate_ContactNameType(self.name)
1814
+ self.name_nsprefix_ = None
1815
+ self.company = company
1816
+ self.validate_CompanyNameType(self.company)
1817
+ self.company_nsprefix_ = None
1818
+ self.email = email
1819
+ self.validate_EmailType(self.email)
1820
+ self.email_nsprefix_ = None
1821
+ self.receiver_voice_number = receiver_voice_number
1822
+ self.receiver_voice_number_nsprefix_ = None
1823
+ self.domestic_address = domestic_address
1824
+ self.domestic_address_nsprefix_ = None
1825
+ def factory(*args_, **kwargs_):
1826
+ if CurrentSubclassModule_ is not None:
1827
+ subclass = getSubclassFromModule_(
1828
+ CurrentSubclassModule_, ReceiverType)
1829
+ if subclass is not None:
1830
+ return subclass(*args_, **kwargs_)
1831
+ if ReceiverType.subclass:
1832
+ return ReceiverType.subclass(*args_, **kwargs_)
1833
+ else:
1834
+ return ReceiverType(*args_, **kwargs_)
1835
+ factory = staticmethod(factory)
1836
+ def get_ns_prefix_(self):
1837
+ return self.ns_prefix_
1838
+ def set_ns_prefix_(self, ns_prefix):
1839
+ self.ns_prefix_ = ns_prefix
1840
+ def get_name(self):
1841
+ return self.name
1842
+ def set_name(self, name):
1843
+ self.name = name
1844
+ def get_company(self):
1845
+ return self.company
1846
+ def set_company(self, company):
1847
+ self.company = company
1848
+ def get_email(self):
1849
+ return self.email
1850
+ def set_email(self, email):
1851
+ self.email = email
1852
+ def get_receiver_voice_number(self):
1853
+ return self.receiver_voice_number
1854
+ def set_receiver_voice_number(self, receiver_voice_number):
1855
+ self.receiver_voice_number = receiver_voice_number
1856
+ def get_domestic_address(self):
1857
+ return self.domestic_address
1858
+ def set_domestic_address(self, domestic_address):
1859
+ self.domestic_address = domestic_address
1860
+ def validate_ContactNameType(self, value):
1861
+ result = True
1862
+ # Validate type ContactNameType, a restriction on xsd:normalizedString.
1863
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1864
+ if not isinstance(value, str):
1865
+ lineno = self.gds_get_node_lineno_()
1866
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1867
+ return False
1868
+ if len(value) > 44:
1869
+ lineno = self.gds_get_node_lineno_()
1870
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on ContactNameType' % {"value": value, "lineno": lineno} )
1871
+ result = False
1872
+ if len(value) < 1:
1873
+ lineno = self.gds_get_node_lineno_()
1874
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on ContactNameType' % {"value" : value, "lineno": lineno} )
1875
+ result = False
1876
+ return result
1877
+ def validate_CompanyNameType(self, value):
1878
+ result = True
1879
+ # Validate type CompanyNameType, a restriction on xsd:normalizedString.
1880
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1881
+ if not isinstance(value, str):
1882
+ lineno = self.gds_get_node_lineno_()
1883
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1884
+ return False
1885
+ if len(value) > 44:
1886
+ lineno = self.gds_get_node_lineno_()
1887
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on CompanyNameType' % {"value": value, "lineno": lineno} )
1888
+ result = False
1889
+ if len(value) < 1:
1890
+ lineno = self.gds_get_node_lineno_()
1891
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on CompanyNameType' % {"value" : value, "lineno": lineno} )
1892
+ result = False
1893
+ return result
1894
+ def validate_EmailType(self, value):
1895
+ result = True
1896
+ # Validate type EmailType, a restriction on xsd:normalizedString.
1897
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1898
+ if not isinstance(value, str):
1899
+ lineno = self.gds_get_node_lineno_()
1900
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1901
+ return False
1902
+ if len(value) > 60:
1903
+ lineno = self.gds_get_node_lineno_()
1904
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on EmailType' % {"value": value, "lineno": lineno} )
1905
+ result = False
1906
+ if not self.gds_validate_simple_patterns(
1907
+ self.validate_EmailType_patterns_, value):
1908
+ self.gds_collector_.add_message('Value "%s" does not match xsd pattern restrictions: %s' % (encode_str_2_3(value), self.validate_EmailType_patterns_, ))
1909
+ result = False
1910
+ return result
1911
+ validate_EmailType_patterns_ = [["^((['_A-Za-z0-9\\-\\+]+)(\\.['_A-Za-z0-9\\-\\+]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,5}))$"]]
1912
+ def has__content(self):
1913
+ if (
1914
+ self.name is not None or
1915
+ self.company is not None or
1916
+ self.email is not None or
1917
+ self.receiver_voice_number is not None or
1918
+ self.domestic_address is not None
1919
+ ):
1920
+ return True
1921
+ else:
1922
+ return False
1923
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ReceiverType', pretty_print=True):
1924
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ReceiverType')
1925
+ if imported_ns_def_ is not None:
1926
+ namespacedef_ = imported_ns_def_
1927
+ if pretty_print:
1928
+ eol_ = '\n'
1929
+ else:
1930
+ eol_ = ''
1931
+ if self.original_tagname_ is not None and name_ == 'ReceiverType':
1932
+ name_ = self.original_tagname_
1933
+ if UseCapturedNS_ and self.ns_prefix_:
1934
+ namespaceprefix_ = self.ns_prefix_ + ':'
1935
+ showIndent(outfile, level, pretty_print)
1936
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1937
+ already_processed = set()
1938
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ReceiverType')
1939
+ if self.has__content():
1940
+ outfile.write('>%s' % (eol_, ))
1941
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ReceiverType', pretty_print=pretty_print)
1942
+ showIndent(outfile, level, pretty_print)
1943
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1944
+ else:
1945
+ outfile.write('/>%s' % (eol_, ))
1946
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ReceiverType'):
1947
+ pass
1948
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ReceiverType', fromsubclass_=False, pretty_print=True):
1949
+ if pretty_print:
1950
+ eol_ = '\n'
1951
+ else:
1952
+ eol_ = ''
1953
+ if self.name is not None:
1954
+ namespaceprefix_ = self.name_nsprefix_ + ':' if (UseCapturedNS_ and self.name_nsprefix_) else ''
1955
+ showIndent(outfile, level, pretty_print)
1956
+ outfile.write('<%sname>%s</%sname>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.name), input_name='name')), namespaceprefix_ , eol_))
1957
+ if self.company is not None:
1958
+ namespaceprefix_ = self.company_nsprefix_ + ':' if (UseCapturedNS_ and self.company_nsprefix_) else ''
1959
+ showIndent(outfile, level, pretty_print)
1960
+ outfile.write('<%scompany>%s</%scompany>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.company), input_name='company')), namespaceprefix_ , eol_))
1961
+ if self.email is not None:
1962
+ namespaceprefix_ = self.email_nsprefix_ + ':' if (UseCapturedNS_ and self.email_nsprefix_) else ''
1963
+ showIndent(outfile, level, pretty_print)
1964
+ outfile.write('<%semail>%s</%semail>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.email), input_name='email')), namespaceprefix_ , eol_))
1965
+ if self.receiver_voice_number is not None:
1966
+ namespaceprefix_ = self.receiver_voice_number_nsprefix_ + ':' if (UseCapturedNS_ and self.receiver_voice_number_nsprefix_) else ''
1967
+ showIndent(outfile, level, pretty_print)
1968
+ outfile.write('<%sreceiver-voice-number>%s</%sreceiver-voice-number>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.receiver_voice_number), input_name='receiver-voice-number')), namespaceprefix_ , eol_))
1969
+ if self.domestic_address is not None:
1970
+ namespaceprefix_ = self.domestic_address_nsprefix_ + ':' if (UseCapturedNS_ and self.domestic_address_nsprefix_) else ''
1971
+ self.domestic_address.export(outfile, level, namespaceprefix_, namespacedef_='', name_='domestic-address', pretty_print=pretty_print)
1972
+ def build(self, node, gds_collector_=None):
1973
+ self.gds_collector_ = gds_collector_
1974
+ if SaveElementTreeNode:
1975
+ self.gds_elementtree_node_ = node
1976
+ already_processed = set()
1977
+ self.ns_prefix_ = node.prefix
1978
+ self._buildAttributes(node, node.attrib, already_processed)
1979
+ for child in node:
1980
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1981
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1982
+ return self
1983
+ def _buildAttributes(self, node, attrs, already_processed):
1984
+ pass
1985
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1986
+ if nodeName_ == 'name':
1987
+ value_ = child_.text
1988
+ value_ = self.gds_parse_string(value_, node, 'name')
1989
+ value_ = self.gds_validate_string(value_, node, 'name')
1990
+ self.name = value_
1991
+ self.name_nsprefix_ = child_.prefix
1992
+ # validate type ContactNameType
1993
+ self.validate_ContactNameType(self.name)
1994
+ elif nodeName_ == 'company':
1995
+ value_ = child_.text
1996
+ value_ = self.gds_parse_string(value_, node, 'company')
1997
+ value_ = self.gds_validate_string(value_, node, 'company')
1998
+ self.company = value_
1999
+ self.company_nsprefix_ = child_.prefix
2000
+ # validate type CompanyNameType
2001
+ self.validate_CompanyNameType(self.company)
2002
+ elif nodeName_ == 'email':
2003
+ value_ = child_.text
2004
+ value_ = self.gds_parse_string(value_, node, 'email')
2005
+ value_ = self.gds_validate_string(value_, node, 'email')
2006
+ self.email = value_
2007
+ self.email_nsprefix_ = child_.prefix
2008
+ # validate type EmailType
2009
+ self.validate_EmailType(self.email)
2010
+ elif nodeName_ == 'receiver-voice-number':
2011
+ value_ = child_.text
2012
+ value_ = self.gds_parse_string(value_, node, 'receiver_voice_number')
2013
+ value_ = self.gds_validate_string(value_, node, 'receiver_voice_number')
2014
+ self.receiver_voice_number = value_
2015
+ self.receiver_voice_number_nsprefix_ = child_.prefix
2016
+ elif nodeName_ == 'domestic-address':
2017
+ obj_ = DomesticAddressDetailsType.factory(parent_object_=self)
2018
+ obj_.build(child_, gds_collector_=gds_collector_)
2019
+ self.domestic_address = obj_
2020
+ obj_.original_tagname_ = 'domestic-address'
2021
+ # end class ReceiverType
2022
+
2023
+
2024
+ class ReferencesType(GeneratedsSuper):
2025
+ __hash__ = GeneratedsSuper.__hash__
2026
+ subclass = None
2027
+ superclass = None
2028
+ def __init__(self, customer_ref_1=None, customer_ref_2=None, gds_collector_=None, **kwargs_):
2029
+ self.gds_collector_ = gds_collector_
2030
+ self.gds_elementtree_node_ = None
2031
+ self.original_tagname_ = None
2032
+ self.parent_object_ = kwargs_.get('parent_object_')
2033
+ self.ns_prefix_ = None
2034
+ self.customer_ref_1 = customer_ref_1
2035
+ self.validate_customer_ref_1Type(self.customer_ref_1)
2036
+ self.customer_ref_1_nsprefix_ = None
2037
+ self.customer_ref_2 = customer_ref_2
2038
+ self.validate_customer_ref_2Type(self.customer_ref_2)
2039
+ self.customer_ref_2_nsprefix_ = None
2040
+ def factory(*args_, **kwargs_):
2041
+ if CurrentSubclassModule_ is not None:
2042
+ subclass = getSubclassFromModule_(
2043
+ CurrentSubclassModule_, ReferencesType)
2044
+ if subclass is not None:
2045
+ return subclass(*args_, **kwargs_)
2046
+ if ReferencesType.subclass:
2047
+ return ReferencesType.subclass(*args_, **kwargs_)
2048
+ else:
2049
+ return ReferencesType(*args_, **kwargs_)
2050
+ factory = staticmethod(factory)
2051
+ def get_ns_prefix_(self):
2052
+ return self.ns_prefix_
2053
+ def set_ns_prefix_(self, ns_prefix):
2054
+ self.ns_prefix_ = ns_prefix
2055
+ def get_customer_ref_1(self):
2056
+ return self.customer_ref_1
2057
+ def set_customer_ref_1(self, customer_ref_1):
2058
+ self.customer_ref_1 = customer_ref_1
2059
+ def get_customer_ref_2(self):
2060
+ return self.customer_ref_2
2061
+ def set_customer_ref_2(self, customer_ref_2):
2062
+ self.customer_ref_2 = customer_ref_2
2063
+ def validate_customer_ref_1Type(self, value):
2064
+ result = True
2065
+ # Validate type customer-ref-1Type, a restriction on xsd:normalizedString.
2066
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2067
+ if not isinstance(value, str):
2068
+ lineno = self.gds_get_node_lineno_()
2069
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2070
+ return False
2071
+ if len(value) > 35:
2072
+ lineno = self.gds_get_node_lineno_()
2073
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on customer-ref-1Type' % {"value": value, "lineno": lineno} )
2074
+ result = False
2075
+ return result
2076
+ def validate_customer_ref_2Type(self, value):
2077
+ result = True
2078
+ # Validate type customer-ref-2Type, a restriction on xsd:normalizedString.
2079
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2080
+ if not isinstance(value, str):
2081
+ lineno = self.gds_get_node_lineno_()
2082
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2083
+ return False
2084
+ if len(value) > 35:
2085
+ lineno = self.gds_get_node_lineno_()
2086
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on customer-ref-2Type' % {"value": value, "lineno": lineno} )
2087
+ result = False
2088
+ return result
2089
+ def has__content(self):
2090
+ if (
2091
+ self.customer_ref_1 is not None or
2092
+ self.customer_ref_2 is not None
2093
+ ):
2094
+ return True
2095
+ else:
2096
+ return False
2097
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ReferencesType', pretty_print=True):
2098
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ReferencesType')
2099
+ if imported_ns_def_ is not None:
2100
+ namespacedef_ = imported_ns_def_
2101
+ if pretty_print:
2102
+ eol_ = '\n'
2103
+ else:
2104
+ eol_ = ''
2105
+ if self.original_tagname_ is not None and name_ == 'ReferencesType':
2106
+ name_ = self.original_tagname_
2107
+ if UseCapturedNS_ and self.ns_prefix_:
2108
+ namespaceprefix_ = self.ns_prefix_ + ':'
2109
+ showIndent(outfile, level, pretty_print)
2110
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2111
+ already_processed = set()
2112
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ReferencesType')
2113
+ if self.has__content():
2114
+ outfile.write('>%s' % (eol_, ))
2115
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ReferencesType', pretty_print=pretty_print)
2116
+ showIndent(outfile, level, pretty_print)
2117
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2118
+ else:
2119
+ outfile.write('/>%s' % (eol_, ))
2120
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ReferencesType'):
2121
+ pass
2122
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ReferencesType', fromsubclass_=False, pretty_print=True):
2123
+ if pretty_print:
2124
+ eol_ = '\n'
2125
+ else:
2126
+ eol_ = ''
2127
+ if self.customer_ref_1 is not None:
2128
+ namespaceprefix_ = self.customer_ref_1_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_ref_1_nsprefix_) else ''
2129
+ showIndent(outfile, level, pretty_print)
2130
+ outfile.write('<%scustomer-ref-1>%s</%scustomer-ref-1>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_ref_1), input_name='customer-ref-1')), namespaceprefix_ , eol_))
2131
+ if self.customer_ref_2 is not None:
2132
+ namespaceprefix_ = self.customer_ref_2_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_ref_2_nsprefix_) else ''
2133
+ showIndent(outfile, level, pretty_print)
2134
+ outfile.write('<%scustomer-ref-2>%s</%scustomer-ref-2>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_ref_2), input_name='customer-ref-2')), namespaceprefix_ , eol_))
2135
+ def build(self, node, gds_collector_=None):
2136
+ self.gds_collector_ = gds_collector_
2137
+ if SaveElementTreeNode:
2138
+ self.gds_elementtree_node_ = node
2139
+ already_processed = set()
2140
+ self.ns_prefix_ = node.prefix
2141
+ self._buildAttributes(node, node.attrib, already_processed)
2142
+ for child in node:
2143
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2144
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2145
+ return self
2146
+ def _buildAttributes(self, node, attrs, already_processed):
2147
+ pass
2148
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2149
+ if nodeName_ == 'customer-ref-1':
2150
+ value_ = child_.text
2151
+ value_ = self.gds_parse_string(value_, node, 'customer_ref_1')
2152
+ value_ = self.gds_validate_string(value_, node, 'customer_ref_1')
2153
+ self.customer_ref_1 = value_
2154
+ self.customer_ref_1_nsprefix_ = child_.prefix
2155
+ # validate type customer-ref-1Type
2156
+ self.validate_customer_ref_1Type(self.customer_ref_1)
2157
+ elif nodeName_ == 'customer-ref-2':
2158
+ value_ = child_.text
2159
+ value_ = self.gds_parse_string(value_, node, 'customer_ref_2')
2160
+ value_ = self.gds_validate_string(value_, node, 'customer_ref_2')
2161
+ self.customer_ref_2 = value_
2162
+ self.customer_ref_2_nsprefix_ = child_.prefix
2163
+ # validate type customer-ref-2Type
2164
+ self.validate_customer_ref_2Type(self.customer_ref_2)
2165
+ # end class ReferencesType
2166
+
2167
+
2168
+ class DomesticAddressDetailsType(GeneratedsSuper):
2169
+ __hash__ = GeneratedsSuper.__hash__
2170
+ subclass = None
2171
+ superclass = None
2172
+ def __init__(self, address_line_1=None, address_line_2=None, city=None, province=None, postal_code=None, gds_collector_=None, **kwargs_):
2173
+ self.gds_collector_ = gds_collector_
2174
+ self.gds_elementtree_node_ = None
2175
+ self.original_tagname_ = None
2176
+ self.parent_object_ = kwargs_.get('parent_object_')
2177
+ self.ns_prefix_ = None
2178
+ self.address_line_1 = address_line_1
2179
+ self.validate_address_line_1Type(self.address_line_1)
2180
+ self.address_line_1_nsprefix_ = None
2181
+ self.address_line_2 = address_line_2
2182
+ self.validate_address_line_2Type(self.address_line_2)
2183
+ self.address_line_2_nsprefix_ = None
2184
+ self.city = city
2185
+ self.validate_cityType(self.city)
2186
+ self.city_nsprefix_ = None
2187
+ self.province = province
2188
+ self.province_nsprefix_ = None
2189
+ self.postal_code = postal_code
2190
+ self.postal_code_nsprefix_ = None
2191
+ def factory(*args_, **kwargs_):
2192
+ if CurrentSubclassModule_ is not None:
2193
+ subclass = getSubclassFromModule_(
2194
+ CurrentSubclassModule_, DomesticAddressDetailsType)
2195
+ if subclass is not None:
2196
+ return subclass(*args_, **kwargs_)
2197
+ if DomesticAddressDetailsType.subclass:
2198
+ return DomesticAddressDetailsType.subclass(*args_, **kwargs_)
2199
+ else:
2200
+ return DomesticAddressDetailsType(*args_, **kwargs_)
2201
+ factory = staticmethod(factory)
2202
+ def get_ns_prefix_(self):
2203
+ return self.ns_prefix_
2204
+ def set_ns_prefix_(self, ns_prefix):
2205
+ self.ns_prefix_ = ns_prefix
2206
+ def get_address_line_1(self):
2207
+ return self.address_line_1
2208
+ def set_address_line_1(self, address_line_1):
2209
+ self.address_line_1 = address_line_1
2210
+ def get_address_line_2(self):
2211
+ return self.address_line_2
2212
+ def set_address_line_2(self, address_line_2):
2213
+ self.address_line_2 = address_line_2
2214
+ def get_city(self):
2215
+ return self.city
2216
+ def set_city(self, city):
2217
+ self.city = city
2218
+ def get_province(self):
2219
+ return self.province
2220
+ def set_province(self, province):
2221
+ self.province = province
2222
+ def get_postal_code(self):
2223
+ return self.postal_code
2224
+ def set_postal_code(self, postal_code):
2225
+ self.postal_code = postal_code
2226
+ def validate_address_line_1Type(self, value):
2227
+ result = True
2228
+ # Validate type address-line-1Type, a restriction on xsd:normalizedString.
2229
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2230
+ if not isinstance(value, str):
2231
+ lineno = self.gds_get_node_lineno_()
2232
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2233
+ return False
2234
+ if len(value) > 44:
2235
+ lineno = self.gds_get_node_lineno_()
2236
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on address-line-1Type' % {"value": value, "lineno": lineno} )
2237
+ result = False
2238
+ if len(value) < 1:
2239
+ lineno = self.gds_get_node_lineno_()
2240
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on address-line-1Type' % {"value" : value, "lineno": lineno} )
2241
+ result = False
2242
+ return result
2243
+ def validate_address_line_2Type(self, value):
2244
+ result = True
2245
+ # Validate type address-line-2Type, a restriction on xsd:normalizedString.
2246
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2247
+ if not isinstance(value, str):
2248
+ lineno = self.gds_get_node_lineno_()
2249
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2250
+ return False
2251
+ if len(value) > 44:
2252
+ lineno = self.gds_get_node_lineno_()
2253
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on address-line-2Type' % {"value": value, "lineno": lineno} )
2254
+ result = False
2255
+ return result
2256
+ def validate_cityType(self, value):
2257
+ result = True
2258
+ # Validate type cityType, a restriction on xsd:normalizedString.
2259
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2260
+ if not isinstance(value, str):
2261
+ lineno = self.gds_get_node_lineno_()
2262
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2263
+ return False
2264
+ if len(value) > 40:
2265
+ lineno = self.gds_get_node_lineno_()
2266
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on cityType' % {"value": value, "lineno": lineno} )
2267
+ result = False
2268
+ if len(value) < 1:
2269
+ lineno = self.gds_get_node_lineno_()
2270
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on cityType' % {"value" : value, "lineno": lineno} )
2271
+ result = False
2272
+ return result
2273
+ def has__content(self):
2274
+ if (
2275
+ self.address_line_1 is not None or
2276
+ self.address_line_2 is not None or
2277
+ self.city is not None or
2278
+ self.province is not None or
2279
+ self.postal_code is not None
2280
+ ):
2281
+ return True
2282
+ else:
2283
+ return False
2284
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DomesticAddressDetailsType', pretty_print=True):
2285
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('DomesticAddressDetailsType')
2286
+ if imported_ns_def_ is not None:
2287
+ namespacedef_ = imported_ns_def_
2288
+ if pretty_print:
2289
+ eol_ = '\n'
2290
+ else:
2291
+ eol_ = ''
2292
+ if self.original_tagname_ is not None and name_ == 'DomesticAddressDetailsType':
2293
+ name_ = self.original_tagname_
2294
+ if UseCapturedNS_ and self.ns_prefix_:
2295
+ namespaceprefix_ = self.ns_prefix_ + ':'
2296
+ showIndent(outfile, level, pretty_print)
2297
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2298
+ already_processed = set()
2299
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DomesticAddressDetailsType')
2300
+ if self.has__content():
2301
+ outfile.write('>%s' % (eol_, ))
2302
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DomesticAddressDetailsType', pretty_print=pretty_print)
2303
+ showIndent(outfile, level, pretty_print)
2304
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2305
+ else:
2306
+ outfile.write('/>%s' % (eol_, ))
2307
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DomesticAddressDetailsType'):
2308
+ pass
2309
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DomesticAddressDetailsType', fromsubclass_=False, pretty_print=True):
2310
+ if pretty_print:
2311
+ eol_ = '\n'
2312
+ else:
2313
+ eol_ = ''
2314
+ if self.address_line_1 is not None:
2315
+ namespaceprefix_ = self.address_line_1_nsprefix_ + ':' if (UseCapturedNS_ and self.address_line_1_nsprefix_) else ''
2316
+ showIndent(outfile, level, pretty_print)
2317
+ 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_))
2318
+ if self.address_line_2 is not None:
2319
+ namespaceprefix_ = self.address_line_2_nsprefix_ + ':' if (UseCapturedNS_ and self.address_line_2_nsprefix_) else ''
2320
+ showIndent(outfile, level, pretty_print)
2321
+ 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_))
2322
+ if self.city is not None:
2323
+ namespaceprefix_ = self.city_nsprefix_ + ':' if (UseCapturedNS_ and self.city_nsprefix_) else ''
2324
+ showIndent(outfile, level, pretty_print)
2325
+ outfile.write('<%scity>%s</%scity>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.city), input_name='city')), namespaceprefix_ , eol_))
2326
+ if self.province is not None:
2327
+ namespaceprefix_ = self.province_nsprefix_ + ':' if (UseCapturedNS_ and self.province_nsprefix_) else ''
2328
+ showIndent(outfile, level, pretty_print)
2329
+ outfile.write('<%sprovince>%s</%sprovince>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.province), input_name='province')), namespaceprefix_ , eol_))
2330
+ if self.postal_code is not None:
2331
+ namespaceprefix_ = self.postal_code_nsprefix_ + ':' if (UseCapturedNS_ and self.postal_code_nsprefix_) else ''
2332
+ showIndent(outfile, level, pretty_print)
2333
+ 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_))
2334
+ def build(self, node, gds_collector_=None):
2335
+ self.gds_collector_ = gds_collector_
2336
+ if SaveElementTreeNode:
2337
+ self.gds_elementtree_node_ = node
2338
+ already_processed = set()
2339
+ self.ns_prefix_ = node.prefix
2340
+ self._buildAttributes(node, node.attrib, already_processed)
2341
+ for child in node:
2342
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2343
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2344
+ return self
2345
+ def _buildAttributes(self, node, attrs, already_processed):
2346
+ pass
2347
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2348
+ if nodeName_ == 'address-line-1':
2349
+ value_ = child_.text
2350
+ value_ = self.gds_parse_string(value_, node, 'address_line_1')
2351
+ value_ = self.gds_validate_string(value_, node, 'address_line_1')
2352
+ self.address_line_1 = value_
2353
+ self.address_line_1_nsprefix_ = child_.prefix
2354
+ # validate type address-line-1Type
2355
+ self.validate_address_line_1Type(self.address_line_1)
2356
+ elif nodeName_ == 'address-line-2':
2357
+ value_ = child_.text
2358
+ value_ = self.gds_parse_string(value_, node, 'address_line_2')
2359
+ value_ = self.gds_validate_string(value_, node, 'address_line_2')
2360
+ self.address_line_2 = value_
2361
+ self.address_line_2_nsprefix_ = child_.prefix
2362
+ # validate type address-line-2Type
2363
+ self.validate_address_line_2Type(self.address_line_2)
2364
+ elif nodeName_ == 'city':
2365
+ value_ = child_.text
2366
+ value_ = self.gds_parse_string(value_, node, 'city')
2367
+ value_ = self.gds_validate_string(value_, node, 'city')
2368
+ self.city = value_
2369
+ self.city_nsprefix_ = child_.prefix
2370
+ # validate type cityType
2371
+ self.validate_cityType(self.city)
2372
+ elif nodeName_ == 'province':
2373
+ value_ = child_.text
2374
+ value_ = self.gds_parse_string(value_, node, 'province')
2375
+ value_ = self.gds_validate_string(value_, node, 'province')
2376
+ self.province = value_
2377
+ self.province_nsprefix_ = child_.prefix
2378
+ elif nodeName_ == 'postal-code':
2379
+ value_ = child_.text
2380
+ value_ = self.gds_parse_string(value_, node, 'postal_code')
2381
+ value_ = self.gds_validate_string(value_, node, 'postal_code')
2382
+ self.postal_code = value_
2383
+ self.postal_code_nsprefix_ = child_.prefix
2384
+ # end class DomesticAddressDetailsType
2385
+
2386
+
2387
+ class ParcelCharacteristicsType(GeneratedsSuper):
2388
+ __hash__ = GeneratedsSuper.__hash__
2389
+ subclass = None
2390
+ superclass = None
2391
+ def __init__(self, weight=None, dimensions=None, gds_collector_=None, **kwargs_):
2392
+ self.gds_collector_ = gds_collector_
2393
+ self.gds_elementtree_node_ = None
2394
+ self.original_tagname_ = None
2395
+ self.parent_object_ = kwargs_.get('parent_object_')
2396
+ self.ns_prefix_ = None
2397
+ self.weight = weight
2398
+ self.validate_weightType(self.weight)
2399
+ self.weight_nsprefix_ = None
2400
+ self.dimensions = dimensions
2401
+ self.dimensions_nsprefix_ = None
2402
+ def factory(*args_, **kwargs_):
2403
+ if CurrentSubclassModule_ is not None:
2404
+ subclass = getSubclassFromModule_(
2405
+ CurrentSubclassModule_, ParcelCharacteristicsType)
2406
+ if subclass is not None:
2407
+ return subclass(*args_, **kwargs_)
2408
+ if ParcelCharacteristicsType.subclass:
2409
+ return ParcelCharacteristicsType.subclass(*args_, **kwargs_)
2410
+ else:
2411
+ return ParcelCharacteristicsType(*args_, **kwargs_)
2412
+ factory = staticmethod(factory)
2413
+ def get_ns_prefix_(self):
2414
+ return self.ns_prefix_
2415
+ def set_ns_prefix_(self, ns_prefix):
2416
+ self.ns_prefix_ = ns_prefix
2417
+ def get_weight(self):
2418
+ return self.weight
2419
+ def set_weight(self, weight):
2420
+ self.weight = weight
2421
+ def get_dimensions(self):
2422
+ return self.dimensions
2423
+ def set_dimensions(self, dimensions):
2424
+ self.dimensions = dimensions
2425
+ def validate_weightType(self, value):
2426
+ result = True
2427
+ # Validate type weightType, a restriction on xsd:decimal.
2428
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2429
+ if not isinstance(value, decimal_.Decimal):
2430
+ lineno = self.gds_get_node_lineno_()
2431
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (decimal_.Decimal)' % {"value": value, "lineno": lineno, })
2432
+ return False
2433
+ if value > 999.999:
2434
+ lineno = self.gds_get_node_lineno_()
2435
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxInclusive restriction on weightType' % {"value": value, "lineno": lineno} )
2436
+ result = False
2437
+ if value <= 0:
2438
+ lineno = self.gds_get_node_lineno_()
2439
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minExclusive restriction on weightType' % {"value": value, "lineno": lineno} )
2440
+ result = False
2441
+ return result
2442
+ def has__content(self):
2443
+ if (
2444
+ self.weight is not None or
2445
+ self.dimensions is not None
2446
+ ):
2447
+ return True
2448
+ else:
2449
+ return False
2450
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ParcelCharacteristicsType', pretty_print=True):
2451
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ParcelCharacteristicsType')
2452
+ if imported_ns_def_ is not None:
2453
+ namespacedef_ = imported_ns_def_
2454
+ if pretty_print:
2455
+ eol_ = '\n'
2456
+ else:
2457
+ eol_ = ''
2458
+ if self.original_tagname_ is not None and name_ == 'ParcelCharacteristicsType':
2459
+ name_ = self.original_tagname_
2460
+ if UseCapturedNS_ and self.ns_prefix_:
2461
+ namespaceprefix_ = self.ns_prefix_ + ':'
2462
+ showIndent(outfile, level, pretty_print)
2463
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2464
+ already_processed = set()
2465
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ParcelCharacteristicsType')
2466
+ if self.has__content():
2467
+ outfile.write('>%s' % (eol_, ))
2468
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ParcelCharacteristicsType', pretty_print=pretty_print)
2469
+ showIndent(outfile, level, pretty_print)
2470
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2471
+ else:
2472
+ outfile.write('/>%s' % (eol_, ))
2473
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ParcelCharacteristicsType'):
2474
+ pass
2475
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ParcelCharacteristicsType', fromsubclass_=False, pretty_print=True):
2476
+ if pretty_print:
2477
+ eol_ = '\n'
2478
+ else:
2479
+ eol_ = ''
2480
+ if self.weight is not None:
2481
+ namespaceprefix_ = self.weight_nsprefix_ + ':' if (UseCapturedNS_ and self.weight_nsprefix_) else ''
2482
+ showIndent(outfile, level, pretty_print)
2483
+ outfile.write('<%sweight>%s</%sweight>%s' % (namespaceprefix_ , self.gds_format_decimal(self.weight, input_name='weight'), namespaceprefix_ , eol_))
2484
+ if self.dimensions is not None:
2485
+ namespaceprefix_ = self.dimensions_nsprefix_ + ':' if (UseCapturedNS_ and self.dimensions_nsprefix_) else ''
2486
+ self.dimensions.export(outfile, level, namespaceprefix_, namespacedef_='', name_='dimensions', pretty_print=pretty_print)
2487
+ def build(self, node, gds_collector_=None):
2488
+ self.gds_collector_ = gds_collector_
2489
+ if SaveElementTreeNode:
2490
+ self.gds_elementtree_node_ = node
2491
+ already_processed = set()
2492
+ self.ns_prefix_ = node.prefix
2493
+ self._buildAttributes(node, node.attrib, already_processed)
2494
+ for child in node:
2495
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2496
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2497
+ return self
2498
+ def _buildAttributes(self, node, attrs, already_processed):
2499
+ pass
2500
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2501
+ if nodeName_ == 'weight' and child_.text:
2502
+ sval_ = child_.text
2503
+ fval_ = self.gds_parse_decimal(sval_, node, 'weight')
2504
+ fval_ = self.gds_validate_decimal(fval_, node, 'weight')
2505
+ self.weight = fval_
2506
+ self.weight_nsprefix_ = child_.prefix
2507
+ # validate type weightType
2508
+ self.validate_weightType(self.weight)
2509
+ elif nodeName_ == 'dimensions':
2510
+ obj_ = dimensionsType.factory(parent_object_=self)
2511
+ obj_.build(child_, gds_collector_=gds_collector_)
2512
+ self.dimensions = obj_
2513
+ obj_.original_tagname_ = 'dimensions'
2514
+ # end class ParcelCharacteristicsType
2515
+
2516
+
2517
+ class PrintPreferencesType(GeneratedsSuper):
2518
+ __hash__ = GeneratedsSuper.__hash__
2519
+ subclass = None
2520
+ superclass = None
2521
+ def __init__(self, output_format=None, encoding=None, show_packing_instructions=True, gds_collector_=None, **kwargs_):
2522
+ self.gds_collector_ = gds_collector_
2523
+ self.gds_elementtree_node_ = None
2524
+ self.original_tagname_ = None
2525
+ self.parent_object_ = kwargs_.get('parent_object_')
2526
+ self.ns_prefix_ = None
2527
+ self.output_format = output_format
2528
+ self.validate_output_formatType(self.output_format)
2529
+ self.output_format_nsprefix_ = None
2530
+ self.encoding = encoding
2531
+ self.validate_encodingType(self.encoding)
2532
+ self.encoding_nsprefix_ = None
2533
+ self.show_packing_instructions = show_packing_instructions
2534
+ self.show_packing_instructions_nsprefix_ = None
2535
+ def factory(*args_, **kwargs_):
2536
+ if CurrentSubclassModule_ is not None:
2537
+ subclass = getSubclassFromModule_(
2538
+ CurrentSubclassModule_, PrintPreferencesType)
2539
+ if subclass is not None:
2540
+ return subclass(*args_, **kwargs_)
2541
+ if PrintPreferencesType.subclass:
2542
+ return PrintPreferencesType.subclass(*args_, **kwargs_)
2543
+ else:
2544
+ return PrintPreferencesType(*args_, **kwargs_)
2545
+ factory = staticmethod(factory)
2546
+ def get_ns_prefix_(self):
2547
+ return self.ns_prefix_
2548
+ def set_ns_prefix_(self, ns_prefix):
2549
+ self.ns_prefix_ = ns_prefix
2550
+ def get_output_format(self):
2551
+ return self.output_format
2552
+ def set_output_format(self, output_format):
2553
+ self.output_format = output_format
2554
+ def get_encoding(self):
2555
+ return self.encoding
2556
+ def set_encoding(self, encoding):
2557
+ self.encoding = encoding
2558
+ def get_show_packing_instructions(self):
2559
+ return self.show_packing_instructions
2560
+ def set_show_packing_instructions(self, show_packing_instructions):
2561
+ self.show_packing_instructions = show_packing_instructions
2562
+ def validate_output_formatType(self, value):
2563
+ result = True
2564
+ # Validate type output-formatType, a restriction on xsd:string.
2565
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2566
+ if not isinstance(value, str):
2567
+ lineno = self.gds_get_node_lineno_()
2568
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2569
+ return False
2570
+ value = value
2571
+ enumerations = ['8.5x11', '4x6', '3x5']
2572
+ if value not in enumerations:
2573
+ lineno = self.gds_get_node_lineno_()
2574
+ 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} )
2575
+ result = False
2576
+ return result
2577
+ def validate_encodingType(self, value):
2578
+ result = True
2579
+ # Validate type encodingType, a restriction on xsd:string.
2580
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2581
+ if not isinstance(value, str):
2582
+ lineno = self.gds_get_node_lineno_()
2583
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2584
+ return False
2585
+ value = value
2586
+ enumerations = ['PDF', 'ZPL']
2587
+ if value not in enumerations:
2588
+ lineno = self.gds_get_node_lineno_()
2589
+ 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} )
2590
+ result = False
2591
+ return result
2592
+ def has__content(self):
2593
+ if (
2594
+ self.output_format is not None or
2595
+ self.encoding is not None or
2596
+ not self.show_packing_instructions
2597
+ ):
2598
+ return True
2599
+ else:
2600
+ return False
2601
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PrintPreferencesType', pretty_print=True):
2602
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('PrintPreferencesType')
2603
+ if imported_ns_def_ is not None:
2604
+ namespacedef_ = imported_ns_def_
2605
+ if pretty_print:
2606
+ eol_ = '\n'
2607
+ else:
2608
+ eol_ = ''
2609
+ if self.original_tagname_ is not None and name_ == 'PrintPreferencesType':
2610
+ name_ = self.original_tagname_
2611
+ if UseCapturedNS_ and self.ns_prefix_:
2612
+ namespaceprefix_ = self.ns_prefix_ + ':'
2613
+ showIndent(outfile, level, pretty_print)
2614
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2615
+ already_processed = set()
2616
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='PrintPreferencesType')
2617
+ if self.has__content():
2618
+ outfile.write('>%s' % (eol_, ))
2619
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='PrintPreferencesType', pretty_print=pretty_print)
2620
+ showIndent(outfile, level, pretty_print)
2621
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2622
+ else:
2623
+ outfile.write('/>%s' % (eol_, ))
2624
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='PrintPreferencesType'):
2625
+ pass
2626
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='PrintPreferencesType', fromsubclass_=False, pretty_print=True):
2627
+ if pretty_print:
2628
+ eol_ = '\n'
2629
+ else:
2630
+ eol_ = ''
2631
+ if self.output_format is not None:
2632
+ namespaceprefix_ = self.output_format_nsprefix_ + ':' if (UseCapturedNS_ and self.output_format_nsprefix_) else ''
2633
+ showIndent(outfile, level, pretty_print)
2634
+ 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_))
2635
+ if self.encoding is not None:
2636
+ namespaceprefix_ = self.encoding_nsprefix_ + ':' if (UseCapturedNS_ and self.encoding_nsprefix_) else ''
2637
+ showIndent(outfile, level, pretty_print)
2638
+ outfile.write('<%sencoding>%s</%sencoding>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.encoding), input_name='encoding')), namespaceprefix_ , eol_))
2639
+ if not self.show_packing_instructions:
2640
+ namespaceprefix_ = self.show_packing_instructions_nsprefix_ + ':' if (UseCapturedNS_ and self.show_packing_instructions_nsprefix_) else ''
2641
+ showIndent(outfile, level, pretty_print)
2642
+ 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_))
2643
+ def build(self, node, gds_collector_=None):
2644
+ self.gds_collector_ = gds_collector_
2645
+ if SaveElementTreeNode:
2646
+ self.gds_elementtree_node_ = node
2647
+ already_processed = set()
2648
+ self.ns_prefix_ = node.prefix
2649
+ self._buildAttributes(node, node.attrib, already_processed)
2650
+ for child in node:
2651
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2652
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2653
+ return self
2654
+ def _buildAttributes(self, node, attrs, already_processed):
2655
+ pass
2656
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2657
+ if nodeName_ == 'output-format':
2658
+ value_ = child_.text
2659
+ value_ = self.gds_parse_string(value_, node, 'output_format')
2660
+ value_ = self.gds_validate_string(value_, node, 'output_format')
2661
+ self.output_format = value_
2662
+ self.output_format_nsprefix_ = child_.prefix
2663
+ # validate type output-formatType
2664
+ self.validate_output_formatType(self.output_format)
2665
+ elif nodeName_ == 'encoding':
2666
+ value_ = child_.text
2667
+ value_ = self.gds_parse_string(value_, node, 'encoding')
2668
+ value_ = self.gds_validate_string(value_, node, 'encoding')
2669
+ self.encoding = value_
2670
+ self.encoding_nsprefix_ = child_.prefix
2671
+ # validate type encodingType
2672
+ self.validate_encodingType(self.encoding)
2673
+ elif nodeName_ == 'show-packing-instructions':
2674
+ sval_ = child_.text
2675
+ ival_ = self.gds_parse_boolean(sval_, node, 'show_packing_instructions')
2676
+ ival_ = self.gds_validate_boolean(ival_, node, 'show_packing_instructions')
2677
+ self.show_packing_instructions = ival_
2678
+ self.show_packing_instructions_nsprefix_ = child_.prefix
2679
+ # end class PrintPreferencesType
2680
+
2681
+
2682
+ class NotificationsType(GeneratedsSuper):
2683
+ __hash__ = GeneratedsSuper.__hash__
2684
+ subclass = None
2685
+ superclass = None
2686
+ def __init__(self, notification=None, email_subject=None, gds_collector_=None, **kwargs_):
2687
+ self.gds_collector_ = gds_collector_
2688
+ self.gds_elementtree_node_ = None
2689
+ self.original_tagname_ = None
2690
+ self.parent_object_ = kwargs_.get('parent_object_')
2691
+ self.ns_prefix_ = None
2692
+ if notification is None:
2693
+ self.notification = []
2694
+ else:
2695
+ self.notification = notification
2696
+ self.notification_nsprefix_ = None
2697
+ self.email_subject = email_subject
2698
+ self.validate_email_subjectType(self.email_subject)
2699
+ self.email_subject_nsprefix_ = None
2700
+ def factory(*args_, **kwargs_):
2701
+ if CurrentSubclassModule_ is not None:
2702
+ subclass = getSubclassFromModule_(
2703
+ CurrentSubclassModule_, NotificationsType)
2704
+ if subclass is not None:
2705
+ return subclass(*args_, **kwargs_)
2706
+ if NotificationsType.subclass:
2707
+ return NotificationsType.subclass(*args_, **kwargs_)
2708
+ else:
2709
+ return NotificationsType(*args_, **kwargs_)
2710
+ factory = staticmethod(factory)
2711
+ def get_ns_prefix_(self):
2712
+ return self.ns_prefix_
2713
+ def set_ns_prefix_(self, ns_prefix):
2714
+ self.ns_prefix_ = ns_prefix
2715
+ def get_notification(self):
2716
+ return self.notification
2717
+ def set_notification(self, notification):
2718
+ self.notification = notification
2719
+ def add_notification(self, value):
2720
+ self.notification.append(value)
2721
+ def insert_notification_at(self, index, value):
2722
+ self.notification.insert(index, value)
2723
+ def replace_notification_at(self, index, value):
2724
+ self.notification[index] = value
2725
+ def get_email_subject(self):
2726
+ return self.email_subject
2727
+ def set_email_subject(self, email_subject):
2728
+ self.email_subject = email_subject
2729
+ def validate_email_subjectType(self, value):
2730
+ result = True
2731
+ # Validate type email-subjectType, a restriction on xsd:string.
2732
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2733
+ if not isinstance(value, str):
2734
+ lineno = self.gds_get_node_lineno_()
2735
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2736
+ return False
2737
+ value = value
2738
+ enumerations = ['tracking', 'customer-ref-1', 'customer-ref-2']
2739
+ if value not in enumerations:
2740
+ lineno = self.gds_get_node_lineno_()
2741
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on email-subjectType' % {"value" : encode_str_2_3(value), "lineno": lineno} )
2742
+ result = False
2743
+ return result
2744
+ def has__content(self):
2745
+ if (
2746
+ self.notification or
2747
+ self.email_subject is not None
2748
+ ):
2749
+ return True
2750
+ else:
2751
+ return False
2752
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='NotificationsType', pretty_print=True):
2753
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('NotificationsType')
2754
+ if imported_ns_def_ is not None:
2755
+ namespacedef_ = imported_ns_def_
2756
+ if pretty_print:
2757
+ eol_ = '\n'
2758
+ else:
2759
+ eol_ = ''
2760
+ if self.original_tagname_ is not None and name_ == 'NotificationsType':
2761
+ name_ = self.original_tagname_
2762
+ if UseCapturedNS_ and self.ns_prefix_:
2763
+ namespaceprefix_ = self.ns_prefix_ + ':'
2764
+ showIndent(outfile, level, pretty_print)
2765
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2766
+ already_processed = set()
2767
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='NotificationsType')
2768
+ if self.has__content():
2769
+ outfile.write('>%s' % (eol_, ))
2770
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='NotificationsType', pretty_print=pretty_print)
2771
+ showIndent(outfile, level, pretty_print)
2772
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2773
+ else:
2774
+ outfile.write('/>%s' % (eol_, ))
2775
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='NotificationsType'):
2776
+ pass
2777
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='NotificationsType', fromsubclass_=False, pretty_print=True):
2778
+ if pretty_print:
2779
+ eol_ = '\n'
2780
+ else:
2781
+ eol_ = ''
2782
+ for notification_ in self.notification:
2783
+ namespaceprefix_ = self.notification_nsprefix_ + ':' if (UseCapturedNS_ and self.notification_nsprefix_) else ''
2784
+ notification_.export(outfile, level, namespaceprefix_, namespacedef_='', name_='notification', pretty_print=pretty_print)
2785
+ if self.email_subject is not None:
2786
+ namespaceprefix_ = self.email_subject_nsprefix_ + ':' if (UseCapturedNS_ and self.email_subject_nsprefix_) else ''
2787
+ showIndent(outfile, level, pretty_print)
2788
+ outfile.write('<%semail-subject>%s</%semail-subject>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.email_subject), input_name='email-subject')), namespaceprefix_ , eol_))
2789
+ def build(self, node, gds_collector_=None):
2790
+ self.gds_collector_ = gds_collector_
2791
+ if SaveElementTreeNode:
2792
+ self.gds_elementtree_node_ = node
2793
+ already_processed = set()
2794
+ self.ns_prefix_ = node.prefix
2795
+ self._buildAttributes(node, node.attrib, already_processed)
2796
+ for child in node:
2797
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2798
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2799
+ return self
2800
+ def _buildAttributes(self, node, attrs, already_processed):
2801
+ pass
2802
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2803
+ if nodeName_ == 'notification':
2804
+ obj_ = notificationType.factory(parent_object_=self)
2805
+ obj_.build(child_, gds_collector_=gds_collector_)
2806
+ self.notification.append(obj_)
2807
+ obj_.original_tagname_ = 'notification'
2808
+ elif nodeName_ == 'email-subject':
2809
+ value_ = child_.text
2810
+ value_ = self.gds_parse_string(value_, node, 'email_subject')
2811
+ value_ = self.gds_validate_string(value_, node, 'email_subject')
2812
+ self.email_subject = value_
2813
+ self.email_subject_nsprefix_ = child_.prefix
2814
+ # validate type email-subjectType
2815
+ self.validate_email_subjectType(self.email_subject)
2816
+ # end class NotificationsType
2817
+
2818
+
2819
+ class dimensionsType(GeneratedsSuper):
2820
+ __hash__ = GeneratedsSuper.__hash__
2821
+ subclass = None
2822
+ superclass = None
2823
+ def __init__(self, length=None, width=None, height=None, gds_collector_=None, **kwargs_):
2824
+ self.gds_collector_ = gds_collector_
2825
+ self.gds_elementtree_node_ = None
2826
+ self.original_tagname_ = None
2827
+ self.parent_object_ = kwargs_.get('parent_object_')
2828
+ self.ns_prefix_ = None
2829
+ self.length = length
2830
+ self.length_nsprefix_ = None
2831
+ self.width = width
2832
+ self.width_nsprefix_ = None
2833
+ self.height = height
2834
+ self.height_nsprefix_ = None
2835
+ def factory(*args_, **kwargs_):
2836
+ if CurrentSubclassModule_ is not None:
2837
+ subclass = getSubclassFromModule_(
2838
+ CurrentSubclassModule_, dimensionsType)
2839
+ if subclass is not None:
2840
+ return subclass(*args_, **kwargs_)
2841
+ if dimensionsType.subclass:
2842
+ return dimensionsType.subclass(*args_, **kwargs_)
2843
+ else:
2844
+ return dimensionsType(*args_, **kwargs_)
2845
+ factory = staticmethod(factory)
2846
+ def get_ns_prefix_(self):
2847
+ return self.ns_prefix_
2848
+ def set_ns_prefix_(self, ns_prefix):
2849
+ self.ns_prefix_ = ns_prefix
2850
+ def get_length(self):
2851
+ return self.length
2852
+ def set_length(self, length):
2853
+ self.length = length
2854
+ def get_width(self):
2855
+ return self.width
2856
+ def set_width(self, width):
2857
+ self.width = width
2858
+ def get_height(self):
2859
+ return self.height
2860
+ def set_height(self, height):
2861
+ self.height = height
2862
+ def has__content(self):
2863
+ if (
2864
+ self.length is not None or
2865
+ self.width is not None or
2866
+ self.height is not None
2867
+ ):
2868
+ return True
2869
+ else:
2870
+ return False
2871
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='dimensionsType', pretty_print=True):
2872
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('dimensionsType')
2873
+ if imported_ns_def_ is not None:
2874
+ namespacedef_ = imported_ns_def_
2875
+ if pretty_print:
2876
+ eol_ = '\n'
2877
+ else:
2878
+ eol_ = ''
2879
+ if self.original_tagname_ is not None and name_ == 'dimensionsType':
2880
+ name_ = self.original_tagname_
2881
+ if UseCapturedNS_ and self.ns_prefix_:
2882
+ namespaceprefix_ = self.ns_prefix_ + ':'
2883
+ showIndent(outfile, level, pretty_print)
2884
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2885
+ already_processed = set()
2886
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='dimensionsType')
2887
+ if self.has__content():
2888
+ outfile.write('>%s' % (eol_, ))
2889
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='dimensionsType', pretty_print=pretty_print)
2890
+ showIndent(outfile, level, pretty_print)
2891
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2892
+ else:
2893
+ outfile.write('/>%s' % (eol_, ))
2894
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='dimensionsType'):
2895
+ pass
2896
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='dimensionsType', fromsubclass_=False, pretty_print=True):
2897
+ if pretty_print:
2898
+ eol_ = '\n'
2899
+ else:
2900
+ eol_ = ''
2901
+ if self.length is not None:
2902
+ namespaceprefix_ = self.length_nsprefix_ + ':' if (UseCapturedNS_ and self.length_nsprefix_) else ''
2903
+ showIndent(outfile, level, pretty_print)
2904
+ outfile.write('<%slength>%s</%slength>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.length), input_name='length')), namespaceprefix_ , eol_))
2905
+ if self.width is not None:
2906
+ namespaceprefix_ = self.width_nsprefix_ + ':' if (UseCapturedNS_ and self.width_nsprefix_) else ''
2907
+ showIndent(outfile, level, pretty_print)
2908
+ outfile.write('<%swidth>%s</%swidth>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.width), input_name='width')), namespaceprefix_ , eol_))
2909
+ if self.height is not None:
2910
+ namespaceprefix_ = self.height_nsprefix_ + ':' if (UseCapturedNS_ and self.height_nsprefix_) else ''
2911
+ showIndent(outfile, level, pretty_print)
2912
+ outfile.write('<%sheight>%s</%sheight>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.height), input_name='height')), namespaceprefix_ , eol_))
2913
+ def build(self, node, gds_collector_=None):
2914
+ self.gds_collector_ = gds_collector_
2915
+ if SaveElementTreeNode:
2916
+ self.gds_elementtree_node_ = node
2917
+ already_processed = set()
2918
+ self.ns_prefix_ = node.prefix
2919
+ self._buildAttributes(node, node.attrib, already_processed)
2920
+ for child in node:
2921
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2922
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2923
+ return self
2924
+ def _buildAttributes(self, node, attrs, already_processed):
2925
+ pass
2926
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2927
+ if nodeName_ == 'length':
2928
+ value_ = child_.text
2929
+ value_ = self.gds_parse_string(value_, node, 'length')
2930
+ value_ = self.gds_validate_string(value_, node, 'length')
2931
+ self.length = value_
2932
+ self.length_nsprefix_ = child_.prefix
2933
+ elif nodeName_ == 'width':
2934
+ value_ = child_.text
2935
+ value_ = self.gds_parse_string(value_, node, 'width')
2936
+ value_ = self.gds_validate_string(value_, node, 'width')
2937
+ self.width = value_
2938
+ self.width_nsprefix_ = child_.prefix
2939
+ elif nodeName_ == 'height':
2940
+ value_ = child_.text
2941
+ value_ = self.gds_parse_string(value_, node, 'height')
2942
+ value_ = self.gds_validate_string(value_, node, 'height')
2943
+ self.height = value_
2944
+ self.height_nsprefix_ = child_.prefix
2945
+ # end class dimensionsType
2946
+
2947
+
2948
+ class notificationType(GeneratedsSuper):
2949
+ __hash__ = GeneratedsSuper.__hash__
2950
+ subclass = None
2951
+ superclass = None
2952
+ def __init__(self, email=None, on_shipment=None, on_exception=None, on_delivery=None, gds_collector_=None, **kwargs_):
2953
+ self.gds_collector_ = gds_collector_
2954
+ self.gds_elementtree_node_ = None
2955
+ self.original_tagname_ = None
2956
+ self.parent_object_ = kwargs_.get('parent_object_')
2957
+ self.ns_prefix_ = None
2958
+ self.email = email
2959
+ self.validate_EmailType(self.email)
2960
+ self.email_nsprefix_ = None
2961
+ self.on_shipment = on_shipment
2962
+ self.on_shipment_nsprefix_ = None
2963
+ self.on_exception = on_exception
2964
+ self.on_exception_nsprefix_ = None
2965
+ self.on_delivery = on_delivery
2966
+ self.on_delivery_nsprefix_ = None
2967
+ def factory(*args_, **kwargs_):
2968
+ if CurrentSubclassModule_ is not None:
2969
+ subclass = getSubclassFromModule_(
2970
+ CurrentSubclassModule_, notificationType)
2971
+ if subclass is not None:
2972
+ return subclass(*args_, **kwargs_)
2973
+ if notificationType.subclass:
2974
+ return notificationType.subclass(*args_, **kwargs_)
2975
+ else:
2976
+ return notificationType(*args_, **kwargs_)
2977
+ factory = staticmethod(factory)
2978
+ def get_ns_prefix_(self):
2979
+ return self.ns_prefix_
2980
+ def set_ns_prefix_(self, ns_prefix):
2981
+ self.ns_prefix_ = ns_prefix
2982
+ def get_email(self):
2983
+ return self.email
2984
+ def set_email(self, email):
2985
+ self.email = email
2986
+ def get_on_shipment(self):
2987
+ return self.on_shipment
2988
+ def set_on_shipment(self, on_shipment):
2989
+ self.on_shipment = on_shipment
2990
+ def get_on_exception(self):
2991
+ return self.on_exception
2992
+ def set_on_exception(self, on_exception):
2993
+ self.on_exception = on_exception
2994
+ def get_on_delivery(self):
2995
+ return self.on_delivery
2996
+ def set_on_delivery(self, on_delivery):
2997
+ self.on_delivery = on_delivery
2998
+ def validate_EmailType(self, value):
2999
+ result = True
3000
+ # Validate type EmailType, a restriction on xsd:normalizedString.
3001
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
3002
+ if not isinstance(value, str):
3003
+ lineno = self.gds_get_node_lineno_()
3004
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
3005
+ return False
3006
+ if len(value) > 60:
3007
+ lineno = self.gds_get_node_lineno_()
3008
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on EmailType' % {"value": value, "lineno": lineno} )
3009
+ result = False
3010
+ if not self.gds_validate_simple_patterns(
3011
+ self.validate_EmailType_patterns_, value):
3012
+ self.gds_collector_.add_message('Value "%s" does not match xsd pattern restrictions: %s' % (encode_str_2_3(value), self.validate_EmailType_patterns_, ))
3013
+ result = False
3014
+ return result
3015
+ validate_EmailType_patterns_ = [["^((['_A-Za-z0-9\\-\\+]+)(\\.['_A-Za-z0-9\\-\\+]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,5}))$"]]
3016
+ def has__content(self):
3017
+ if (
3018
+ self.email is not None or
3019
+ self.on_shipment is not None or
3020
+ self.on_exception is not None or
3021
+ self.on_delivery is not None
3022
+ ):
3023
+ return True
3024
+ else:
3025
+ return False
3026
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='notificationType', pretty_print=True):
3027
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('notificationType')
3028
+ if imported_ns_def_ is not None:
3029
+ namespacedef_ = imported_ns_def_
3030
+ if pretty_print:
3031
+ eol_ = '\n'
3032
+ else:
3033
+ eol_ = ''
3034
+ if self.original_tagname_ is not None and name_ == 'notificationType':
3035
+ name_ = self.original_tagname_
3036
+ if UseCapturedNS_ and self.ns_prefix_:
3037
+ namespaceprefix_ = self.ns_prefix_ + ':'
3038
+ showIndent(outfile, level, pretty_print)
3039
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
3040
+ already_processed = set()
3041
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='notificationType')
3042
+ if self.has__content():
3043
+ outfile.write('>%s' % (eol_, ))
3044
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='notificationType', pretty_print=pretty_print)
3045
+ showIndent(outfile, level, pretty_print)
3046
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
3047
+ else:
3048
+ outfile.write('/>%s' % (eol_, ))
3049
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='notificationType'):
3050
+ pass
3051
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='notificationType', fromsubclass_=False, pretty_print=True):
3052
+ if pretty_print:
3053
+ eol_ = '\n'
3054
+ else:
3055
+ eol_ = ''
3056
+ if self.email is not None:
3057
+ namespaceprefix_ = self.email_nsprefix_ + ':' if (UseCapturedNS_ and self.email_nsprefix_) else ''
3058
+ showIndent(outfile, level, pretty_print)
3059
+ outfile.write('<%semail>%s</%semail>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.email), input_name='email')), namespaceprefix_ , eol_))
3060
+ if self.on_shipment is not None:
3061
+ namespaceprefix_ = self.on_shipment_nsprefix_ + ':' if (UseCapturedNS_ and self.on_shipment_nsprefix_) else ''
3062
+ showIndent(outfile, level, pretty_print)
3063
+ outfile.write('<%son-shipment>%s</%son-shipment>%s' % (namespaceprefix_ , self.gds_format_boolean(self.on_shipment, input_name='on-shipment'), namespaceprefix_ , eol_))
3064
+ if self.on_exception is not None:
3065
+ namespaceprefix_ = self.on_exception_nsprefix_ + ':' if (UseCapturedNS_ and self.on_exception_nsprefix_) else ''
3066
+ showIndent(outfile, level, pretty_print)
3067
+ outfile.write('<%son-exception>%s</%son-exception>%s' % (namespaceprefix_ , self.gds_format_boolean(self.on_exception, input_name='on-exception'), namespaceprefix_ , eol_))
3068
+ if self.on_delivery is not None:
3069
+ namespaceprefix_ = self.on_delivery_nsprefix_ + ':' if (UseCapturedNS_ and self.on_delivery_nsprefix_) else ''
3070
+ showIndent(outfile, level, pretty_print)
3071
+ outfile.write('<%son-delivery>%s</%son-delivery>%s' % (namespaceprefix_ , self.gds_format_boolean(self.on_delivery, input_name='on-delivery'), namespaceprefix_ , eol_))
3072
+ def build(self, node, gds_collector_=None):
3073
+ self.gds_collector_ = gds_collector_
3074
+ if SaveElementTreeNode:
3075
+ self.gds_elementtree_node_ = node
3076
+ already_processed = set()
3077
+ self.ns_prefix_ = node.prefix
3078
+ self._buildAttributes(node, node.attrib, already_processed)
3079
+ for child in node:
3080
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3081
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3082
+ return self
3083
+ def _buildAttributes(self, node, attrs, already_processed):
3084
+ pass
3085
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
3086
+ if nodeName_ == 'email':
3087
+ value_ = child_.text
3088
+ value_ = self.gds_parse_string(value_, node, 'email')
3089
+ value_ = self.gds_validate_string(value_, node, 'email')
3090
+ self.email = value_
3091
+ self.email_nsprefix_ = child_.prefix
3092
+ # validate type EmailType
3093
+ self.validate_EmailType(self.email)
3094
+ elif nodeName_ == 'on-shipment':
3095
+ sval_ = child_.text
3096
+ ival_ = self.gds_parse_boolean(sval_, node, 'on_shipment')
3097
+ ival_ = self.gds_validate_boolean(ival_, node, 'on_shipment')
3098
+ self.on_shipment = ival_
3099
+ self.on_shipment_nsprefix_ = child_.prefix
3100
+ elif nodeName_ == 'on-exception':
3101
+ sval_ = child_.text
3102
+ ival_ = self.gds_parse_boolean(sval_, node, 'on_exception')
3103
+ ival_ = self.gds_validate_boolean(ival_, node, 'on_exception')
3104
+ self.on_exception = ival_
3105
+ self.on_exception_nsprefix_ = child_.prefix
3106
+ elif nodeName_ == 'on-delivery':
3107
+ sval_ = child_.text
3108
+ ival_ = self.gds_parse_boolean(sval_, node, 'on_delivery')
3109
+ ival_ = self.gds_validate_boolean(ival_, node, 'on_delivery')
3110
+ self.on_delivery = ival_
3111
+ self.on_delivery_nsprefix_ = child_.prefix
3112
+ # end class notificationType
3113
+
3114
+
3115
+ #
3116
+ # End data representation classes.
3117
+ #
3118
+
3119
+
3120
+ GDSClassesMapping = {
3121
+ }
3122
+
3123
+
3124
+ USAGE_TEXT = """
3125
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
3126
+ """
3127
+
3128
+
3129
+ def usage():
3130
+ print(USAGE_TEXT)
3131
+ sys.exit(1)
3132
+
3133
+
3134
+ def get_root_tag(node):
3135
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
3136
+ prefix_tag = TagNamePrefix + tag
3137
+ rootClass = GDSClassesMapping.get(prefix_tag)
3138
+ if rootClass is None:
3139
+ rootClass = globals().get(prefix_tag)
3140
+ return tag, rootClass
3141
+
3142
+
3143
+ def get_required_ns_prefix_defs(rootNode):
3144
+ '''Get all name space prefix definitions required in this XML doc.
3145
+ Return a dictionary of definitions and a char string of definitions.
3146
+ '''
3147
+ nsmap = {
3148
+ prefix: uri
3149
+ for node in rootNode.iter()
3150
+ for (prefix, uri) in node.nsmap.items()
3151
+ if prefix is not None
3152
+ }
3153
+ namespacedefs = ' '.join([
3154
+ 'xmlns:{}="{}"'.format(prefix, uri)
3155
+ for prefix, uri in nsmap.items()
3156
+ ])
3157
+ return nsmap, namespacedefs
3158
+
3159
+
3160
+ def parse(inFileName, silence=False, print_warnings=True):
3161
+ global CapturedNsmap_
3162
+ gds_collector = GdsCollector_()
3163
+ parser = None
3164
+ doc = parsexml_(inFileName, parser)
3165
+ rootNode = doc.getroot()
3166
+ rootTag, rootClass = get_root_tag(rootNode)
3167
+ if rootClass is None:
3168
+ rootTag = 'AuthorizedReturnType'
3169
+ rootClass = AuthorizedReturnType
3170
+ rootObj = rootClass.factory()
3171
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3172
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
3173
+ if not SaveElementTreeNode:
3174
+ doc = None
3175
+ rootNode = None
3176
+ if not silence:
3177
+ sys.stdout.write('<?xml version="1.0" ?>\n')
3178
+ rootObj.export(
3179
+ sys.stdout, 0, name_=rootTag,
3180
+ namespacedef_=namespacedefs,
3181
+ pretty_print=True)
3182
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3183
+ separator = ('-' * 50) + '\n'
3184
+ sys.stderr.write(separator)
3185
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3186
+ len(gds_collector.get_messages()), ))
3187
+ gds_collector.write_messages(sys.stderr)
3188
+ sys.stderr.write(separator)
3189
+ return rootObj
3190
+
3191
+
3192
+ def parseEtree(inFileName, silence=False, print_warnings=True,
3193
+ mapping=None, reverse_mapping=None, nsmap=None):
3194
+ parser = None
3195
+ doc = parsexml_(inFileName, parser)
3196
+ gds_collector = GdsCollector_()
3197
+ rootNode = doc.getroot()
3198
+ rootTag, rootClass = get_root_tag(rootNode)
3199
+ if rootClass is None:
3200
+ rootTag = 'AuthorizedReturnType'
3201
+ rootClass = AuthorizedReturnType
3202
+ rootObj = rootClass.factory()
3203
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3204
+ if mapping is None:
3205
+ mapping = {}
3206
+ if reverse_mapping is None:
3207
+ reverse_mapping = {}
3208
+ rootElement = rootObj.to_etree(
3209
+ None, name_=rootTag, mapping_=mapping,
3210
+ reverse_mapping_=reverse_mapping, nsmap_=nsmap)
3211
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
3212
+ # Enable Python to collect the space used by the DOM.
3213
+ if not SaveElementTreeNode:
3214
+ doc = None
3215
+ rootNode = None
3216
+ if not silence:
3217
+ content = etree_.tostring(
3218
+ rootElement, pretty_print=True,
3219
+ xml_declaration=True, encoding="utf-8")
3220
+ sys.stdout.write(str(content))
3221
+ sys.stdout.write('\n')
3222
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3223
+ separator = ('-' * 50) + '\n'
3224
+ sys.stderr.write(separator)
3225
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3226
+ len(gds_collector.get_messages()), ))
3227
+ gds_collector.write_messages(sys.stderr)
3228
+ sys.stderr.write(separator)
3229
+ return rootObj, rootElement, mapping, reverse_node_mapping
3230
+
3231
+
3232
+ def parseString(inString, silence=False, print_warnings=True):
3233
+ '''Parse a string, create the object tree, and export it.
3234
+
3235
+ Arguments:
3236
+ - inString -- A string. This XML fragment should not start
3237
+ with an XML declaration containing an encoding.
3238
+ - silence -- A boolean. If False, export the object.
3239
+ Returns -- The root object in the tree.
3240
+ '''
3241
+ parser = None
3242
+ rootNode= parsexmlstring_(inString, parser)
3243
+ gds_collector = GdsCollector_()
3244
+ rootTag, rootClass = get_root_tag(rootNode)
3245
+ if rootClass is None:
3246
+ rootTag = 'AuthorizedReturnType'
3247
+ rootClass = AuthorizedReturnType
3248
+ rootObj = rootClass.factory()
3249
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3250
+ if not SaveElementTreeNode:
3251
+ rootNode = None
3252
+ if not silence:
3253
+ sys.stdout.write('<?xml version="1.0" ?>\n')
3254
+ rootObj.export(
3255
+ sys.stdout, 0, name_=rootTag,
3256
+ namespacedef_='')
3257
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3258
+ separator = ('-' * 50) + '\n'
3259
+ sys.stderr.write(separator)
3260
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3261
+ len(gds_collector.get_messages()), ))
3262
+ gds_collector.write_messages(sys.stderr)
3263
+ sys.stderr.write(separator)
3264
+ return rootObj
3265
+
3266
+
3267
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
3268
+ parser = None
3269
+ doc = parsexml_(inFileName, parser)
3270
+ gds_collector = GdsCollector_()
3271
+ rootNode = doc.getroot()
3272
+ rootTag, rootClass = get_root_tag(rootNode)
3273
+ if rootClass is None:
3274
+ rootTag = 'AuthorizedReturnType'
3275
+ rootClass = AuthorizedReturnType
3276
+ rootObj = rootClass.factory()
3277
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3278
+ # Enable Python to collect the space used by the DOM.
3279
+ if not SaveElementTreeNode:
3280
+ doc = None
3281
+ rootNode = None
3282
+ if not silence:
3283
+ sys.stdout.write('#from authreturn import *\n\n')
3284
+ sys.stdout.write('import authreturn as model_\n\n')
3285
+ sys.stdout.write('rootObj = model_.rootClass(\n')
3286
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
3287
+ sys.stdout.write(')\n')
3288
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3289
+ separator = ('-' * 50) + '\n'
3290
+ sys.stderr.write(separator)
3291
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3292
+ len(gds_collector.get_messages()), ))
3293
+ gds_collector.write_messages(sys.stderr)
3294
+ sys.stderr.write(separator)
3295
+ return rootObj
3296
+
3297
+
3298
+ def main():
3299
+ args = sys.argv[1:]
3300
+ if len(args) == 1:
3301
+ parse(args[0])
3302
+ else:
3303
+ usage()
3304
+
3305
+
3306
+ if __name__ == '__main__':
3307
+ #import pdb; pdb.set_trace()
3308
+ main()
3309
+
3310
+ RenameMappings_ = {
3311
+ }
3312
+
3313
+ #
3314
+ # Mapping of namespaces to types defined in them
3315
+ # and the file in which each is defined.
3316
+ # simpleTypes are marked "ST" and complexTypes "CT".
3317
+ NamespaceToDefMappings_ = {'http://www.canadapost.ca/ws/authreturn-v2': [('TrackingPINType',
3318
+ './schemas/authreturn.xsd',
3319
+ 'ST'),
3320
+ ('ContactNameType',
3321
+ './schemas/authreturn.xsd',
3322
+ 'ST'),
3323
+ ('CompanyNameType',
3324
+ './schemas/authreturn.xsd',
3325
+ 'ST'),
3326
+ ('EmailType',
3327
+ './schemas/authreturn.xsd',
3328
+ 'ST'),
3329
+ ('ReturnPolicyNumberType',
3330
+ './schemas/authreturn.xsd',
3331
+ 'ST'),
3332
+ ('AdditionalOrderInfoLabelEnType',
3333
+ './schemas/authreturn.xsd',
3334
+ 'ST'),
3335
+ ('AdditionalOrderInfoLabelFrType',
3336
+ './schemas/authreturn.xsd',
3337
+ 'ST'),
3338
+ ('AdditionalOrderInfoType',
3339
+ './schemas/authreturn.xsd',
3340
+ 'ST'),
3341
+ ('AuthorizedReturnInfoType',
3342
+ './schemas/authreturn.xsd',
3343
+ 'CT'),
3344
+ ('PublicKeyInfoType',
3345
+ './schemas/authreturn.xsd',
3346
+ 'CT'),
3347
+ ('AuthorizedReturnType',
3348
+ './schemas/authreturn.xsd',
3349
+ 'CT'),
3350
+ ('AuthSettlementInfoType',
3351
+ './schemas/authreturn.xsd',
3352
+ 'CT'),
3353
+ ('ReturnerType',
3354
+ './schemas/authreturn.xsd',
3355
+ 'CT'),
3356
+ ('ReceiverType',
3357
+ './schemas/authreturn.xsd',
3358
+ 'CT'),
3359
+ ('ReferencesType',
3360
+ './schemas/authreturn.xsd',
3361
+ 'CT'),
3362
+ ('DomesticAddressDetailsType',
3363
+ './schemas/authreturn.xsd',
3364
+ 'CT'),
3365
+ ('ParcelCharacteristicsType',
3366
+ './schemas/authreturn.xsd',
3367
+ 'CT'),
3368
+ ('PrintPreferencesType',
3369
+ './schemas/authreturn.xsd',
3370
+ 'CT'),
3371
+ ('NotificationsType',
3372
+ './schemas/authreturn.xsd',
3373
+ 'CT')]}
3374
+
3375
+ __all__ = [
3376
+ "AuthSettlementInfoType",
3377
+ "AuthorizedReturnInfoType",
3378
+ "AuthorizedReturnType",
3379
+ "DomesticAddressDetailsType",
3380
+ "NotificationsType",
3381
+ "ParcelCharacteristicsType",
3382
+ "PrintPreferencesType",
3383
+ "PublicKeyInfoType",
3384
+ "ReceiverType",
3385
+ "ReferencesType",
3386
+ "ReturnerType",
3387
+ "dimensionsType",
3388
+ "notificationType"
3389
+ ]