Hi,
I have to create a SOAP client for a SOAP service, and I am PHP5's SOAP
Extension.
The service is part of a hotel chain management suite, its WSDL follows
at the end of this message.
I feel that the message structure is overly complex, but that's just my
opinion.
As listed as part of the service's documentation, a sample "simple"
availability request should look like this:
---
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<OGHeader transactionID="000032" primaryLangID="E"
timeStamp="2004-01-
09T09:55:16.3618750-05:00"
xmlns="http://webservices.micros.com/og/4.3/Core/">
<Origin entityID="WEST" systemType="WEB"/>
<Destination entityID="TI" systemType="ORS"/>
</OGHeader>
</soap:Header>
<soap:Body>
<AvailabilityRequest
xmlns:a="http://webservices.micros.com/og/4.3/Availability/"
xmlns:hc="http://webservices.micros.com/og/4.3/HotelCommon/"
summaryOnly="true"
xmlns="http://webservices.micros.com/ows/5.1/Availability.wsdl">
<a:AvailRequestSegment availReqType="Room" numberOfRooms="1"
roomOccupancy="2" totalNumberOfGuests="2"
numberOfChildren="0">
<a:StayDateRange>
<hc:StartDate>2006-11-15T00:00:00.0000000-05:00</hc:StartDate>
<hc:EndDate>2006-11-17T00:00:00.0000000-05:00</hc:EndDate>
</a:StayDateRange>
<a:HotelSearchCriteria>
<a:Criterion>
<a:HotelRef chainCode="WC" hotelCode="SEFIVE"/>
</a:Criterion>
</a:HotelSearchCriteria>
</a:AvailRequestSegment>
</AvailabilityRequest>
</soap:Body>
</soap:Envelope>
---
As far as I can figure out by calling __getFunctions() and __getTypes(),
I only need to pass a boolean type to the Availability method.
Obviously, by doing so I get a SOAP Fault stating "Missing or Corrupt
AvailRequestSegment".
If you are still reading this message, here are my questions:
How do I pass both the summaryOnly boolean type *and* a
AvailRequestSegment type as part of the call? Please just point me in
the right direction.
Also, how can I examine the source of the raw XML call that is posted to
the service, so that I can check the XML source structure? I am using
Debian Sarge.
PS: Sorry about the length of this message, but I thought that including
the WSDL would shed some light on my questions.
Thank you very much for any kind of help offered,
Veronica
Here is the WSDL:
---
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:s1="http://webservices.micros.com/og/4.3/Availability/" xmlns:s6="http://webservices.micros.com/og/4.3/Core/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://webservices.micros.com/ows/5.1/Availability.wsdl" xmlns:s3="http://webservices.micros.com/og/4.3/Common/" xmlns:s2="http://webservices.micros.com/og/4.3/HotelCommon/" xmlns:s5="http://webservices.micros.com/og/4.3/Membership/" xmlns:s4="http://webservices.micros.com/og/4.3/Name/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/ows/5.1/Availability.wsdl">
<s:import namespace="http://webservices.micros.com/og/4.3/Availability/" />
<s:import namespace="http://webservices.micros.com/og/4.3/HotelCommon/" />
<s:import namespace="http://webservices.micros.com/og/4.3/Common/" />
<s:element name="AvailabilityRequest" type="s0:AvailabilityRequest" />
<s:complexType name="AvailabilityRequest">
<s:annotation>
<s:appinfo>
<keepNamespaceDeclarations xmlns="">xsn</keepNamespaceDeclarations>
</s:appinfo>
</s:annotation>
<s:complexContent mixed="false">
<s:extension base="s1:AvailRequestSegmentList">
<s:attribute name="summaryOnly" type="s:boolean" use="required" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:element name="AvailabilityResponse" type="s0:AvailabilityResponse" />
<s:complexType name="AvailabilityResponse">
<s:annotation>
<s:appinfo>
<keepNamespaceDeclarations xmlns="">xsn</keepNamespaceDeclarations>
</s:appinfo>
</s:annotation>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Result" type="s2:GDSResultStatus" />
<s:element minOccurs="0" maxOccurs="1" name="AvailResponseSegments" type="s1:ArrayOfAvailResponseSegment" />
</s:sequence>
<s:attribute name="summaryOnly" type="s:boolean" use="required" />
</s:complexType>
<s:element name="RegionalAvailabilityRequest" type="s0:RegionalAvailabilityRequest" />
<s:complexType name="RegionalAvailabilityRequest">
<s:sequence>
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="0" maxOccurs="1" name="HotelReferences" type="s2:ArrayOfHotelReference1" />
<s:element minOccurs="0" maxOccurs="1" name="GeographicSearch" type="s1:RegionalSearch" />
<s:element minOccurs="0" maxOccurs="1" name="RegionalSearchCode" type="s1:RegionalSearchCode" />
</s:choice>
<s:element minOccurs="0" maxOccurs="1" name="StayDateRange" type="s2:TimeSpan" />
<s:element minOccurs="0" maxOccurs="1" name="NumberOfRooms" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="NumberOfGuests" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="MinMaxRate" type="s2:MinMaxRate" />
</s:sequence>
</s:complexType>
<s:element name="HotelReference" nillable="true" type="s2:HotelReference" />
<s:element name="RegionalAvailabilityResponse" type="s0:RegionalAvailabilityResponse" />
<s:complexType name="RegionalAvailabilityResponse">
<s:annotation>
<s:appinfo>
<keepNamespaceDeclarations xmlns="">xsn</keepNamespaceDeclarations>
</s:appinfo>
</s:annotation>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Result" type="s2:GDSResultStatus" />
<s:element minOccurs="0" maxOccurs="1" name="RegionalAvailableProperties" type="s1:ArrayOfRegionalAvailableProperty" />
</s:sequence>
</s:complexType>
<s:element name="FetchAvailablePackagesRequest" type="s0:FetchAvailablePackagesRequest" />
<s:complexType name="FetchAvailablePackagesRequest">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HotelReference" type="s2:HotelReference" />
<s:element minOccurs="0" maxOccurs="1" name="ConfirmationNumber" type="s3:UniqueID" />
<s:element minOccurs="0" maxOccurs="1" name="LegNumber" type="s3:UniqueID" />
<s:element minOccurs="0" maxOccurs="1" name="StayDateRange" type="s2:TimeSpan" />
<s:element minOccurs="0" maxOccurs="1" name="NumberOfRooms" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="NumberOfAdults" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="NumberOfChildren" type="s:int" />
</s:sequence>
</s:complexType>
<s:element name="FetchAvailablePackagesResponse" type="s0:FetchAvailablePackagesResponse" />
<s:complexType name="FetchAvailablePackagesResponse">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Result" type="s2:GDSResultStatus" />
<s:element minOccurs="0" maxOccurs="1" name="PackageElements" type="s2:ArrayOfPackageElement" />
</s:sequence>
</s:complexType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/og/4.3/Availability/">
<s:import namespace="http://webservices.micros.com/og/4.3/HotelCommon/" />
<s:import namespace="http://webservices.micros.com/ows/5.1/Availability.wsdl" />
<s:complexType name="AvailRequestSegmentList">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AvailRequestSegment" type="s1:AvailRequestSegment" />
</s:sequence>
</s:complexType>
<s:complexType name="AvailRequestSegment">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="StayDateRange" type="s2:TimeSpan" />
<s:element minOccurs="0" maxOccurs="1" name="RateRange" type="s2:MinMaxRate" />
<s:element minOccurs="0" maxOccurs="1" name="RatePlanCandidates" type="s1:ArrayOfRatePlanCandidate" />
<s:element minOccurs="0" maxOccurs="1" name="RoomStayCandidates" type="s1:ArrayOfRoomStayCandidate" />
<s:element minOccurs="0" maxOccurs="1" name="HotelSearchCriteria" type="s1:ArrayOfHotelSearchCriterion" />
</s:sequence>
<s:attribute name="availReqType" type="s2:AvailRequestType" use="required" />
<s:attribute name="moreDataEchoToken" type="s:string" />
<s:attribute name="numberOfRooms" type="s:int" />
<s:attribute name="roomOccupancy" type="s:int" />
<s:attribute name="totalNumberOfGuests" type="s:int" />
<s:attribute name="numberOfChildren" type="s:int" />
</s:complexType>
<s:complexType name="ArrayOfRatePlanCandidate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RatePlanCandidate" type="s1:RatePlanCandidate" />
</s:sequence>
</s:complexType>
<s:complexType name="RatePlanCandidate">
<s:attribute name="ratePlanCode" type="s:string" />
<s:attribute name="promotionCode" type="s:string" />
<s:attribute name="qualifyingIdType" type="s:string" />
<s:attribute name="qualifyingIdValue" type="s:string" />
</s:complexType>
<s:complexType name="ArrayOfRoomStayCandidate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RoomStayCandidate" type="s1:RoomStayCandidate" />
</s:sequence>
</s:complexType>
<s:complexType name="RoomStayCandidate">
<s:attribute name="roomTypeCode" type="s:string" />
<s:attribute name="invBlockCode" type="s:string" />
</s:complexType>
<s:complexType name="ArrayOfHotelSearchCriterion">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Criterion" type="s1:HotelSearchCriterion" />
</s:sequence>
</s:complexType>
<s:complexType name="HotelSearchCriterion">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HotelRef" type="s2:HotelReference" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfAvailResponseSegment">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AvailResponseSegment" type="s1:AvailResponseSegment" />
</s:sequence>
</s:complexType>
<s:complexType name="AvailResponseSegment">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RoomStayList" type="s2:ArrayOfRoomStay" />
</s:sequence>
<s:attribute name="moreDataEchoToken" type="s:string" />
</s:complexType>
<s:complexType name="RegionalSearch">
<s:sequence>
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="0" maxOccurs="1" name="GeoSearch" type="s2:GeoPosition" />
<s:element minOccurs="0" maxOccurs="1" name="CitySearch" type="s1:CityCode" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="CityCode">
<s:attribute name="countryCode" type="s:string" />
<s:attribute name="stateCode" type="s:string" />
<s:attribute name="cityCode" type="s:string" />
</s:complexType>
<s:complexType name="RegionalSearchCode">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="regionalSearchCodeType" type="s2:RegionalSearchCodeType" use="required" />
<s:attribute name="otherRegionalSearchCodeType" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="ArrayOfRegionalAvailableProperty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RegionalAvailableProperty" type="s1:RegionalAvailableProperty" />
</s:sequence>
</s:complexType>
<s:complexType name="RegionalAvailableProperty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HotelReference" type="s2:HotelReference" />
<s:element minOccurs="0" maxOccurs="1" name="PropertyStatus" type="s1:PropertyStatusCode" />
<s:element minOccurs="0" maxOccurs="1" name="MinMaxRate" type="s2:MinMaxRate" />
<s:element minOccurs="0" maxOccurs="1" name="NumberToSell" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="HotelContact" type="s2:HotelContact" />
</s:sequence>
<s:attribute name="isNegotiatedRateAvailable" type="s:boolean" />
</s:complexType>
<s:complexType name="PropertyStatusCode">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PropertyLevelError" type="s:string" />
</s:sequence>
<s:attribute name="propertyStatusCode" type="s2:PropertyStatusCodeType" use="required" />
<s:attribute name="otherPropertyStatusCode" type="s:string" />
</s:complexType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/og/4.3/HotelCommon/">
<s:import namespace="http://webservices.micros.com/og/4.3/Common/" />
<s:import namespace="http://webservices.micros.com/og/4.3/Membership/" />
<s:import namespace="http://webservices.micros.com/ows/5.1/Availability.wsdl" />
<s:complexType name="TimeSpan">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="StartDate" type="s:dateTime" />
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="1" maxOccurs="1" name="EndDate" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="Duration" type="s:duration" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="MinMaxRate">
<s:attribute name="minimumRate" type="s:double" />
<s:attribute name="maximumRate" type="s:double" />
<s:attribute name="currencyCode" type="s:string" />
</s:complexType>
<s:complexType name="HotelReference">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="chainCode" type="s:string" />
<s:attribute name="hotelCode" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:simpleType name="AvailRequestType">
<s:restriction base="s:string">
<s:enumeration value="Room" />
<s:enumeration value="NonRoom" />
<s:enumeration value="Both" />
<s:enumeration value="Other" />
<s:enumeration value="BestAvailable" />
</s:restriction>
</s:simpleType>
<s:complexType name="GDSResultStatus">
<s:complexContent mixed="false">
<s:extension base="s3:ResultStatus">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GDSError" type="s2:GDSError" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="GDSError">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="errorCode" type="s:string" />
<s:attribute name="elementId" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="ArrayOfRoomStay">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RoomStay" type="s2:RoomStay" />
</s:sequence>
</s:complexType>
<s:complexType name="RoomStay">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RatePlans" type="s2:ArrayOfRatePlan" />
<s:element minOccurs="0" maxOccurs="1" name="RoomTypes" type="s2:ArrayOfRoomType" />
<s:element minOccurs="0" maxOccurs="1" name="RoomRates" type="s2:ArrayOfRoomRate" />
<s:element minOccurs="0" maxOccurs="1" name="GuestCounts" type="s2:GuestCountList" />
<s:element minOccurs="0" maxOccurs="1" name="TimeSpan" type="s2:TimeSpan" />
<s:element minOccurs="0" maxOccurs="1" name="Guarantee" type="s2:Guarantee" />
<s:element minOccurs="0" maxOccurs="1" name="Payment" type="s2:Payment" />
<s:element minOccurs="0" maxOccurs="1" name="CreditCardDeposit" type="s2:CreditCardPayment" />
<s:element minOccurs="0" maxOccurs="1" name="CancelPenalties" type="s2:ArrayOfCancelPenalty" />
<s:element minOccurs="0" maxOccurs="1" name="CancelTerm" type="s2:CancelTerm" />
<s:element minOccurs="0" maxOccurs="1" name="HotelReference" type="s2:HotelReference" />
<s:element minOccurs="0" maxOccurs="1" name="HotelContact" type="s2:HotelContact" />
<s:element minOccurs="0" maxOccurs="1" name="Total" type="s3:Amount" />
<s:element minOccurs="0" maxOccurs="1" name="ResGuestRPHs" type="s2:ArrayOfResGuestRPH" />
<s:element minOccurs="0" maxOccurs="1" name="Comments" type="s2:ArrayOfReservationComment" />
<s:element minOccurs="0" maxOccurs="1" name="SpecialRequests" type="s2:ArrayOfSpecialRequest" />
<s:element minOccurs="0" maxOccurs="1" name="Packages" type="s2:ArrayOfPackageElement" />
<s:element minOccurs="0" maxOccurs="1" name="HotelExtendedInformation" type="s2:ExtendedHotelInfo" />
<s:element minOccurs="0" maxOccurs="1" name="DailyChargePoints" type="s2:ArrayOfTimeSpanPoints" />
<s:element minOccurs="0" maxOccurs="1" name="MemberAwardInfo" type="s5:MemberAwardInfo" />
<s:element minOccurs="0" maxOccurs="1" name="ExpectedCharges" type="s2:DailyChargeList" />
</s:sequence>
<s:attribute name="isAlternate" type="s:boolean" />
</s:complexType>
<s:complexType name="ArrayOfRatePlan">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RatePlan" type="s2:RatePlan" />
</s:sequence>
</s:complexType>
<s:complexType name="RatePlan">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RatePlanDescription" type="s2:Paragraph" />
<s:element minOccurs="0" maxOccurs="1" name="Commission" type="s2:Commission" />
<s:element minOccurs="0" maxOccurs="1" name="AdditionalDetails" type="s2:ArrayOfAdditionalDetail" />
<s:element minOccurs="0" maxOccurs="1" name="CancellationDateTime" type="s2:CancelDateTime" />
<s:element minOccurs="0" maxOccurs="1" name="DepositRequired" type="s2:DepositRequirement" />
</s:sequence>
<s:attribute name="ratePlanCategory" type="s:string" />
<s:attribute name="ratePlanCode" type="s:string" />
<s:attribute name="promotionCode" type="s:string" />
<s:attribute name="qualifyingIdType" type="s:string" />
<s:attribute name="qualifyingIdValue" type="s:string" />
<s:attribute name="effectiveDate" type="s:date" />
<s:attribute name="expirationDate" type="s:date" />
<s:attribute name="hold" type="s:boolean" />
<s:attribute name="mandatoryDeposit" type="s:boolean" />
</s:complexType>
<s:complexType name="Paragraph">
<s:sequence>
<s:choice minOccurs="0" maxOccurs="unbounded">
<s:element minOccurs="0" maxOccurs="1" name="URL" type="s:anyURI" />
<s:element minOccurs="0" maxOccurs="1" name="Text" type="s3:Text" />
<s:element minOccurs="0" maxOccurs="1" name="Image" type="s:string" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="SpecialRequest">
<s:complexContent mixed="false">
<s:extension base="s2:Paragraph">
<s:attribute name="requestCode" type="s:string" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="ReservationComment">
<s:complexContent mixed="false">
<s:extension base="s2:Paragraph">
<s:attribute name="commentOriginatorCode" type="s:string" />
<s:attribute name="guestViewable" type="s:boolean" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="Commission">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CommissionPayableAmount" type="s3:Amount" />
<s:element minOccurs="0" maxOccurs="1" name="Comment" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="percent" type="s:decimal" />
<s:attribute name="currencyCode" type="s:string" />
</s:complexType>
<s:complexType name="ArrayOfAdditionalDetail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AdditionalDetail" type="s2:AdditionalDetail" />
</s:sequence>
</s:complexType>
<s:complexType name="AdditionalDetail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="AdditionalDetailDescription" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="detailType" type="s2:AdditionalDetailType" use="required" />
<s:attribute name="otherDetailType" type="s:string" />
</s:complexType>
<s:simpleType name="AdditionalDetailType">
<s:restriction base="s:string">
<s:enumeration value="RateRules" />
<s:enumeration value="MarketingInformation" />
<s:enumeration value="DepositPolicy" />
<s:enumeration value="Promotion" />
<s:enumeration value="CommissionPolicy" />
<s:enumeration value="GuaranteePolicy" />
<s:enumeration value="Miscellaneous" />
<s:enumeration value="PackageOptions" />
<s:enumeration value="PenaltyPolicy" />
<s:enumeration value="TASpecialRequest" />
<s:enumeration value="TaxInformation" />
<s:enumeration value="CancelPolicy" />
<s:enumeration value="ProprietaryGDSCode" />
<s:enumeration value="Other" />
</s:restriction>
</s:simpleType>
<s:complexType name="CancelDateTime">
<s:simpleContent>
<s:extension base="s:dateTime">
<s:attribute name="period" type="s:duration" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="DepositRequirement">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="DepositAmount" type="s3:Amount" />
<s:element minOccurs="0" maxOccurs="1" name="DueDate" type="s:date" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfRoomType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RoomType" type="s2:RoomType" />
</s:sequence>
</s:complexType>
<s:complexType name="RoomType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RoomTypeDescription" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="roomTypeCode" type="s:string" />
<s:attribute name="upgradeFromCode" type="s:string" />
<s:attribute name="invBlockCode" type="s:string" />
<s:attribute name="numberOfUnits" type="s:int" />
<s:attribute name="isRoom" type="s:boolean" />
<s:attribute name="effectiveDate" type="s:date" />
<s:attribute name="expirationDate" type="s:date" />
</s:complexType>
<s:complexType name="ArrayOfRoomRate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RoomRate" type="s2:RoomRate" />
</s:sequence>
</s:complexType>
<s:complexType name="RoomRate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Rates" type="s2:ArrayOfRate" />
<s:element minOccurs="0" maxOccurs="1" name="InvBlockDescription" type="s2:Paragraph" />
<s:element minOccurs="0" maxOccurs="1" name="Total" type="s3:Amount" />
</s:sequence>
<s:attribute name="roomTypeCode" type="s:string" />
<s:attribute name="ratePlanCode" type="s:string" />
<s:attribute name="effectiveDate" type="s:date" />
<s:attribute name="expirationDate" type="s:date" />
</s:complexType>
<s:complexType name="ArrayOfRate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Rate" type="s2:Rate" />
</s:sequence>
</s:complexType>
<s:complexType name="Rate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Base" type="s3:Amount" />
<s:element minOccurs="0" maxOccurs="1" name="AdditionalGuestAmounts" type="s2:ArrayOfAdditionalGuestAmount" />
<s:element minOccurs="0" maxOccurs="1" name="AdditionalBedAmounts" type="s2:ArrayOfAdditionalBedAmount" />
</s:sequence>
<s:attribute name="effectiveDate" type="s:date" />
<s:attribute name="expirationDate" type="s:date" />
<s:attribute name="rateOccurrence" type="s2:RateOccurrenceType" />
<s:attribute name="otherRateOccurrence" type="s:string" />
<s:attribute name="rateChangeIndicator" type="s:boolean" />
</s:complexType>
<s:complexType name="ArrayOfAdditionalGuestAmount">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AdditionalGuestAmount" type="s2:AdditionalGuestAmount" />
</s:sequence>
</s:complexType>
<s:complexType name="AdditionalGuestAmount">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Amount" type="s3:Amount" />
</s:sequence>
<s:attribute name="additionalGuestType" type="s2:AgeQualifyingCode" use="required" />
<s:attribute name="otherAdditionalGuestType" type="s:string" />
<s:attribute name="quantity" type="s:int" />
</s:complexType>
<s:simpleType name="AgeQualifyingCode">
<s:restriction base="s:string">
<s:enumeration value="ADULT" />
<s:enumeration value="CHILD" />
<s:enumeration value="OTHER" />
<s:enumeration value="CHILDBUCKET1" />
<s:enumeration value="CHILDBUCKET2" />
<s:enumeration value="CHILDBUCKET3" />
</s:restriction>
</s:simpleType>
<s:complexType name="ArrayOfAdditionalBedAmount">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AdditionalBedAmount" type="s2:AdditionalBedAmount" />
</s:sequence>
</s:complexType>
<s:complexType name="AdditionalBedAmount">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Amount" type="s3:Amount" />
</s:sequence>
<s:attribute name="extraBedType" type="s2:AdditionalBedType" use="required" />
<s:attribute name="otherExtraBedType" type="s:string" />
<s:attribute name="quantity" type="s:int" />
</s:complexType>
<s:simpleType name="AdditionalBedType">
<s:restriction base="s:string">
<s:enumeration value="ADULT" />
<s:enumeration value="CHILD" />
<s:enumeration value="CRIB" />
<s:enumeration value="OTHER" />
</s:restriction>
</s:simpleType>
<s:simpleType name="RateOccurrenceType">
<s:restriction base="s:string">
<s:enumeration value="DAILY" />
<s:enumeration value="WEEKLY" />
<s:enumeration value="OTHER" />
</s:restriction>
</s:simpleType>
<s:complexType name="GuestCountList">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="GuestCount" type="s2:GuestCount" />
</s:sequence>
<s:attribute name="isPerRoom" type="s:boolean" />
</s:complexType>
<s:complexType name="GuestCount">
<s:attribute name="ageQualifyingCode" type="s2:AgeQualifyingCode" />
<s:attribute name="otherAgeQualifyingCode" type="s:string" />
<s:attribute name="age" type="s:int" />
<s:attribute name="count" type="s:int" />
</s:complexType>
<s:complexType name="Guarantee">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GuaranteesAccepted" type="s2:ArrayOfGuaranteeAccepted" />
<s:element minOccurs="0" maxOccurs="1" name="Deadline" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="GuaranteeDescription" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="guaranteeType" type="s:string" />
<s:attribute name="mandatoryDeposit" type="s:boolean" />
</s:complexType>
<s:complexType name="ArrayOfGuaranteeAccepted">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="GuaranteeAccepted" type="s2:GuaranteeAccepted" />
</s:sequence>
</s:complexType>
<s:complexType name="GuaranteeAccepted">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GuaranteeCreditCard" type="s3:CreditCard" />
<s:element minOccurs="0" maxOccurs="1" name="GuaranteeTravelAgent" type="s3:UniqueID" />
<s:element minOccurs="0" maxOccurs="1" name="GuaranteeCompany" type="s3:UniqueID" />
</s:sequence>
<s:attribute name="agentPhone" type="s:string" />
</s:complexType>
<s:complexType name="CreditCardPayment">
<s:complexContent mixed="false">
<s:extension base="s3:CreditCard">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CIDNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Address" type="s3:Address" />
<s:element minOccurs="0" maxOccurs="1" name="IssueNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ApprovalCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="DepositAmount" type="s3:Amount" />
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="Payment">
<s:sequence>
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="0" maxOccurs="1" name="PaymentsAccepted" type="s2:ArrayOfPaymentType" />
<s:element minOccurs="0" maxOccurs="1" name="PaymentUsed" type="s2:PaymentUsed" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfPaymentType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="PaymentType" nillable="true" type="s2:PaymentType" />
</s:sequence>
</s:complexType>
<s:complexType name="PaymentType">
<s:sequence>
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="0" maxOccurs="1" name="OtherPayment" type="s2:OtherPaymentType" />
<s:element minOccurs="0" maxOccurs="1" name="PaymentVoucher" type="s2:Voucher" />
<s:element minOccurs="0" maxOccurs="1" name="PaymentCard" type="s3:CreditCard" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="OtherPaymentType">
<s:attribute name="type" type="s:string" />
<s:attribute name="value" type="s:string" />
<s:attribute name="source" type="s:string" />
</s:complexType>
<s:complexType name="Voucher">
<s:attribute name="voucherNumber" type="s:string" />
<s:attribute name="voucherIssuedBy" type="s:string" />
<s:attribute name="voucherValidDate" type="s:dateTime" />
</s:complexType>
<s:complexType name="PaymentUsed">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PaymentType" type="s2:PaymentType" />
<s:element minOccurs="0" maxOccurs="1" name="Deposit" type="s3:Amount" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfCancelPenalty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="CancelPenalty" type="s2:CancelPenalty" />
</s:sequence>
</s:complexType>
<s:complexType name="CancelPenalty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Deadline" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="PenaltyDescription" type="s2:Paragraph" />
</s:sequence>
</s:complexType>
<s:complexType name="CancelTerm">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CancelReason" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="cancelType" type="s2:CancelTermType" use="required" />
<s:attribute name="otherCancelType" type="s:string" />
<s:attribute name="cancelReasonCode" type="s:string" />
<s:attribute name="cancelNumber" type="s:string" />
<s:attribute name="cancelDate" type="s:date" />
<s:attribute name="cancelBy" type="s:string" />
</s:complexType>
<s:simpleType name="CancelTermType">
<s:restriction base="s:string">
<s:enumeration value="Cancel" />
<s:enumeration value="NoShow" />
<s:enumeration value="Other" />
</s:restriction>
</s:simpleType>
<s:complexType name="HotelContact">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Addresses" type="s3:ArrayOfAddress" />
<s:element minOccurs="0" maxOccurs="1" name="ContactEmails" type="s2:ArrayOfEmail" />
<s:element minOccurs="0" maxOccurs="1" name="ContactPhones" type="s3:ArrayOfPhone" />
<s:element minOccurs="0" maxOccurs="1" name="HotelInformation" type="s2:ArrayOfHotelInfo" />
<s:element minOccurs="0" maxOccurs="1" name="URIs" type="s2:ArrayOfAnyURI" />
<s:element minOccurs="0" maxOccurs="1" name="Vector" type="s2:Vector" />
</s:sequence>
</s:complexType>
<s:element name="Address" type="s3:Address" />
<s:complexType name="ArrayOfEmail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ContactEmail" type="s2:Email" />
</s:sequence>
</s:complexType>
<s:complexType name="Email">
<s:simpleContent>
<s:extension base="s:string" />
</s:simpleContent>
</s:complexType>
<s:element name="Phone" type="s3:Phone" />
<s:complexType name="ArrayOfHotelInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="HotelInfo" type="s2:HotelInfo" />
</s:sequence>
</s:complexType>
<s:complexType name="HotelInfo">
<s:complexContent mixed="false">
<s:extension base="s3:DescriptiveText">
<s:attribute name="hotelInfoType" type="s2:HotelInfoType" use="required" />
<s:attribute name="otherHotelInfoType" type="s:string" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:simpleType name="HotelInfoType">
<s:restriction base="s:string">
<s:enumeration value="DIRECTIONS" />
<s:enumeration value="CHECKININFO" />
<s:enumeration value="CHECKOUTINFO" />
<s:enumeration value="OTHER" />
</s:restriction>
</s:simpleType>
<s:complexType name="ArrayOfAnyURI">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="URI" type="s:anyURI" />
</s:sequence>
</s:complexType>
<s:complexType name="Vector">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Direction" type="s2:VectorDirection" />
<s:element minOccurs="0" maxOccurs="1" name="Distance" type="s2:VectorDistance" />
</s:sequence>
</s:complexType>
<s:complexType name="VectorDirection">
<s:attribute name="vectorDirection" type="s2:VectorDirectionType" use="required" />
<s:attribute name="otherVectorDirection" type="s:string" />
</s:complexType>
<s:simpleType name="VectorDirectionType">
<s:restriction base="s:string">
<s:enumeration value="North" />
<s:enumeration value="NorthEast" />
<s:enumeration value="East" />
<s:enumeration value="SouthEast" />
<s:enumeration value="South" />
<s:enumeration value="SouthWest" />
<s:enumeration value="West" />
<s:enumeration value="NorthWest" />
<s:enumeration value="Other" />
</s:restriction>
</s:simpleType>
<s:complexType name="VectorDistance">
<s:simpleContent>
<s:extension base="s:double">
<s:attribute name="distanceUnit" type="s2:DistanceUnitType" use="required" />
<s:attribute name="otherDistanceUnit" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:simpleType name="DistanceUnitType">
<s:restriction base="s:string">
<s:enumeration value="Km" />
<s:enumeration value="Mi" />
<s:enumeration value="Other" />
</s:restriction>
</s:simpleType>
<s:complexType name="ArrayOfResGuestRPH">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ResGuestRPH" type="s2:ResGuestRPH" />
</s:sequence>
</s:complexType>
<s:complexType name="ResGuestRPH">
<s:attribute name="RPH" type="s:int" use="required" />
</s:complexType>
<s:complexType name="ArrayOfReservationComment">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Comment" type="s2:ReservationComment" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfSpecialRequest">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="SpecialRequest" type="s2:SpecialRequest" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfPackageElement">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Package" type="s2:PackageElement" />
</s:sequence>
</s:complexType>
<s:complexType name="PackageElement">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Amount" type="s3:Amount" />
<s:element minOccurs="0" maxOccurs="unbounded" name="Description" type="s3:DescriptiveText" />
</s:sequence>
<s:attribute name="packageCode" type="s:string" />
<s:attribute name="calculationRule" type="s:string" />
<s:attribute name="postingRhythm" type="s:string" />
</s:complexType>
<s:complexType name="ExtendedHotelInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HotelInformation" type="s2:ArrayOfHotelInfo" />
<s:element minOccurs="0" maxOccurs="1" name="PaymentMethods" type="s2:ArrayOfPaymentType1" />
<s:element minOccurs="0" maxOccurs="1" name="AmenityInfo" type="s2:AmenityInfo" />
<s:element minOccurs="0" maxOccurs="1" name="Position" type="s2:GeoCode" />
<s:element minOccurs="0" maxOccurs="1" name="FacilityInfo" type="s2:FacilityInfoType" />
<s:element minOccurs="0" maxOccurs="1" name="AlternateProperties" type="s2:ArrayOfHotelReference" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfPaymentType1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="PaymentType" type="s2:PaymentType" />
</s:sequence>
</s:complexType>
<s:complexType name="AmenityInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Amenities" type="s2:ArrayOfAmenity" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfAmenity">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Amenity" type="s2:Amenity" />
</s:sequence>
</s:complexType>
<s:complexType name="Amenity">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="amenityDescription" type="s:string" />
</s:sequence>
<s:attribute name="amenityCode" type="s:string" />
<s:attribute name="amenityType" type="s2:AmenityAmenityType" />
<s:attribute name="otherType" type="s:string" />
<s:attribute name="availabilityFlag" type="s2:AmenityAvailabilityFlag" />
<s:attribute name="otherFlag" type="s:string" />
</s:complexType>
<s:simpleType name="AmenityAmenityType">
<s:restriction base="s:string">
<s:enumeration value="Property" />
<s:enumeration value="Room" />
<s:enumeration value="Both" />
<s:enumeration value="Nearby" />
<s:enumeration value="Exists" />
<s:enumeration value="Other" />
<s:enumeration value="Parking" />
<s:enumeration value="WheelChairAccess" />
<s:enumeration value="Gymnasium" />
<s:enumeration value="ConferenceRoom" />
<s:enumeration value="BusinessCentre" />
<s:enumeration value="Pets" />
<s:enumeration value="RoomService" />
<s:enumeration value="Restaurant" />
<s:enumeration value="SwimingPool" />
<s:enumeration value="Internet" />
</s:restriction>
</s:simpleType>
<s:simpleType name="AmenityAvailabilityFlag">
<s:restriction base="s:string">
<s:enumeration value="ConfirmableComplimentary" />
<s:enumeration value="ConfirmableCost" />
<s:enumeration value="OnRequestComplimentary" />
<s:enumeration value="OnRequestCost" />
<s:enumeration value="Exists" />
<s:enumeration value="Other" />
</s:restriction>
</s:simpleType>
<s:complexType name="GeoCode">
<s:attribute name="latitude" type="s:string" />
<s:attribute name="longitude" type="s:string" />
<s:attribute name="altitude" type="s:string" />
</s:complexType>
<s:complexType name="FacilityInfoType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GuestRooms" type="s2:FacilityInfoTypeGuestRooms" />
<s:element minOccurs="0" maxOccurs="1" name="Restaurants" type="s2:ArrayOfRestaurantsTypeRestaurant" />
<s:element minOccurs="0" maxOccurs="1" name="MeetingRooms" type="s2:MeetingRoomsType" />
</s:sequence>
<s:attribute name="dateOpened" type="s:date" />
<s:attribute name="dateRennovated" type="s:date" />
</s:complexType>
<s:complexType name="FacilityInfoTypeGuestRooms">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="GuestRoom" type="s2:FacilityInfoTypeGuestRoomsGuestRoom" />
</s:sequence>
<s:attribute name="totalRooms" type="s:string" />
</s:complexType>
<s:complexType name="FacilityInfoTypeGuestRoomsGuestRoom">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RoomDescription" type="s3:DescriptiveText" />
</s:sequence>
<s:attribute name="code" type="s:string" />
<s:attribute name="maxOccupancy" type="s:integer" />
</s:complexType>
<s:complexType name="ArrayOfRestaurantsTypeRestaurant">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Restaurant" type="s2:RestaurantsTypeRestaurant" />
</s:sequence>
</s:complexType>
<s:complexType name="RestaurantsTypeRestaurant">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RestaurantDescription" type="s2:Paragraph" />
<s:element minOccurs="0" maxOccurs="1" name="RelativePosition" type="s2:Vector" />
<s:element minOccurs="0" maxOccurs="1" name="Cuisines" type="s2:ArrayOfRestaurantsTypeRestaurantCuisine" />
<s:element minOccurs="0" maxOccurs="1" name="RestaurantContacts" type="s3:ArrayOfAddress" />
</s:sequence>
<s:attribute name="RestaurantName" type="s:string" />
<s:attribute name="MaxSeatingCapacity" type="s:nonNegativeInteger" />
<s:attribute name="MaxSingleParty" type="s:nonNegativeInteger" />
<s:attribute name="OfferBreakfast" type="s:boolean" />
<s:attribute name="OfferLunch" type="s:boolean" />
<s:attribute name="OfferDinner" type="s:boolean" />
<s:attribute name="OfferBrunch" type="s:boolean" />
</s:complexType>
<s:complexType name="ArrayOfRestaurantsTypeRestaurantCuisine">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Cuisine" type="s2:RestaurantsTypeRestaurantCuisine" />
</s:sequence>
</s:complexType>
<s:complexType name="RestaurantsTypeRestaurantCuisine">
<s:attribute name="Code" type="s:string" />
<s:attribute name="Description" type="s:string" />
</s:complexType>
<s:complexType name="MeetingRoomsType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="MeetingRoom" type="s2:MeetingRoomsTypeMeetingRoom" />
</s:sequence>
<s:attribute name="MeetingRoomCount" type="s:nonNegativeInteger" />
<s:attribute name="SmallestRoomSpace" type="s:nonNegativeInteger" />
<s:attribute name="LargestRoomSpace" type="s:nonNegativeInteger" />
<s:attribute name="TotalRoomSpace" type="s:nonNegativeInteger" />
<s:attribute name="LargestSeatingCapacity" type="s:nonNegativeInteger" />
<s:attribute name="SecondLargestSeatingCapacity" type="s:nonNegativeInteger" />
<s:attribute name="SmallestSeatingCapacity" type="s:nonNegativeInteger" />
</s:complexType>
<s:complexType name="MeetingRoomsTypeMeetingRoom">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Codes" type="s2:ArrayOfMeetingRoomsTypeMeetingRoomCode" />
<s:element minOccurs="0" maxOccurs="1" name="Description" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="Irregular" type="s:boolean" />
<s:attribute name="PropertySystemName" type="s:string" />
<s:attribute name="RoomName" type="s:string" />
<s:attribute name="Sort" type="s:nonNegativeInteger" />
<s:attribute name="MeetingRoomCapacity" type="s:nonNegativeInteger" />
</s:complexType>
<s:complexType name="ArrayOfMeetingRoomsTypeMeetingRoomCode">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Code" type="s2:MeetingRoomsTypeMeetingRoomCode" />
</s:sequence>
</s:complexType>
<s:complexType name="MeetingRoomsTypeMeetingRoomCode">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Charge" type="s:string" />
<s:element minOccurs="0" maxOccurs="unbounded" name="Description" type="s2:Paragraph" />
</s:sequence>
<s:attribute name="Code" type="s:string" />
</s:complexType>
<s:complexType name="ArrayOfHotelReference">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="HotelReference" type="s2:HotelReference" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfTimeSpanPoints">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Points" type="s2:TimeSpanPoints" />
</s:sequence>
</s:complexType>
<s:complexType name="TimeSpanPoints">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Dates" type="s2:TimeSpan" />
<s:element minOccurs="1" maxOccurs="1" name="Points" type="s:int" />
</s:sequence>
</s:complexType>
<s:complexType name="DailyChargeList">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ChargesForPostingDate" type="s2:ChargesForTheDay" />
</s:sequence>
<s:attribute name="TotalRoomRateAndPackages" type="s:double" />
<s:attribute name="TotalTaxesAndFees" type="s:double" />
<s:attribute name="TaxInclusive" type="s:boolean" />
</s:complexType>
<s:complexType name="ChargesForTheDay">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RoomRateAndPackages" type="s2:ChargeList" />
<s:element minOccurs="0" maxOccurs="1" name="TaxesAndFees" type="s2:ChargeList" />
</s:sequence>
<s:attribute name="PostingDate" type="s:date" />
<s:attribute name="TotalCharges" type="s:double" />
</s:complexType>
<s:complexType name="ChargeList">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Charges" type="s2:Charge" />
</s:sequence>
<s:attribute name="TotalCharges" type="s:double" use="required" />
</s:complexType>
<s:complexType name="Charge">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Description" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Amount" type="s3:Amount" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfHotelReference1">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" ref="s0:HotelReference" />
</s:sequence>
</s:complexType>
<s:complexType name="GeoPosition">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Radius" type="s2:VectorDistance" />
<s:element minOccurs="0" maxOccurs="1" name="Position" type="s2:GeoCode" />
</s:sequence>
</s:complexType>
<s:simpleType name="RegionalSearchCodeType">
<s:restriction base="s:string">
<s:enumeration value="CITY" />
<s:enumeration value="CHAIN" />
<s:enumeration value="CRO" />
<s:enumeration value="REGION" />
<s:enumeration value="OTHER" />
</s:restriction>
</s:simpleType>
<s:simpleType name="PropertyStatusCodeType">
<s:restriction base="s:string">
<s:enumeration value="OPEN" />
<s:enumeration value="CLOSED" />
<s:enumeration value="UNKNOWN" />
<s:enumeration value="OTHER" />
</s:restriction>
</s:simpleType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/og/4.3/Common/">
<s:import namespace="http://webservices.micros.com/og/4.3/HotelCommon/" />
<s:import namespace="http://webservices.micros.com/og/4.3/Name/" />
<s:complexType name="ResultStatus">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Text" type="s3:ArrayOfText" />
<s:element minOccurs="0" maxOccurs="1" name="IDs" type="s3:ArrayOfIDPair" />
</s:sequence>
<s:attribute name="resultStatusFlag" type="s3:ResultStatusFlag" />
</s:complexType>
<s:complexType name="ArrayOfText">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="TextElement" type="s3:Text" />
</s:sequence>
</s:complexType>
<s:complexType name="Text">
<s:simpleContent>
<s:extension base="s:normalizedString">
<s:attribute name="formatted" type="s:boolean" />
<s:attribute name="language" type="s:language" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="TextElement">
<s:simpleContent>
<s:extension base="s3:Text" />
</s:simpleContent>
</s:complexType>
<s:complexType name="ArrayOfIDPair">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="IDPair" type="s3:IDPair" />
</s:sequence>
</s:complexType>
<s:complexType name="IDPair">
<s:attribute name="idType" type="s:string" />
<s:attribute name="operaId" type="s:long" />
<s:attribute name="externalId" type="s:string" />
</s:complexType>
<s:simpleType name="ResultStatusFlag">
<s:restriction base="s:string">
<s:enumeration value="FAIL" />
<s:enumeration value="SUCCESS" />
</s:restriction>
</s:simpleType>
<s:complexType name="Amount">
<s:simpleContent>
<s:extension base="s:double">
<s:attribute name="currencyCode" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:complexType name="CreditCard">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cardCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="cardHolderName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="cardNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="seriesCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="effectiveDate" type="s:date" />
<s:element minOccurs="1" maxOccurs="1" name="expirationDate" type="s:date" />
</s:sequence>
<s:attribute name="cardType" type="s:string" />
<s:attribute name="otherCardType" type="s:string" />
</s:complexType>
<s:complexType name="Address">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AddressLine" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="cityName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="stateProv" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="countryCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="postalCode" type="s:string" />
</s:sequence>
<s:attribute name="addressType" type="s:string" />
<s:attribute name="otherAddressType" type="s:string" />
</s:complexType>
<s:complexType name="UniqueID">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="type" type="s3:UniqueIDType" use="required" />
<s:attribute name="source" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
<s:simpleType name="UniqueIDType">
<s:restriction base="s:string">
<s:enumeration value="EXTERNAL" />
<s:enumeration value="INTERNAL" />
<s:enumeration value="CANCELLATIONEXTERNAL" />
<s:enumeration value="CANCELLATIONINTERNAL" />
</s:restriction>
</s:simpleType>
<s:complexType name="ArrayOfAddress">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" ref="s2:Address" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfPhone">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" ref="s2:Phone" />
</s:sequence>
</s:complexType>
<s:complexType name="Phone">
<s:sequence>
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="0" maxOccurs="1" name="PhoneData" type="s3:PhonePhoneData" />
<s:element minOccurs="0" maxOccurs="1" name="PhoneNumber" type="s:string" />
</s:choice>
</s:sequence>
<s:attribute name="phoneType" type="s:string" />
<s:attribute name="phoneRole" type="s:string" />
</s:complexType>
<s:complexType name="PhonePhoneData">
<s:attribute name="countryAccessCode" type="s:string" />
<s:attribute name="areaCode" type="s:string" />
<s:attribute name="phoneNumber" type="s:string" />
<s:attribute name="extension" type="s:string" />
</s:complexType>
<s:complexType name="DescriptiveText">
<s:sequence>
<s:choice minOccurs="1" maxOccurs="1">
<s:element minOccurs="0" maxOccurs="1" name="Image" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Text" type="s3:ArrayOfTextElement" />
<s:element minOccurs="0" maxOccurs="1" name="Url" type="s:anyURI" />
</s:choice>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfTextElement">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="TextElement" nillable="true" type="s3:TextElement" />
</s:sequence>
</s:complexType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/og/4.3/Name/">
<s:import namespace="http://webservices.micros.com/og/4.3/Common/" />
<s:complexType name="NameAddress">
<s:complexContent mixed="false">
<s:extension base="s3:Address">
<s:attribute name="operaId" type="s:long" />
<s:attribute name="externalId" type="s:string" />
<s:attribute name="primary" type="s:boolean" />
<s:attribute name="displaySequence" type="s:int" />
<s:attribute name="insertUser" type="s:string" />
<s:attribute name="insertDate" type="s:dateTime" />
<s:attribute name="updateUser" type="s:string" />
<s:attribute name="updateDate" type="s:dateTime" />
<s:attribute name="inactiveDate" type="s:date" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="NameCreditCard">
<s:complexContent mixed="false">
<s:extension base="s3:CreditCard">
<s:attribute name="operaId" type="s:long" />
<s:attribute name="externalId" type="s:string" />
<s:attribute name="primary" type="s:boolean" />
<s:attribute name="displaySequence" type="s:int" />
<s:attribute name="insertUser" type="s:string" />
<s:attribute name="insertDate" type="s:dateTime" />
<s:attribute name="updateUser" type="s:string" />
<s:attribute name="updateDate" type="s:dateTime" />
<s:attribute name="inactiveDate" type="s:date" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="NamePhone">
<s:complexContent mixed="false">
<s:extension base="s3:Phone">
<s:attribute name="operaId" type="s:long" />
<s:attribute name="externalId" type="s:string" />
<s:attribute name="primary" type="s:boolean" />
<s:attribute name="displaySequence" type="s:int" />
<s:attribute name="insertUser" type="s:string" />
<s:attribute name="insertDate" type="s:dateTime" />
<s:attribute name="updateUser" type="s:string" />
<s:attribute name="updateDate" type="s:dateTime" />
<s:attribute name="inactiveDate" type="s:date" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="Comment">
<s:complexContent mixed="false">
<s:extension base="s3:DescriptiveText">
<s:attribute name="operaId" type="s:long" />
<s:attribute name="externalId" type="s:string" />
<s:attribute name="commentTitle" type="s:string" />
<s:attribute name="insertUser" type="s:string" />
<s:attribute name="insertDate" type="s:dateTime" />
<s:attribute name="updateUser" type="s:string" />
<s:attribute name="updateDate" type="s:dateTime" />
<s:attribute name="inactiveDate" type="s:date" />
</s:extension>
</s:complexContent>
</s:complexType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/og/4.3/Membership/">
<s:complexType name="MemberAwardInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="awardType" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="membershipID" type="s:long" />
<s:element minOccurs="1" maxOccurs="1" name="pointsUsedForReservation" type="s:double" />
</s:sequence>
</s:complexType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://webservices.micros.com/og/4.3/Core/">
<s:element name="OGHeader" type="s6:OGHeader" />
<s:complexType name="OGHeader">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Origin" type="s6:EndPoint" />
<s:element minOccurs="0" maxOccurs="1" name="Destination" type="s6:EndPoint" />
<s:element minOccurs="0" maxOccurs="1" name="Intermediaries" type="s6:ArrayOfEndPoint" />
<s:element minOccurs="0" maxOccurs="1" name="Authentication" type="s6:OGHeaderAuthentication" />
</s:sequence>
<s:attribute name="transactionID" type="s:string" />
<s:attribute name="authToken" type="s:string" />
<s:attribute name="timeStamp" type="s:dateTime" />
</s:complexType>
<s:complexType name="EndPoint">
<s:complexContent mixed="false">
<s:extension base="s6:SystemID">
<s:attribute name="systemType" type="s:string" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="SystemID">
<s:attribute name="entityID" type="s:string" />
<s:attribute name="organizationID" type="s:string" />
</s:complexType>
<s:complexType name="ArrayOfEndPoint">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="EndPoint" type="s6:EndPoint" />
</s:sequence>
</s:complexType>
<s:complexType name="OGHeaderAuthentication">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UserCredentials" type="s6:OGHeaderAuthenticationUserCredentials" />
<s:element minOccurs="0" maxOccurs="1" name="Licence" type="s6:OGHeaderAuthenticationLicence" />
</s:sequence>
</s:complexType>
<s:complexType name="OGHeaderAuthenticationUserCredentials">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="UserPassword" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Domain" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="SecurityId" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="OGHeaderAuthenticationLicence">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</types>
<message name="AvailabilitySoapIn">
<part name="AvailabilityRequest" element="s0:AvailabilityRequest" />
</message>
<message name="AvailabilitySoapOut">
<part name="AvailabilityResult" element="s0:AvailabilityResponse" />
</message>
<message name="AvailabilityOGHeader">
<part name="OGHeader" element="s6:OGHeader" />
</message>
<message name="RegionalAvailabilitySoapIn">
<part name="RegionalAvailabilityRequest" element="s0:RegionalAvailabilityRequest" />
</message>
<message name="RegionalAvailabilitySoapOut">
<part name="RegionalAvailabilityResult" element="s0:RegionalAvailabilityResponse" />
</message>
<message name="RegionalAvailabilityOGHeader">
<part name="OGHeader" element="s6:OGHeader" />
</message>
<message name="FetchAvailablePackagesSoapIn">
<part name="FetchAvailablePackagesRequest" element="s0:FetchAvailablePackagesRequest" />
</message>
<message name="FetchAvailablePackagesSoapOut">
<part name="FetchAvailablePackagesResult" element="s0:FetchAvailablePackagesResponse" />
</message>
<message name="FetchAvailablePackagesOGHeader">
<part name="OGHeader" element="s6:OGHeader" />
</message>
<portType name="AvailabilityServiceSoap">
<operation name="Availability">
<documentation>Retrieve a list of availability for rooms and rates. General Availability (When summary only is set to true) and Detail Availability (When summary only is set to false).</documentation>
<input message="tns:AvailabilitySoapIn" />
<output message="tns:AvailabilitySoapOut" />
</operation>
<operation name="RegionalAvailability">
<documentation>Retrieve a list of available hotels by geographical region, CRO, chain code or country.</documentation>
<input message="tns:RegionalAvailabilitySoapIn" />
<output message="tns:RegionalAvailabilitySoapOut" />
</operation>
<operation name="FetchAvailablePackages">
<documentation>Retrieve a list of available add-on packages.</documentation>
<input message="tns:FetchAvailablePackagesSoapIn" />
<output message="tns:FetchAvailablePackagesSoapOut" />
</operation>
</portType>
<binding name="AvailabilityServiceSoap" type="tns:AvailabilityServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="Availability">
<soap:operation soapAction="http://webservices.micros.com/ows/5.1/Availability.wsdl#Availability" style="document" />
<input>
<soap:body use="literal" />
<soap:header message="tns:AvailabilityOGHeader" part="OGHeader" use="literal" />
</input>
<output>
<soap:body use="literal" />
<soap:header message="tns:AvailabilityOGHeader" part="OGHeader" use="literal" />
</output>
</operation>
<operation name="RegionalAvailability">
<soap:operation soapAction="http://webservices.micros.com/ows/5.1/Availability.wsdl#RegionalAvailability" style="document" />
<input>
<soap:body use="literal" />
<soap:header message="tns:RegionalAvailabilityOGHeader" part="OGHeader" use="literal" />
</input>
<output>
<soap:body use="literal" />
<soap:header message="tns:RegionalAvailabilityOGHeader" part="OGHeader" use="literal" />
</output>
</operation>
<operation name="FetchAvailablePackages">
<soap:operation soapAction="http://webservices.micros.com/ows/5.1/Availability.wsdl#FetchAvailablePackages" style="document" />
<input>
<soap:body use="literal" />
<soap:header message="tns:FetchAvailablePackagesOGHeader" part="OGHeader" use="literal" />
</input>
<output>
<soap:body use="literal" />
<soap:header message="tns:FetchAvailablePackagesOGHeader" part="OGHeader" use="literal" />
</output>
</operation>
</binding>
<service name="AvailabilityService">
<port name="AvailabilityServiceSoap" binding="tns:AvailabilityServiceSoap">
<soap:address location="http://pezula.ath.cx/Availability2/Availability.asmx" />
</port>
</service>
</definitions>
---
--
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php