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,3704 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #
5
+ # Generated Sat Mar 16 02:19:29 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/manifest.py')
11
+ #
12
+ # Command line arguments:
13
+ # ./schemas/manifest.xsd
14
+ #
15
+ # Command line:
16
+ # /home/kserver/Workspace/karrio/.venv/karrio/bin/generateDS --no-namespace-defs -o "./karrio/schemas/canadapost/manifest.py" ./schemas/manifest.xsd
17
+ #
18
+ # Current working directory (os.getcwd()):
19
+ # canadapost
20
+ #
21
+
22
+ import sys
23
+ try:
24
+ ModulenotfoundExp_ = ModuleNotFoundError
25
+ except NameError:
26
+ ModulenotfoundExp_ = ImportError
27
+ from six.moves import zip_longest
28
+ import os
29
+ import re as re_
30
+ import base64
31
+ import datetime as datetime_
32
+ import decimal as decimal_
33
+ from lxml import etree as etree_
34
+
35
+
36
+ Validate_simpletypes_ = True
37
+ SaveElementTreeNode = True
38
+ TagNamePrefix = ""
39
+ if sys.version_info.major == 2:
40
+ BaseStrType_ = basestring
41
+ else:
42
+ BaseStrType_ = str
43
+
44
+
45
+ def parsexml_(infile, parser=None, **kwargs):
46
+ if parser is None:
47
+ # Use the lxml ElementTree compatible parser so that, e.g.,
48
+ # we ignore comments.
49
+ try:
50
+ parser = etree_.ETCompatXMLParser()
51
+ except AttributeError:
52
+ # fallback to xml.etree
53
+ parser = etree_.XMLParser()
54
+ try:
55
+ if isinstance(infile, os.PathLike):
56
+ infile = os.path.join(infile)
57
+ except AttributeError:
58
+ pass
59
+ doc = etree_.parse(infile, parser=parser, **kwargs)
60
+ return doc
61
+
62
+ def parsexmlstring_(instring, parser=None, **kwargs):
63
+ if parser is None:
64
+ # Use the lxml ElementTree compatible parser so that, e.g.,
65
+ # we ignore comments.
66
+ try:
67
+ parser = etree_.ETCompatXMLParser()
68
+ except AttributeError:
69
+ # fallback to xml.etree
70
+ parser = etree_.XMLParser()
71
+ element = etree_.fromstring(instring, parser=parser, **kwargs)
72
+ return element
73
+
74
+ #
75
+ # Namespace prefix definition table (and other attributes, too)
76
+ #
77
+ # The module generatedsnamespaces, if it is importable, must contain
78
+ # a dictionary named GeneratedsNamespaceDefs. This Python dictionary
79
+ # should map element type names (strings) to XML schema namespace prefix
80
+ # definitions. The export method for any class for which there is
81
+ # a namespace prefix definition, will export that definition in the
82
+ # XML representation of that element. See the export method of
83
+ # any generated element type class for an example of the use of this
84
+ # table.
85
+ # A sample table is:
86
+ #
87
+ # # File: generatedsnamespaces.py
88
+ #
89
+ # GenerateDSNamespaceDefs = {
90
+ # "ElementtypeA": "http://www.xxx.com/namespaceA",
91
+ # "ElementtypeB": "http://www.xxx.com/namespaceB",
92
+ # }
93
+ #
94
+ # Additionally, the generatedsnamespaces module can contain a python
95
+ # dictionary named GenerateDSNamespaceTypePrefixes that associates element
96
+ # types with the namespace prefixes that are to be added to the
97
+ # "xsi:type" attribute value. See the _exportAttributes method of
98
+ # any generated element type and the generation of "xsi:type" for an
99
+ # example of the use of this table.
100
+ # An example table:
101
+ #
102
+ # # File: generatedsnamespaces.py
103
+ #
104
+ # GenerateDSNamespaceTypePrefixes = {
105
+ # "ElementtypeC": "aaa:",
106
+ # "ElementtypeD": "bbb:",
107
+ # }
108
+ #
109
+
110
+ try:
111
+ from generatedsnamespaces import GenerateDSNamespaceDefs as GenerateDSNamespaceDefs_
112
+ except ModulenotfoundExp_ :
113
+ GenerateDSNamespaceDefs_ = {}
114
+ try:
115
+ from generatedsnamespaces import GenerateDSNamespaceTypePrefixes as GenerateDSNamespaceTypePrefixes_
116
+ except ModulenotfoundExp_ :
117
+ GenerateDSNamespaceTypePrefixes_ = {}
118
+
119
+ #
120
+ # You can replace the following class definition by defining an
121
+ # importable module named "generatedscollector" containing a class
122
+ # named "GdsCollector". See the default class definition below for
123
+ # clues about the possible content of that class.
124
+ #
125
+ try:
126
+ from generatedscollector import GdsCollector as GdsCollector_
127
+ except ModulenotfoundExp_ :
128
+
129
+ class GdsCollector_(object):
130
+
131
+ def __init__(self, messages=None):
132
+ if messages is None:
133
+ self.messages = []
134
+ else:
135
+ self.messages = messages
136
+
137
+ def add_message(self, msg):
138
+ self.messages.append(msg)
139
+
140
+ def get_messages(self):
141
+ return self.messages
142
+
143
+ def clear_messages(self):
144
+ self.messages = []
145
+
146
+ def print_messages(self):
147
+ for msg in self.messages:
148
+ print("Warning: {}".format(msg))
149
+
150
+ def write_messages(self, outstream):
151
+ for msg in self.messages:
152
+ outstream.write("Warning: {}\n".format(msg))
153
+
154
+
155
+ #
156
+ # The super-class for enum types
157
+ #
158
+
159
+ try:
160
+ from enum import Enum
161
+ except ModulenotfoundExp_ :
162
+ Enum = object
163
+
164
+ #
165
+ # The root super-class for element type classes
166
+ #
167
+ # Calls to the methods in these classes are generated by generateDS.py.
168
+ # You can replace these methods by re-implementing the following class
169
+ # in a module named generatedssuper.py.
170
+
171
+ try:
172
+ from generatedssuper import GeneratedsSuper
173
+ except ModulenotfoundExp_ as exp:
174
+ try:
175
+ from generatedssupersuper import GeneratedsSuperSuper
176
+ except ModulenotfoundExp_ as exp:
177
+ class GeneratedsSuperSuper(object):
178
+ pass
179
+
180
+ class GeneratedsSuper(GeneratedsSuperSuper):
181
+ __hash__ = object.__hash__
182
+ tzoff_pattern = re_.compile(r'(\+|-)((0\d|1[0-3]):[0-5]\d|14:00)$')
183
+ class _FixedOffsetTZ(datetime_.tzinfo):
184
+ def __init__(self, offset, name):
185
+ self.__offset = datetime_.timedelta(minutes=offset)
186
+ self.__name = name
187
+ def utcoffset(self, dt):
188
+ return self.__offset
189
+ def tzname(self, dt):
190
+ return self.__name
191
+ def dst(self, dt):
192
+ return None
193
+ def __str__(self):
194
+ settings = {
195
+ 'str_pretty_print': True,
196
+ 'str_indent_level': 0,
197
+ 'str_namespaceprefix': '',
198
+ 'str_name': self.__class__.__name__,
199
+ 'str_namespacedefs': '',
200
+ }
201
+ for n in settings:
202
+ if hasattr(self, n):
203
+ settings[n] = getattr(self, n)
204
+ if sys.version_info.major == 2:
205
+ from StringIO import StringIO
206
+ else:
207
+ from io import StringIO
208
+ output = StringIO()
209
+ self.export(
210
+ output,
211
+ settings['str_indent_level'],
212
+ pretty_print=settings['str_pretty_print'],
213
+ namespaceprefix_=settings['str_namespaceprefix'],
214
+ name_=settings['str_name'],
215
+ namespacedef_=settings['str_namespacedefs']
216
+ )
217
+ strval = output.getvalue()
218
+ output.close()
219
+ return strval
220
+ def gds_format_string(self, input_data, input_name=''):
221
+ return input_data
222
+ def gds_parse_string(self, input_data, node=None, input_name=''):
223
+ return input_data
224
+ def gds_validate_string(self, input_data, node=None, input_name=''):
225
+ if not input_data:
226
+ return ''
227
+ else:
228
+ return input_data
229
+ def gds_format_base64(self, input_data, input_name=''):
230
+ return base64.b64encode(input_data).decode('ascii')
231
+ def gds_validate_base64(self, input_data, node=None, input_name=''):
232
+ return input_data
233
+ def gds_format_integer(self, input_data, input_name=''):
234
+ return '%d' % int(input_data)
235
+ def gds_parse_integer(self, input_data, node=None, input_name=''):
236
+ try:
237
+ ival = int(input_data)
238
+ except (TypeError, ValueError) as exp:
239
+ raise_parse_error(node, 'Requires integer value: %s' % exp)
240
+ return ival
241
+ def gds_validate_integer(self, input_data, node=None, input_name=''):
242
+ try:
243
+ value = int(input_data)
244
+ except (TypeError, ValueError):
245
+ raise_parse_error(node, 'Requires integer value')
246
+ return value
247
+ def gds_format_integer_list(self, input_data, input_name=''):
248
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
249
+ input_data = [str(s) for s in input_data]
250
+ return '%s' % ' '.join(input_data)
251
+ def gds_validate_integer_list(
252
+ self, input_data, node=None, input_name=''):
253
+ values = input_data.split()
254
+ for value in values:
255
+ try:
256
+ int(value)
257
+ except (TypeError, ValueError):
258
+ raise_parse_error(node, 'Requires sequence of integer values')
259
+ return values
260
+ def gds_format_float(self, input_data, input_name=''):
261
+ value = ('%.15f' % float(input_data)).rstrip('0')
262
+ if value.endswith('.'):
263
+ value += '0'
264
+ return value
265
+
266
+ def gds_parse_float(self, input_data, node=None, input_name=''):
267
+ try:
268
+ fval_ = float(input_data)
269
+ except (TypeError, ValueError) as exp:
270
+ raise_parse_error(node, 'Requires float or double value: %s' % exp)
271
+ return fval_
272
+ def gds_validate_float(self, input_data, node=None, input_name=''):
273
+ try:
274
+ value = float(input_data)
275
+ except (TypeError, ValueError):
276
+ raise_parse_error(node, 'Requires float value')
277
+ return value
278
+ def gds_format_float_list(self, input_data, input_name=''):
279
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
280
+ input_data = [str(s) for s in input_data]
281
+ return '%s' % ' '.join(input_data)
282
+ def gds_validate_float_list(
283
+ self, input_data, node=None, input_name=''):
284
+ values = input_data.split()
285
+ for value in values:
286
+ try:
287
+ float(value)
288
+ except (TypeError, ValueError):
289
+ raise_parse_error(node, 'Requires sequence of float values')
290
+ return values
291
+ def gds_format_decimal(self, input_data, input_name=''):
292
+ return_value = '%s' % input_data
293
+ if '.' in return_value:
294
+ return_value = return_value.rstrip('0')
295
+ if return_value.endswith('.'):
296
+ return_value = return_value.rstrip('.')
297
+ return return_value
298
+ def gds_parse_decimal(self, input_data, node=None, input_name=''):
299
+ try:
300
+ decimal_value = decimal_.Decimal(input_data)
301
+ except (TypeError, ValueError):
302
+ raise_parse_error(node, 'Requires decimal value')
303
+ return decimal_value
304
+ def gds_validate_decimal(self, input_data, node=None, input_name=''):
305
+ try:
306
+ value = decimal_.Decimal(input_data)
307
+ except (TypeError, ValueError):
308
+ raise_parse_error(node, 'Requires decimal value')
309
+ return value
310
+ def gds_format_decimal_list(self, input_data, input_name=''):
311
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
312
+ input_data = [str(s) for s in input_data]
313
+ return ' '.join([self.gds_format_decimal(item) for item in input_data])
314
+ def gds_validate_decimal_list(
315
+ self, input_data, node=None, input_name=''):
316
+ values = input_data.split()
317
+ for value in values:
318
+ try:
319
+ decimal_.Decimal(value)
320
+ except (TypeError, ValueError):
321
+ raise_parse_error(node, 'Requires sequence of decimal values')
322
+ return values
323
+ def gds_format_double(self, input_data, input_name=''):
324
+ return '%s' % input_data
325
+ def gds_parse_double(self, input_data, node=None, input_name=''):
326
+ try:
327
+ fval_ = float(input_data)
328
+ except (TypeError, ValueError) as exp:
329
+ raise_parse_error(node, 'Requires double or float value: %s' % exp)
330
+ return fval_
331
+ def gds_validate_double(self, input_data, node=None, input_name=''):
332
+ try:
333
+ value = float(input_data)
334
+ except (TypeError, ValueError):
335
+ raise_parse_error(node, 'Requires double or float value')
336
+ return value
337
+ def gds_format_double_list(self, input_data, input_name=''):
338
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
339
+ input_data = [str(s) for s in input_data]
340
+ return '%s' % ' '.join(input_data)
341
+ def gds_validate_double_list(
342
+ self, input_data, node=None, input_name=''):
343
+ values = input_data.split()
344
+ for value in values:
345
+ try:
346
+ float(value)
347
+ except (TypeError, ValueError):
348
+ raise_parse_error(
349
+ node, 'Requires sequence of double or float values')
350
+ return values
351
+ def gds_format_boolean(self, input_data, input_name=''):
352
+ return ('%s' % input_data).lower()
353
+ def gds_parse_boolean(self, input_data, node=None, input_name=''):
354
+ input_data = input_data.strip()
355
+ if input_data in ('true', '1'):
356
+ bval = True
357
+ elif input_data in ('false', '0'):
358
+ bval = False
359
+ else:
360
+ raise_parse_error(node, 'Requires boolean value')
361
+ return bval
362
+ def gds_validate_boolean(self, input_data, node=None, input_name=''):
363
+ if input_data not in (True, 1, False, 0, ):
364
+ raise_parse_error(
365
+ node,
366
+ 'Requires boolean value '
367
+ '(one of True, 1, False, 0)')
368
+ return input_data
369
+ def gds_format_boolean_list(self, input_data, input_name=''):
370
+ if len(input_data) > 0 and not isinstance(input_data[0], BaseStrType_):
371
+ input_data = [str(s) for s in input_data]
372
+ return '%s' % ' '.join(input_data)
373
+ def gds_validate_boolean_list(
374
+ self, input_data, node=None, input_name=''):
375
+ values = input_data.split()
376
+ for value in values:
377
+ value = self.gds_parse_boolean(value, node, input_name)
378
+ if value not in (True, 1, False, 0, ):
379
+ raise_parse_error(
380
+ node,
381
+ 'Requires sequence of boolean values '
382
+ '(one of True, 1, False, 0)')
383
+ return values
384
+ def gds_validate_datetime(self, input_data, node=None, input_name=''):
385
+ return input_data
386
+ def gds_format_datetime(self, input_data, input_name=''):
387
+ if input_data.microsecond == 0:
388
+ _svalue = '%04d-%02d-%02dT%02d:%02d:%02d' % (
389
+ input_data.year,
390
+ input_data.month,
391
+ input_data.day,
392
+ input_data.hour,
393
+ input_data.minute,
394
+ input_data.second,
395
+ )
396
+ else:
397
+ _svalue = '%04d-%02d-%02dT%02d:%02d:%02d.%s' % (
398
+ input_data.year,
399
+ input_data.month,
400
+ input_data.day,
401
+ input_data.hour,
402
+ input_data.minute,
403
+ input_data.second,
404
+ ('%f' % (float(input_data.microsecond) / 1000000))[2:],
405
+ )
406
+ if input_data.tzinfo is not None:
407
+ tzoff = input_data.tzinfo.utcoffset(input_data)
408
+ if tzoff is not None:
409
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
410
+ if total_seconds == 0:
411
+ _svalue += 'Z'
412
+ else:
413
+ if total_seconds < 0:
414
+ _svalue += '-'
415
+ total_seconds *= -1
416
+ else:
417
+ _svalue += '+'
418
+ hours = total_seconds // 3600
419
+ minutes = (total_seconds - (hours * 3600)) // 60
420
+ _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
421
+ return _svalue
422
+ @classmethod
423
+ def gds_parse_datetime(cls, input_data):
424
+ tz = None
425
+ if input_data[-1] == 'Z':
426
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
427
+ input_data = input_data[:-1]
428
+ else:
429
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
430
+ if results is not None:
431
+ tzoff_parts = results.group(2).split(':')
432
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
433
+ if results.group(1) == '-':
434
+ tzoff *= -1
435
+ tz = GeneratedsSuper._FixedOffsetTZ(
436
+ tzoff, results.group(0))
437
+ input_data = input_data[:-6]
438
+ time_parts = input_data.split('.')
439
+ if len(time_parts) > 1:
440
+ micro_seconds = int(float('0.' + time_parts[1]) * 1000000)
441
+ input_data = '%s.%s' % (
442
+ time_parts[0], "{}".format(micro_seconds).rjust(6, "0"), )
443
+ dt = datetime_.datetime.strptime(
444
+ input_data, '%Y-%m-%dT%H:%M:%S.%f')
445
+ else:
446
+ dt = datetime_.datetime.strptime(
447
+ input_data, '%Y-%m-%dT%H:%M:%S')
448
+ dt = dt.replace(tzinfo=tz)
449
+ return dt
450
+ def gds_validate_date(self, input_data, node=None, input_name=''):
451
+ return input_data
452
+ def gds_format_date(self, input_data, input_name=''):
453
+ _svalue = '%04d-%02d-%02d' % (
454
+ input_data.year,
455
+ input_data.month,
456
+ input_data.day,
457
+ )
458
+ try:
459
+ if input_data.tzinfo is not None:
460
+ tzoff = input_data.tzinfo.utcoffset(input_data)
461
+ if tzoff is not None:
462
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
463
+ if total_seconds == 0:
464
+ _svalue += 'Z'
465
+ else:
466
+ if total_seconds < 0:
467
+ _svalue += '-'
468
+ total_seconds *= -1
469
+ else:
470
+ _svalue += '+'
471
+ hours = total_seconds // 3600
472
+ minutes = (total_seconds - (hours * 3600)) // 60
473
+ _svalue += '{0:02d}:{1:02d}'.format(
474
+ hours, minutes)
475
+ except AttributeError:
476
+ pass
477
+ return _svalue
478
+ @classmethod
479
+ def gds_parse_date(cls, input_data):
480
+ tz = None
481
+ if input_data[-1] == 'Z':
482
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
483
+ input_data = input_data[:-1]
484
+ else:
485
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
486
+ if results is not None:
487
+ tzoff_parts = results.group(2).split(':')
488
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
489
+ if results.group(1) == '-':
490
+ tzoff *= -1
491
+ tz = GeneratedsSuper._FixedOffsetTZ(
492
+ tzoff, results.group(0))
493
+ input_data = input_data[:-6]
494
+ dt = datetime_.datetime.strptime(input_data, '%Y-%m-%d')
495
+ dt = dt.replace(tzinfo=tz)
496
+ return dt.date()
497
+ def gds_validate_time(self, input_data, node=None, input_name=''):
498
+ return input_data
499
+ def gds_format_time(self, input_data, input_name=''):
500
+ if input_data.microsecond == 0:
501
+ _svalue = '%02d:%02d:%02d' % (
502
+ input_data.hour,
503
+ input_data.minute,
504
+ input_data.second,
505
+ )
506
+ else:
507
+ _svalue = '%02d:%02d:%02d.%s' % (
508
+ input_data.hour,
509
+ input_data.minute,
510
+ input_data.second,
511
+ ('%f' % (float(input_data.microsecond) / 1000000))[2:],
512
+ )
513
+ if input_data.tzinfo is not None:
514
+ tzoff = input_data.tzinfo.utcoffset(input_data)
515
+ if tzoff is not None:
516
+ total_seconds = tzoff.seconds + (86400 * tzoff.days)
517
+ if total_seconds == 0:
518
+ _svalue += 'Z'
519
+ else:
520
+ if total_seconds < 0:
521
+ _svalue += '-'
522
+ total_seconds *= -1
523
+ else:
524
+ _svalue += '+'
525
+ hours = total_seconds // 3600
526
+ minutes = (total_seconds - (hours * 3600)) // 60
527
+ _svalue += '{0:02d}:{1:02d}'.format(hours, minutes)
528
+ return _svalue
529
+ def gds_validate_simple_patterns(self, patterns, target):
530
+ # pat is a list of lists of strings/patterns.
531
+ # The target value must match at least one of the patterns
532
+ # in order for the test to succeed.
533
+ found1 = True
534
+ target = str(target)
535
+ for patterns1 in patterns:
536
+ found2 = False
537
+ for patterns2 in patterns1:
538
+ mo = re_.search(patterns2, target)
539
+ if mo is not None and len(mo.group(0)) == len(target):
540
+ found2 = True
541
+ break
542
+ if not found2:
543
+ found1 = False
544
+ break
545
+ return found1
546
+ @classmethod
547
+ def gds_parse_time(cls, input_data):
548
+ tz = None
549
+ if input_data[-1] == 'Z':
550
+ tz = GeneratedsSuper._FixedOffsetTZ(0, 'UTC')
551
+ input_data = input_data[:-1]
552
+ else:
553
+ results = GeneratedsSuper.tzoff_pattern.search(input_data)
554
+ if results is not None:
555
+ tzoff_parts = results.group(2).split(':')
556
+ tzoff = int(tzoff_parts[0]) * 60 + int(tzoff_parts[1])
557
+ if results.group(1) == '-':
558
+ tzoff *= -1
559
+ tz = GeneratedsSuper._FixedOffsetTZ(
560
+ tzoff, results.group(0))
561
+ input_data = input_data[:-6]
562
+ if len(input_data.split('.')) > 1:
563
+ dt = datetime_.datetime.strptime(input_data, '%H:%M:%S.%f')
564
+ else:
565
+ dt = datetime_.datetime.strptime(input_data, '%H:%M:%S')
566
+ dt = dt.replace(tzinfo=tz)
567
+ return dt.time()
568
+ def gds_check_cardinality_(
569
+ self, value, input_name,
570
+ min_occurs=0, max_occurs=1, required=None):
571
+ if value is None:
572
+ length = 0
573
+ elif isinstance(value, list):
574
+ length = len(value)
575
+ else:
576
+ length = 1
577
+ if required is not None :
578
+ if required and length < 1:
579
+ self.gds_collector_.add_message(
580
+ "Required value {}{} is missing".format(
581
+ input_name, self.gds_get_node_lineno_()))
582
+ if length < min_occurs:
583
+ self.gds_collector_.add_message(
584
+ "Number of values for {}{} is below "
585
+ "the minimum allowed, "
586
+ "expected at least {}, found {}".format(
587
+ input_name, self.gds_get_node_lineno_(),
588
+ min_occurs, length))
589
+ elif length > max_occurs:
590
+ self.gds_collector_.add_message(
591
+ "Number of values for {}{} is above "
592
+ "the maximum allowed, "
593
+ "expected at most {}, found {}".format(
594
+ input_name, self.gds_get_node_lineno_(),
595
+ max_occurs, length))
596
+ def gds_validate_builtin_ST_(
597
+ self, validator, value, input_name,
598
+ min_occurs=None, max_occurs=None, required=None):
599
+ if value is not None:
600
+ try:
601
+ validator(value, input_name=input_name)
602
+ except GDSParseError as parse_error:
603
+ self.gds_collector_.add_message(str(parse_error))
604
+ def gds_validate_defined_ST_(
605
+ self, validator, value, input_name,
606
+ min_occurs=None, max_occurs=None, required=None):
607
+ if value is not None:
608
+ try:
609
+ validator(value)
610
+ except GDSParseError as parse_error:
611
+ self.gds_collector_.add_message(str(parse_error))
612
+ def gds_str_lower(self, instring):
613
+ return instring.lower()
614
+ def get_path_(self, node):
615
+ path_list = []
616
+ self.get_path_list_(node, path_list)
617
+ path_list.reverse()
618
+ path = '/'.join(path_list)
619
+ return path
620
+ Tag_strip_pattern_ = re_.compile(r'\{.*\}')
621
+ def get_path_list_(self, node, path_list):
622
+ if node is None:
623
+ return
624
+ tag = GeneratedsSuper.Tag_strip_pattern_.sub('', node.tag)
625
+ if tag:
626
+ path_list.append(tag)
627
+ self.get_path_list_(node.getparent(), path_list)
628
+ def get_class_obj_(self, node, default_class=None):
629
+ class_obj1 = default_class
630
+ if 'xsi' in node.nsmap:
631
+ classname = node.get('{%s}type' % node.nsmap['xsi'])
632
+ if classname is not None:
633
+ names = classname.split(':')
634
+ if len(names) == 2:
635
+ classname = names[1]
636
+ class_obj2 = globals().get(classname)
637
+ if class_obj2 is not None:
638
+ class_obj1 = class_obj2
639
+ return class_obj1
640
+ def gds_build_any(self, node, type_name=None):
641
+ # provide default value in case option --disable-xml is used.
642
+ content = ""
643
+ content = etree_.tostring(node, encoding="unicode")
644
+ return content
645
+ @classmethod
646
+ def gds_reverse_node_mapping(cls, mapping):
647
+ return dict(((v, k) for k, v in mapping.items()))
648
+ @staticmethod
649
+ def gds_encode(instring):
650
+ if sys.version_info.major == 2:
651
+ if ExternalEncoding:
652
+ encoding = ExternalEncoding
653
+ else:
654
+ encoding = 'utf-8'
655
+ return instring.encode(encoding)
656
+ else:
657
+ return instring
658
+ @staticmethod
659
+ def convert_unicode(instring):
660
+ if isinstance(instring, str):
661
+ result = quote_xml(instring)
662
+ elif sys.version_info.major == 2 and isinstance(instring, unicode):
663
+ result = quote_xml(instring).encode('utf8')
664
+ else:
665
+ result = GeneratedsSuper.gds_encode(str(instring))
666
+ return result
667
+ def __eq__(self, other):
668
+ def excl_select_objs_(obj):
669
+ return (obj[0] != 'parent_object_' and
670
+ obj[0] != 'gds_collector_')
671
+ if type(self) != type(other):
672
+ return False
673
+ return all(x == y for x, y in zip_longest(
674
+ filter(excl_select_objs_, self.__dict__.items()),
675
+ filter(excl_select_objs_, other.__dict__.items())))
676
+ def __ne__(self, other):
677
+ return not self.__eq__(other)
678
+ # Django ETL transform hooks.
679
+ def gds_djo_etl_transform(self):
680
+ pass
681
+ def gds_djo_etl_transform_db_obj(self, dbobj):
682
+ pass
683
+ # SQLAlchemy ETL transform hooks.
684
+ def gds_sqa_etl_transform(self):
685
+ return 0, None
686
+ def gds_sqa_etl_transform_db_obj(self, dbobj):
687
+ pass
688
+ def gds_get_node_lineno_(self):
689
+ if (hasattr(self, "gds_elementtree_node_") and
690
+ self.gds_elementtree_node_ is not None):
691
+ return ' near line {}'.format(
692
+ self.gds_elementtree_node_.sourceline)
693
+ else:
694
+ return ""
695
+
696
+
697
+ def getSubclassFromModule_(module, class_):
698
+ '''Get the subclass of a class from a specific module.'''
699
+ name = class_.__name__ + 'Sub'
700
+ if hasattr(module, name):
701
+ return getattr(module, name)
702
+ else:
703
+ return None
704
+
705
+
706
+ #
707
+ # If you have installed IPython you can uncomment and use the following.
708
+ # IPython is available from http://ipython.scipy.org/.
709
+ #
710
+
711
+ ## from IPython.Shell import IPShellEmbed
712
+ ## args = ''
713
+ ## ipshell = IPShellEmbed(args,
714
+ ## banner = 'Dropping into IPython',
715
+ ## exit_msg = 'Leaving Interpreter, back to program.')
716
+
717
+ # Then use the following line where and when you want to drop into the
718
+ # IPython shell:
719
+ # ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
720
+
721
+ #
722
+ # Globals
723
+ #
724
+
725
+ ExternalEncoding = ''
726
+ # Set this to false in order to deactivate during export, the use of
727
+ # name space prefixes captured from the input document.
728
+ UseCapturedNS_ = True
729
+ CapturedNsmap_ = {}
730
+ Tag_pattern_ = re_.compile(r'({.*})?(.*)')
731
+ String_cleanup_pat_ = re_.compile(r"[\n\r\s]+")
732
+ Namespace_extract_pat_ = re_.compile(r'{(.*)}(.*)')
733
+ CDATA_pattern_ = re_.compile(r"<!\[CDATA\[.*?\]\]>", re_.DOTALL)
734
+
735
+ # Change this to redirect the generated superclass module to use a
736
+ # specific subclass module.
737
+ CurrentSubclassModule_ = None
738
+
739
+ #
740
+ # Support/utility functions.
741
+ #
742
+
743
+
744
+ def showIndent(outfile, level, pretty_print=True):
745
+ if pretty_print:
746
+ for idx in range(level):
747
+ outfile.write(' ')
748
+
749
+
750
+ def quote_xml(inStr):
751
+ "Escape markup chars, but do not modify CDATA sections."
752
+ if not inStr:
753
+ return ''
754
+ s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
755
+ s2 = ''
756
+ pos = 0
757
+ matchobjects = CDATA_pattern_.finditer(s1)
758
+ for mo in matchobjects:
759
+ s3 = s1[pos:mo.start()]
760
+ s2 += quote_xml_aux(s3)
761
+ s2 += s1[mo.start():mo.end()]
762
+ pos = mo.end()
763
+ s3 = s1[pos:]
764
+ s2 += quote_xml_aux(s3)
765
+ return s2
766
+
767
+
768
+ def quote_xml_aux(inStr):
769
+ s1 = inStr.replace('&', '&amp;')
770
+ s1 = s1.replace('<', '&lt;')
771
+ s1 = s1.replace('>', '&gt;')
772
+ return s1
773
+
774
+
775
+ def quote_attrib(inStr):
776
+ s1 = (isinstance(inStr, BaseStrType_) and inStr or '%s' % inStr)
777
+ s1 = s1.replace('&', '&amp;')
778
+ s1 = s1.replace('<', '&lt;')
779
+ s1 = s1.replace('>', '&gt;')
780
+ s1 = s1.replace('\n', '&#10;')
781
+ if '"' in s1:
782
+ if "'" in s1:
783
+ s1 = '"%s"' % s1.replace('"', "&quot;")
784
+ else:
785
+ s1 = "'%s'" % s1
786
+ else:
787
+ s1 = '"%s"' % s1
788
+ return s1
789
+
790
+
791
+ def quote_python(inStr):
792
+ s1 = inStr
793
+ if s1.find("'") == -1:
794
+ if s1.find('\n') == -1:
795
+ return "'%s'" % s1
796
+ else:
797
+ return "'''%s'''" % s1
798
+ else:
799
+ if s1.find('"') != -1:
800
+ s1 = s1.replace('"', '\\"')
801
+ if s1.find('\n') == -1:
802
+ return '"%s"' % s1
803
+ else:
804
+ return '"""%s"""' % s1
805
+
806
+
807
+ def get_all_text_(node):
808
+ if node.text is not None:
809
+ text = node.text
810
+ else:
811
+ text = ''
812
+ for child in node:
813
+ if child.tail is not None:
814
+ text += child.tail
815
+ return text
816
+
817
+
818
+ def find_attr_value_(attr_name, node):
819
+ attrs = node.attrib
820
+ attr_parts = attr_name.split(':')
821
+ value = None
822
+ if len(attr_parts) == 1:
823
+ value = attrs.get(attr_name)
824
+ elif len(attr_parts) == 2:
825
+ prefix, name = attr_parts
826
+ if prefix == 'xml':
827
+ namespace = 'http://www.w3.org/XML/1998/namespace'
828
+ else:
829
+ namespace = node.nsmap.get(prefix)
830
+ if namespace is not None:
831
+ value = attrs.get('{%s}%s' % (namespace, name, ))
832
+ return value
833
+
834
+
835
+ def encode_str_2_3(instr):
836
+ return instr
837
+
838
+
839
+ class GDSParseError(Exception):
840
+ pass
841
+
842
+
843
+ def raise_parse_error(node, msg):
844
+ if node is not None:
845
+ msg = '%s (element %s/line %d)' % (msg, node.tag, node.sourceline, )
846
+ raise GDSParseError(msg)
847
+
848
+
849
+ class MixedContainer:
850
+ # Constants for category:
851
+ CategoryNone = 0
852
+ CategoryText = 1
853
+ CategorySimple = 2
854
+ CategoryComplex = 3
855
+ # Constants for content_type:
856
+ TypeNone = 0
857
+ TypeText = 1
858
+ TypeString = 2
859
+ TypeInteger = 3
860
+ TypeFloat = 4
861
+ TypeDecimal = 5
862
+ TypeDouble = 6
863
+ TypeBoolean = 7
864
+ TypeBase64 = 8
865
+ def __init__(self, category, content_type, name, value):
866
+ self.category = category
867
+ self.content_type = content_type
868
+ self.name = name
869
+ self.value = value
870
+ def getCategory(self):
871
+ return self.category
872
+ def getContenttype(self, content_type):
873
+ return self.content_type
874
+ def getValue(self):
875
+ return self.value
876
+ def getName(self):
877
+ return self.name
878
+ def export(self, outfile, level, name, namespace,
879
+ pretty_print=True):
880
+ if self.category == MixedContainer.CategoryText:
881
+ # Prevent exporting empty content as empty lines.
882
+ if self.value.strip():
883
+ outfile.write(self.value)
884
+ elif self.category == MixedContainer.CategorySimple:
885
+ self.exportSimple(outfile, level, name)
886
+ else: # category == MixedContainer.CategoryComplex
887
+ self.value.export(
888
+ outfile, level, namespace, name_=name,
889
+ pretty_print=pretty_print)
890
+ def exportSimple(self, outfile, level, name):
891
+ if self.content_type == MixedContainer.TypeString:
892
+ outfile.write('<%s>%s</%s>' % (
893
+ self.name, self.value, self.name))
894
+ elif self.content_type == MixedContainer.TypeInteger or \
895
+ self.content_type == MixedContainer.TypeBoolean:
896
+ outfile.write('<%s>%d</%s>' % (
897
+ self.name, self.value, self.name))
898
+ elif self.content_type == MixedContainer.TypeFloat or \
899
+ self.content_type == MixedContainer.TypeDecimal:
900
+ outfile.write('<%s>%f</%s>' % (
901
+ self.name, self.value, self.name))
902
+ elif self.content_type == MixedContainer.TypeDouble:
903
+ outfile.write('<%s>%g</%s>' % (
904
+ self.name, self.value, self.name))
905
+ elif self.content_type == MixedContainer.TypeBase64:
906
+ outfile.write('<%s>%s</%s>' % (
907
+ self.name,
908
+ base64.b64encode(self.value),
909
+ self.name))
910
+ def to_etree(self, element, mapping_=None, reverse_mapping_=None, nsmap_=None):
911
+ if self.category == MixedContainer.CategoryText:
912
+ # Prevent exporting empty content as empty lines.
913
+ if self.value.strip():
914
+ if len(element) > 0:
915
+ if element[-1].tail is None:
916
+ element[-1].tail = self.value
917
+ else:
918
+ element[-1].tail += self.value
919
+ else:
920
+ if element.text is None:
921
+ element.text = self.value
922
+ else:
923
+ element.text += self.value
924
+ elif self.category == MixedContainer.CategorySimple:
925
+ subelement = etree_.SubElement(
926
+ element, '%s' % self.name)
927
+ subelement.text = self.to_etree_simple()
928
+ else: # category == MixedContainer.CategoryComplex
929
+ self.value.to_etree(element)
930
+ def to_etree_simple(self, mapping_=None, reverse_mapping_=None, nsmap_=None):
931
+ if self.content_type == MixedContainer.TypeString:
932
+ text = self.value
933
+ elif (self.content_type == MixedContainer.TypeInteger or
934
+ self.content_type == MixedContainer.TypeBoolean):
935
+ text = '%d' % self.value
936
+ elif (self.content_type == MixedContainer.TypeFloat or
937
+ self.content_type == MixedContainer.TypeDecimal):
938
+ text = '%f' % self.value
939
+ elif self.content_type == MixedContainer.TypeDouble:
940
+ text = '%g' % self.value
941
+ elif self.content_type == MixedContainer.TypeBase64:
942
+ text = '%s' % base64.b64encode(self.value)
943
+ return text
944
+ def exportLiteral(self, outfile, level, name):
945
+ if self.category == MixedContainer.CategoryText:
946
+ showIndent(outfile, level)
947
+ outfile.write(
948
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
949
+ self.category, self.content_type,
950
+ self.name, self.value))
951
+ elif self.category == MixedContainer.CategorySimple:
952
+ showIndent(outfile, level)
953
+ outfile.write(
954
+ 'model_.MixedContainer(%d, %d, "%s", "%s"),\n' % (
955
+ self.category, self.content_type,
956
+ self.name, self.value))
957
+ else: # category == MixedContainer.CategoryComplex
958
+ showIndent(outfile, level)
959
+ outfile.write(
960
+ 'model_.MixedContainer(%d, %d, "%s",\n' % (
961
+ self.category, self.content_type, self.name,))
962
+ self.value.exportLiteral(outfile, level + 1)
963
+ showIndent(outfile, level)
964
+ outfile.write(')\n')
965
+
966
+
967
+ class MemberSpec_(object):
968
+ def __init__(self, name='', data_type='', container=0,
969
+ optional=0, child_attrs=None, choice=None):
970
+ self.name = name
971
+ self.data_type = data_type
972
+ self.container = container
973
+ self.child_attrs = child_attrs
974
+ self.choice = choice
975
+ self.optional = optional
976
+ def set_name(self, name): self.name = name
977
+ def get_name(self): return self.name
978
+ def set_data_type(self, data_type): self.data_type = data_type
979
+ def get_data_type_chain(self): return self.data_type
980
+ def get_data_type(self):
981
+ if isinstance(self.data_type, list):
982
+ if len(self.data_type) > 0:
983
+ return self.data_type[-1]
984
+ else:
985
+ return 'xs:string'
986
+ else:
987
+ return self.data_type
988
+ def set_container(self, container): self.container = container
989
+ def get_container(self): return self.container
990
+ def set_child_attrs(self, child_attrs): self.child_attrs = child_attrs
991
+ def get_child_attrs(self): return self.child_attrs
992
+ def set_choice(self, choice): self.choice = choice
993
+ def get_choice(self): return self.choice
994
+ def set_optional(self, optional): self.optional = optional
995
+ def get_optional(self): return self.optional
996
+
997
+
998
+ def _cast(typ, value):
999
+ if typ is None or value is None:
1000
+ return value
1001
+ return typ(value)
1002
+
1003
+
1004
+ #
1005
+ # Start enum classes
1006
+ #
1007
+ class RelType(str, Enum):
1008
+ SELF='self'
1009
+ ARTIFACT='artifact'
1010
+ DETAILS='details'
1011
+ MANIFEST_SHIPMENTS='manifestShipments'
1012
+ MANIFEST='manifest'
1013
+ SHIPMENT='shipment'
1014
+
1015
+
1016
+ class country_codeType(str, Enum):
1017
+ CA='CA'
1018
+ US='US'
1019
+
1020
+
1021
+ #
1022
+ # Start data representation classes
1023
+ #
1024
+ class ShipmentTransmitSetType(GeneratedsSuper):
1025
+ """customer-request-id -- For future use
1026
+
1027
+ """
1028
+ __hash__ = GeneratedsSuper.__hash__
1029
+ subclass = None
1030
+ superclass = None
1031
+ def __init__(self, customer_request_id=None, group_ids=None, cpc_pickup_indicator=None, requested_shipping_point=None, shipping_point_id=None, detailed_manifests=None, method_of_payment=None, manifest_address=None, customer_reference=None, excluded_shipments=None, gds_collector_=None, **kwargs_):
1032
+ self.gds_collector_ = gds_collector_
1033
+ self.gds_elementtree_node_ = None
1034
+ self.original_tagname_ = None
1035
+ self.parent_object_ = kwargs_.get('parent_object_')
1036
+ self.ns_prefix_ = None
1037
+ self.customer_request_id = customer_request_id
1038
+ self.validate_CustomerRequestIdType(self.customer_request_id)
1039
+ self.customer_request_id_nsprefix_ = None
1040
+ self.group_ids = group_ids
1041
+ self.group_ids_nsprefix_ = None
1042
+ self.cpc_pickup_indicator = cpc_pickup_indicator
1043
+ self.cpc_pickup_indicator_nsprefix_ = None
1044
+ self.requested_shipping_point = requested_shipping_point
1045
+ self.requested_shipping_point_nsprefix_ = None
1046
+ self.shipping_point_id = shipping_point_id
1047
+ self.shipping_point_id_nsprefix_ = None
1048
+ self.detailed_manifests = detailed_manifests
1049
+ self.detailed_manifests_nsprefix_ = None
1050
+ self.method_of_payment = method_of_payment
1051
+ self.method_of_payment_nsprefix_ = None
1052
+ self.manifest_address = manifest_address
1053
+ self.manifest_address_nsprefix_ = None
1054
+ self.customer_reference = customer_reference
1055
+ self.validate_CustomerReferenceType(self.customer_reference)
1056
+ self.customer_reference_nsprefix_ = None
1057
+ self.excluded_shipments = excluded_shipments
1058
+ self.excluded_shipments_nsprefix_ = None
1059
+ def factory(*args_, **kwargs_):
1060
+ if CurrentSubclassModule_ is not None:
1061
+ subclass = getSubclassFromModule_(
1062
+ CurrentSubclassModule_, ShipmentTransmitSetType)
1063
+ if subclass is not None:
1064
+ return subclass(*args_, **kwargs_)
1065
+ if ShipmentTransmitSetType.subclass:
1066
+ return ShipmentTransmitSetType.subclass(*args_, **kwargs_)
1067
+ else:
1068
+ return ShipmentTransmitSetType(*args_, **kwargs_)
1069
+ factory = staticmethod(factory)
1070
+ def get_ns_prefix_(self):
1071
+ return self.ns_prefix_
1072
+ def set_ns_prefix_(self, ns_prefix):
1073
+ self.ns_prefix_ = ns_prefix
1074
+ def get_customer_request_id(self):
1075
+ return self.customer_request_id
1076
+ def set_customer_request_id(self, customer_request_id):
1077
+ self.customer_request_id = customer_request_id
1078
+ def get_group_ids(self):
1079
+ return self.group_ids
1080
+ def set_group_ids(self, group_ids):
1081
+ self.group_ids = group_ids
1082
+ def get_cpc_pickup_indicator(self):
1083
+ return self.cpc_pickup_indicator
1084
+ def set_cpc_pickup_indicator(self, cpc_pickup_indicator):
1085
+ self.cpc_pickup_indicator = cpc_pickup_indicator
1086
+ def get_requested_shipping_point(self):
1087
+ return self.requested_shipping_point
1088
+ def set_requested_shipping_point(self, requested_shipping_point):
1089
+ self.requested_shipping_point = requested_shipping_point
1090
+ def get_shipping_point_id(self):
1091
+ return self.shipping_point_id
1092
+ def set_shipping_point_id(self, shipping_point_id):
1093
+ self.shipping_point_id = shipping_point_id
1094
+ def get_detailed_manifests(self):
1095
+ return self.detailed_manifests
1096
+ def set_detailed_manifests(self, detailed_manifests):
1097
+ self.detailed_manifests = detailed_manifests
1098
+ def get_method_of_payment(self):
1099
+ return self.method_of_payment
1100
+ def set_method_of_payment(self, method_of_payment):
1101
+ self.method_of_payment = method_of_payment
1102
+ def get_manifest_address(self):
1103
+ return self.manifest_address
1104
+ def set_manifest_address(self, manifest_address):
1105
+ self.manifest_address = manifest_address
1106
+ def get_customer_reference(self):
1107
+ return self.customer_reference
1108
+ def set_customer_reference(self, customer_reference):
1109
+ self.customer_reference = customer_reference
1110
+ def get_excluded_shipments(self):
1111
+ return self.excluded_shipments
1112
+ def set_excluded_shipments(self, excluded_shipments):
1113
+ self.excluded_shipments = excluded_shipments
1114
+ def validate_CustomerRequestIdType(self, value):
1115
+ result = True
1116
+ # Validate type CustomerRequestIdType, a restriction on xsd:normalizedString.
1117
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1118
+ if not isinstance(value, str):
1119
+ lineno = self.gds_get_node_lineno_()
1120
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1121
+ return False
1122
+ if len(value) > 35:
1123
+ lineno = self.gds_get_node_lineno_()
1124
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on CustomerRequestIdType' % {"value": value, "lineno": lineno} )
1125
+ result = False
1126
+ return result
1127
+ def validate_CustomerReferenceType(self, value):
1128
+ result = True
1129
+ # Validate type CustomerReferenceType, a restriction on xsd:string.
1130
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1131
+ if not isinstance(value, str):
1132
+ lineno = self.gds_get_node_lineno_()
1133
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1134
+ return False
1135
+ if len(value) > 12:
1136
+ lineno = self.gds_get_node_lineno_()
1137
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on CustomerReferenceType' % {"value" : encode_str_2_3(value), "lineno": lineno} )
1138
+ result = False
1139
+ return result
1140
+ def has__content(self):
1141
+ if (
1142
+ self.customer_request_id is not None or
1143
+ self.group_ids is not None or
1144
+ self.cpc_pickup_indicator is not None or
1145
+ self.requested_shipping_point is not None or
1146
+ self.shipping_point_id is not None or
1147
+ self.detailed_manifests is not None or
1148
+ self.method_of_payment is not None or
1149
+ self.manifest_address is not None or
1150
+ self.customer_reference is not None or
1151
+ self.excluded_shipments is not None
1152
+ ):
1153
+ return True
1154
+ else:
1155
+ return False
1156
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ShipmentTransmitSetType', pretty_print=True):
1157
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ShipmentTransmitSetType')
1158
+ if imported_ns_def_ is not None:
1159
+ namespacedef_ = imported_ns_def_
1160
+ if pretty_print:
1161
+ eol_ = '\n'
1162
+ else:
1163
+ eol_ = ''
1164
+ if self.original_tagname_ is not None and name_ == 'ShipmentTransmitSetType':
1165
+ name_ = self.original_tagname_
1166
+ if UseCapturedNS_ and self.ns_prefix_:
1167
+ namespaceprefix_ = self.ns_prefix_ + ':'
1168
+ showIndent(outfile, level, pretty_print)
1169
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1170
+ already_processed = set()
1171
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ShipmentTransmitSetType')
1172
+ if self.has__content():
1173
+ outfile.write('>%s' % (eol_, ))
1174
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ShipmentTransmitSetType', pretty_print=pretty_print)
1175
+ showIndent(outfile, level, pretty_print)
1176
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1177
+ else:
1178
+ outfile.write('/>%s' % (eol_, ))
1179
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ShipmentTransmitSetType'):
1180
+ pass
1181
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ShipmentTransmitSetType', fromsubclass_=False, pretty_print=True):
1182
+ if pretty_print:
1183
+ eol_ = '\n'
1184
+ else:
1185
+ eol_ = ''
1186
+ if self.customer_request_id is not None:
1187
+ namespaceprefix_ = self.customer_request_id_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_request_id_nsprefix_) else ''
1188
+ showIndent(outfile, level, pretty_print)
1189
+ outfile.write('<%scustomer-request-id>%s</%scustomer-request-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_request_id), input_name='customer-request-id')), namespaceprefix_ , eol_))
1190
+ if self.group_ids is not None:
1191
+ namespaceprefix_ = self.group_ids_nsprefix_ + ':' if (UseCapturedNS_ and self.group_ids_nsprefix_) else ''
1192
+ self.group_ids.export(outfile, level, namespaceprefix_, namespacedef_='', name_='group-ids', pretty_print=pretty_print)
1193
+ if self.cpc_pickup_indicator is not None:
1194
+ namespaceprefix_ = self.cpc_pickup_indicator_nsprefix_ + ':' if (UseCapturedNS_ and self.cpc_pickup_indicator_nsprefix_) else ''
1195
+ showIndent(outfile, level, pretty_print)
1196
+ outfile.write('<%scpc-pickup-indicator>%s</%scpc-pickup-indicator>%s' % (namespaceprefix_ , self.gds_format_boolean(self.cpc_pickup_indicator, input_name='cpc-pickup-indicator'), namespaceprefix_ , eol_))
1197
+ if self.requested_shipping_point is not None:
1198
+ namespaceprefix_ = self.requested_shipping_point_nsprefix_ + ':' if (UseCapturedNS_ and self.requested_shipping_point_nsprefix_) else ''
1199
+ showIndent(outfile, level, pretty_print)
1200
+ outfile.write('<%srequested-shipping-point>%s</%srequested-shipping-point>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.requested_shipping_point), input_name='requested-shipping-point')), namespaceprefix_ , eol_))
1201
+ if self.shipping_point_id is not None:
1202
+ namespaceprefix_ = self.shipping_point_id_nsprefix_ + ':' if (UseCapturedNS_ and self.shipping_point_id_nsprefix_) else ''
1203
+ showIndent(outfile, level, pretty_print)
1204
+ outfile.write('<%sshipping-point-id>%s</%sshipping-point-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.shipping_point_id), input_name='shipping-point-id')), namespaceprefix_ , eol_))
1205
+ if self.detailed_manifests is not None:
1206
+ namespaceprefix_ = self.detailed_manifests_nsprefix_ + ':' if (UseCapturedNS_ and self.detailed_manifests_nsprefix_) else ''
1207
+ showIndent(outfile, level, pretty_print)
1208
+ outfile.write('<%sdetailed-manifests>%s</%sdetailed-manifests>%s' % (namespaceprefix_ , self.gds_format_boolean(self.detailed_manifests, input_name='detailed-manifests'), namespaceprefix_ , eol_))
1209
+ if self.method_of_payment is not None:
1210
+ namespaceprefix_ = self.method_of_payment_nsprefix_ + ':' if (UseCapturedNS_ and self.method_of_payment_nsprefix_) else ''
1211
+ showIndent(outfile, level, pretty_print)
1212
+ outfile.write('<%smethod-of-payment>%s</%smethod-of-payment>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.method_of_payment), input_name='method-of-payment')), namespaceprefix_ , eol_))
1213
+ if self.manifest_address is not None:
1214
+ namespaceprefix_ = self.manifest_address_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_address_nsprefix_) else ''
1215
+ self.manifest_address.export(outfile, level, namespaceprefix_, namespacedef_='', name_='manifest-address', pretty_print=pretty_print)
1216
+ if self.customer_reference is not None:
1217
+ namespaceprefix_ = self.customer_reference_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_reference_nsprefix_) else ''
1218
+ showIndent(outfile, level, pretty_print)
1219
+ outfile.write('<%scustomer-reference>%s</%scustomer-reference>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_reference), input_name='customer-reference')), namespaceprefix_ , eol_))
1220
+ if self.excluded_shipments is not None:
1221
+ namespaceprefix_ = self.excluded_shipments_nsprefix_ + ':' if (UseCapturedNS_ and self.excluded_shipments_nsprefix_) else ''
1222
+ self.excluded_shipments.export(outfile, level, namespaceprefix_, namespacedef_='', name_='excluded-shipments', pretty_print=pretty_print)
1223
+ def build(self, node, gds_collector_=None):
1224
+ self.gds_collector_ = gds_collector_
1225
+ if SaveElementTreeNode:
1226
+ self.gds_elementtree_node_ = node
1227
+ already_processed = set()
1228
+ self.ns_prefix_ = node.prefix
1229
+ self._buildAttributes(node, node.attrib, already_processed)
1230
+ for child in node:
1231
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1232
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1233
+ return self
1234
+ def _buildAttributes(self, node, attrs, already_processed):
1235
+ pass
1236
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1237
+ if nodeName_ == 'customer-request-id':
1238
+ value_ = child_.text
1239
+ value_ = self.gds_parse_string(value_, node, 'customer_request_id')
1240
+ value_ = self.gds_validate_string(value_, node, 'customer_request_id')
1241
+ self.customer_request_id = value_
1242
+ self.customer_request_id_nsprefix_ = child_.prefix
1243
+ # validate type CustomerRequestIdType
1244
+ self.validate_CustomerRequestIdType(self.customer_request_id)
1245
+ elif nodeName_ == 'group-ids':
1246
+ obj_ = GroupIDListType.factory(parent_object_=self)
1247
+ obj_.build(child_, gds_collector_=gds_collector_)
1248
+ self.group_ids = obj_
1249
+ obj_.original_tagname_ = 'group-ids'
1250
+ elif nodeName_ == 'cpc-pickup-indicator':
1251
+ sval_ = child_.text
1252
+ ival_ = self.gds_parse_boolean(sval_, node, 'cpc_pickup_indicator')
1253
+ ival_ = self.gds_validate_boolean(ival_, node, 'cpc_pickup_indicator')
1254
+ self.cpc_pickup_indicator = ival_
1255
+ self.cpc_pickup_indicator_nsprefix_ = child_.prefix
1256
+ elif nodeName_ == 'requested-shipping-point':
1257
+ value_ = child_.text
1258
+ value_ = self.gds_parse_string(value_, node, 'requested_shipping_point')
1259
+ value_ = self.gds_validate_string(value_, node, 'requested_shipping_point')
1260
+ self.requested_shipping_point = value_
1261
+ self.requested_shipping_point_nsprefix_ = child_.prefix
1262
+ elif nodeName_ == 'shipping-point-id':
1263
+ value_ = child_.text
1264
+ value_ = self.gds_parse_string(value_, node, 'shipping_point_id')
1265
+ value_ = self.gds_validate_string(value_, node, 'shipping_point_id')
1266
+ self.shipping_point_id = value_
1267
+ self.shipping_point_id_nsprefix_ = child_.prefix
1268
+ elif nodeName_ == 'detailed-manifests':
1269
+ sval_ = child_.text
1270
+ ival_ = self.gds_parse_boolean(sval_, node, 'detailed_manifests')
1271
+ ival_ = self.gds_validate_boolean(ival_, node, 'detailed_manifests')
1272
+ self.detailed_manifests = ival_
1273
+ self.detailed_manifests_nsprefix_ = child_.prefix
1274
+ elif nodeName_ == 'method-of-payment':
1275
+ value_ = child_.text
1276
+ value_ = self.gds_parse_string(value_, node, 'method_of_payment')
1277
+ value_ = self.gds_validate_string(value_, node, 'method_of_payment')
1278
+ self.method_of_payment = value_
1279
+ self.method_of_payment_nsprefix_ = child_.prefix
1280
+ elif nodeName_ == 'manifest-address':
1281
+ obj_ = ManifestAddressType.factory(parent_object_=self)
1282
+ obj_.build(child_, gds_collector_=gds_collector_)
1283
+ self.manifest_address = obj_
1284
+ obj_.original_tagname_ = 'manifest-address'
1285
+ elif nodeName_ == 'customer-reference':
1286
+ value_ = child_.text
1287
+ value_ = self.gds_parse_string(value_, node, 'customer_reference')
1288
+ value_ = self.gds_validate_string(value_, node, 'customer_reference')
1289
+ self.customer_reference = value_
1290
+ self.customer_reference_nsprefix_ = child_.prefix
1291
+ # validate type CustomerReferenceType
1292
+ self.validate_CustomerReferenceType(self.customer_reference)
1293
+ elif nodeName_ == 'excluded-shipments':
1294
+ obj_ = ExcludedShipmentsType.factory(parent_object_=self)
1295
+ obj_.build(child_, gds_collector_=gds_collector_)
1296
+ self.excluded_shipments = obj_
1297
+ obj_.original_tagname_ = 'excluded-shipments'
1298
+ # end class ShipmentTransmitSetType
1299
+
1300
+
1301
+ class GroupIDListType(GeneratedsSuper):
1302
+ __hash__ = GeneratedsSuper.__hash__
1303
+ subclass = None
1304
+ superclass = None
1305
+ def __init__(self, group_id=None, gds_collector_=None, **kwargs_):
1306
+ self.gds_collector_ = gds_collector_
1307
+ self.gds_elementtree_node_ = None
1308
+ self.original_tagname_ = None
1309
+ self.parent_object_ = kwargs_.get('parent_object_')
1310
+ self.ns_prefix_ = None
1311
+ if group_id is None:
1312
+ self.group_id = []
1313
+ else:
1314
+ self.group_id = group_id
1315
+ self.group_id_nsprefix_ = None
1316
+ def factory(*args_, **kwargs_):
1317
+ if CurrentSubclassModule_ is not None:
1318
+ subclass = getSubclassFromModule_(
1319
+ CurrentSubclassModule_, GroupIDListType)
1320
+ if subclass is not None:
1321
+ return subclass(*args_, **kwargs_)
1322
+ if GroupIDListType.subclass:
1323
+ return GroupIDListType.subclass(*args_, **kwargs_)
1324
+ else:
1325
+ return GroupIDListType(*args_, **kwargs_)
1326
+ factory = staticmethod(factory)
1327
+ def get_ns_prefix_(self):
1328
+ return self.ns_prefix_
1329
+ def set_ns_prefix_(self, ns_prefix):
1330
+ self.ns_prefix_ = ns_prefix
1331
+ def get_group_id(self):
1332
+ return self.group_id
1333
+ def set_group_id(self, group_id):
1334
+ self.group_id = group_id
1335
+ def add_group_id(self, value):
1336
+ self.group_id.append(value)
1337
+ def insert_group_id_at(self, index, value):
1338
+ self.group_id.insert(index, value)
1339
+ def replace_group_id_at(self, index, value):
1340
+ self.group_id[index] = value
1341
+ def validate_GroupIDType(self, value):
1342
+ result = True
1343
+ # Validate type GroupIDType, a restriction on xsd:normalizedString.
1344
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1345
+ if not isinstance(value, str):
1346
+ lineno = self.gds_get_node_lineno_()
1347
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1348
+ return False
1349
+ if len(value) > 32:
1350
+ lineno = self.gds_get_node_lineno_()
1351
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on GroupIDType' % {"value": value, "lineno": lineno} )
1352
+ result = False
1353
+ if len(value) < 1:
1354
+ lineno = self.gds_get_node_lineno_()
1355
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on GroupIDType' % {"value" : value, "lineno": lineno} )
1356
+ result = False
1357
+ return result
1358
+ def has__content(self):
1359
+ if (
1360
+ self.group_id
1361
+ ):
1362
+ return True
1363
+ else:
1364
+ return False
1365
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='GroupIDListType', pretty_print=True):
1366
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('GroupIDListType')
1367
+ if imported_ns_def_ is not None:
1368
+ namespacedef_ = imported_ns_def_
1369
+ if pretty_print:
1370
+ eol_ = '\n'
1371
+ else:
1372
+ eol_ = ''
1373
+ if self.original_tagname_ is not None and name_ == 'GroupIDListType':
1374
+ name_ = self.original_tagname_
1375
+ if UseCapturedNS_ and self.ns_prefix_:
1376
+ namespaceprefix_ = self.ns_prefix_ + ':'
1377
+ showIndent(outfile, level, pretty_print)
1378
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1379
+ already_processed = set()
1380
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='GroupIDListType')
1381
+ if self.has__content():
1382
+ outfile.write('>%s' % (eol_, ))
1383
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='GroupIDListType', pretty_print=pretty_print)
1384
+ showIndent(outfile, level, pretty_print)
1385
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1386
+ else:
1387
+ outfile.write('/>%s' % (eol_, ))
1388
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='GroupIDListType'):
1389
+ pass
1390
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='GroupIDListType', fromsubclass_=False, pretty_print=True):
1391
+ if pretty_print:
1392
+ eol_ = '\n'
1393
+ else:
1394
+ eol_ = ''
1395
+ for group_id_ in self.group_id:
1396
+ namespaceprefix_ = self.group_id_nsprefix_ + ':' if (UseCapturedNS_ and self.group_id_nsprefix_) else ''
1397
+ showIndent(outfile, level, pretty_print)
1398
+ outfile.write('<%sgroup-id>%s</%sgroup-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(group_id_), input_name='group-id')), namespaceprefix_ , eol_))
1399
+ def build(self, node, gds_collector_=None):
1400
+ self.gds_collector_ = gds_collector_
1401
+ if SaveElementTreeNode:
1402
+ self.gds_elementtree_node_ = node
1403
+ already_processed = set()
1404
+ self.ns_prefix_ = node.prefix
1405
+ self._buildAttributes(node, node.attrib, already_processed)
1406
+ for child in node:
1407
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1408
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1409
+ return self
1410
+ def _buildAttributes(self, node, attrs, already_processed):
1411
+ pass
1412
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1413
+ if nodeName_ == 'group-id':
1414
+ value_ = child_.text
1415
+ value_ = self.gds_parse_string(value_, node, 'group_id')
1416
+ value_ = self.gds_validate_string(value_, node, 'group_id')
1417
+ self.group_id.append(value_)
1418
+ self.group_id_nsprefix_ = child_.prefix
1419
+ # validate type GroupIDType
1420
+ self.validate_GroupIDType(self.group_id[-1])
1421
+ # end class GroupIDListType
1422
+
1423
+
1424
+ class ExcludedShipmentsType(GeneratedsSuper):
1425
+ __hash__ = GeneratedsSuper.__hash__
1426
+ subclass = None
1427
+ superclass = None
1428
+ def __init__(self, shipment_id=None, gds_collector_=None, **kwargs_):
1429
+ self.gds_collector_ = gds_collector_
1430
+ self.gds_elementtree_node_ = None
1431
+ self.original_tagname_ = None
1432
+ self.parent_object_ = kwargs_.get('parent_object_')
1433
+ self.ns_prefix_ = None
1434
+ if shipment_id is None:
1435
+ self.shipment_id = []
1436
+ else:
1437
+ self.shipment_id = shipment_id
1438
+ self.shipment_id_nsprefix_ = None
1439
+ def factory(*args_, **kwargs_):
1440
+ if CurrentSubclassModule_ is not None:
1441
+ subclass = getSubclassFromModule_(
1442
+ CurrentSubclassModule_, ExcludedShipmentsType)
1443
+ if subclass is not None:
1444
+ return subclass(*args_, **kwargs_)
1445
+ if ExcludedShipmentsType.subclass:
1446
+ return ExcludedShipmentsType.subclass(*args_, **kwargs_)
1447
+ else:
1448
+ return ExcludedShipmentsType(*args_, **kwargs_)
1449
+ factory = staticmethod(factory)
1450
+ def get_ns_prefix_(self):
1451
+ return self.ns_prefix_
1452
+ def set_ns_prefix_(self, ns_prefix):
1453
+ self.ns_prefix_ = ns_prefix
1454
+ def get_shipment_id(self):
1455
+ return self.shipment_id
1456
+ def set_shipment_id(self, shipment_id):
1457
+ self.shipment_id = shipment_id
1458
+ def add_shipment_id(self, value):
1459
+ self.shipment_id.append(value)
1460
+ def insert_shipment_id_at(self, index, value):
1461
+ self.shipment_id.insert(index, value)
1462
+ def replace_shipment_id_at(self, index, value):
1463
+ self.shipment_id[index] = value
1464
+ def validate_ShipmentIDType(self, value):
1465
+ result = True
1466
+ # Validate type ShipmentIDType, a restriction on xsd:normalizedString.
1467
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1468
+ if not isinstance(value, str):
1469
+ lineno = self.gds_get_node_lineno_()
1470
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1471
+ return False
1472
+ if len(value) > 32:
1473
+ lineno = self.gds_get_node_lineno_()
1474
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on ShipmentIDType' % {"value": value, "lineno": lineno} )
1475
+ result = False
1476
+ return result
1477
+ def has__content(self):
1478
+ if (
1479
+ self.shipment_id
1480
+ ):
1481
+ return True
1482
+ else:
1483
+ return False
1484
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ExcludedShipmentsType', pretty_print=True):
1485
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ExcludedShipmentsType')
1486
+ if imported_ns_def_ is not None:
1487
+ namespacedef_ = imported_ns_def_
1488
+ if pretty_print:
1489
+ eol_ = '\n'
1490
+ else:
1491
+ eol_ = ''
1492
+ if self.original_tagname_ is not None and name_ == 'ExcludedShipmentsType':
1493
+ name_ = self.original_tagname_
1494
+ if UseCapturedNS_ and self.ns_prefix_:
1495
+ namespaceprefix_ = self.ns_prefix_ + ':'
1496
+ showIndent(outfile, level, pretty_print)
1497
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1498
+ already_processed = set()
1499
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ExcludedShipmentsType')
1500
+ if self.has__content():
1501
+ outfile.write('>%s' % (eol_, ))
1502
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ExcludedShipmentsType', pretty_print=pretty_print)
1503
+ showIndent(outfile, level, pretty_print)
1504
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1505
+ else:
1506
+ outfile.write('/>%s' % (eol_, ))
1507
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ExcludedShipmentsType'):
1508
+ pass
1509
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ExcludedShipmentsType', fromsubclass_=False, pretty_print=True):
1510
+ if pretty_print:
1511
+ eol_ = '\n'
1512
+ else:
1513
+ eol_ = ''
1514
+ for shipment_id_ in self.shipment_id:
1515
+ namespaceprefix_ = self.shipment_id_nsprefix_ + ':' if (UseCapturedNS_ and self.shipment_id_nsprefix_) else ''
1516
+ showIndent(outfile, level, pretty_print)
1517
+ outfile.write('<%sshipment-id>%s</%sshipment-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(shipment_id_), input_name='shipment-id')), namespaceprefix_ , eol_))
1518
+ def build(self, node, gds_collector_=None):
1519
+ self.gds_collector_ = gds_collector_
1520
+ if SaveElementTreeNode:
1521
+ self.gds_elementtree_node_ = node
1522
+ already_processed = set()
1523
+ self.ns_prefix_ = node.prefix
1524
+ self._buildAttributes(node, node.attrib, already_processed)
1525
+ for child in node:
1526
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1527
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1528
+ return self
1529
+ def _buildAttributes(self, node, attrs, already_processed):
1530
+ pass
1531
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1532
+ if nodeName_ == 'shipment-id':
1533
+ value_ = child_.text
1534
+ value_ = self.gds_parse_string(value_, node, 'shipment_id')
1535
+ value_ = self.gds_validate_string(value_, node, 'shipment_id')
1536
+ self.shipment_id.append(value_)
1537
+ self.shipment_id_nsprefix_ = child_.prefix
1538
+ # validate type ShipmentIDType
1539
+ self.validate_ShipmentIDType(self.shipment_id[-1])
1540
+ # end class ExcludedShipmentsType
1541
+
1542
+
1543
+ class ShipmentsType(GeneratedsSuper):
1544
+ __hash__ = GeneratedsSuper.__hash__
1545
+ subclass = None
1546
+ superclass = None
1547
+ def __init__(self, link=None, gds_collector_=None, **kwargs_):
1548
+ self.gds_collector_ = gds_collector_
1549
+ self.gds_elementtree_node_ = None
1550
+ self.original_tagname_ = None
1551
+ self.parent_object_ = kwargs_.get('parent_object_')
1552
+ self.ns_prefix_ = None
1553
+ if link is None:
1554
+ self.link = []
1555
+ else:
1556
+ self.link = link
1557
+ self.link_nsprefix_ = None
1558
+ def factory(*args_, **kwargs_):
1559
+ if CurrentSubclassModule_ is not None:
1560
+ subclass = getSubclassFromModule_(
1561
+ CurrentSubclassModule_, ShipmentsType)
1562
+ if subclass is not None:
1563
+ return subclass(*args_, **kwargs_)
1564
+ if ShipmentsType.subclass:
1565
+ return ShipmentsType.subclass(*args_, **kwargs_)
1566
+ else:
1567
+ return ShipmentsType(*args_, **kwargs_)
1568
+ factory = staticmethod(factory)
1569
+ def get_ns_prefix_(self):
1570
+ return self.ns_prefix_
1571
+ def set_ns_prefix_(self, ns_prefix):
1572
+ self.ns_prefix_ = ns_prefix
1573
+ def get_link(self):
1574
+ return self.link
1575
+ def set_link(self, link):
1576
+ self.link = link
1577
+ def add_link(self, value):
1578
+ self.link.append(value)
1579
+ def insert_link_at(self, index, value):
1580
+ self.link.insert(index, value)
1581
+ def replace_link_at(self, index, value):
1582
+ self.link[index] = value
1583
+ def has__content(self):
1584
+ if (
1585
+ self.link
1586
+ ):
1587
+ return True
1588
+ else:
1589
+ return False
1590
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ShipmentsType', pretty_print=True):
1591
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ShipmentsType')
1592
+ if imported_ns_def_ is not None:
1593
+ namespacedef_ = imported_ns_def_
1594
+ if pretty_print:
1595
+ eol_ = '\n'
1596
+ else:
1597
+ eol_ = ''
1598
+ if self.original_tagname_ is not None and name_ == 'ShipmentsType':
1599
+ name_ = self.original_tagname_
1600
+ if UseCapturedNS_ and self.ns_prefix_:
1601
+ namespaceprefix_ = self.ns_prefix_ + ':'
1602
+ showIndent(outfile, level, pretty_print)
1603
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1604
+ already_processed = set()
1605
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ShipmentsType')
1606
+ if self.has__content():
1607
+ outfile.write('>%s' % (eol_, ))
1608
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ShipmentsType', pretty_print=pretty_print)
1609
+ showIndent(outfile, level, pretty_print)
1610
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1611
+ else:
1612
+ outfile.write('/>%s' % (eol_, ))
1613
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ShipmentsType'):
1614
+ pass
1615
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ShipmentsType', fromsubclass_=False, pretty_print=True):
1616
+ if pretty_print:
1617
+ eol_ = '\n'
1618
+ else:
1619
+ eol_ = ''
1620
+ for link_ in self.link:
1621
+ namespaceprefix_ = self.link_nsprefix_ + ':' if (UseCapturedNS_ and self.link_nsprefix_) else ''
1622
+ showIndent(outfile, level, pretty_print)
1623
+ outfile.write('<%slink>%s</%slink>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(link_), input_name='link')), namespaceprefix_ , eol_))
1624
+ def build(self, node, gds_collector_=None):
1625
+ self.gds_collector_ = gds_collector_
1626
+ if SaveElementTreeNode:
1627
+ self.gds_elementtree_node_ = node
1628
+ already_processed = set()
1629
+ self.ns_prefix_ = node.prefix
1630
+ self._buildAttributes(node, node.attrib, already_processed)
1631
+ for child in node:
1632
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1633
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1634
+ return self
1635
+ def _buildAttributes(self, node, attrs, already_processed):
1636
+ pass
1637
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1638
+ if nodeName_ == 'link':
1639
+ value_ = child_.text
1640
+ value_ = self.gds_parse_string(value_, node, 'link')
1641
+ value_ = self.gds_validate_string(value_, node, 'link')
1642
+ self.link.append(value_)
1643
+ self.link_nsprefix_ = child_.prefix
1644
+ # end class ShipmentsType
1645
+
1646
+
1647
+ class ManifestsType(GeneratedsSuper):
1648
+ __hash__ = GeneratedsSuper.__hash__
1649
+ subclass = None
1650
+ superclass = None
1651
+ def __init__(self, link=None, gds_collector_=None, **kwargs_):
1652
+ self.gds_collector_ = gds_collector_
1653
+ self.gds_elementtree_node_ = None
1654
+ self.original_tagname_ = None
1655
+ self.parent_object_ = kwargs_.get('parent_object_')
1656
+ self.ns_prefix_ = None
1657
+ if link is None:
1658
+ self.link = []
1659
+ else:
1660
+ self.link = link
1661
+ self.link_nsprefix_ = None
1662
+ def factory(*args_, **kwargs_):
1663
+ if CurrentSubclassModule_ is not None:
1664
+ subclass = getSubclassFromModule_(
1665
+ CurrentSubclassModule_, ManifestsType)
1666
+ if subclass is not None:
1667
+ return subclass(*args_, **kwargs_)
1668
+ if ManifestsType.subclass:
1669
+ return ManifestsType.subclass(*args_, **kwargs_)
1670
+ else:
1671
+ return ManifestsType(*args_, **kwargs_)
1672
+ factory = staticmethod(factory)
1673
+ def get_ns_prefix_(self):
1674
+ return self.ns_prefix_
1675
+ def set_ns_prefix_(self, ns_prefix):
1676
+ self.ns_prefix_ = ns_prefix
1677
+ def get_link(self):
1678
+ return self.link
1679
+ def set_link(self, link):
1680
+ self.link = link
1681
+ def add_link(self, value):
1682
+ self.link.append(value)
1683
+ def insert_link_at(self, index, value):
1684
+ self.link.insert(index, value)
1685
+ def replace_link_at(self, index, value):
1686
+ self.link[index] = value
1687
+ def has__content(self):
1688
+ if (
1689
+ self.link
1690
+ ):
1691
+ return True
1692
+ else:
1693
+ return False
1694
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestsType', pretty_print=True):
1695
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ManifestsType')
1696
+ if imported_ns_def_ is not None:
1697
+ namespacedef_ = imported_ns_def_
1698
+ if pretty_print:
1699
+ eol_ = '\n'
1700
+ else:
1701
+ eol_ = ''
1702
+ if self.original_tagname_ is not None and name_ == 'ManifestsType':
1703
+ name_ = self.original_tagname_
1704
+ if UseCapturedNS_ and self.ns_prefix_:
1705
+ namespaceprefix_ = self.ns_prefix_ + ':'
1706
+ showIndent(outfile, level, pretty_print)
1707
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1708
+ already_processed = set()
1709
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ManifestsType')
1710
+ if self.has__content():
1711
+ outfile.write('>%s' % (eol_, ))
1712
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ManifestsType', pretty_print=pretty_print)
1713
+ showIndent(outfile, level, pretty_print)
1714
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1715
+ else:
1716
+ outfile.write('/>%s' % (eol_, ))
1717
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ManifestsType'):
1718
+ pass
1719
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestsType', fromsubclass_=False, pretty_print=True):
1720
+ if pretty_print:
1721
+ eol_ = '\n'
1722
+ else:
1723
+ eol_ = ''
1724
+ for link_ in self.link:
1725
+ namespaceprefix_ = self.link_nsprefix_ + ':' if (UseCapturedNS_ and self.link_nsprefix_) else ''
1726
+ showIndent(outfile, level, pretty_print)
1727
+ outfile.write('<%slink>%s</%slink>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(link_), input_name='link')), namespaceprefix_ , eol_))
1728
+ def build(self, node, gds_collector_=None):
1729
+ self.gds_collector_ = gds_collector_
1730
+ if SaveElementTreeNode:
1731
+ self.gds_elementtree_node_ = node
1732
+ already_processed = set()
1733
+ self.ns_prefix_ = node.prefix
1734
+ self._buildAttributes(node, node.attrib, already_processed)
1735
+ for child in node:
1736
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1737
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1738
+ return self
1739
+ def _buildAttributes(self, node, attrs, already_processed):
1740
+ pass
1741
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1742
+ if nodeName_ == 'link':
1743
+ value_ = child_.text
1744
+ value_ = self.gds_parse_string(value_, node, 'link')
1745
+ value_ = self.gds_validate_string(value_, node, 'link')
1746
+ self.link.append(value_)
1747
+ self.link_nsprefix_ = child_.prefix
1748
+ # end class ManifestsType
1749
+
1750
+
1751
+ class ManifestType(GeneratedsSuper):
1752
+ """customer-request-id -- For future use
1753
+
1754
+ """
1755
+ __hash__ = GeneratedsSuper.__hash__
1756
+ subclass = None
1757
+ superclass = None
1758
+ def __init__(self, customer_request_id=None, po_number=None, links=None, gds_collector_=None, **kwargs_):
1759
+ self.gds_collector_ = gds_collector_
1760
+ self.gds_elementtree_node_ = None
1761
+ self.original_tagname_ = None
1762
+ self.parent_object_ = kwargs_.get('parent_object_')
1763
+ self.ns_prefix_ = None
1764
+ self.customer_request_id = customer_request_id
1765
+ self.validate_CustomerRequestIdType(self.customer_request_id)
1766
+ self.customer_request_id_nsprefix_ = None
1767
+ self.po_number = po_number
1768
+ self.po_number_nsprefix_ = None
1769
+ self.links = links
1770
+ self.links_nsprefix_ = None
1771
+ def factory(*args_, **kwargs_):
1772
+ if CurrentSubclassModule_ is not None:
1773
+ subclass = getSubclassFromModule_(
1774
+ CurrentSubclassModule_, ManifestType)
1775
+ if subclass is not None:
1776
+ return subclass(*args_, **kwargs_)
1777
+ if ManifestType.subclass:
1778
+ return ManifestType.subclass(*args_, **kwargs_)
1779
+ else:
1780
+ return ManifestType(*args_, **kwargs_)
1781
+ factory = staticmethod(factory)
1782
+ def get_ns_prefix_(self):
1783
+ return self.ns_prefix_
1784
+ def set_ns_prefix_(self, ns_prefix):
1785
+ self.ns_prefix_ = ns_prefix
1786
+ def get_customer_request_id(self):
1787
+ return self.customer_request_id
1788
+ def set_customer_request_id(self, customer_request_id):
1789
+ self.customer_request_id = customer_request_id
1790
+ def get_po_number(self):
1791
+ return self.po_number
1792
+ def set_po_number(self, po_number):
1793
+ self.po_number = po_number
1794
+ def get_links(self):
1795
+ return self.links
1796
+ def set_links(self, links):
1797
+ self.links = links
1798
+ def validate_CustomerRequestIdType(self, value):
1799
+ result = True
1800
+ # Validate type CustomerRequestIdType, a restriction on xsd:normalizedString.
1801
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
1802
+ if not isinstance(value, str):
1803
+ lineno = self.gds_get_node_lineno_()
1804
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
1805
+ return False
1806
+ if len(value) > 35:
1807
+ lineno = self.gds_get_node_lineno_()
1808
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on CustomerRequestIdType' % {"value": value, "lineno": lineno} )
1809
+ result = False
1810
+ return result
1811
+ def has__content(self):
1812
+ if (
1813
+ self.customer_request_id is not None or
1814
+ self.po_number is not None or
1815
+ self.links is not None
1816
+ ):
1817
+ return True
1818
+ else:
1819
+ return False
1820
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestType', pretty_print=True):
1821
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ManifestType')
1822
+ if imported_ns_def_ is not None:
1823
+ namespacedef_ = imported_ns_def_
1824
+ if pretty_print:
1825
+ eol_ = '\n'
1826
+ else:
1827
+ eol_ = ''
1828
+ if self.original_tagname_ is not None and name_ == 'ManifestType':
1829
+ name_ = self.original_tagname_
1830
+ if UseCapturedNS_ and self.ns_prefix_:
1831
+ namespaceprefix_ = self.ns_prefix_ + ':'
1832
+ showIndent(outfile, level, pretty_print)
1833
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
1834
+ already_processed = set()
1835
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ManifestType')
1836
+ if self.has__content():
1837
+ outfile.write('>%s' % (eol_, ))
1838
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ManifestType', pretty_print=pretty_print)
1839
+ showIndent(outfile, level, pretty_print)
1840
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
1841
+ else:
1842
+ outfile.write('/>%s' % (eol_, ))
1843
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ManifestType'):
1844
+ pass
1845
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestType', fromsubclass_=False, pretty_print=True):
1846
+ if pretty_print:
1847
+ eol_ = '\n'
1848
+ else:
1849
+ eol_ = ''
1850
+ if self.customer_request_id is not None:
1851
+ namespaceprefix_ = self.customer_request_id_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_request_id_nsprefix_) else ''
1852
+ showIndent(outfile, level, pretty_print)
1853
+ outfile.write('<%scustomer-request-id>%s</%scustomer-request-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_request_id), input_name='customer-request-id')), namespaceprefix_ , eol_))
1854
+ if self.po_number is not None:
1855
+ namespaceprefix_ = self.po_number_nsprefix_ + ':' if (UseCapturedNS_ and self.po_number_nsprefix_) else ''
1856
+ showIndent(outfile, level, pretty_print)
1857
+ outfile.write('<%spo-number>%s</%spo-number>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.po_number), input_name='po-number')), namespaceprefix_ , eol_))
1858
+ if self.links is not None:
1859
+ namespaceprefix_ = self.links_nsprefix_ + ':' if (UseCapturedNS_ and self.links_nsprefix_) else ''
1860
+ showIndent(outfile, level, pretty_print)
1861
+ outfile.write('<%slinks>%s</%slinks>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.links), input_name='links')), namespaceprefix_ , eol_))
1862
+ def build(self, node, gds_collector_=None):
1863
+ self.gds_collector_ = gds_collector_
1864
+ if SaveElementTreeNode:
1865
+ self.gds_elementtree_node_ = node
1866
+ already_processed = set()
1867
+ self.ns_prefix_ = node.prefix
1868
+ self._buildAttributes(node, node.attrib, already_processed)
1869
+ for child in node:
1870
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
1871
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
1872
+ return self
1873
+ def _buildAttributes(self, node, attrs, already_processed):
1874
+ pass
1875
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
1876
+ if nodeName_ == 'customer-request-id':
1877
+ value_ = child_.text
1878
+ value_ = self.gds_parse_string(value_, node, 'customer_request_id')
1879
+ value_ = self.gds_validate_string(value_, node, 'customer_request_id')
1880
+ self.customer_request_id = value_
1881
+ self.customer_request_id_nsprefix_ = child_.prefix
1882
+ # validate type CustomerRequestIdType
1883
+ self.validate_CustomerRequestIdType(self.customer_request_id)
1884
+ elif nodeName_ == 'po-number':
1885
+ value_ = child_.text
1886
+ value_ = self.gds_parse_string(value_, node, 'po_number')
1887
+ value_ = self.gds_validate_string(value_, node, 'po_number')
1888
+ self.po_number = value_
1889
+ self.po_number_nsprefix_ = child_.prefix
1890
+ elif nodeName_ == 'links':
1891
+ value_ = child_.text
1892
+ value_ = self.gds_parse_string(value_, node, 'links')
1893
+ value_ = self.gds_validate_string(value_, node, 'links')
1894
+ self.links = value_
1895
+ self.links_nsprefix_ = child_.prefix
1896
+ # end class ManifestType
1897
+
1898
+
1899
+ class ManifestDetailsType(GeneratedsSuper):
1900
+ __hash__ = GeneratedsSuper.__hash__
1901
+ subclass = None
1902
+ superclass = None
1903
+ def __init__(self, po_number=None, final_shipping_point=None, shipping_point_name=None, shipping_point_id=None, cpc_pickup_indicator=None, mailed_by_customer=None, mailed_on_behalf_of=None, paid_by_customer=None, customer_ref=None, manifest_date=None, manifest_time=None, contract_id=None, method_of_payment=None, cc_receipt_details=None, supplier_account_receipt_details=None, manifest_pricing_info=None, manifest_address=None, gds_collector_=None, **kwargs_):
1904
+ self.gds_collector_ = gds_collector_
1905
+ self.gds_elementtree_node_ = None
1906
+ self.original_tagname_ = None
1907
+ self.parent_object_ = kwargs_.get('parent_object_')
1908
+ self.ns_prefix_ = None
1909
+ self.po_number = po_number
1910
+ self.po_number_nsprefix_ = None
1911
+ self.final_shipping_point = final_shipping_point
1912
+ self.final_shipping_point_nsprefix_ = None
1913
+ self.shipping_point_name = shipping_point_name
1914
+ self.validate_shipping_point_nameType(self.shipping_point_name)
1915
+ self.shipping_point_name_nsprefix_ = None
1916
+ self.shipping_point_id = shipping_point_id
1917
+ self.shipping_point_id_nsprefix_ = None
1918
+ self.cpc_pickup_indicator = cpc_pickup_indicator
1919
+ self.cpc_pickup_indicator_nsprefix_ = None
1920
+ self.mailed_by_customer = mailed_by_customer
1921
+ self.mailed_by_customer_nsprefix_ = None
1922
+ self.mailed_on_behalf_of = mailed_on_behalf_of
1923
+ self.mailed_on_behalf_of_nsprefix_ = None
1924
+ self.paid_by_customer = paid_by_customer
1925
+ self.paid_by_customer_nsprefix_ = None
1926
+ self.customer_ref = customer_ref
1927
+ self.customer_ref_nsprefix_ = None
1928
+ if isinstance(manifest_date, BaseStrType_):
1929
+ initvalue_ = datetime_.datetime.strptime(manifest_date, '%Y-%m-%d').date()
1930
+ else:
1931
+ initvalue_ = manifest_date
1932
+ self.manifest_date = initvalue_
1933
+ self.manifest_date_nsprefix_ = None
1934
+ self.manifest_time = manifest_time
1935
+ self.validate_manifest_timeType(self.manifest_time)
1936
+ self.manifest_time_nsprefix_ = None
1937
+ self.contract_id = contract_id
1938
+ self.contract_id_nsprefix_ = None
1939
+ self.method_of_payment = method_of_payment
1940
+ self.method_of_payment_nsprefix_ = None
1941
+ self.cc_receipt_details = cc_receipt_details
1942
+ self.cc_receipt_details_nsprefix_ = None
1943
+ self.supplier_account_receipt_details = supplier_account_receipt_details
1944
+ self.supplier_account_receipt_details_nsprefix_ = None
1945
+ self.manifest_pricing_info = manifest_pricing_info
1946
+ self.manifest_pricing_info_nsprefix_ = None
1947
+ self.manifest_address = manifest_address
1948
+ self.manifest_address_nsprefix_ = None
1949
+ def factory(*args_, **kwargs_):
1950
+ if CurrentSubclassModule_ is not None:
1951
+ subclass = getSubclassFromModule_(
1952
+ CurrentSubclassModule_, ManifestDetailsType)
1953
+ if subclass is not None:
1954
+ return subclass(*args_, **kwargs_)
1955
+ if ManifestDetailsType.subclass:
1956
+ return ManifestDetailsType.subclass(*args_, **kwargs_)
1957
+ else:
1958
+ return ManifestDetailsType(*args_, **kwargs_)
1959
+ factory = staticmethod(factory)
1960
+ def get_ns_prefix_(self):
1961
+ return self.ns_prefix_
1962
+ def set_ns_prefix_(self, ns_prefix):
1963
+ self.ns_prefix_ = ns_prefix
1964
+ def get_po_number(self):
1965
+ return self.po_number
1966
+ def set_po_number(self, po_number):
1967
+ self.po_number = po_number
1968
+ def get_final_shipping_point(self):
1969
+ return self.final_shipping_point
1970
+ def set_final_shipping_point(self, final_shipping_point):
1971
+ self.final_shipping_point = final_shipping_point
1972
+ def get_shipping_point_name(self):
1973
+ return self.shipping_point_name
1974
+ def set_shipping_point_name(self, shipping_point_name):
1975
+ self.shipping_point_name = shipping_point_name
1976
+ def get_shipping_point_id(self):
1977
+ return self.shipping_point_id
1978
+ def set_shipping_point_id(self, shipping_point_id):
1979
+ self.shipping_point_id = shipping_point_id
1980
+ def get_cpc_pickup_indicator(self):
1981
+ return self.cpc_pickup_indicator
1982
+ def set_cpc_pickup_indicator(self, cpc_pickup_indicator):
1983
+ self.cpc_pickup_indicator = cpc_pickup_indicator
1984
+ def get_mailed_by_customer(self):
1985
+ return self.mailed_by_customer
1986
+ def set_mailed_by_customer(self, mailed_by_customer):
1987
+ self.mailed_by_customer = mailed_by_customer
1988
+ def get_mailed_on_behalf_of(self):
1989
+ return self.mailed_on_behalf_of
1990
+ def set_mailed_on_behalf_of(self, mailed_on_behalf_of):
1991
+ self.mailed_on_behalf_of = mailed_on_behalf_of
1992
+ def get_paid_by_customer(self):
1993
+ return self.paid_by_customer
1994
+ def set_paid_by_customer(self, paid_by_customer):
1995
+ self.paid_by_customer = paid_by_customer
1996
+ def get_customer_ref(self):
1997
+ return self.customer_ref
1998
+ def set_customer_ref(self, customer_ref):
1999
+ self.customer_ref = customer_ref
2000
+ def get_manifest_date(self):
2001
+ return self.manifest_date
2002
+ def set_manifest_date(self, manifest_date):
2003
+ self.manifest_date = manifest_date
2004
+ def get_manifest_time(self):
2005
+ return self.manifest_time
2006
+ def set_manifest_time(self, manifest_time):
2007
+ self.manifest_time = manifest_time
2008
+ def get_contract_id(self):
2009
+ return self.contract_id
2010
+ def set_contract_id(self, contract_id):
2011
+ self.contract_id = contract_id
2012
+ def get_method_of_payment(self):
2013
+ return self.method_of_payment
2014
+ def set_method_of_payment(self, method_of_payment):
2015
+ self.method_of_payment = method_of_payment
2016
+ def get_cc_receipt_details(self):
2017
+ return self.cc_receipt_details
2018
+ def set_cc_receipt_details(self, cc_receipt_details):
2019
+ self.cc_receipt_details = cc_receipt_details
2020
+ def get_supplier_account_receipt_details(self):
2021
+ return self.supplier_account_receipt_details
2022
+ def set_supplier_account_receipt_details(self, supplier_account_receipt_details):
2023
+ self.supplier_account_receipt_details = supplier_account_receipt_details
2024
+ def get_manifest_pricing_info(self):
2025
+ return self.manifest_pricing_info
2026
+ def set_manifest_pricing_info(self, manifest_pricing_info):
2027
+ self.manifest_pricing_info = manifest_pricing_info
2028
+ def get_manifest_address(self):
2029
+ return self.manifest_address
2030
+ def set_manifest_address(self, manifest_address):
2031
+ self.manifest_address = manifest_address
2032
+ def validate_shipping_point_nameType(self, value):
2033
+ result = True
2034
+ # Validate type shipping-point-nameType, a restriction on xsd:normalizedString.
2035
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2036
+ if not isinstance(value, str):
2037
+ lineno = self.gds_get_node_lineno_()
2038
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2039
+ return False
2040
+ if len(value) > 35:
2041
+ lineno = self.gds_get_node_lineno_()
2042
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on shipping-point-nameType' % {"value": value, "lineno": lineno} )
2043
+ result = False
2044
+ return result
2045
+ def validate_manifest_timeType(self, value):
2046
+ result = True
2047
+ # Validate type manifest-timeType, a restriction on xsd:normalizedString.
2048
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2049
+ if not isinstance(value, str):
2050
+ lineno = self.gds_get_node_lineno_()
2051
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2052
+ return False
2053
+ if not self.gds_validate_simple_patterns(
2054
+ self.validate_manifest_timeType_patterns_, value):
2055
+ self.gds_collector_.add_message('Value "%s" does not match xsd pattern restrictions: %s' % (encode_str_2_3(value), self.validate_manifest_timeType_patterns_, ))
2056
+ result = False
2057
+ return result
2058
+ validate_manifest_timeType_patterns_ = [['^(\\d{2}:\\d{2} [a-zA-Z ]+)$']]
2059
+ def has__content(self):
2060
+ if (
2061
+ self.po_number is not None or
2062
+ self.final_shipping_point is not None or
2063
+ self.shipping_point_name is not None or
2064
+ self.shipping_point_id is not None or
2065
+ self.cpc_pickup_indicator is not None or
2066
+ self.mailed_by_customer is not None or
2067
+ self.mailed_on_behalf_of is not None or
2068
+ self.paid_by_customer is not None or
2069
+ self.customer_ref is not None or
2070
+ self.manifest_date is not None or
2071
+ self.manifest_time is not None or
2072
+ self.contract_id is not None or
2073
+ self.method_of_payment is not None or
2074
+ self.cc_receipt_details is not None or
2075
+ self.supplier_account_receipt_details is not None or
2076
+ self.manifest_pricing_info is not None or
2077
+ self.manifest_address is not None
2078
+ ):
2079
+ return True
2080
+ else:
2081
+ return False
2082
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestDetailsType', pretty_print=True):
2083
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ManifestDetailsType')
2084
+ if imported_ns_def_ is not None:
2085
+ namespacedef_ = imported_ns_def_
2086
+ if pretty_print:
2087
+ eol_ = '\n'
2088
+ else:
2089
+ eol_ = ''
2090
+ if self.original_tagname_ is not None and name_ == 'ManifestDetailsType':
2091
+ name_ = self.original_tagname_
2092
+ if UseCapturedNS_ and self.ns_prefix_:
2093
+ namespaceprefix_ = self.ns_prefix_ + ':'
2094
+ showIndent(outfile, level, pretty_print)
2095
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2096
+ already_processed = set()
2097
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ManifestDetailsType')
2098
+ if self.has__content():
2099
+ outfile.write('>%s' % (eol_, ))
2100
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ManifestDetailsType', pretty_print=pretty_print)
2101
+ showIndent(outfile, level, pretty_print)
2102
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2103
+ else:
2104
+ outfile.write('/>%s' % (eol_, ))
2105
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ManifestDetailsType'):
2106
+ pass
2107
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestDetailsType', fromsubclass_=False, pretty_print=True):
2108
+ if pretty_print:
2109
+ eol_ = '\n'
2110
+ else:
2111
+ eol_ = ''
2112
+ if self.po_number is not None:
2113
+ namespaceprefix_ = self.po_number_nsprefix_ + ':' if (UseCapturedNS_ and self.po_number_nsprefix_) else ''
2114
+ showIndent(outfile, level, pretty_print)
2115
+ outfile.write('<%spo-number>%s</%spo-number>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.po_number), input_name='po-number')), namespaceprefix_ , eol_))
2116
+ if self.final_shipping_point is not None:
2117
+ namespaceprefix_ = self.final_shipping_point_nsprefix_ + ':' if (UseCapturedNS_ and self.final_shipping_point_nsprefix_) else ''
2118
+ showIndent(outfile, level, pretty_print)
2119
+ outfile.write('<%sfinal-shipping-point>%s</%sfinal-shipping-point>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.final_shipping_point), input_name='final-shipping-point')), namespaceprefix_ , eol_))
2120
+ if self.shipping_point_name is not None:
2121
+ namespaceprefix_ = self.shipping_point_name_nsprefix_ + ':' if (UseCapturedNS_ and self.shipping_point_name_nsprefix_) else ''
2122
+ showIndent(outfile, level, pretty_print)
2123
+ outfile.write('<%sshipping-point-name>%s</%sshipping-point-name>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.shipping_point_name), input_name='shipping-point-name')), namespaceprefix_ , eol_))
2124
+ if self.shipping_point_id is not None:
2125
+ namespaceprefix_ = self.shipping_point_id_nsprefix_ + ':' if (UseCapturedNS_ and self.shipping_point_id_nsprefix_) else ''
2126
+ showIndent(outfile, level, pretty_print)
2127
+ outfile.write('<%sshipping-point-id>%s</%sshipping-point-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.shipping_point_id), input_name='shipping-point-id')), namespaceprefix_ , eol_))
2128
+ if self.cpc_pickup_indicator is not None:
2129
+ namespaceprefix_ = self.cpc_pickup_indicator_nsprefix_ + ':' if (UseCapturedNS_ and self.cpc_pickup_indicator_nsprefix_) else ''
2130
+ showIndent(outfile, level, pretty_print)
2131
+ outfile.write('<%scpc-pickup-indicator>%s</%scpc-pickup-indicator>%s' % (namespaceprefix_ , self.gds_format_boolean(self.cpc_pickup_indicator, input_name='cpc-pickup-indicator'), namespaceprefix_ , eol_))
2132
+ if self.mailed_by_customer is not None:
2133
+ namespaceprefix_ = self.mailed_by_customer_nsprefix_ + ':' if (UseCapturedNS_ and self.mailed_by_customer_nsprefix_) else ''
2134
+ showIndent(outfile, level, pretty_print)
2135
+ outfile.write('<%smailed-by-customer>%s</%smailed-by-customer>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.mailed_by_customer), input_name='mailed-by-customer')), namespaceprefix_ , eol_))
2136
+ if self.mailed_on_behalf_of is not None:
2137
+ namespaceprefix_ = self.mailed_on_behalf_of_nsprefix_ + ':' if (UseCapturedNS_ and self.mailed_on_behalf_of_nsprefix_) else ''
2138
+ showIndent(outfile, level, pretty_print)
2139
+ outfile.write('<%smailed-on-behalf-of>%s</%smailed-on-behalf-of>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.mailed_on_behalf_of), input_name='mailed-on-behalf-of')), namespaceprefix_ , eol_))
2140
+ if self.paid_by_customer is not None:
2141
+ namespaceprefix_ = self.paid_by_customer_nsprefix_ + ':' if (UseCapturedNS_ and self.paid_by_customer_nsprefix_) else ''
2142
+ showIndent(outfile, level, pretty_print)
2143
+ 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_))
2144
+ if self.customer_ref is not None:
2145
+ namespaceprefix_ = self.customer_ref_nsprefix_ + ':' if (UseCapturedNS_ and self.customer_ref_nsprefix_) else ''
2146
+ showIndent(outfile, level, pretty_print)
2147
+ outfile.write('<%scustomer-ref>%s</%scustomer-ref>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.customer_ref), input_name='customer-ref')), namespaceprefix_ , eol_))
2148
+ if self.manifest_date is not None:
2149
+ namespaceprefix_ = self.manifest_date_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_date_nsprefix_) else ''
2150
+ showIndent(outfile, level, pretty_print)
2151
+ outfile.write('<%smanifest-date>%s</%smanifest-date>%s' % (namespaceprefix_ , self.gds_format_date(self.manifest_date, input_name='manifest-date'), namespaceprefix_ , eol_))
2152
+ if self.manifest_time is not None:
2153
+ namespaceprefix_ = self.manifest_time_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_time_nsprefix_) else ''
2154
+ showIndent(outfile, level, pretty_print)
2155
+ outfile.write('<%smanifest-time>%s</%smanifest-time>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.manifest_time), input_name='manifest-time')), namespaceprefix_ , eol_))
2156
+ if self.contract_id is not None:
2157
+ namespaceprefix_ = self.contract_id_nsprefix_ + ':' if (UseCapturedNS_ and self.contract_id_nsprefix_) else ''
2158
+ showIndent(outfile, level, pretty_print)
2159
+ 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_))
2160
+ if self.method_of_payment is not None:
2161
+ namespaceprefix_ = self.method_of_payment_nsprefix_ + ':' if (UseCapturedNS_ and self.method_of_payment_nsprefix_) else ''
2162
+ showIndent(outfile, level, pretty_print)
2163
+ outfile.write('<%smethod-of-payment>%s</%smethod-of-payment>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.method_of_payment), input_name='method-of-payment')), namespaceprefix_ , eol_))
2164
+ if self.cc_receipt_details is not None:
2165
+ namespaceprefix_ = self.cc_receipt_details_nsprefix_ + ':' if (UseCapturedNS_ and self.cc_receipt_details_nsprefix_) else ''
2166
+ self.cc_receipt_details.export(outfile, level, namespaceprefix_, namespacedef_='', name_='cc-receipt-details', pretty_print=pretty_print)
2167
+ if self.supplier_account_receipt_details is not None:
2168
+ namespaceprefix_ = self.supplier_account_receipt_details_nsprefix_ + ':' if (UseCapturedNS_ and self.supplier_account_receipt_details_nsprefix_) else ''
2169
+ self.supplier_account_receipt_details.export(outfile, level, namespaceprefix_, namespacedef_='', name_='supplier-account-receipt-details', pretty_print=pretty_print)
2170
+ if self.manifest_pricing_info is not None:
2171
+ namespaceprefix_ = self.manifest_pricing_info_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_pricing_info_nsprefix_) else ''
2172
+ self.manifest_pricing_info.export(outfile, level, namespaceprefix_, namespacedef_='', name_='manifest-pricing-info', pretty_print=pretty_print)
2173
+ if self.manifest_address is not None:
2174
+ namespaceprefix_ = self.manifest_address_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_address_nsprefix_) else ''
2175
+ self.manifest_address.export(outfile, level, namespaceprefix_, namespacedef_='', name_='manifest-address', pretty_print=pretty_print)
2176
+ def build(self, node, gds_collector_=None):
2177
+ self.gds_collector_ = gds_collector_
2178
+ if SaveElementTreeNode:
2179
+ self.gds_elementtree_node_ = node
2180
+ already_processed = set()
2181
+ self.ns_prefix_ = node.prefix
2182
+ self._buildAttributes(node, node.attrib, already_processed)
2183
+ for child in node:
2184
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2185
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2186
+ return self
2187
+ def _buildAttributes(self, node, attrs, already_processed):
2188
+ pass
2189
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2190
+ if nodeName_ == 'po-number':
2191
+ value_ = child_.text
2192
+ value_ = self.gds_parse_string(value_, node, 'po_number')
2193
+ value_ = self.gds_validate_string(value_, node, 'po_number')
2194
+ self.po_number = value_
2195
+ self.po_number_nsprefix_ = child_.prefix
2196
+ elif nodeName_ == 'final-shipping-point':
2197
+ value_ = child_.text
2198
+ value_ = self.gds_parse_string(value_, node, 'final_shipping_point')
2199
+ value_ = self.gds_validate_string(value_, node, 'final_shipping_point')
2200
+ self.final_shipping_point = value_
2201
+ self.final_shipping_point_nsprefix_ = child_.prefix
2202
+ elif nodeName_ == 'shipping-point-name':
2203
+ value_ = child_.text
2204
+ value_ = self.gds_parse_string(value_, node, 'shipping_point_name')
2205
+ value_ = self.gds_validate_string(value_, node, 'shipping_point_name')
2206
+ self.shipping_point_name = value_
2207
+ self.shipping_point_name_nsprefix_ = child_.prefix
2208
+ # validate type shipping-point-nameType
2209
+ self.validate_shipping_point_nameType(self.shipping_point_name)
2210
+ elif nodeName_ == 'shipping-point-id':
2211
+ value_ = child_.text
2212
+ value_ = self.gds_parse_string(value_, node, 'shipping_point_id')
2213
+ value_ = self.gds_validate_string(value_, node, 'shipping_point_id')
2214
+ self.shipping_point_id = value_
2215
+ self.shipping_point_id_nsprefix_ = child_.prefix
2216
+ elif nodeName_ == 'cpc-pickup-indicator':
2217
+ sval_ = child_.text
2218
+ ival_ = self.gds_parse_boolean(sval_, node, 'cpc_pickup_indicator')
2219
+ ival_ = self.gds_validate_boolean(ival_, node, 'cpc_pickup_indicator')
2220
+ self.cpc_pickup_indicator = ival_
2221
+ self.cpc_pickup_indicator_nsprefix_ = child_.prefix
2222
+ elif nodeName_ == 'mailed-by-customer':
2223
+ value_ = child_.text
2224
+ value_ = self.gds_parse_string(value_, node, 'mailed_by_customer')
2225
+ value_ = self.gds_validate_string(value_, node, 'mailed_by_customer')
2226
+ self.mailed_by_customer = value_
2227
+ self.mailed_by_customer_nsprefix_ = child_.prefix
2228
+ elif nodeName_ == 'mailed-on-behalf-of':
2229
+ value_ = child_.text
2230
+ value_ = self.gds_parse_string(value_, node, 'mailed_on_behalf_of')
2231
+ value_ = self.gds_validate_string(value_, node, 'mailed_on_behalf_of')
2232
+ self.mailed_on_behalf_of = value_
2233
+ self.mailed_on_behalf_of_nsprefix_ = child_.prefix
2234
+ elif nodeName_ == 'paid-by-customer':
2235
+ value_ = child_.text
2236
+ value_ = self.gds_parse_string(value_, node, 'paid_by_customer')
2237
+ value_ = self.gds_validate_string(value_, node, 'paid_by_customer')
2238
+ self.paid_by_customer = value_
2239
+ self.paid_by_customer_nsprefix_ = child_.prefix
2240
+ elif nodeName_ == 'customer-ref':
2241
+ value_ = child_.text
2242
+ value_ = self.gds_parse_string(value_, node, 'customer_ref')
2243
+ value_ = self.gds_validate_string(value_, node, 'customer_ref')
2244
+ self.customer_ref = value_
2245
+ self.customer_ref_nsprefix_ = child_.prefix
2246
+ elif nodeName_ == 'manifest-date':
2247
+ sval_ = child_.text
2248
+ dval_ = self.gds_parse_date(sval_)
2249
+ self.manifest_date = dval_
2250
+ self.manifest_date_nsprefix_ = child_.prefix
2251
+ elif nodeName_ == 'manifest-time':
2252
+ value_ = child_.text
2253
+ value_ = self.gds_parse_string(value_, node, 'manifest_time')
2254
+ value_ = self.gds_validate_string(value_, node, 'manifest_time')
2255
+ self.manifest_time = value_
2256
+ self.manifest_time_nsprefix_ = child_.prefix
2257
+ # validate type manifest-timeType
2258
+ self.validate_manifest_timeType(self.manifest_time)
2259
+ elif nodeName_ == 'contract-id':
2260
+ value_ = child_.text
2261
+ value_ = self.gds_parse_string(value_, node, 'contract_id')
2262
+ value_ = self.gds_validate_string(value_, node, 'contract_id')
2263
+ self.contract_id = value_
2264
+ self.contract_id_nsprefix_ = child_.prefix
2265
+ elif nodeName_ == 'method-of-payment':
2266
+ value_ = child_.text
2267
+ value_ = self.gds_parse_string(value_, node, 'method_of_payment')
2268
+ value_ = self.gds_validate_string(value_, node, 'method_of_payment')
2269
+ self.method_of_payment = value_
2270
+ self.method_of_payment_nsprefix_ = child_.prefix
2271
+ elif nodeName_ == 'cc-receipt-details':
2272
+ obj_ = cc_receipt_detailsType.factory(parent_object_=self)
2273
+ obj_.build(child_, gds_collector_=gds_collector_)
2274
+ self.cc_receipt_details = obj_
2275
+ obj_.original_tagname_ = 'cc-receipt-details'
2276
+ elif nodeName_ == 'supplier-account-receipt-details':
2277
+ obj_ = supplier_account_receipt_detailsType.factory(parent_object_=self)
2278
+ obj_.build(child_, gds_collector_=gds_collector_)
2279
+ self.supplier_account_receipt_details = obj_
2280
+ obj_.original_tagname_ = 'supplier-account-receipt-details'
2281
+ elif nodeName_ == 'manifest-pricing-info':
2282
+ obj_ = ManifestPricingInfoType.factory(parent_object_=self)
2283
+ obj_.build(child_, gds_collector_=gds_collector_)
2284
+ self.manifest_pricing_info = obj_
2285
+ obj_.original_tagname_ = 'manifest-pricing-info'
2286
+ elif nodeName_ == 'manifest-address':
2287
+ obj_ = ManifestAddressType.factory(parent_object_=self)
2288
+ obj_.build(child_, gds_collector_=gds_collector_)
2289
+ self.manifest_address = obj_
2290
+ obj_.original_tagname_ = 'manifest-address'
2291
+ # end class ManifestDetailsType
2292
+
2293
+
2294
+ class ManifestPricingInfoType(GeneratedsSuper):
2295
+ __hash__ = GeneratedsSuper.__hash__
2296
+ subclass = None
2297
+ superclass = None
2298
+ def __init__(self, base_cost=None, automation_discount=None, options_and_surcharges=None, gst=None, pst=None, hst=None, total_due_cpc=None, gds_collector_=None, **kwargs_):
2299
+ self.gds_collector_ = gds_collector_
2300
+ self.gds_elementtree_node_ = None
2301
+ self.original_tagname_ = None
2302
+ self.parent_object_ = kwargs_.get('parent_object_')
2303
+ self.ns_prefix_ = None
2304
+ self.base_cost = base_cost
2305
+ self.base_cost_nsprefix_ = None
2306
+ self.automation_discount = automation_discount
2307
+ self.automation_discount_nsprefix_ = None
2308
+ self.options_and_surcharges = options_and_surcharges
2309
+ self.options_and_surcharges_nsprefix_ = None
2310
+ self.gst = gst
2311
+ self.gst_nsprefix_ = None
2312
+ self.pst = pst
2313
+ self.pst_nsprefix_ = None
2314
+ self.hst = hst
2315
+ self.hst_nsprefix_ = None
2316
+ self.total_due_cpc = total_due_cpc
2317
+ self.total_due_cpc_nsprefix_ = None
2318
+ def factory(*args_, **kwargs_):
2319
+ if CurrentSubclassModule_ is not None:
2320
+ subclass = getSubclassFromModule_(
2321
+ CurrentSubclassModule_, ManifestPricingInfoType)
2322
+ if subclass is not None:
2323
+ return subclass(*args_, **kwargs_)
2324
+ if ManifestPricingInfoType.subclass:
2325
+ return ManifestPricingInfoType.subclass(*args_, **kwargs_)
2326
+ else:
2327
+ return ManifestPricingInfoType(*args_, **kwargs_)
2328
+ factory = staticmethod(factory)
2329
+ def get_ns_prefix_(self):
2330
+ return self.ns_prefix_
2331
+ def set_ns_prefix_(self, ns_prefix):
2332
+ self.ns_prefix_ = ns_prefix
2333
+ def get_base_cost(self):
2334
+ return self.base_cost
2335
+ def set_base_cost(self, base_cost):
2336
+ self.base_cost = base_cost
2337
+ def get_automation_discount(self):
2338
+ return self.automation_discount
2339
+ def set_automation_discount(self, automation_discount):
2340
+ self.automation_discount = automation_discount
2341
+ def get_options_and_surcharges(self):
2342
+ return self.options_and_surcharges
2343
+ def set_options_and_surcharges(self, options_and_surcharges):
2344
+ self.options_and_surcharges = options_and_surcharges
2345
+ def get_gst(self):
2346
+ return self.gst
2347
+ def set_gst(self, gst):
2348
+ self.gst = gst
2349
+ def get_pst(self):
2350
+ return self.pst
2351
+ def set_pst(self, pst):
2352
+ self.pst = pst
2353
+ def get_hst(self):
2354
+ return self.hst
2355
+ def set_hst(self, hst):
2356
+ self.hst = hst
2357
+ def get_total_due_cpc(self):
2358
+ return self.total_due_cpc
2359
+ def set_total_due_cpc(self, total_due_cpc):
2360
+ self.total_due_cpc = total_due_cpc
2361
+ def has__content(self):
2362
+ if (
2363
+ self.base_cost is not None or
2364
+ self.automation_discount is not None or
2365
+ self.options_and_surcharges is not None or
2366
+ self.gst is not None or
2367
+ self.pst is not None or
2368
+ self.hst is not None or
2369
+ self.total_due_cpc is not None
2370
+ ):
2371
+ return True
2372
+ else:
2373
+ return False
2374
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestPricingInfoType', pretty_print=True):
2375
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ManifestPricingInfoType')
2376
+ if imported_ns_def_ is not None:
2377
+ namespacedef_ = imported_ns_def_
2378
+ if pretty_print:
2379
+ eol_ = '\n'
2380
+ else:
2381
+ eol_ = ''
2382
+ if self.original_tagname_ is not None and name_ == 'ManifestPricingInfoType':
2383
+ name_ = self.original_tagname_
2384
+ if UseCapturedNS_ and self.ns_prefix_:
2385
+ namespaceprefix_ = self.ns_prefix_ + ':'
2386
+ showIndent(outfile, level, pretty_print)
2387
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2388
+ already_processed = set()
2389
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ManifestPricingInfoType')
2390
+ if self.has__content():
2391
+ outfile.write('>%s' % (eol_, ))
2392
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ManifestPricingInfoType', pretty_print=pretty_print)
2393
+ showIndent(outfile, level, pretty_print)
2394
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2395
+ else:
2396
+ outfile.write('/>%s' % (eol_, ))
2397
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ManifestPricingInfoType'):
2398
+ pass
2399
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestPricingInfoType', fromsubclass_=False, pretty_print=True):
2400
+ if pretty_print:
2401
+ eol_ = '\n'
2402
+ else:
2403
+ eol_ = ''
2404
+ if self.base_cost is not None:
2405
+ namespaceprefix_ = self.base_cost_nsprefix_ + ':' if (UseCapturedNS_ and self.base_cost_nsprefix_) else ''
2406
+ showIndent(outfile, level, pretty_print)
2407
+ outfile.write('<%sbase-cost>%s</%sbase-cost>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.base_cost), input_name='base-cost')), namespaceprefix_ , eol_))
2408
+ if self.automation_discount is not None:
2409
+ namespaceprefix_ = self.automation_discount_nsprefix_ + ':' if (UseCapturedNS_ and self.automation_discount_nsprefix_) else ''
2410
+ showIndent(outfile, level, pretty_print)
2411
+ outfile.write('<%sautomation-discount>%s</%sautomation-discount>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.automation_discount), input_name='automation-discount')), namespaceprefix_ , eol_))
2412
+ if self.options_and_surcharges is not None:
2413
+ namespaceprefix_ = self.options_and_surcharges_nsprefix_ + ':' if (UseCapturedNS_ and self.options_and_surcharges_nsprefix_) else ''
2414
+ showIndent(outfile, level, pretty_print)
2415
+ outfile.write('<%soptions-and-surcharges>%s</%soptions-and-surcharges>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.options_and_surcharges), input_name='options-and-surcharges')), namespaceprefix_ , eol_))
2416
+ if self.gst is not None:
2417
+ namespaceprefix_ = self.gst_nsprefix_ + ':' if (UseCapturedNS_ and self.gst_nsprefix_) else ''
2418
+ showIndent(outfile, level, pretty_print)
2419
+ outfile.write('<%sgst>%s</%sgst>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.gst), input_name='gst')), namespaceprefix_ , eol_))
2420
+ if self.pst is not None:
2421
+ namespaceprefix_ = self.pst_nsprefix_ + ':' if (UseCapturedNS_ and self.pst_nsprefix_) else ''
2422
+ showIndent(outfile, level, pretty_print)
2423
+ outfile.write('<%spst>%s</%spst>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.pst), input_name='pst')), namespaceprefix_ , eol_))
2424
+ if self.hst is not None:
2425
+ namespaceprefix_ = self.hst_nsprefix_ + ':' if (UseCapturedNS_ and self.hst_nsprefix_) else ''
2426
+ showIndent(outfile, level, pretty_print)
2427
+ outfile.write('<%shst>%s</%shst>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.hst), input_name='hst')), namespaceprefix_ , eol_))
2428
+ if self.total_due_cpc is not None:
2429
+ namespaceprefix_ = self.total_due_cpc_nsprefix_ + ':' if (UseCapturedNS_ and self.total_due_cpc_nsprefix_) else ''
2430
+ showIndent(outfile, level, pretty_print)
2431
+ outfile.write('<%stotal-due-cpc>%s</%stotal-due-cpc>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.total_due_cpc), input_name='total-due-cpc')), namespaceprefix_ , eol_))
2432
+ def build(self, node, gds_collector_=None):
2433
+ self.gds_collector_ = gds_collector_
2434
+ if SaveElementTreeNode:
2435
+ self.gds_elementtree_node_ = node
2436
+ already_processed = set()
2437
+ self.ns_prefix_ = node.prefix
2438
+ self._buildAttributes(node, node.attrib, already_processed)
2439
+ for child in node:
2440
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2441
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2442
+ return self
2443
+ def _buildAttributes(self, node, attrs, already_processed):
2444
+ pass
2445
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2446
+ if nodeName_ == 'base-cost':
2447
+ value_ = child_.text
2448
+ value_ = self.gds_parse_string(value_, node, 'base_cost')
2449
+ value_ = self.gds_validate_string(value_, node, 'base_cost')
2450
+ self.base_cost = value_
2451
+ self.base_cost_nsprefix_ = child_.prefix
2452
+ elif nodeName_ == 'automation-discount':
2453
+ value_ = child_.text
2454
+ value_ = self.gds_parse_string(value_, node, 'automation_discount')
2455
+ value_ = self.gds_validate_string(value_, node, 'automation_discount')
2456
+ self.automation_discount = value_
2457
+ self.automation_discount_nsprefix_ = child_.prefix
2458
+ elif nodeName_ == 'options-and-surcharges':
2459
+ value_ = child_.text
2460
+ value_ = self.gds_parse_string(value_, node, 'options_and_surcharges')
2461
+ value_ = self.gds_validate_string(value_, node, 'options_and_surcharges')
2462
+ self.options_and_surcharges = value_
2463
+ self.options_and_surcharges_nsprefix_ = child_.prefix
2464
+ elif nodeName_ == 'gst':
2465
+ value_ = child_.text
2466
+ value_ = self.gds_parse_string(value_, node, 'gst')
2467
+ value_ = self.gds_validate_string(value_, node, 'gst')
2468
+ self.gst = value_
2469
+ self.gst_nsprefix_ = child_.prefix
2470
+ elif nodeName_ == 'pst':
2471
+ value_ = child_.text
2472
+ value_ = self.gds_parse_string(value_, node, 'pst')
2473
+ value_ = self.gds_validate_string(value_, node, 'pst')
2474
+ self.pst = value_
2475
+ self.pst_nsprefix_ = child_.prefix
2476
+ elif nodeName_ == 'hst':
2477
+ value_ = child_.text
2478
+ value_ = self.gds_parse_string(value_, node, 'hst')
2479
+ value_ = self.gds_validate_string(value_, node, 'hst')
2480
+ self.hst = value_
2481
+ self.hst_nsprefix_ = child_.prefix
2482
+ elif nodeName_ == 'total-due-cpc':
2483
+ value_ = child_.text
2484
+ value_ = self.gds_parse_string(value_, node, 'total_due_cpc')
2485
+ value_ = self.gds_validate_string(value_, node, 'total_due_cpc')
2486
+ self.total_due_cpc = value_
2487
+ self.total_due_cpc_nsprefix_ = child_.prefix
2488
+ # end class ManifestPricingInfoType
2489
+
2490
+
2491
+ class ManifestAddressType(GeneratedsSuper):
2492
+ __hash__ = GeneratedsSuper.__hash__
2493
+ subclass = None
2494
+ superclass = None
2495
+ def __init__(self, manifest_company=None, manifest_name=None, phone_number=None, address_details=None, gds_collector_=None, **kwargs_):
2496
+ self.gds_collector_ = gds_collector_
2497
+ self.gds_elementtree_node_ = None
2498
+ self.original_tagname_ = None
2499
+ self.parent_object_ = kwargs_.get('parent_object_')
2500
+ self.ns_prefix_ = None
2501
+ self.manifest_company = manifest_company
2502
+ self.validate_manifest_companyType(self.manifest_company)
2503
+ self.manifest_company_nsprefix_ = None
2504
+ self.manifest_name = manifest_name
2505
+ self.validate_manifest_nameType(self.manifest_name)
2506
+ self.manifest_name_nsprefix_ = None
2507
+ self.phone_number = phone_number
2508
+ self.phone_number_nsprefix_ = None
2509
+ self.address_details = address_details
2510
+ self.address_details_nsprefix_ = None
2511
+ def factory(*args_, **kwargs_):
2512
+ if CurrentSubclassModule_ is not None:
2513
+ subclass = getSubclassFromModule_(
2514
+ CurrentSubclassModule_, ManifestAddressType)
2515
+ if subclass is not None:
2516
+ return subclass(*args_, **kwargs_)
2517
+ if ManifestAddressType.subclass:
2518
+ return ManifestAddressType.subclass(*args_, **kwargs_)
2519
+ else:
2520
+ return ManifestAddressType(*args_, **kwargs_)
2521
+ factory = staticmethod(factory)
2522
+ def get_ns_prefix_(self):
2523
+ return self.ns_prefix_
2524
+ def set_ns_prefix_(self, ns_prefix):
2525
+ self.ns_prefix_ = ns_prefix
2526
+ def get_manifest_company(self):
2527
+ return self.manifest_company
2528
+ def set_manifest_company(self, manifest_company):
2529
+ self.manifest_company = manifest_company
2530
+ def get_manifest_name(self):
2531
+ return self.manifest_name
2532
+ def set_manifest_name(self, manifest_name):
2533
+ self.manifest_name = manifest_name
2534
+ def get_phone_number(self):
2535
+ return self.phone_number
2536
+ def set_phone_number(self, phone_number):
2537
+ self.phone_number = phone_number
2538
+ def get_address_details(self):
2539
+ return self.address_details
2540
+ def set_address_details(self, address_details):
2541
+ self.address_details = address_details
2542
+ def validate_manifest_companyType(self, value):
2543
+ result = True
2544
+ # Validate type manifest-companyType, a restriction on xsd:normalizedString.
2545
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2546
+ if not isinstance(value, str):
2547
+ lineno = self.gds_get_node_lineno_()
2548
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2549
+ return False
2550
+ if len(value) > 44:
2551
+ lineno = self.gds_get_node_lineno_()
2552
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on manifest-companyType' % {"value": value, "lineno": lineno} )
2553
+ result = False
2554
+ if len(value) < 1:
2555
+ lineno = self.gds_get_node_lineno_()
2556
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on manifest-companyType' % {"value" : value, "lineno": lineno} )
2557
+ result = False
2558
+ return result
2559
+ def validate_manifest_nameType(self, value):
2560
+ result = True
2561
+ # Validate type manifest-nameType, a restriction on xsd:normalizedString.
2562
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2563
+ if not isinstance(value, str):
2564
+ lineno = self.gds_get_node_lineno_()
2565
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2566
+ return False
2567
+ if len(value) > 44:
2568
+ lineno = self.gds_get_node_lineno_()
2569
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on manifest-nameType' % {"value": value, "lineno": lineno} )
2570
+ result = False
2571
+ if len(value) < 1:
2572
+ lineno = self.gds_get_node_lineno_()
2573
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on manifest-nameType' % {"value" : value, "lineno": lineno} )
2574
+ result = False
2575
+ return result
2576
+ def has__content(self):
2577
+ if (
2578
+ self.manifest_company is not None or
2579
+ self.manifest_name is not None or
2580
+ self.phone_number is not None or
2581
+ self.address_details is not None
2582
+ ):
2583
+ return True
2584
+ else:
2585
+ return False
2586
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestAddressType', pretty_print=True):
2587
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('ManifestAddressType')
2588
+ if imported_ns_def_ is not None:
2589
+ namespacedef_ = imported_ns_def_
2590
+ if pretty_print:
2591
+ eol_ = '\n'
2592
+ else:
2593
+ eol_ = ''
2594
+ if self.original_tagname_ is not None and name_ == 'ManifestAddressType':
2595
+ name_ = self.original_tagname_
2596
+ if UseCapturedNS_ and self.ns_prefix_:
2597
+ namespaceprefix_ = self.ns_prefix_ + ':'
2598
+ showIndent(outfile, level, pretty_print)
2599
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2600
+ already_processed = set()
2601
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='ManifestAddressType')
2602
+ if self.has__content():
2603
+ outfile.write('>%s' % (eol_, ))
2604
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='ManifestAddressType', pretty_print=pretty_print)
2605
+ showIndent(outfile, level, pretty_print)
2606
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2607
+ else:
2608
+ outfile.write('/>%s' % (eol_, ))
2609
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='ManifestAddressType'):
2610
+ pass
2611
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='ManifestAddressType', fromsubclass_=False, pretty_print=True):
2612
+ if pretty_print:
2613
+ eol_ = '\n'
2614
+ else:
2615
+ eol_ = ''
2616
+ if self.manifest_company is not None:
2617
+ namespaceprefix_ = self.manifest_company_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_company_nsprefix_) else ''
2618
+ showIndent(outfile, level, pretty_print)
2619
+ outfile.write('<%smanifest-company>%s</%smanifest-company>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.manifest_company), input_name='manifest-company')), namespaceprefix_ , eol_))
2620
+ if self.manifest_name is not None:
2621
+ namespaceprefix_ = self.manifest_name_nsprefix_ + ':' if (UseCapturedNS_ and self.manifest_name_nsprefix_) else ''
2622
+ showIndent(outfile, level, pretty_print)
2623
+ outfile.write('<%smanifest-name>%s</%smanifest-name>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.manifest_name), input_name='manifest-name')), namespaceprefix_ , eol_))
2624
+ if self.phone_number is not None:
2625
+ namespaceprefix_ = self.phone_number_nsprefix_ + ':' if (UseCapturedNS_ and self.phone_number_nsprefix_) else ''
2626
+ showIndent(outfile, level, pretty_print)
2627
+ outfile.write('<%sphone-number>%s</%sphone-number>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.phone_number), input_name='phone-number')), namespaceprefix_ , eol_))
2628
+ if self.address_details is not None:
2629
+ namespaceprefix_ = self.address_details_nsprefix_ + ':' if (UseCapturedNS_ and self.address_details_nsprefix_) else ''
2630
+ self.address_details.export(outfile, level, namespaceprefix_, namespacedef_='', name_='address-details', pretty_print=pretty_print)
2631
+ def build(self, node, gds_collector_=None):
2632
+ self.gds_collector_ = gds_collector_
2633
+ if SaveElementTreeNode:
2634
+ self.gds_elementtree_node_ = node
2635
+ already_processed = set()
2636
+ self.ns_prefix_ = node.prefix
2637
+ self._buildAttributes(node, node.attrib, already_processed)
2638
+ for child in node:
2639
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2640
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2641
+ return self
2642
+ def _buildAttributes(self, node, attrs, already_processed):
2643
+ pass
2644
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2645
+ if nodeName_ == 'manifest-company':
2646
+ value_ = child_.text
2647
+ value_ = self.gds_parse_string(value_, node, 'manifest_company')
2648
+ value_ = self.gds_validate_string(value_, node, 'manifest_company')
2649
+ self.manifest_company = value_
2650
+ self.manifest_company_nsprefix_ = child_.prefix
2651
+ # validate type manifest-companyType
2652
+ self.validate_manifest_companyType(self.manifest_company)
2653
+ elif nodeName_ == 'manifest-name':
2654
+ value_ = child_.text
2655
+ value_ = self.gds_parse_string(value_, node, 'manifest_name')
2656
+ value_ = self.gds_validate_string(value_, node, 'manifest_name')
2657
+ self.manifest_name = value_
2658
+ self.manifest_name_nsprefix_ = child_.prefix
2659
+ # validate type manifest-nameType
2660
+ self.validate_manifest_nameType(self.manifest_name)
2661
+ elif nodeName_ == 'phone-number':
2662
+ value_ = child_.text
2663
+ value_ = self.gds_parse_string(value_, node, 'phone_number')
2664
+ value_ = self.gds_validate_string(value_, node, 'phone_number')
2665
+ self.phone_number = value_
2666
+ self.phone_number_nsprefix_ = child_.prefix
2667
+ elif nodeName_ == 'address-details':
2668
+ obj_ = AddressDetailsType.factory(parent_object_=self)
2669
+ obj_.build(child_, gds_collector_=gds_collector_)
2670
+ self.address_details = obj_
2671
+ obj_.original_tagname_ = 'address-details'
2672
+ # end class ManifestAddressType
2673
+
2674
+
2675
+ class AddressDetailsType(GeneratedsSuper):
2676
+ __hash__ = GeneratedsSuper.__hash__
2677
+ subclass = None
2678
+ superclass = None
2679
+ def __init__(self, address_line_1=None, address_line_2=None, city=None, prov_state=None, country_code=None, postal_zip_code=None, gds_collector_=None, **kwargs_):
2680
+ self.gds_collector_ = gds_collector_
2681
+ self.gds_elementtree_node_ = None
2682
+ self.original_tagname_ = None
2683
+ self.parent_object_ = kwargs_.get('parent_object_')
2684
+ self.ns_prefix_ = None
2685
+ self.address_line_1 = address_line_1
2686
+ self.validate_address_line_1Type(self.address_line_1)
2687
+ self.address_line_1_nsprefix_ = None
2688
+ self.address_line_2 = address_line_2
2689
+ self.validate_address_line_2Type(self.address_line_2)
2690
+ self.address_line_2_nsprefix_ = None
2691
+ self.city = city
2692
+ self.validate_cityType(self.city)
2693
+ self.city_nsprefix_ = None
2694
+ self.prov_state = prov_state
2695
+ self.validate_prov_stateType(self.prov_state)
2696
+ self.prov_state_nsprefix_ = None
2697
+ self.country_code = country_code
2698
+ self.validate_country_codeType(self.country_code)
2699
+ self.country_code_nsprefix_ = None
2700
+ self.postal_zip_code = postal_zip_code
2701
+ self.postal_zip_code_nsprefix_ = None
2702
+ def factory(*args_, **kwargs_):
2703
+ if CurrentSubclassModule_ is not None:
2704
+ subclass = getSubclassFromModule_(
2705
+ CurrentSubclassModule_, AddressDetailsType)
2706
+ if subclass is not None:
2707
+ return subclass(*args_, **kwargs_)
2708
+ if AddressDetailsType.subclass:
2709
+ return AddressDetailsType.subclass(*args_, **kwargs_)
2710
+ else:
2711
+ return AddressDetailsType(*args_, **kwargs_)
2712
+ factory = staticmethod(factory)
2713
+ def get_ns_prefix_(self):
2714
+ return self.ns_prefix_
2715
+ def set_ns_prefix_(self, ns_prefix):
2716
+ self.ns_prefix_ = ns_prefix
2717
+ def get_address_line_1(self):
2718
+ return self.address_line_1
2719
+ def set_address_line_1(self, address_line_1):
2720
+ self.address_line_1 = address_line_1
2721
+ def get_address_line_2(self):
2722
+ return self.address_line_2
2723
+ def set_address_line_2(self, address_line_2):
2724
+ self.address_line_2 = address_line_2
2725
+ def get_city(self):
2726
+ return self.city
2727
+ def set_city(self, city):
2728
+ self.city = city
2729
+ def get_prov_state(self):
2730
+ return self.prov_state
2731
+ def set_prov_state(self, prov_state):
2732
+ self.prov_state = prov_state
2733
+ def get_country_code(self):
2734
+ return self.country_code
2735
+ def set_country_code(self, country_code):
2736
+ self.country_code = country_code
2737
+ def get_postal_zip_code(self):
2738
+ return self.postal_zip_code
2739
+ def set_postal_zip_code(self, postal_zip_code):
2740
+ self.postal_zip_code = postal_zip_code
2741
+ def validate_address_line_1Type(self, value):
2742
+ result = True
2743
+ # Validate type address-line-1Type, a restriction on xsd:normalizedString.
2744
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2745
+ if not isinstance(value, str):
2746
+ lineno = self.gds_get_node_lineno_()
2747
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2748
+ return False
2749
+ if len(value) > 44:
2750
+ lineno = self.gds_get_node_lineno_()
2751
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on address-line-1Type' % {"value": value, "lineno": lineno} )
2752
+ result = False
2753
+ if len(value) < 1:
2754
+ lineno = self.gds_get_node_lineno_()
2755
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on address-line-1Type' % {"value" : value, "lineno": lineno} )
2756
+ result = False
2757
+ return result
2758
+ def validate_address_line_2Type(self, value):
2759
+ result = True
2760
+ # Validate type address-line-2Type, a restriction on xsd:normalizedString.
2761
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2762
+ if not isinstance(value, str):
2763
+ lineno = self.gds_get_node_lineno_()
2764
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2765
+ return False
2766
+ if len(value) > 44:
2767
+ lineno = self.gds_get_node_lineno_()
2768
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on address-line-2Type' % {"value": value, "lineno": lineno} )
2769
+ result = False
2770
+ return result
2771
+ def validate_cityType(self, value):
2772
+ result = True
2773
+ # Validate type cityType, a restriction on xsd:normalizedString.
2774
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2775
+ if not isinstance(value, str):
2776
+ lineno = self.gds_get_node_lineno_()
2777
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2778
+ return False
2779
+ if len(value) > 40:
2780
+ lineno = self.gds_get_node_lineno_()
2781
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on cityType' % {"value": value, "lineno": lineno} )
2782
+ result = False
2783
+ if len(value) < 1:
2784
+ lineno = self.gds_get_node_lineno_()
2785
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on cityType' % {"value" : value, "lineno": lineno} )
2786
+ result = False
2787
+ return result
2788
+ def validate_prov_stateType(self, value):
2789
+ result = True
2790
+ # Validate type prov-stateType, a restriction on xsd:normalizedString.
2791
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2792
+ if not isinstance(value, str):
2793
+ lineno = self.gds_get_node_lineno_()
2794
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2795
+ return False
2796
+ if len(value) > 2:
2797
+ lineno = self.gds_get_node_lineno_()
2798
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on prov-stateType' % {"value": value, "lineno": lineno} )
2799
+ result = False
2800
+ if len(value) < 1:
2801
+ lineno = self.gds_get_node_lineno_()
2802
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on prov-stateType' % {"value" : value, "lineno": lineno} )
2803
+ result = False
2804
+ return result
2805
+ def validate_country_codeType(self, value):
2806
+ result = True
2807
+ # Validate type country-codeType, a restriction on xsd:string.
2808
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
2809
+ if not isinstance(value, str):
2810
+ lineno = self.gds_get_node_lineno_()
2811
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
2812
+ return False
2813
+ value = value
2814
+ enumerations = ['CA', 'US']
2815
+ if value not in enumerations:
2816
+ lineno = self.gds_get_node_lineno_()
2817
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd enumeration restriction on country-codeType' % {"value" : encode_str_2_3(value), "lineno": lineno} )
2818
+ result = False
2819
+ return result
2820
+ def has__content(self):
2821
+ if (
2822
+ self.address_line_1 is not None or
2823
+ self.address_line_2 is not None or
2824
+ self.city is not None or
2825
+ self.prov_state is not None or
2826
+ self.country_code is not None or
2827
+ self.postal_zip_code is not None
2828
+ ):
2829
+ return True
2830
+ else:
2831
+ return False
2832
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AddressDetailsType', pretty_print=True):
2833
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('AddressDetailsType')
2834
+ if imported_ns_def_ is not None:
2835
+ namespacedef_ = imported_ns_def_
2836
+ if pretty_print:
2837
+ eol_ = '\n'
2838
+ else:
2839
+ eol_ = ''
2840
+ if self.original_tagname_ is not None and name_ == 'AddressDetailsType':
2841
+ name_ = self.original_tagname_
2842
+ if UseCapturedNS_ and self.ns_prefix_:
2843
+ namespaceprefix_ = self.ns_prefix_ + ':'
2844
+ showIndent(outfile, level, pretty_print)
2845
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
2846
+ already_processed = set()
2847
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='AddressDetailsType')
2848
+ if self.has__content():
2849
+ outfile.write('>%s' % (eol_, ))
2850
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='AddressDetailsType', pretty_print=pretty_print)
2851
+ showIndent(outfile, level, pretty_print)
2852
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
2853
+ else:
2854
+ outfile.write('/>%s' % (eol_, ))
2855
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='AddressDetailsType'):
2856
+ pass
2857
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='AddressDetailsType', fromsubclass_=False, pretty_print=True):
2858
+ if pretty_print:
2859
+ eol_ = '\n'
2860
+ else:
2861
+ eol_ = ''
2862
+ if self.address_line_1 is not None:
2863
+ namespaceprefix_ = self.address_line_1_nsprefix_ + ':' if (UseCapturedNS_ and self.address_line_1_nsprefix_) else ''
2864
+ showIndent(outfile, level, pretty_print)
2865
+ 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_))
2866
+ if self.address_line_2 is not None:
2867
+ namespaceprefix_ = self.address_line_2_nsprefix_ + ':' if (UseCapturedNS_ and self.address_line_2_nsprefix_) else ''
2868
+ showIndent(outfile, level, pretty_print)
2869
+ 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_))
2870
+ if self.city is not None:
2871
+ namespaceprefix_ = self.city_nsprefix_ + ':' if (UseCapturedNS_ and self.city_nsprefix_) else ''
2872
+ showIndent(outfile, level, pretty_print)
2873
+ outfile.write('<%scity>%s</%scity>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.city), input_name='city')), namespaceprefix_ , eol_))
2874
+ if self.prov_state is not None:
2875
+ namespaceprefix_ = self.prov_state_nsprefix_ + ':' if (UseCapturedNS_ and self.prov_state_nsprefix_) else ''
2876
+ showIndent(outfile, level, pretty_print)
2877
+ outfile.write('<%sprov-state>%s</%sprov-state>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.prov_state), input_name='prov-state')), namespaceprefix_ , eol_))
2878
+ if self.country_code is not None:
2879
+ namespaceprefix_ = self.country_code_nsprefix_ + ':' if (UseCapturedNS_ and self.country_code_nsprefix_) else ''
2880
+ showIndent(outfile, level, pretty_print)
2881
+ outfile.write('<%scountry-code>%s</%scountry-code>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.country_code), input_name='country-code')), namespaceprefix_ , eol_))
2882
+ if self.postal_zip_code is not None:
2883
+ namespaceprefix_ = self.postal_zip_code_nsprefix_ + ':' if (UseCapturedNS_ and self.postal_zip_code_nsprefix_) else ''
2884
+ showIndent(outfile, level, pretty_print)
2885
+ outfile.write('<%spostal-zip-code>%s</%spostal-zip-code>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.postal_zip_code), input_name='postal-zip-code')), namespaceprefix_ , eol_))
2886
+ def build(self, node, gds_collector_=None):
2887
+ self.gds_collector_ = gds_collector_
2888
+ if SaveElementTreeNode:
2889
+ self.gds_elementtree_node_ = node
2890
+ already_processed = set()
2891
+ self.ns_prefix_ = node.prefix
2892
+ self._buildAttributes(node, node.attrib, already_processed)
2893
+ for child in node:
2894
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
2895
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
2896
+ return self
2897
+ def _buildAttributes(self, node, attrs, already_processed):
2898
+ pass
2899
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
2900
+ if nodeName_ == 'address-line-1':
2901
+ value_ = child_.text
2902
+ value_ = self.gds_parse_string(value_, node, 'address_line_1')
2903
+ value_ = self.gds_validate_string(value_, node, 'address_line_1')
2904
+ self.address_line_1 = value_
2905
+ self.address_line_1_nsprefix_ = child_.prefix
2906
+ # validate type address-line-1Type
2907
+ self.validate_address_line_1Type(self.address_line_1)
2908
+ elif nodeName_ == 'address-line-2':
2909
+ value_ = child_.text
2910
+ value_ = self.gds_parse_string(value_, node, 'address_line_2')
2911
+ value_ = self.gds_validate_string(value_, node, 'address_line_2')
2912
+ self.address_line_2 = value_
2913
+ self.address_line_2_nsprefix_ = child_.prefix
2914
+ # validate type address-line-2Type
2915
+ self.validate_address_line_2Type(self.address_line_2)
2916
+ elif nodeName_ == 'city':
2917
+ value_ = child_.text
2918
+ value_ = self.gds_parse_string(value_, node, 'city')
2919
+ value_ = self.gds_validate_string(value_, node, 'city')
2920
+ self.city = value_
2921
+ self.city_nsprefix_ = child_.prefix
2922
+ # validate type cityType
2923
+ self.validate_cityType(self.city)
2924
+ elif nodeName_ == 'prov-state':
2925
+ value_ = child_.text
2926
+ value_ = self.gds_parse_string(value_, node, 'prov_state')
2927
+ value_ = self.gds_validate_string(value_, node, 'prov_state')
2928
+ self.prov_state = value_
2929
+ self.prov_state_nsprefix_ = child_.prefix
2930
+ # validate type prov-stateType
2931
+ self.validate_prov_stateType(self.prov_state)
2932
+ elif nodeName_ == 'country-code':
2933
+ value_ = child_.text
2934
+ value_ = self.gds_parse_string(value_, node, 'country_code')
2935
+ value_ = self.gds_validate_string(value_, node, 'country_code')
2936
+ self.country_code = value_
2937
+ self.country_code_nsprefix_ = child_.prefix
2938
+ # validate type country-codeType
2939
+ self.validate_country_codeType(self.country_code)
2940
+ elif nodeName_ == 'postal-zip-code':
2941
+ value_ = child_.text
2942
+ value_ = self.gds_parse_string(value_, node, 'postal_zip_code')
2943
+ value_ = self.gds_validate_string(value_, node, 'postal_zip_code')
2944
+ self.postal_zip_code = value_
2945
+ self.postal_zip_code_nsprefix_ = child_.prefix
2946
+ # end class AddressDetailsType
2947
+
2948
+
2949
+ class cc_receipt_detailsType(GeneratedsSuper):
2950
+ __hash__ = GeneratedsSuper.__hash__
2951
+ subclass = None
2952
+ superclass = None
2953
+ def __init__(self, merchant_name=None, merchant_url=None, name_on_card=None, auth_code=None, auth_timestamp=None, card_type=None, currency=None, transaction_type=None, gds_collector_=None, **kwargs_):
2954
+ self.gds_collector_ = gds_collector_
2955
+ self.gds_elementtree_node_ = None
2956
+ self.original_tagname_ = None
2957
+ self.parent_object_ = kwargs_.get('parent_object_')
2958
+ self.ns_prefix_ = None
2959
+ self.merchant_name = merchant_name
2960
+ self.merchant_name_nsprefix_ = None
2961
+ self.merchant_url = merchant_url
2962
+ self.validate_merchant_urlType(self.merchant_url)
2963
+ self.merchant_url_nsprefix_ = None
2964
+ self.name_on_card = name_on_card
2965
+ self.name_on_card_nsprefix_ = None
2966
+ self.auth_code = auth_code
2967
+ self.auth_code_nsprefix_ = None
2968
+ if isinstance(auth_timestamp, BaseStrType_):
2969
+ initvalue_ = datetime_.datetime.strptime(auth_timestamp, '%Y-%m-%dT%H:%M:%S')
2970
+ else:
2971
+ initvalue_ = auth_timestamp
2972
+ self.auth_timestamp = initvalue_
2973
+ self.auth_timestamp_nsprefix_ = None
2974
+ self.card_type = card_type
2975
+ self.card_type_nsprefix_ = None
2976
+ self.currency = currency
2977
+ self.currency_nsprefix_ = None
2978
+ self.transaction_type = transaction_type
2979
+ self.validate_transaction_typeType(self.transaction_type)
2980
+ self.transaction_type_nsprefix_ = None
2981
+ def factory(*args_, **kwargs_):
2982
+ if CurrentSubclassModule_ is not None:
2983
+ subclass = getSubclassFromModule_(
2984
+ CurrentSubclassModule_, cc_receipt_detailsType)
2985
+ if subclass is not None:
2986
+ return subclass(*args_, **kwargs_)
2987
+ if cc_receipt_detailsType.subclass:
2988
+ return cc_receipt_detailsType.subclass(*args_, **kwargs_)
2989
+ else:
2990
+ return cc_receipt_detailsType(*args_, **kwargs_)
2991
+ factory = staticmethod(factory)
2992
+ def get_ns_prefix_(self):
2993
+ return self.ns_prefix_
2994
+ def set_ns_prefix_(self, ns_prefix):
2995
+ self.ns_prefix_ = ns_prefix
2996
+ def get_merchant_name(self):
2997
+ return self.merchant_name
2998
+ def set_merchant_name(self, merchant_name):
2999
+ self.merchant_name = merchant_name
3000
+ def get_merchant_url(self):
3001
+ return self.merchant_url
3002
+ def set_merchant_url(self, merchant_url):
3003
+ self.merchant_url = merchant_url
3004
+ def get_name_on_card(self):
3005
+ return self.name_on_card
3006
+ def set_name_on_card(self, name_on_card):
3007
+ self.name_on_card = name_on_card
3008
+ def get_auth_code(self):
3009
+ return self.auth_code
3010
+ def set_auth_code(self, auth_code):
3011
+ self.auth_code = auth_code
3012
+ def get_auth_timestamp(self):
3013
+ return self.auth_timestamp
3014
+ def set_auth_timestamp(self, auth_timestamp):
3015
+ self.auth_timestamp = auth_timestamp
3016
+ def get_card_type(self):
3017
+ return self.card_type
3018
+ def set_card_type(self, card_type):
3019
+ self.card_type = card_type
3020
+ def get_currency(self):
3021
+ return self.currency
3022
+ def set_currency(self, currency):
3023
+ self.currency = currency
3024
+ def get_transaction_type(self):
3025
+ return self.transaction_type
3026
+ def set_transaction_type(self, transaction_type):
3027
+ self.transaction_type = transaction_type
3028
+ def validate_merchant_urlType(self, value):
3029
+ result = True
3030
+ # Validate type merchant-urlType, a restriction on xsd:normalizedString.
3031
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
3032
+ if not isinstance(value, str):
3033
+ lineno = self.gds_get_node_lineno_()
3034
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
3035
+ return False
3036
+ if len(value) > 60:
3037
+ lineno = self.gds_get_node_lineno_()
3038
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on merchant-urlType' % {"value": value, "lineno": lineno} )
3039
+ result = False
3040
+ return result
3041
+ def validate_transaction_typeType(self, value):
3042
+ result = True
3043
+ # Validate type transaction-typeType, a restriction on xsd:normalizedString.
3044
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
3045
+ if not isinstance(value, str):
3046
+ lineno = self.gds_get_node_lineno_()
3047
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
3048
+ return False
3049
+ if len(value) > 44:
3050
+ lineno = self.gds_get_node_lineno_()
3051
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on transaction-typeType' % {"value": value, "lineno": lineno} )
3052
+ result = False
3053
+ return result
3054
+ def has__content(self):
3055
+ if (
3056
+ self.merchant_name is not None or
3057
+ self.merchant_url is not None or
3058
+ self.name_on_card is not None or
3059
+ self.auth_code is not None or
3060
+ self.auth_timestamp is not None or
3061
+ self.card_type is not None or
3062
+ self.currency is not None or
3063
+ self.transaction_type is not None
3064
+ ):
3065
+ return True
3066
+ else:
3067
+ return False
3068
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='cc-receipt-detailsType', pretty_print=True):
3069
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('cc-receipt-detailsType')
3070
+ if imported_ns_def_ is not None:
3071
+ namespacedef_ = imported_ns_def_
3072
+ if pretty_print:
3073
+ eol_ = '\n'
3074
+ else:
3075
+ eol_ = ''
3076
+ if self.original_tagname_ is not None and name_ == 'cc-receipt-detailsType':
3077
+ name_ = self.original_tagname_
3078
+ if UseCapturedNS_ and self.ns_prefix_:
3079
+ namespaceprefix_ = self.ns_prefix_ + ':'
3080
+ showIndent(outfile, level, pretty_print)
3081
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
3082
+ already_processed = set()
3083
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='cc-receipt-detailsType')
3084
+ if self.has__content():
3085
+ outfile.write('>%s' % (eol_, ))
3086
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='cc-receipt-detailsType', pretty_print=pretty_print)
3087
+ showIndent(outfile, level, pretty_print)
3088
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
3089
+ else:
3090
+ outfile.write('/>%s' % (eol_, ))
3091
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='cc-receipt-detailsType'):
3092
+ pass
3093
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='cc-receipt-detailsType', fromsubclass_=False, pretty_print=True):
3094
+ if pretty_print:
3095
+ eol_ = '\n'
3096
+ else:
3097
+ eol_ = ''
3098
+ if self.merchant_name is not None:
3099
+ namespaceprefix_ = self.merchant_name_nsprefix_ + ':' if (UseCapturedNS_ and self.merchant_name_nsprefix_) else ''
3100
+ showIndent(outfile, level, pretty_print)
3101
+ outfile.write('<%smerchant-name>%s</%smerchant-name>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.merchant_name), input_name='merchant-name')), namespaceprefix_ , eol_))
3102
+ if self.merchant_url is not None:
3103
+ namespaceprefix_ = self.merchant_url_nsprefix_ + ':' if (UseCapturedNS_ and self.merchant_url_nsprefix_) else ''
3104
+ showIndent(outfile, level, pretty_print)
3105
+ outfile.write('<%smerchant-url>%s</%smerchant-url>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.merchant_url), input_name='merchant-url')), namespaceprefix_ , eol_))
3106
+ if self.name_on_card is not None:
3107
+ namespaceprefix_ = self.name_on_card_nsprefix_ + ':' if (UseCapturedNS_ and self.name_on_card_nsprefix_) else ''
3108
+ showIndent(outfile, level, pretty_print)
3109
+ outfile.write('<%sname-on-card>%s</%sname-on-card>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.name_on_card), input_name='name-on-card')), namespaceprefix_ , eol_))
3110
+ if self.auth_code is not None:
3111
+ namespaceprefix_ = self.auth_code_nsprefix_ + ':' if (UseCapturedNS_ and self.auth_code_nsprefix_) else ''
3112
+ showIndent(outfile, level, pretty_print)
3113
+ outfile.write('<%sauth-code>%s</%sauth-code>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.auth_code), input_name='auth-code')), namespaceprefix_ , eol_))
3114
+ if self.auth_timestamp is not None:
3115
+ namespaceprefix_ = self.auth_timestamp_nsprefix_ + ':' if (UseCapturedNS_ and self.auth_timestamp_nsprefix_) else ''
3116
+ showIndent(outfile, level, pretty_print)
3117
+ outfile.write('<%sauth-timestamp>%s</%sauth-timestamp>%s' % (namespaceprefix_ , self.gds_format_datetime(self.auth_timestamp, input_name='auth-timestamp'), namespaceprefix_ , eol_))
3118
+ if self.card_type is not None:
3119
+ namespaceprefix_ = self.card_type_nsprefix_ + ':' if (UseCapturedNS_ and self.card_type_nsprefix_) else ''
3120
+ showIndent(outfile, level, pretty_print)
3121
+ outfile.write('<%scard-type>%s</%scard-type>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.card_type), input_name='card-type')), namespaceprefix_ , eol_))
3122
+ if self.currency is not None:
3123
+ namespaceprefix_ = self.currency_nsprefix_ + ':' if (UseCapturedNS_ and self.currency_nsprefix_) else ''
3124
+ showIndent(outfile, level, pretty_print)
3125
+ outfile.write('<%scurrency>%s</%scurrency>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.currency), input_name='currency')), namespaceprefix_ , eol_))
3126
+ if self.transaction_type is not None:
3127
+ namespaceprefix_ = self.transaction_type_nsprefix_ + ':' if (UseCapturedNS_ and self.transaction_type_nsprefix_) else ''
3128
+ showIndent(outfile, level, pretty_print)
3129
+ outfile.write('<%stransaction-type>%s</%stransaction-type>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.transaction_type), input_name='transaction-type')), namespaceprefix_ , eol_))
3130
+ def build(self, node, gds_collector_=None):
3131
+ self.gds_collector_ = gds_collector_
3132
+ if SaveElementTreeNode:
3133
+ self.gds_elementtree_node_ = node
3134
+ already_processed = set()
3135
+ self.ns_prefix_ = node.prefix
3136
+ self._buildAttributes(node, node.attrib, already_processed)
3137
+ for child in node:
3138
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3139
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3140
+ return self
3141
+ def _buildAttributes(self, node, attrs, already_processed):
3142
+ pass
3143
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
3144
+ if nodeName_ == 'merchant-name':
3145
+ value_ = child_.text
3146
+ value_ = self.gds_parse_string(value_, node, 'merchant_name')
3147
+ value_ = self.gds_validate_string(value_, node, 'merchant_name')
3148
+ self.merchant_name = value_
3149
+ self.merchant_name_nsprefix_ = child_.prefix
3150
+ elif nodeName_ == 'merchant-url':
3151
+ value_ = child_.text
3152
+ value_ = self.gds_parse_string(value_, node, 'merchant_url')
3153
+ value_ = self.gds_validate_string(value_, node, 'merchant_url')
3154
+ self.merchant_url = value_
3155
+ self.merchant_url_nsprefix_ = child_.prefix
3156
+ # validate type merchant-urlType
3157
+ self.validate_merchant_urlType(self.merchant_url)
3158
+ elif nodeName_ == 'name-on-card':
3159
+ value_ = child_.text
3160
+ value_ = self.gds_parse_string(value_, node, 'name_on_card')
3161
+ value_ = self.gds_validate_string(value_, node, 'name_on_card')
3162
+ self.name_on_card = value_
3163
+ self.name_on_card_nsprefix_ = child_.prefix
3164
+ elif nodeName_ == 'auth-code':
3165
+ value_ = child_.text
3166
+ value_ = self.gds_parse_string(value_, node, 'auth_code')
3167
+ value_ = self.gds_validate_string(value_, node, 'auth_code')
3168
+ self.auth_code = value_
3169
+ self.auth_code_nsprefix_ = child_.prefix
3170
+ elif nodeName_ == 'auth-timestamp':
3171
+ sval_ = child_.text
3172
+ dval_ = self.gds_parse_datetime(sval_)
3173
+ self.auth_timestamp = dval_
3174
+ self.auth_timestamp_nsprefix_ = child_.prefix
3175
+ elif nodeName_ == 'card-type':
3176
+ value_ = child_.text
3177
+ value_ = self.gds_parse_string(value_, node, 'card_type')
3178
+ value_ = self.gds_validate_string(value_, node, 'card_type')
3179
+ self.card_type = value_
3180
+ self.card_type_nsprefix_ = child_.prefix
3181
+ elif nodeName_ == 'currency':
3182
+ value_ = child_.text
3183
+ value_ = self.gds_parse_string(value_, node, 'currency')
3184
+ value_ = self.gds_validate_string(value_, node, 'currency')
3185
+ self.currency = value_
3186
+ self.currency_nsprefix_ = child_.prefix
3187
+ elif nodeName_ == 'transaction-type':
3188
+ value_ = child_.text
3189
+ value_ = self.gds_parse_string(value_, node, 'transaction_type')
3190
+ value_ = self.gds_validate_string(value_, node, 'transaction_type')
3191
+ self.transaction_type = value_
3192
+ self.transaction_type_nsprefix_ = child_.prefix
3193
+ # validate type transaction-typeType
3194
+ self.validate_transaction_typeType(self.transaction_type)
3195
+ # end class cc_receipt_detailsType
3196
+
3197
+
3198
+ class supplier_account_receipt_detailsType(GeneratedsSuper):
3199
+ __hash__ = GeneratedsSuper.__hash__
3200
+ subclass = None
3201
+ superclass = None
3202
+ def __init__(self, merchant_name=None, merchant_url=None, auth_code=None, auth_timestamp=None, supplier_id=None, currency=None, transaction_type=None, gds_collector_=None, **kwargs_):
3203
+ self.gds_collector_ = gds_collector_
3204
+ self.gds_elementtree_node_ = None
3205
+ self.original_tagname_ = None
3206
+ self.parent_object_ = kwargs_.get('parent_object_')
3207
+ self.ns_prefix_ = None
3208
+ self.merchant_name = merchant_name
3209
+ self.validate_merchant_nameType(self.merchant_name)
3210
+ self.merchant_name_nsprefix_ = None
3211
+ self.merchant_url = merchant_url
3212
+ self.validate_merchant_urlType1(self.merchant_url)
3213
+ self.merchant_url_nsprefix_ = None
3214
+ self.auth_code = auth_code
3215
+ self.auth_code_nsprefix_ = None
3216
+ if isinstance(auth_timestamp, BaseStrType_):
3217
+ initvalue_ = datetime_.datetime.strptime(auth_timestamp, '%Y-%m-%dT%H:%M:%S')
3218
+ else:
3219
+ initvalue_ = auth_timestamp
3220
+ self.auth_timestamp = initvalue_
3221
+ self.auth_timestamp_nsprefix_ = None
3222
+ self.supplier_id = supplier_id
3223
+ self.supplier_id_nsprefix_ = None
3224
+ self.currency = currency
3225
+ self.currency_nsprefix_ = None
3226
+ self.transaction_type = transaction_type
3227
+ self.validate_transaction_typeType2(self.transaction_type)
3228
+ self.transaction_type_nsprefix_ = None
3229
+ def factory(*args_, **kwargs_):
3230
+ if CurrentSubclassModule_ is not None:
3231
+ subclass = getSubclassFromModule_(
3232
+ CurrentSubclassModule_, supplier_account_receipt_detailsType)
3233
+ if subclass is not None:
3234
+ return subclass(*args_, **kwargs_)
3235
+ if supplier_account_receipt_detailsType.subclass:
3236
+ return supplier_account_receipt_detailsType.subclass(*args_, **kwargs_)
3237
+ else:
3238
+ return supplier_account_receipt_detailsType(*args_, **kwargs_)
3239
+ factory = staticmethod(factory)
3240
+ def get_ns_prefix_(self):
3241
+ return self.ns_prefix_
3242
+ def set_ns_prefix_(self, ns_prefix):
3243
+ self.ns_prefix_ = ns_prefix
3244
+ def get_merchant_name(self):
3245
+ return self.merchant_name
3246
+ def set_merchant_name(self, merchant_name):
3247
+ self.merchant_name = merchant_name
3248
+ def get_merchant_url(self):
3249
+ return self.merchant_url
3250
+ def set_merchant_url(self, merchant_url):
3251
+ self.merchant_url = merchant_url
3252
+ def get_auth_code(self):
3253
+ return self.auth_code
3254
+ def set_auth_code(self, auth_code):
3255
+ self.auth_code = auth_code
3256
+ def get_auth_timestamp(self):
3257
+ return self.auth_timestamp
3258
+ def set_auth_timestamp(self, auth_timestamp):
3259
+ self.auth_timestamp = auth_timestamp
3260
+ def get_supplier_id(self):
3261
+ return self.supplier_id
3262
+ def set_supplier_id(self, supplier_id):
3263
+ self.supplier_id = supplier_id
3264
+ def get_currency(self):
3265
+ return self.currency
3266
+ def set_currency(self, currency):
3267
+ self.currency = currency
3268
+ def get_transaction_type(self):
3269
+ return self.transaction_type
3270
+ def set_transaction_type(self, transaction_type):
3271
+ self.transaction_type = transaction_type
3272
+ def validate_merchant_nameType(self, value):
3273
+ result = True
3274
+ # Validate type merchant-nameType, a restriction on xsd:normalizedString.
3275
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
3276
+ if not isinstance(value, str):
3277
+ lineno = self.gds_get_node_lineno_()
3278
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
3279
+ return False
3280
+ if len(value) > 44:
3281
+ lineno = self.gds_get_node_lineno_()
3282
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on merchant-nameType' % {"value": value, "lineno": lineno} )
3283
+ result = False
3284
+ return result
3285
+ def validate_merchant_urlType1(self, value):
3286
+ result = True
3287
+ # Validate type merchant-urlType1, a restriction on xsd:normalizedString.
3288
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
3289
+ if not isinstance(value, str):
3290
+ lineno = self.gds_get_node_lineno_()
3291
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
3292
+ return False
3293
+ if len(value) > 60:
3294
+ lineno = self.gds_get_node_lineno_()
3295
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on merchant-urlType1' % {"value": value, "lineno": lineno} )
3296
+ result = False
3297
+ return result
3298
+ def validate_transaction_typeType2(self, value):
3299
+ result = True
3300
+ # Validate type transaction-typeType2, a restriction on xsd:normalizedString.
3301
+ if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
3302
+ if not isinstance(value, str):
3303
+ lineno = self.gds_get_node_lineno_()
3304
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
3305
+ return False
3306
+ if len(value) > 44:
3307
+ lineno = self.gds_get_node_lineno_()
3308
+ self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on transaction-typeType2' % {"value": value, "lineno": lineno} )
3309
+ result = False
3310
+ return result
3311
+ def has__content(self):
3312
+ if (
3313
+ self.merchant_name is not None or
3314
+ self.merchant_url is not None or
3315
+ self.auth_code is not None or
3316
+ self.auth_timestamp is not None or
3317
+ self.supplier_id is not None or
3318
+ self.currency is not None or
3319
+ self.transaction_type is not None
3320
+ ):
3321
+ return True
3322
+ else:
3323
+ return False
3324
+ def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='supplier-account-receipt-detailsType', pretty_print=True):
3325
+ imported_ns_def_ = GenerateDSNamespaceDefs_.get('supplier-account-receipt-detailsType')
3326
+ if imported_ns_def_ is not None:
3327
+ namespacedef_ = imported_ns_def_
3328
+ if pretty_print:
3329
+ eol_ = '\n'
3330
+ else:
3331
+ eol_ = ''
3332
+ if self.original_tagname_ is not None and name_ == 'supplier-account-receipt-detailsType':
3333
+ name_ = self.original_tagname_
3334
+ if UseCapturedNS_ and self.ns_prefix_:
3335
+ namespaceprefix_ = self.ns_prefix_ + ':'
3336
+ showIndent(outfile, level, pretty_print)
3337
+ outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
3338
+ already_processed = set()
3339
+ self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='supplier-account-receipt-detailsType')
3340
+ if self.has__content():
3341
+ outfile.write('>%s' % (eol_, ))
3342
+ self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='supplier-account-receipt-detailsType', pretty_print=pretty_print)
3343
+ showIndent(outfile, level, pretty_print)
3344
+ outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
3345
+ else:
3346
+ outfile.write('/>%s' % (eol_, ))
3347
+ def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='supplier-account-receipt-detailsType'):
3348
+ pass
3349
+ def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='supplier-account-receipt-detailsType', fromsubclass_=False, pretty_print=True):
3350
+ if pretty_print:
3351
+ eol_ = '\n'
3352
+ else:
3353
+ eol_ = ''
3354
+ if self.merchant_name is not None:
3355
+ namespaceprefix_ = self.merchant_name_nsprefix_ + ':' if (UseCapturedNS_ and self.merchant_name_nsprefix_) else ''
3356
+ showIndent(outfile, level, pretty_print)
3357
+ outfile.write('<%smerchant-name>%s</%smerchant-name>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.merchant_name), input_name='merchant-name')), namespaceprefix_ , eol_))
3358
+ if self.merchant_url is not None:
3359
+ namespaceprefix_ = self.merchant_url_nsprefix_ + ':' if (UseCapturedNS_ and self.merchant_url_nsprefix_) else ''
3360
+ showIndent(outfile, level, pretty_print)
3361
+ outfile.write('<%smerchant-url>%s</%smerchant-url>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.merchant_url), input_name='merchant-url')), namespaceprefix_ , eol_))
3362
+ if self.auth_code is not None:
3363
+ namespaceprefix_ = self.auth_code_nsprefix_ + ':' if (UseCapturedNS_ and self.auth_code_nsprefix_) else ''
3364
+ showIndent(outfile, level, pretty_print)
3365
+ outfile.write('<%sauth-code>%s</%sauth-code>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.auth_code), input_name='auth-code')), namespaceprefix_ , eol_))
3366
+ if self.auth_timestamp is not None:
3367
+ namespaceprefix_ = self.auth_timestamp_nsprefix_ + ':' if (UseCapturedNS_ and self.auth_timestamp_nsprefix_) else ''
3368
+ showIndent(outfile, level, pretty_print)
3369
+ outfile.write('<%sauth-timestamp>%s</%sauth-timestamp>%s' % (namespaceprefix_ , self.gds_format_datetime(self.auth_timestamp, input_name='auth-timestamp'), namespaceprefix_ , eol_))
3370
+ if self.supplier_id is not None:
3371
+ namespaceprefix_ = self.supplier_id_nsprefix_ + ':' if (UseCapturedNS_ and self.supplier_id_nsprefix_) else ''
3372
+ showIndent(outfile, level, pretty_print)
3373
+ outfile.write('<%ssupplier-id>%s</%ssupplier-id>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.supplier_id), input_name='supplier-id')), namespaceprefix_ , eol_))
3374
+ if self.currency is not None:
3375
+ namespaceprefix_ = self.currency_nsprefix_ + ':' if (UseCapturedNS_ and self.currency_nsprefix_) else ''
3376
+ showIndent(outfile, level, pretty_print)
3377
+ outfile.write('<%scurrency>%s</%scurrency>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.currency), input_name='currency')), namespaceprefix_ , eol_))
3378
+ if self.transaction_type is not None:
3379
+ namespaceprefix_ = self.transaction_type_nsprefix_ + ':' if (UseCapturedNS_ and self.transaction_type_nsprefix_) else ''
3380
+ showIndent(outfile, level, pretty_print)
3381
+ outfile.write('<%stransaction-type>%s</%stransaction-type>%s' % (namespaceprefix_ , self.gds_encode(self.gds_format_string(quote_xml(self.transaction_type), input_name='transaction-type')), namespaceprefix_ , eol_))
3382
+ def build(self, node, gds_collector_=None):
3383
+ self.gds_collector_ = gds_collector_
3384
+ if SaveElementTreeNode:
3385
+ self.gds_elementtree_node_ = node
3386
+ already_processed = set()
3387
+ self.ns_prefix_ = node.prefix
3388
+ self._buildAttributes(node, node.attrib, already_processed)
3389
+ for child in node:
3390
+ nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3391
+ self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
3392
+ return self
3393
+ def _buildAttributes(self, node, attrs, already_processed):
3394
+ pass
3395
+ def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
3396
+ if nodeName_ == 'merchant-name':
3397
+ value_ = child_.text
3398
+ value_ = self.gds_parse_string(value_, node, 'merchant_name')
3399
+ value_ = self.gds_validate_string(value_, node, 'merchant_name')
3400
+ self.merchant_name = value_
3401
+ self.merchant_name_nsprefix_ = child_.prefix
3402
+ # validate type merchant-nameType
3403
+ self.validate_merchant_nameType(self.merchant_name)
3404
+ elif nodeName_ == 'merchant-url':
3405
+ value_ = child_.text
3406
+ value_ = self.gds_parse_string(value_, node, 'merchant_url')
3407
+ value_ = self.gds_validate_string(value_, node, 'merchant_url')
3408
+ self.merchant_url = value_
3409
+ self.merchant_url_nsprefix_ = child_.prefix
3410
+ # validate type merchant-urlType1
3411
+ self.validate_merchant_urlType1(self.merchant_url)
3412
+ elif nodeName_ == 'auth-code':
3413
+ value_ = child_.text
3414
+ value_ = self.gds_parse_string(value_, node, 'auth_code')
3415
+ value_ = self.gds_validate_string(value_, node, 'auth_code')
3416
+ self.auth_code = value_
3417
+ self.auth_code_nsprefix_ = child_.prefix
3418
+ elif nodeName_ == 'auth-timestamp':
3419
+ sval_ = child_.text
3420
+ dval_ = self.gds_parse_datetime(sval_)
3421
+ self.auth_timestamp = dval_
3422
+ self.auth_timestamp_nsprefix_ = child_.prefix
3423
+ elif nodeName_ == 'supplier-id':
3424
+ value_ = child_.text
3425
+ value_ = self.gds_parse_string(value_, node, 'supplier_id')
3426
+ value_ = self.gds_validate_string(value_, node, 'supplier_id')
3427
+ self.supplier_id = value_
3428
+ self.supplier_id_nsprefix_ = child_.prefix
3429
+ elif nodeName_ == 'currency':
3430
+ value_ = child_.text
3431
+ value_ = self.gds_parse_string(value_, node, 'currency')
3432
+ value_ = self.gds_validate_string(value_, node, 'currency')
3433
+ self.currency = value_
3434
+ self.currency_nsprefix_ = child_.prefix
3435
+ elif nodeName_ == 'transaction-type':
3436
+ value_ = child_.text
3437
+ value_ = self.gds_parse_string(value_, node, 'transaction_type')
3438
+ value_ = self.gds_validate_string(value_, node, 'transaction_type')
3439
+ self.transaction_type = value_
3440
+ self.transaction_type_nsprefix_ = child_.prefix
3441
+ # validate type transaction-typeType2
3442
+ self.validate_transaction_typeType2(self.transaction_type)
3443
+ # end class supplier_account_receipt_detailsType
3444
+
3445
+
3446
+ #
3447
+ # End data representation classes.
3448
+ #
3449
+
3450
+
3451
+ GDSClassesMapping = {
3452
+ }
3453
+
3454
+
3455
+ USAGE_TEXT = """
3456
+ Usage: python <Parser>.py [ -s ] <in_xml_file>
3457
+ """
3458
+
3459
+
3460
+ def usage():
3461
+ print(USAGE_TEXT)
3462
+ sys.exit(1)
3463
+
3464
+
3465
+ def get_root_tag(node):
3466
+ tag = Tag_pattern_.match(node.tag).groups()[-1]
3467
+ prefix_tag = TagNamePrefix + tag
3468
+ rootClass = GDSClassesMapping.get(prefix_tag)
3469
+ if rootClass is None:
3470
+ rootClass = globals().get(prefix_tag)
3471
+ return tag, rootClass
3472
+
3473
+
3474
+ def get_required_ns_prefix_defs(rootNode):
3475
+ '''Get all name space prefix definitions required in this XML doc.
3476
+ Return a dictionary of definitions and a char string of definitions.
3477
+ '''
3478
+ nsmap = {
3479
+ prefix: uri
3480
+ for node in rootNode.iter()
3481
+ for (prefix, uri) in node.nsmap.items()
3482
+ if prefix is not None
3483
+ }
3484
+ namespacedefs = ' '.join([
3485
+ 'xmlns:{}="{}"'.format(prefix, uri)
3486
+ for prefix, uri in nsmap.items()
3487
+ ])
3488
+ return nsmap, namespacedefs
3489
+
3490
+
3491
+ def parse(inFileName, silence=False, print_warnings=True):
3492
+ global CapturedNsmap_
3493
+ gds_collector = GdsCollector_()
3494
+ parser = None
3495
+ doc = parsexml_(inFileName, parser)
3496
+ rootNode = doc.getroot()
3497
+ rootTag, rootClass = get_root_tag(rootNode)
3498
+ if rootClass is None:
3499
+ rootTag = 'ShipmentTransmitSetType'
3500
+ rootClass = ShipmentTransmitSetType
3501
+ rootObj = rootClass.factory()
3502
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3503
+ CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
3504
+ if not SaveElementTreeNode:
3505
+ doc = None
3506
+ rootNode = None
3507
+ if not silence:
3508
+ sys.stdout.write('<?xml version="1.0" ?>\n')
3509
+ rootObj.export(
3510
+ sys.stdout, 0, name_=rootTag,
3511
+ namespacedef_=namespacedefs,
3512
+ pretty_print=True)
3513
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3514
+ separator = ('-' * 50) + '\n'
3515
+ sys.stderr.write(separator)
3516
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3517
+ len(gds_collector.get_messages()), ))
3518
+ gds_collector.write_messages(sys.stderr)
3519
+ sys.stderr.write(separator)
3520
+ return rootObj
3521
+
3522
+
3523
+ def parseEtree(inFileName, silence=False, print_warnings=True,
3524
+ mapping=None, reverse_mapping=None, nsmap=None):
3525
+ parser = None
3526
+ doc = parsexml_(inFileName, parser)
3527
+ gds_collector = GdsCollector_()
3528
+ rootNode = doc.getroot()
3529
+ rootTag, rootClass = get_root_tag(rootNode)
3530
+ if rootClass is None:
3531
+ rootTag = 'ShipmentTransmitSetType'
3532
+ rootClass = ShipmentTransmitSetType
3533
+ rootObj = rootClass.factory()
3534
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3535
+ if mapping is None:
3536
+ mapping = {}
3537
+ if reverse_mapping is None:
3538
+ reverse_mapping = {}
3539
+ rootElement = rootObj.to_etree(
3540
+ None, name_=rootTag, mapping_=mapping,
3541
+ reverse_mapping_=reverse_mapping, nsmap_=nsmap)
3542
+ reverse_node_mapping = rootObj.gds_reverse_node_mapping(mapping)
3543
+ # Enable Python to collect the space used by the DOM.
3544
+ if not SaveElementTreeNode:
3545
+ doc = None
3546
+ rootNode = None
3547
+ if not silence:
3548
+ content = etree_.tostring(
3549
+ rootElement, pretty_print=True,
3550
+ xml_declaration=True, encoding="utf-8")
3551
+ sys.stdout.write(str(content))
3552
+ sys.stdout.write('\n')
3553
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3554
+ separator = ('-' * 50) + '\n'
3555
+ sys.stderr.write(separator)
3556
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3557
+ len(gds_collector.get_messages()), ))
3558
+ gds_collector.write_messages(sys.stderr)
3559
+ sys.stderr.write(separator)
3560
+ return rootObj, rootElement, mapping, reverse_node_mapping
3561
+
3562
+
3563
+ def parseString(inString, silence=False, print_warnings=True):
3564
+ '''Parse a string, create the object tree, and export it.
3565
+
3566
+ Arguments:
3567
+ - inString -- A string. This XML fragment should not start
3568
+ with an XML declaration containing an encoding.
3569
+ - silence -- A boolean. If False, export the object.
3570
+ Returns -- The root object in the tree.
3571
+ '''
3572
+ parser = None
3573
+ rootNode= parsexmlstring_(inString, parser)
3574
+ gds_collector = GdsCollector_()
3575
+ rootTag, rootClass = get_root_tag(rootNode)
3576
+ if rootClass is None:
3577
+ rootTag = 'ShipmentTransmitSetType'
3578
+ rootClass = ShipmentTransmitSetType
3579
+ rootObj = rootClass.factory()
3580
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3581
+ if not SaveElementTreeNode:
3582
+ rootNode = None
3583
+ if not silence:
3584
+ sys.stdout.write('<?xml version="1.0" ?>\n')
3585
+ rootObj.export(
3586
+ sys.stdout, 0, name_=rootTag,
3587
+ namespacedef_='')
3588
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3589
+ separator = ('-' * 50) + '\n'
3590
+ sys.stderr.write(separator)
3591
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3592
+ len(gds_collector.get_messages()), ))
3593
+ gds_collector.write_messages(sys.stderr)
3594
+ sys.stderr.write(separator)
3595
+ return rootObj
3596
+
3597
+
3598
+ def parseLiteral(inFileName, silence=False, print_warnings=True):
3599
+ parser = None
3600
+ doc = parsexml_(inFileName, parser)
3601
+ gds_collector = GdsCollector_()
3602
+ rootNode = doc.getroot()
3603
+ rootTag, rootClass = get_root_tag(rootNode)
3604
+ if rootClass is None:
3605
+ rootTag = 'ShipmentTransmitSetType'
3606
+ rootClass = ShipmentTransmitSetType
3607
+ rootObj = rootClass.factory()
3608
+ rootObj.build(rootNode, gds_collector_=gds_collector)
3609
+ # Enable Python to collect the space used by the DOM.
3610
+ if not SaveElementTreeNode:
3611
+ doc = None
3612
+ rootNode = None
3613
+ if not silence:
3614
+ sys.stdout.write('#from manifest import *\n\n')
3615
+ sys.stdout.write('import manifest as model_\n\n')
3616
+ sys.stdout.write('rootObj = model_.rootClass(\n')
3617
+ rootObj.exportLiteral(sys.stdout, 0, name_=rootTag)
3618
+ sys.stdout.write(')\n')
3619
+ if print_warnings and len(gds_collector.get_messages()) > 0:
3620
+ separator = ('-' * 50) + '\n'
3621
+ sys.stderr.write(separator)
3622
+ sys.stderr.write('----- Warnings -- count: {} -----\n'.format(
3623
+ len(gds_collector.get_messages()), ))
3624
+ gds_collector.write_messages(sys.stderr)
3625
+ sys.stderr.write(separator)
3626
+ return rootObj
3627
+
3628
+
3629
+ def main():
3630
+ args = sys.argv[1:]
3631
+ if len(args) == 1:
3632
+ parse(args[0])
3633
+ else:
3634
+ usage()
3635
+
3636
+
3637
+ if __name__ == '__main__':
3638
+ #import pdb; pdb.set_trace()
3639
+ main()
3640
+
3641
+ RenameMappings_ = {
3642
+ }
3643
+
3644
+ #
3645
+ # Mapping of namespaces to types defined in them
3646
+ # and the file in which each is defined.
3647
+ # simpleTypes are marked "ST" and complexTypes "CT".
3648
+ NamespaceToDefMappings_ = {'http://www.canadapost.ca/ws/manifest-v8': [('GroupIDType',
3649
+ './schemas/manifest.xsd',
3650
+ 'ST'),
3651
+ ('ShipmentIDType',
3652
+ './schemas/manifest.xsd',
3653
+ 'ST'),
3654
+ ('CustomerReferenceType',
3655
+ './schemas/manifest.xsd',
3656
+ 'ST'),
3657
+ ('CustomerRequestIdType',
3658
+ './schemas/manifest.xsd',
3659
+ 'ST'),
3660
+ ('ShipmentTransmitSetType',
3661
+ './schemas/manifest.xsd',
3662
+ 'CT'),
3663
+ ('GroupIDListType',
3664
+ './schemas/manifest.xsd',
3665
+ 'CT'),
3666
+ ('ExcludedShipmentsType',
3667
+ './schemas/manifest.xsd',
3668
+ 'CT'),
3669
+ ('ShipmentsType',
3670
+ './schemas/manifest.xsd',
3671
+ 'CT'),
3672
+ ('ManifestsType',
3673
+ './schemas/manifest.xsd',
3674
+ 'CT'),
3675
+ ('ManifestType',
3676
+ './schemas/manifest.xsd',
3677
+ 'CT'),
3678
+ ('ManifestDetailsType',
3679
+ './schemas/manifest.xsd',
3680
+ 'CT'),
3681
+ ('ManifestPricingInfoType',
3682
+ './schemas/manifest.xsd',
3683
+ 'CT'),
3684
+ ('ManifestAddressType',
3685
+ './schemas/manifest.xsd',
3686
+ 'CT'),
3687
+ ('AddressDetailsType',
3688
+ './schemas/manifest.xsd',
3689
+ 'CT')]}
3690
+
3691
+ __all__ = [
3692
+ "AddressDetailsType",
3693
+ "ExcludedShipmentsType",
3694
+ "GroupIDListType",
3695
+ "ManifestAddressType",
3696
+ "ManifestDetailsType",
3697
+ "ManifestPricingInfoType",
3698
+ "ManifestType",
3699
+ "ManifestsType",
3700
+ "ShipmentTransmitSetType",
3701
+ "ShipmentsType",
3702
+ "cc_receipt_detailsType",
3703
+ "supplier_account_receipt_detailsType"
3704
+ ]