karrio-tnt 2025.5rc1__py3-none-any.whl

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