Slight simplification but lets try a different tool
This commit is contained in:
47
output.xml
Normal file
47
output.xml
Normal file
@@ -0,0 +1,47 @@
|
||||
<OTA_ResRetrieveRS xmlns:None="http://www.opentravel.org/OTA/2003/05" Version="7.000">
|
||||
<Success><Success/>
|
||||
</Success>
|
||||
<ReservationsList>
|
||||
<HotelReservation CreateDateTime="2025-09-24T07:45:46.366406Z" ResStatus="Requested" RoomStayReservation="true">
|
||||
<UniqueID Type="14" ID="6b34fe24ac2ff811"/>
|
||||
<RoomStays>
|
||||
<RoomStay>
|
||||
<RoomTypes>
|
||||
<RoomType RoomTypeCode="A" RoomClassificationCode="5" RoomType="8"/>
|
||||
</RoomTypes>
|
||||
<GuestCounts>
|
||||
<GuestCount Count="1"/>
|
||||
</GuestCounts>
|
||||
<TimeSpan>
|
||||
<StartDateWindow EarliestDate="2022-10-03Z" LatestDate="2022-10-08Z"/>
|
||||
</TimeSpan>
|
||||
</RoomStay>
|
||||
</RoomStays>
|
||||
<ResGuests>
|
||||
<ResGuest>
|
||||
<Profiles>
|
||||
<ProfileInfo>
|
||||
<Profile>
|
||||
<Customer Gender="Test" Language="de">
|
||||
<PersonName>
|
||||
<GivenName>Otto</GivenName>
|
||||
<Surname>Mustermann</Surname>
|
||||
</PersonName>
|
||||
<Address>
|
||||
<CountryName Code="DE"/>
|
||||
</Address>
|
||||
</Customer>
|
||||
</Profile>
|
||||
</ProfileInfo>
|
||||
</Profiles>
|
||||
</ResGuest>
|
||||
</ResGuests>
|
||||
<ResGlobalInfo>
|
||||
<HotelReservationIDs>
|
||||
<HotelReservationID ResID_Type="13" ResID_Value="res" ResID_Source="www.example.com" ResID_SourceContext="cnt"/>
|
||||
</HotelReservationIDs>
|
||||
<BasicPropertyInfo HotelCode="123" HotelName="Frangart Inn"/>
|
||||
</ResGlobalInfo>
|
||||
</HotelReservation>
|
||||
</ReservationsList>
|
||||
</OTA_ResRetrieveRS>
|
||||
@@ -6446,19 +6446,19 @@ class PersonNameType(GeneratedsSuper):
|
||||
pass
|
||||
def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
|
||||
if nodeName_ == 'GivenName':
|
||||
obj_ = GivenNameType.factory(parent_object_=self)
|
||||
obj_ = CustomerNameType.factory(parent_object_=self)
|
||||
obj_.build(child_, gds_collector_=gds_collector_)
|
||||
self.GivenName = obj_
|
||||
obj_.original_tagname_ = 'GivenName'
|
||||
elif nodeName_ == 'Surname':
|
||||
obj_ = SurnameType.factory(parent_object_=self)
|
||||
obj_ = CustomerNameType.factory(parent_object_=self)
|
||||
obj_.build(child_, gds_collector_=gds_collector_)
|
||||
self.Surname = obj_
|
||||
obj_.original_tagname_ = 'Surname'
|
||||
# end class PersonNameType
|
||||
|
||||
|
||||
class GivenNameType(GeneratedsSuper):
|
||||
class CustomerNameType(GeneratedsSuper):
|
||||
__hash__ = GeneratedsSuper.__hash__
|
||||
subclass = None
|
||||
superclass = None
|
||||
@@ -6472,13 +6472,13 @@ class GivenNameType(GeneratedsSuper):
|
||||
def factory(*args_, **kwargs_):
|
||||
if CurrentSubclassModule_ is not None:
|
||||
subclass = getSubclassFromModule_(
|
||||
CurrentSubclassModule_, GivenNameType)
|
||||
CurrentSubclassModule_, CustomerNameType)
|
||||
if subclass is not None:
|
||||
return subclass(*args_, **kwargs_)
|
||||
if GivenNameType.subclass:
|
||||
return GivenNameType.subclass(*args_, **kwargs_)
|
||||
if CustomerNameType.subclass:
|
||||
return CustomerNameType.subclass(*args_, **kwargs_)
|
||||
else:
|
||||
return GivenNameType(*args_, **kwargs_)
|
||||
return CustomerNameType(*args_, **kwargs_)
|
||||
factory = staticmethod(factory)
|
||||
def get_ns_prefix_(self):
|
||||
return self.ns_prefix_
|
||||
@@ -6510,29 +6510,29 @@ class GivenNameType(GeneratedsSuper):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='GivenNameType', pretty_print=True):
|
||||
imported_ns_def_ = GenerateDSNamespaceDefs_.get('GivenNameType')
|
||||
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='CustomerNameType', pretty_print=True):
|
||||
imported_ns_def_ = GenerateDSNamespaceDefs_.get('CustomerNameType')
|
||||
if imported_ns_def_ is not None:
|
||||
namespacedef_ = imported_ns_def_
|
||||
if pretty_print:
|
||||
eol_ = '\n'
|
||||
else:
|
||||
eol_ = ''
|
||||
if self.original_tagname_ is not None and name_ == 'GivenNameType':
|
||||
if self.original_tagname_ is not None and name_ == 'CustomerNameType':
|
||||
name_ = self.original_tagname_
|
||||
if UseCapturedNS_ and self.ns_prefix_:
|
||||
namespaceprefix_ = self.ns_prefix_ + ':'
|
||||
showIndent(outfile, level, pretty_print)
|
||||
outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
|
||||
already_processed = set()
|
||||
self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='GivenNameType')
|
||||
self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='CustomerNameType')
|
||||
outfile.write('>')
|
||||
self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
|
||||
outfile.write(self.convert_unicode(self.valueOf_))
|
||||
outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
|
||||
def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='GivenNameType'):
|
||||
def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='CustomerNameType'):
|
||||
pass
|
||||
def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='GivenNameType', fromsubclass_=False, pretty_print=True):
|
||||
def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='CustomerNameType', fromsubclass_=False, pretty_print=True):
|
||||
pass
|
||||
def build(self, node, gds_collector_=None):
|
||||
self.gds_collector_ = gds_collector_
|
||||
@@ -6550,102 +6550,10 @@ class GivenNameType(GeneratedsSuper):
|
||||
pass
|
||||
def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
|
||||
pass
|
||||
# end class GivenNameType
|
||||
# end class CustomerNameType
|
||||
|
||||
|
||||
|
||||
class SurnameType(GeneratedsSuper):
|
||||
__hash__ = GeneratedsSuper.__hash__
|
||||
subclass = None
|
||||
superclass = None
|
||||
def __init__(self, valueOf_=None, gds_collector_=None, **kwargs_):
|
||||
self.gds_collector_ = gds_collector_
|
||||
self.gds_elementtree_node_ = None
|
||||
self.original_tagname_ = None
|
||||
self.parent_object_ = kwargs_.get('parent_object_')
|
||||
self.ns_prefix_ = None
|
||||
self.valueOf_ = valueOf_
|
||||
def factory(*args_, **kwargs_):
|
||||
if CurrentSubclassModule_ is not None:
|
||||
subclass = getSubclassFromModule_(
|
||||
CurrentSubclassModule_, SurnameType)
|
||||
if subclass is not None:
|
||||
return subclass(*args_, **kwargs_)
|
||||
if SurnameType.subclass:
|
||||
return SurnameType.subclass(*args_, **kwargs_)
|
||||
else:
|
||||
return SurnameType(*args_, **kwargs_)
|
||||
factory = staticmethod(factory)
|
||||
def get_ns_prefix_(self):
|
||||
return self.ns_prefix_
|
||||
def set_ns_prefix_(self, ns_prefix):
|
||||
self.ns_prefix_ = ns_prefix
|
||||
def get_valueOf_(self): return self.valueOf_
|
||||
def set_valueOf_(self, valueOf_): self.valueOf_ = valueOf_
|
||||
def validate_StringLength1to64(self, value):
|
||||
result = True
|
||||
# Validate type StringLength1to64, a restriction on xs:string.
|
||||
if value is not None and Validate_simpletypes_ and self.gds_collector_ is not None:
|
||||
if not isinstance(value, str):
|
||||
lineno = self.gds_get_node_lineno_()
|
||||
self.gds_collector_.add_message('Value "%(value)s"%(lineno)s is not of the correct base simple type (str)' % {"value": value, "lineno": lineno, })
|
||||
return False
|
||||
if len(value) > 64:
|
||||
lineno = self.gds_get_node_lineno_()
|
||||
self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd maxLength restriction on StringLength1to64' % {"value" : encode_str_2_3(value), "lineno": lineno} )
|
||||
result = False
|
||||
if len(value) < 1:
|
||||
lineno = self.gds_get_node_lineno_()
|
||||
self.gds_collector_.add_message('Value "%(value)s"%(lineno)s does not match xsd minLength restriction on StringLength1to64' % {"value" : encode_str_2_3(value), "lineno": lineno} )
|
||||
result = False
|
||||
return result
|
||||
def has__content(self):
|
||||
if (
|
||||
(1 if type(self.valueOf_) in [int,float] else self.valueOf_)
|
||||
):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='SurnameType', pretty_print=True):
|
||||
imported_ns_def_ = GenerateDSNamespaceDefs_.get('SurnameType')
|
||||
if imported_ns_def_ is not None:
|
||||
namespacedef_ = imported_ns_def_
|
||||
if pretty_print:
|
||||
eol_ = '\n'
|
||||
else:
|
||||
eol_ = ''
|
||||
if self.original_tagname_ is not None and name_ == 'SurnameType':
|
||||
name_ = self.original_tagname_
|
||||
if UseCapturedNS_ and self.ns_prefix_:
|
||||
namespaceprefix_ = self.ns_prefix_ + ':'
|
||||
showIndent(outfile, level, pretty_print)
|
||||
outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
|
||||
already_processed = set()
|
||||
self._exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='SurnameType')
|
||||
outfile.write('>')
|
||||
self._exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_, pretty_print=pretty_print)
|
||||
outfile.write(self.convert_unicode(self.valueOf_))
|
||||
outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
|
||||
def _exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='SurnameType'):
|
||||
pass
|
||||
def _exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='SurnameType', fromsubclass_=False, pretty_print=True):
|
||||
pass
|
||||
def build(self, node, gds_collector_=None):
|
||||
self.gds_collector_ = gds_collector_
|
||||
if SaveElementTreeNode:
|
||||
self.gds_elementtree_node_ = node
|
||||
already_processed = set()
|
||||
self.ns_prefix_ = node.prefix
|
||||
self._buildAttributes(node, node.attrib, already_processed)
|
||||
self.valueOf_ = get_all_text_(node)
|
||||
for child in node:
|
||||
nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
|
||||
self._buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
|
||||
return self
|
||||
def _buildAttributes(self, node, attrs, already_processed):
|
||||
pass
|
||||
def _buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
|
||||
pass
|
||||
# end class SurnameType
|
||||
|
||||
|
||||
class URLType(GeneratedsSuper):
|
||||
@@ -75921,7 +75829,7 @@ __all__ = [
|
||||
"FeaturesType302",
|
||||
"FeaturesType670",
|
||||
"GeneralEventInfoType",
|
||||
"GivenNameType",
|
||||
"CustomerNameType",
|
||||
"GuaranteeAcceptedType",
|
||||
"GuaranteeAcceptedType544",
|
||||
"GuaranteeAcceptedType93",
|
||||
|
||||
14
src/main.py
14
src/main.py
@@ -26,8 +26,8 @@ from alpine_bits_classes import (
|
||||
HotelReservationIDsType,
|
||||
HotelReservationIDType,
|
||||
BasicPropertyInfoType,
|
||||
GivenNameType,
|
||||
SurnameType,
|
||||
CustomerNameType
|
||||
|
||||
)
|
||||
from io import BytesIO
|
||||
import sys
|
||||
@@ -58,10 +58,12 @@ def main():
|
||||
room_stays = RoomStaysType(RoomStay=[room_stay])
|
||||
|
||||
# ResGuest
|
||||
person_name = PersonNameType(GivenName=GivenNameType("Otto"), Surname=SurnameType("Mustermann"))
|
||||
person_name = PersonNameType(GivenName=CustomerNameType("Otto"), Surname=CustomerNameType("Mustermann"))
|
||||
country_name = CountryNameType(Code="DE")
|
||||
address = AddressType(CountryName=country_name)
|
||||
customer = CustomerType(Language="de", Gender="Unknown", PersonName=person_name, Address=address)
|
||||
customer = CustomerType(Language="de", Gender="Test", PersonName=person_name, Address=address)
|
||||
|
||||
|
||||
profile = ProfileType(Customer=customer)
|
||||
profile_info = ProfileInfoType(Profile=profile)
|
||||
profiles = ProfilesType(ProfileInfo=profile_info)
|
||||
@@ -106,6 +108,10 @@ def main():
|
||||
ReservationsList=reservations_list
|
||||
)
|
||||
|
||||
print(ota_res_retrieve_rs.get_Warnings())
|
||||
|
||||
|
||||
|
||||
# Serialize to XML string
|
||||
# create outfile
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Success><Success/>
|
||||
</Success>
|
||||
<ReservationsList>
|
||||
<HotelReservation CreateDateTime="2025-09-24T07:18:57.913865Z" ResStatus="Requested" RoomStayReservation="true">
|
||||
<HotelReservation CreateDateTime="2025-09-24T07:42:31.092997Z" ResStatus="Requested" RoomStayReservation="true">
|
||||
<UniqueID Type="14" ID="6b34fe24ac2ff811"/>
|
||||
<RoomStays>
|
||||
<RoomStay>
|
||||
@@ -22,7 +22,7 @@
|
||||
<Profiles>
|
||||
<ProfileInfo>
|
||||
<Profile>
|
||||
<Customer Gender="Unknown" Language="de">
|
||||
<Customer Gender="Test" Language="de">
|
||||
<PersonName>
|
||||
<GivenName>Otto</GivenName>
|
||||
<Surname>Mustermann</Surname>
|
||||
|
||||
Reference in New Issue
Block a user