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