I've attached both the bindings.xml file and the schema file.
Thanks in Advance.
Sincrely,
Zeb
On Tue, 11 Mar 2003, Keith Visco wrote:
:
:Zeb,
:
:Can you attach the full schema, so we can see what the groups that are
:being referenced look like.
:
:Thanks,
:
:--Keith
:
:"Aurangzeb M. Agha" wrote:
:>
:> I asked this before but fear that my message was too long.
:>
:> I'm using castor 0.9.4.3-xml.jar.
:>
:> Here's a summary of my problem:
:>
:> I have a valid XML which, when unmarshalled, is getting validated against
:> the wrong definition.
:>
:> When unmarshalling NexRes/response/viewReservationResponse, I get the
:> following error:
:>
:> ValidationException: bookingStatus is a required field.;
:> - location of error: XPATH: NexRes/response/bookReservationResponse
:>
:> My XSD contains:
:>
:> <...NexRes...>
:> ...
:> <xsd:element name="response">
:> <xsd:complexType>
:> <xsd:sequence>
:> ...
:> <xsd:group ref="bookReservationResponse" minOccurs="0"/>
:> <xsd:group ref="viewReservationResponse" minOccurs="0"/>
:> ...
:> </xsd:sequence>
:> </xsd:complexType>
:> </xsd:element>
:>
:> I've made sure that these two elements appear in the XSD in the same order
:> as they are shown above. If I switch them (in the XSD shown above), then
:> the problem flips, and though I can unmarshall
:> NexRes/response/viewReservationResponse without any problem, I get a
:> similiar exception when trying to unmarshall bookReservationResponse:
:>
:> ValidationException: bookingStatus is a required field.;
:> - location of error: XPATH: NexRes/response/viewReservationResponse
:>
:> I've tried to use xsd:all instead of xsd:sequence, but that makes no
:> difference either.
:>
:> I'd very much appreciate some help.
:>
:> Sincerely,
:> Zeb
:>
:> PS -- The original message is below.
:>
:> ---------- Forwarded message ----------
:> Date: Tue, 11 Mar 2003 05:41:28 -0800 (PST)
:> From: Aurangzeb M. Agha <[EMAIL PROTECTED]>
:> Reply-To: [EMAIL PROTECTED]
:> To: [EMAIL PROTECTED]
:> Subject: [castor-dev] Problem with order of ref elements in sequence
:>
:> I'm having a big problem with a large schema where the order of reference
:> elements in a sequence seem to conflict when I try to unmarshall an
:> object.
:>
:> I have two elements which seem to be at the root of the problem:
:>
:> <xsd:element name="request">
:> <xsd:complexType>
:> <xsd:sequence>
:> <xsd:group ref="propertySearch" minOccurs="0"/>
:> <xsd:group ref="propertyInformationRequest" minOccurs="0"/>
:> <xsd:group ref="propertyAvailabilityRequest" minOccurs="0"/>
:> <xsd:group ref="bookReservation" minOccurs="0"/>
:> <xsd:group ref="cancelReservation" minOccurs="0"/>
:> <xsd:group ref="viewReservation" minOccurs="0"/>
:> <xsd:group ref="rateRulesRequest" minOccurs="0"/>
:> </xsd:sequence>
:> </xsd:complexType>
:> </xsd:element>
:>
:> <xsd:element name="response">
:> <xsd:complexType>
:> <xsd:sequence>
:> <xsd:group ref="propertyInformationResponse" minOccurs="0"/>
:> <xsd:group ref="propertyAvailabilityResponse" minOccurs="0"/>
:> <xsd:group ref="bookReservationResponse" minOccurs="0"/>
:> <xsd:group ref="cancelReservationResponse" minOccurs="0" />
:> <xsd:group ref="viewReservationResponse" minOccurs="0"/>
:> <xsd:group ref="rateRulesResponse" minOccurs="0"/>
:> </xsd:sequence>
:> </xsd:complexType>
:> </xsd:element>
:>
:> The order of the elements in the "request" element is causing a problem
:> for me no matter how I move the elements around in the XSD. Using what I
:> have above, if I try to unmarshall a ViewReservation object (which looks
:> like this):
:>
:> <NexRes product="Hotel">
:> <response status="failure" type="ViewReservation"
:> timestamp="20030311081435">
:> <errors>
:> <error number="0">
:> <message>We could not find reservation in our
:> records. Please
:> adjust your information and try again.</message>
:> <code>H105</code>
:> </error>
:> </errors>
:> </response>
:> <session>
:> <language>ENG</language>
:> <id></id>
:> <affiliate>
:> <overrides></overrides>
:> <id>##########</id>
:> <subAffiliateId></subAffiliateId>
:> </affiliate>
:> <timestamp>20030311081435</timestamp>
:> </session>
:> <request type="ViewReservation">
:> <customer>
:> <lastName>######</lastName>
:> <firstName>######</firstName>
:> <clientId></clientId>
:> </customer>
:> <confirmationNumber>######</confirmationNumber>
:> </request>
:> </NexRes>
:>
:> I get the following error:
:>
:> ValidationException: bookingStatus is a required field.;
:> - location of error: XPATH: NexRes/response/bookReservationResponse
:>
:> The problem is that 'bookingStatus' is not an element in
:> ViewReservationResponse;
:> but it is in BookReservationResponse.
:>
:> If I either comment out bookReservation:
:>
:> <xsd:element name="request">
:> <xsd:complexType>
:> <xsd:sequence>
:> <xsd:group ref="propertySearch" minOccurs="0"/>
:> <xsd:group ref="propertyInformationRequest" minOccurs="0"/>
:> <xsd:group ref="propertyAvailabilityRequest" minOccurs="0"/>
:> <!--xsd:group ref="bookReservation" minOccurs="0"/-->
:> <xsd:group ref="cancelReservation" minOccurs="0"/>
:> <xsd:group ref="viewReservation" minOccurs="0"/>
:> <xsd:group ref="rateRulesRequest" minOccurs="0"/>
:> </xsd:sequence>
:> </xsd:complexType>
:> </xsd:element>
:>
:> or change the order of the elements:
:>
:> <xsd:element name="request">
:> <xsd:complexType>
:> <xsd:sequence>
:> <xsd:group ref="cancelReservation" minOccurs="0"/>
:> <xsd:group ref="propertySearch" minOccurs="0"/>
:> <xsd:group ref="propertyInformationRequest" minOccurs="0"/>
:> <xsd:group ref="propertyAvailabilityRequest" minOccurs="0"/>
:> <xsd:group ref="bookReservation" minOccurs="0"/>
:> <xsd:group ref="viewReservation" minOccurs="0"/>
:> <xsd:group ref="rateRulesRequest" minOccurs="0"/>
:> </xsd:sequence>
:> </xsd:complexType>
:> </xsd:element>
:>
:> This problem goes away, but then I have a problem when I try to unmarshall
:> the BookReservation element.
:>
:> There seems to be some mix up in the order of elements and the sequence
:> in which they appear in the XSD file, but I can't figure out what it is,
:> or
:> how to define it. Is there some sort of schema validator out there that
:> I can use that will validate the sequence of elements in my XSD?
:>
:> I'd really appreciate some help, and can send the entire XSD file if you
:> can help.
:>
:> Sincerely,
:> Zeb
:>
:> -----------------------------------------------------------
:> If you wish to unsubscribe from this mailing, send mail to
:> [EMAIL PROTECTED] with a subject of:
:> unsubscribe castor-dev
:>
:> -----------------------------------------------------------
:> If you wish to unsubscribe from this mailing, send mail to
:> [EMAIL PROTECTED] with a subject of:
:> unsubscribe castor-dev
:
:-----------------------------------------------------------
:If you wish to unsubscribe from this mailing, send mail to
:[EMAIL PROTECTED] with a subject of:
: unsubscribe castor-dev
:
--
Aurangzeb M. Agha | Email : [EMAIL PROTECTED]
| Home : +3 210 8959.558
34 Nafsika St. | Direct: +3 210 8995.875
Voula 16673 | Mobile: TBD
Greece | e-Fax : 978 246.0770
| PGP id: <coming soon>
"Those who would give up essential liberty to purchase a little
temporary safety deserve neither liberty nor safety."
- Benjamin Franklin<?xml version="1.0"?>
<cbf:binding xmlns:cbf="http://www.castor.org/SourceGenerator/Binding"
defaultBindingType='element'>
<!-- start Amenities -->
<!-- Binding the generalInfo amenities element to the AmenitiesGeneralInfo class -->
<cbf:elementBinding name="/generalInfo/amenities">
<cbf:java-class name="AmenitiesGeneralInfo"/>
</cbf:elementBinding>
<!-- Binding the overview amenities element to the AmenitiesOverview class -->
<cbf:elementBinding name="/overview/amenities">
<cbf:java-class name="AmenitiesOverview"/>
</cbf:elementBinding>
<!-- Binding the propertySearch amenities element to the AmenitiesPropertySearch class -->
<cbf:elementBinding name="group:propertySearch/amenities">
<cbf:java-class name="AmenitiesPropertySearch"/>
</cbf:elementBinding>
<!-- end Amenities -->
<!-- start general info -->
<!-- Binding the overview generalInfo element to the GeneralInfoOverview class -->
<cbf:elementBinding name="/overview/generalInfo">
<cbf:java-class name="GeneralInfoOverview"/>
</cbf:elementBinding>
<!-- end general info -->
<!-- start location -->
<!-- Binding the overview generalInfo element to the GeneralInfoOverview class -->
<cbf:elementBinding name="/drivingDirections/location">
<cbf:java-class name="LocationDrivingDirections"/>
</cbf:elementBinding>
<!-- end location -->
<!-- start credit card -->
<!-- Binding the credit card element to the CreditCardRateRulesResponse class -->
<cbf:elementBinding name="/acceptedCreditCards/creditCard">
<cbf:java-class name="CreditCardRateRules"/>
</cbf:elementBinding>
<!-- Binding the other credit card element to the CreditCardBookReservation class -->
<cbf:elementBinding name="group:bookReservation/creditCard">
<cbf:java-class name="CreditCardBookReservation"/>
</cbf:elementBinding>
<!-- end credit card -->
<!-- start serviceFees -->
<!-- Binding the serviceFees element to the ServiceFeesRateRules class -->
<cbf:elementBinding name="group:rateRulesResponse/serviceFees">
<cbf:java-class name="ServiceFeesRateRules"/>
</cbf:elementBinding>
<!-- start serviceFee -->
<!-- Binding the serviceFee element to the ServiceFeeRateRules class -->
<cbf:elementBinding name="group:rateRulesResponse/serviceFees/serviceFee">
<cbf:java-class name="ServiceFeeRateRules"/>
</cbf:elementBinding>
<!-- end serviceFee -->
<!-- end serviceFees -->
<!-- start rate -->
<!-- Binding one of the rate elements (the small one) to the ReateBookReservation class -->
<cbf:elementBinding name="group:bookReservation/rate">
<cbf:java-class name="RateBookReservation"/>
</cbf:elementBinding>
<!-- end rate -->
<!-- start customer -->
<!-- Binding one of the customer elements (the small one) to the CustomerCancelReservation class -->
<cbf:elementBinding name="group:cancelReservation/customer">
<cbf:java-class name="CustomerCancelReservation"/>
</cbf:elementBinding>
<!-- Binding one of the customer elements (the small one) to the CustomerViewReservation class -->
<cbf:elementBinding name="group:viewReservation/customer">
<cbf:java-class name="CustomerViewReservation"/>
</cbf:elementBinding>
<!-- end customer -->
</cbf:binding>
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" targetNamespace="http://castor.exolab.org/"
version="0.9.4">
<xsd:annotation>
<xsd:documentation>
This is the NexRes element that is common among all request
elements
</xsd:documentation>
</xsd:annotation>
<xsd:element name="NexRes">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="response" minOccurs="0"
maxOccurs="1"/>
<xsd:element ref="session" minOccurs="0"
maxOccurs="1"/>
<xsd:element ref="request" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="product" type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<!--Description for response-->
<xsd:element name="response">
<xsd:complexType>
<xsd:sequence>
<!--used for property search-->
<xsd:element ref="searchResults" minOccurs="0"
maxOccurs="1"/>
<xsd:element ref="errors" minOccurs="0" maxOccurs="1"/>
<xsd:group ref="propertyInformationResponse"
minOccurs="0"/>
<xsd:group ref="propertyAvailabilityResponse"
minOccurs="0"/>
<xsd:group ref="rateRulesResponse" minOccurs="0"/>
<xsd:group ref="cancelReservationResponse"
minOccurs="0" />
<xsd:group ref="bookReservationResponse" minOccurs="0"
/>
<xsd:group ref="viewReservationResponse" minOccurs="0"
/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" use="required"/>
<xsd:attribute name="status" type="xsd:string" use="required"/>
<xsd:attribute name="timestamp" type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<!-- Description for session -->
<xsd:element name="session">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="timestamp" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="language" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="affiliate"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Description for request -->
<xsd:element name="request">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="propertySearch" minOccurs="0"/>
<xsd:group ref="propertyInformationRequest"
minOccurs="0"/>
<xsd:group ref="propertyAvailabilityRequest"
minOccurs="0"/>
<xsd:group ref="rateRulesRequest" minOccurs="0"/>
<xsd:group ref="cancelReservation" minOccurs="0"/>
<xsd:group ref="viewReservation" minOccurs="0"/>
<xsd:group ref="bookReservation" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<!--Description for searcResults-->
<xsd:element name="searchResults">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="matchesFound" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="startingMatchNumber"
type="xsd:integer" minOccurs="0" maxOccurs="1"/>
<xsd:element name="endingMatchNumber"
type="xsd:integer" minOccurs="0" maxOccurs="1"/>
<xsd:element name="sortedBy" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="orderedBy" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="hotelMatches" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--Description for hotelMatches-->
<xsd:element name="hotelMatches">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="match" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--Description match-->
<xsd:element name="match">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="exchangedHighestRate" type="xsd:string"
minOccurs="0" />
<xsd:element name="exchangedLowestRate" type="xsd:string"
minOccurs="0" />
<xsd:element name="highestRate" type="xsd:string" minOccurs="0"/>
<xsd:element name="hotelId" type="xsd:string"
minOccurs="0"/>
<xsd:element name="name" type="xsd:string"
minOccurs="0"/>
<xsd:element name="streetAddress1" type="xsd:string"
minOccurs="0"/>
<xsd:element name="streetAddress2" type="xsd:string"
minOccurs="0"/>
<xsd:element name="city" type="xsd:string"
minOccurs="0"/>
<xsd:element name="postalCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="stateCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="countryCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="phone" type="xsd:string"
minOccurs="0"/>
<xsd:element name="latitude" type="xsd:string"
minOccurs="0"/>
<xsd:element name="longitude" type="xsd:string"
minOccurs="0"/>
<xsd:element name="numberStars" type="xsd:string"
minOccurs="0"/>
<xsd:element name="isAvailable" type="xsd:string"
minOccurs="0"/>
<xsd:element name="hasHotRates" type="xsd:string"
minOccurs="0"/>
<xsd:element name="lowestRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="hasVideo" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangeRate" type="xsd:double" minOccurs="0"/>
<xsd:element name="hasMap" type="xsd:string" minOccurs="0"/>
<xsd:element name="availabilityError" type="xsd:string" minOccurs="0"
/>
<xsd:element name="hasOverview" type="xsd:string" minOccurs="1"/>
<xsd:element name="hasBrochure" type="xsd:string" minOccurs="1"/>
<xsd:element name="currency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="additionalCurrency"
type="xsd:string" minOccurs="0"/>
<xsd:element name="shortDescription" type="xsd:string" minOccurs="0"/>
<xsd:element name="thumbnailImage" type="xsd:string"
minOccurs="0"/>
<xsd:element name="chain" type="xsd:string"
minOccurs="0"/>
<xsd:element name="chainCode" type="xsd:string"
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="number" type="xsd:integer"
use="required"/>
</xsd:complexType>
</xsd:element>
<!--Description for errors-->
<xsd:element name="errors">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="error" minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--Description an error-->
<xsd:element name="error">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="message" type="xsd:string"/>
<xsd:element name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="number" type="xsd:integer"
use="required"/>
</xsd:complexType>
</xsd:element>
<!--Description for affiliate-->
<xsd:element name="affiliate">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:integer"/>
<xsd:element name="subAffiliateId" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="subAffiliate" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="overrides" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="customerID"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- used for response type="propertyInformation Responses" -->
<xsd:group name="propertyInformationResponse">
<xsd:sequence>
<xsd:element name="brochure" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element ref="generalInfo" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="overview" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="videos" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="maps" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<!--general information for property-->
<xsd:element name="generalInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string"
minOccurs="0"/>
<xsd:element name="name" type="xsd:string"
minOccurs="0"/>
<xsd:element name="chainCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="streetAddress1" type="xsd:string"
minOccurs="0"/>
<xsd:element name="streetAddress2" type="xsd:string"
minOccurs="0"/>
<xsd:element name="city" type="xsd:string"
minOccurs="0"/>
<xsd:element name="postalCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="stateCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="countryCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="directPhone" type="xsd:string"
minOccurs="0"/>
<xsd:element name="latitude" type="xsd:string"
minOccurs="0"/>
<xsd:element name="longitude" type="xsd:string"
minOccurs="0"/>
<xsd:element name="numberStars" type="xsd:string"
minOccurs="0"/>
<xsd:element name="hasOverview" type="xsd:boolean"
minOccurs="0"/>
<xsd:element name="hasBrochure" type="xsd:boolean"
minOccurs="0"/>
<xsd:element name="hasMap" type="xsd:boolean"
minOccurs="0"/>
<xsd:element name="hasVideo" type="xsd:boolean"
minOccurs="0"/>
<xsd:element name="shortDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="thumbnailImage" type="xsd:string"
minOccurs="0"/>
<xsd:element name="currency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rating" type="xsd:string"
minOccurs="0"/>
<xsd:element name="numberRooms" type="xsd:string"
minOccurs="0"/>
<xsd:element name="floors" type="xsd:string"
minOccurs="0"/>
<xsd:element name="timeZone" type="xsd:string"
minOccurs="0"/>
<xsd:element name="amenities" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="amenity" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- overview for property -->
<xsd:element name="overview">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="servicesDescription" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="recreationInfo" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="attractionInfo" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="transportationInfo"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="roomtypeDescription"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="diningInfo" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="locationInfo" minOccurs="0"/>
<xsd:element ref="policies" minOccurs="0"/>
<xsd:element ref="basicInfo" minOccurs="0"/>
<xsd:element ref="nearbyLocations" minOccurs="0"/>
<xsd:element ref="rateInfo" minOccurs="0"/>
<xsd:element ref="roomTypes" minOccurs="0"/>
<xsd:element ref="servicesInfo" minOccurs="0"/>
<xsd:element ref="images" minOccurs="0"/>
<xsd:element name="amenities" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="amenity" type="xsd:string"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="generalInfo" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="currency" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="rating" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="numberRooms" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="floors" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="timeZone" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--overview for property-->
<xsd:element name="videos">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="video" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--overview for property-->
<xsd:element name="video">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="url" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="speed" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="provider" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--overview for property-->
<xsd:element name="maps">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="map" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--overview for property-->
<xsd:element name="map">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="url" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="zoomLevel" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- used for the response of propertyAvailabilityResponse -->
<xsd:group name="propertyAvailabilityResponse">
<xsd:sequence>
<xsd:element name="additionalCurrency" type="xsd:string" minOccurs="0"
maxOccurs="0"/>
<xsd:element name="hasHotRates" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="isAvailable" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="availabilityError" type="xsd:string"
minOccurs="0" />
<xsd:element name="exchangedLowestRate" type="xsd:double"
minOccurs="0" />
<xsd:element name="exchangedHighestRate" type="xsd:double"
minOccurs="0" />
<xsd:element name="lowestRate" type="xsd:double" minOccurs="0"
maxOccurs="1" />
<xsd:element name="highestRate" type="xsd:double"
minOccurs="0" maxOccurs="1" />
<xsd:element name="exchangeRate" type="xsd:double"
minOccurs="0" maxOccurs="1" />
<xsd:element name="currency" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="ratesFound" minOccurs="0" />
</xsd:sequence>
</xsd:group>
<xsd:group name="rateRulesResponse">
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string" minOccurs="1"/>
<xsd:element name="bookableRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="totalAmount" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateType" type="xsd:string" minOccurs="0"/>
<xsd:element name="guaranteeRequired" type="xsd:string"
minOccurs="0"/>
<xsd:element name="ratePlan" type="xsd:string" minOccurs="0"/>
<xsd:element name="maximumPersonsPerRoom" type="xsd:string"
minOccurs="0"/>
<xsd:element name="roomDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateFrequency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateChangeIndicator" type="xsd:string"
minOccurs="0"/>
<xsd:element name="depositRequired" type="xsd:string"
minOccurs="0"/>
<xsd:element name="cancelPolicy" type="xsd:string"
minOccurs="1"/>
<xsd:element name="otherInfo" type="xsd:string" minOccurs="0"/>
<xsd:element name="currency" type="xsd:string" minOccurs="1"/>
<xsd:element name="addionalCurrency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangeRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="roomTypeCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="ratePlanCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="invSource" type="xsd:string" minOccurs="1"/>
<xsd:element name="depositPolicy" type="xsd:string"
minOccurs="0"/>
<xsd:element name="serviceInfo" type="xsd:string"
minOccurs="0"/>
<xsd:element name="taxes" type="xsd:string" minOccurs="0"/>
<xsd:element name="minimumStay" type="xsd:string"
minOccurs="0"/>
<xsd:element name="maximumStay" type="xsd:string"
minOccurs="0"/>
<xsd:element name="minimumStayRequired" type="xsd:string"
minOccurs="0"/>
<xsd:element name="corporateNumberRequired" type="xsd:string"
minOccurs="0"/>
<xsd:element name="totalExtraPersonsAmount" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangetotalExtraPersonsAmount"
type="xsd:string" minOccurs="0"/>
<xsd:element name="totalIncludingTaxes" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangetotalIncludingTaxes"
type="xsd:string" minOccurs="0"/>
<xsd:element name="savingDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="advancedBookingPolicy" type="xsd:string"
minOccurs="0"/>
<xsd:element name="amenityText" type="xsd:string"
minOccurs="0"/>
<xsd:element name="voucherInfo" type="xsd:string"
minOccurs="0"/>
<xsd:element name="cancelPolicyCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="highestRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="maximumRooms" type="xsd:string"
minOccurs="0"/>
<xsd:element name="instantConfirmationAvailable"
type="xsd:string" minOccurs="1"/>
<xsd:element name="surcharges" type="xsd:string"
minOccurs="0"/>
<xsd:element name="depositAmount" type="xsd:string"
minOccurs="0"/>
<xsd:element name="netRate" type="xsd:string" minOccurs="0"/> <!--
temp?-->
<xsd:element name="exchangedBookableRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangedTotalAmount" type="xsd:string"
minOccurs="0"/>
<xsd:element name="validStartDate" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="validEndDate" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="validArrivalDate" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="validWeekDays" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="guaranteeMethods" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="advancedBookingRequired" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="standardPersonsPerRoom" type="xsd:string" minOccurs="0"
maxOccurs="1"/> <!-- temp -->
<xsd:element ref="acceptedCreditCards" minOccurs="0"/>
<xsd:element ref="extraPersonCharges" minOccurs="0"/>
<xsd:element ref="rateBreakdown" minOccurs="0"/>
<!--used for serviceFees node-->
<xsd:element name="serviceFees" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<!--use for servicefee-->
<xsd:element name="serviceFee" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="amount" type="xsd:string"
minOccurs="1"/>
<xsd:element name="totalAmount" type="xsd:string"
minOccurs="1"/>
<xsd:element name="frequency" type="xsd:string"
minOccurs="1"/>
<xsd:element name="description" type="xsd:string"
minOccurs="1"/>
<xsd:element name="maxAmount" type="xsd:string"
minOccurs="1"/>
<xsd:element name="currency" type="xsd:string"
minOccurs="1"/>
<xsd:element ref="localCurrency" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:group>
<xsd:element name="ratesFound">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="rate" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="rate">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="depositRequired" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateType" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateFrequency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="ratePlanCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="currency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="prepaymentRequired"
type="xsd:string" minOccurs="0"/>
<xsd:element name="invSource" type="xsd:string"
minOccurs="0"/>
<xsd:element name="roomTypeCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangeRate" type="xsd:double"
minOccurs="0"/>
<xsd:element name="amount" type="xsd:string"
minOccurs="0"/>
<xsd:element name="totalAmount" type="xsd:double"
minOccurs="0"/>
<xsd:element name="rateChangeIndicator"
type="xsd:string" minOccurs="0"/>
<xsd:element name="cancelPolicy" type="xsd:string"
minOccurs="0"/>
<xsd:element name="roomDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="exchangedBookableRate"
type="xsd:string" minOccurs="0"/>
<xsd:element name="exchangedAmount" type="xsd:string"
minOccurs="0"/>
<xsd:element name="netRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="ratePlan" type="xsd:string"
minOccurs="0"/>
<xsd:element name="additionalCurrency"
type="xsd:string" minOccurs="0"/>
<xsd:element name="bookableRate" type="xsd:string"
minOccurs="0"/>
<xsd:element ref="date" minOccurs="0"/>
<xsd:element name="advancedBookingPolicy"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="higestRate" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="savingsDescription"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="maximumRooms" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="totalExtraPersonsAmount"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="surcharges" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="depositAmount" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="totalIncludingTaxes"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="validArrivalDate" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="exchangedTotalAmount"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="cancelPolicyCode" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="packageOptions" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="corporateNumberRequired"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="voucherInfo" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="otherInfo" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="validWeekDays" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="guaranteeMethods" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="guaranteeRequired"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="amenityText" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="instantConfirmationAvailable"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="validStartDate" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="validEndDate" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="minimumStayRequired"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="advancedBookingRequired"
type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="standardPersonsPerRoom"
type="xsd:string" minOccurs="0" maxOccurs="1"/> <!-- temp -->
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="propertyInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string"
minOccurs="0"/>
<xsd:element name="chainCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="name" type="xsd:string"
minOccurs="1"/>
<xsd:element name="streetAddress1" type="xsd:string"
minOccurs="1"/>
<xsd:element name="streetAddress2" type="xsd:string"
minOccurs="0"/>
<xsd:element name="city" type="xsd:string"
minOccurs="1"/>
<xsd:element name="stateCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="countryCode" type="xsd:string"
minOccurs="1"/>
<xsd:element name="postalCode" type="xsd:string"
minOccurs="1"/>
<xsd:element name="directPhone" type="xsd:string"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- used by the response element to cancel a reservation-->
<xsd:group name="cancelReservationResponse">
<xsd:sequence>
<xsd:element name="cancelNumber" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="cancelStatus" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="cancelMessage" type="xsd:string"
minOccurs="0"/>
<xsd:element name="depositLostAmount" type="xsd:string"
minOccurs="0" />
<xsd:element name="refundAmount" type="xsd:string"
minOccurs="0" />
<xsd:element name="cancelFee" type="xsd:string" minOccurs="0"
/>
</xsd:sequence>
</xsd:group>
<!-- booking reservation response -->
<xsd:group name="bookReservationResponse">
<xsd:sequence>
<xsd:element name="bookingStatus" type="xsd:string"
minOccurs="1"/>
<xsd:element name="bookingMessage" type="xsd:string"
minOccurs="0"/>
<xsd:element name="confirmationNumber" type="xsd:string"
minOccurs="1"/>
<xsd:element name="estimatedAffiliateCommission"
type="xsd:string" minOccurs="0"/>
<xsd:element name="numberNights" type="xsd:integer"
minOccurs="1"/>
<xsd:element name="numberAdults" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberChildren" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="smokingPreference" type="xsd:string"
minOccurs="0"/>
<xsd:element name="numberRooms" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="bedType" type="xsd:string" minOccurs="0"/>
<xsd:element name="numberBeds" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="guestRemarks" type="xsd:string"
minOccurs="0"/>
<xsd:element name="roomDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="guaranteeInfo" type="xsd:string"
minOccurs="0"/>
<xsd:element name="cancelPolicy" type="xsd:string"
minOccurs="0"/>
<xsd:element name="hotelRemarks" type="xsd:string"
minOccurs="0"/>
<xsd:element ref="serviceFees" minOccurs="0"/>
<xsd:element ref="rateInfo" minOccurs="0"/>
<xsd:element ref="customer" minOccurs="1"/>
<xsd:element ref="propertyInfo" minOccurs="1"/>
<xsd:element ref="arrivalDate" minOccurs="1"/>
<xsd:element ref="departureDate" minOccurs="1"/>
<xsd:element ref="depositInfo" minOccurs="0"/>
</xsd:sequence>
</xsd:group>
<!-- used by the response element to view a reservation -->
<xsd:group name="viewReservationResponse">
<xsd:sequence>
<xsd:element name="reservationModifiable" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="confirmationNumber" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="numberNights" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberAdults" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberChildren" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="smokingPreference" type="xsd:string" minOccurs="0"/>
<xsd:element name="numberRooms" type="xsd:integer" minOccurs="0"/>
<xsd:element name="bedType" type="xsd:string" minOccurs="0"/>
<xsd:element name="numberBeds" type="xsd:string" minOccurs="0"/>
<xsd:element name="guestRemarks" type="xsd:string" minOccurs="0"/>
<xsd:element name="roomDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="guaranteeInfo" type="xsd:string"
minOccurs="0"/>
<xsd:element name="cancelNumber" type="xsd:string"
minOccurs="0"/>
<xsd:element name="cancelPolicy" type="xsd:string"
minOccurs="0"/>
<xsd:element name="hotelRemarks" type="xsd:string"
minOccurs="0"/>
<xsd:element name="estimatedAffiliateCommission"
type="xsd:string" minOccurs="0"/>
<xsd:element ref="serviceFees" minOccurs="0"/>
<xsd:element ref="rateInfo" minOccurs="0"/>
<xsd:element ref="customer" minOccurs="1"/>
<xsd:element ref="propertyInfo" minOccurs="1"/>
<xsd:element ref="arrivalDate" minOccurs="0" />
<xsd:element ref="departureDate" minOccurs="0" />
<xsd:element ref="depositInfo" minOccurs="0"/>
</xsd:sequence>
</xsd:group>
<!-- used for serviceFees node -->
<xsd:element name="serviceFees">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="serviceFee" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- use for servicefee -->
<xsd:element name="serviceFee">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="amount" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="description" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="status" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="affiliateCommission" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- rate info for property overview -->
<xsd:element name="rateInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="hiRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="loRate" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateDisclaimer" type="xsd:string"
minOccurs="0"/>
<xsd:element name="totalRate" type="xsd:string" minOccurs="0"/>
<xsd:element name="confirmedRate" type="xsd:string" minOccurs="0"/>
<xsd:element name="rateDescription" type="xsd:string"
minOccurs="0"/>
<xsd:element name="rateFrequency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="taxInfo" type="xsd:string"
minOccurs="0"/>
<xsd:element name="currency" type="xsd:string"
minOccurs="0"/>
<xsd:element ref="rateRanges" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- used for deposit info -->
<xsd:element name="depositInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="amount" type="xsd:double"
minOccurs="0"/>
<xsd:element name="details" type="xsd:string"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- nearby locations for property-->
<xsd:element name="rateRanges">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="range" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- nearby locations for property-->
<xsd:element name="range">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"
minOccurs="0"/>
<xsd:element name="description" type="xsd:string"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--accepted credit cards-->
<xsd:element name="acceptedCreditCards">
<xsd:complexType>
<xsd:sequence>
<!-- Used for creditCard for RateRulesResponse-->
<xsd:element name="creditCard" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="code" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--element for extraPersonCharges-->
<xsd:element name="extraPersonCharges">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="person" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--element for person-->
<xsd:element name="person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="type" type="xsd:string"
minOccurs="1"/>
<xsd:element name="rate" type="xsd:string"
minOccurs="1"/>
<xsd:element name="exchangedRate" type="xsd:string"
minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--rateBreakdown element-->
<xsd:element name="rateBreakdown">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="rate" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--Used for request type="PropertySearch"-->
<xsd:group name="propertySearch">
<xsd:sequence>
<xsd:element name="chain" type="xsd:string" minOccurs="0"/>
<xsd:element name="maxHotelsToReturn" type="xsd:integer" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="startingMatchNumber" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="city" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="countryCode" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="stateCode" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="postalCode" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="hotelName" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="chainName" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="priceBand" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="checkAvailability" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberNights" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberRooms" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberAdults" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberChildren" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberBeds" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="maximumDistance" type="xsd:string" minOccurs="0"
maxOccurs="1"/> <!-- temp? -->
<xsd:element name="bedType" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="smokingPreference" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="additionalCurrency" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="sortBy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="sortOrder" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="orderBy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="returnOnlyHotRateHotels" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="returnOnlyAvailableHotels" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="hotRateNightlyBreakdown" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="amenities" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="amenity" type="xsd:string"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element ref="arrivalDate" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="departureDate" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="coordinates" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<!--Used for coordinates -->
<xsd:element name="coordinates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="latitude" type="xsd:string"
minOccurs="0" maxOccurs="1" />
<xsd:element name="longitude" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--used for request type="propertyInformation -->
<xsd:group name="propertyInformationRequest">
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="include" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:group>
<!--used for to find out propertyAvailabilityRequest -->
<xsd:group name="propertyAvailabilityRequest">
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="numberOfNights" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberRooms" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberAdults" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberChildren" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="numberBeds" type="xsd:integer"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="bedType" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="smokingPreference" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="sortBy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="additionalCurrency" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="sortOrder" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element ref="arrivalDate" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="departureDate" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<!-- used for rate rules -->
<xsd:group name="rateRulesRequest">
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element ref="arrivalDate" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="departureDate" minOccurs="0"/>
<xsd:element name="numberNights" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberRooms" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberAdults" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberChildren" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberBeds" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="bedType" type="xsd:string" minOccurs="0"/>
<xsd:element name="smokingPreference" type="xsd:string"
minOccurs="0"/>
<xsd:element name="additionalCurrency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="roomTypeCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="ratePlanCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="invSource" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:group>
<!-- Used for creditCard -->
<xsd:element name="discountCodes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="corporateAccountNumber" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="frequentGuestNumber" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- used by a request to cancel a reservation -->
<xsd:group name="cancelReservation">
<xsd:sequence>
<xsd:element name="confirmationNumber" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<!-- represents the customer element-->
<xsd:element name="customer" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="clientId" type="xsd:string" minOccurs="0"/>
<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:group>
<!-- used by a request to view a reservation -->
<xsd:group name="viewReservation">
<xsd:sequence>
<xsd:element name="confirmationNumber" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<!-- represents the customer element-->
<xsd:element name="customer" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="clientId" type="xsd:string" minOccurs="0"/>
<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:group>
<!--used to book reservation-->
<xsd:group name="bookReservation">
<xsd:sequence>
<xsd:element name="hotelId" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="numberNights" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberAdults" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="numberChildren" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="smokingPreference" type="xsd:string"
minOccurs="0"/>
<xsd:element name="numberRooms" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="bedType" type="xsd:string" minOccurs="0"/>
<xsd:element name="numberBeds" type="xsd:integer"
minOccurs="0"/>
<xsd:element name="guestRemarks" type="xsd:string"
minOccurs="0"/>
<xsd:element name="willWait" type="xsd:string" minOccurs="0"/>
<xsd:element name="additionalCurrency" type="xsd:string"
minOccurs="0"/>
<xsd:element ref="customer" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="arrivalDate" minOccurs="0" maxOccurs="1" />
<xsd:element ref="departureDate" minOccurs="0" maxOccurs="1" />
<xsd:element ref="discountCodes" minOccurs="0" maxOccurs="1" />
<!-- Used for creditCard -->
<xsd:element name="creditCard" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="brand" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="number" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="expirationMonth" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="expirationYear" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Used for rate -->
<xsd:element name="rate" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="invSource" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
<xsd:element name="ratePlanCode" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="roomTypeCode" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:group>
<!--used for local currency-->
<xsd:element name="localCurrency">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="currency" type="xsd:string"
minOccurs="0"/>
<xsd:element name="amount" type="xsd:double"
minOccurs="0"/>
<xsd:element name="totalAmount" type="xsd:double"
minOccurs="0"/>
<xsd:element name="maxAmount" type="xsd:double"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="amenity">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="code" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="name" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- nearby locations for proprty overview -->
<xsd:element name="nearbyLocations">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="pointsOfInterest" minOccurs="0"/>
<xsd:element ref="restaurants" minOccurs="0"/>
<xsd:element ref="businesses" minOccurs="0"/>
<xsd:element ref="attractions" minOccurs="0"/>
<xsd:element ref="areaHighlights" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- images for proprty overview -->
<xsd:element name="images">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="image" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- images for proprty overview -->
<xsd:element name="image">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="url" type="xsd:string"
minOccurs="1"/>
<xsd:element name="height" type="xsd:string"
minOccurs="0"/>
<xsd:element name="width" type="xsd:string"
minOccurs="0"/>
<xsd:element name="name" type="xsd:string"
minOccurs="0"/>
<xsd:element name="caption" type="xsd:string"
minOccurs="0"/>
<xsd:element name="primary" type="xsd:string"
minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- services info info proprty overview -->
<xsd:element name="servicesInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="service" type="xsd:string"
minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- room types for property -->
<xsd:element name="roomTypes">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="room" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- room info proprty -->
<xsd:element name="room">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="type" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="description" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--points of interest for property-->
<xsd:element name="pointsOfInterest">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="location" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- restaurants for property-->
<xsd:element name="restaurants">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="location" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- businesses for property-->
<xsd:element name="businesses">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="location" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- attractions for property-->
<xsd:element name="attractions">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="location" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- area highlights for property-->
<xsd:element name="areaHighlights">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="location" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- basic info for property info -->
<xsd:element name="basicInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="descriptionText" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="overviewText" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- policies for property info -->
<xsd:element name="policies">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="cancelPolicy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="guaranteePolicy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="checkInPolicy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="checkOutPolicy" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- locationInfo for property-->
<xsd:element name="locationInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="areaAirports" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="areasServed" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element ref="drivingDirections" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- drivingDirections for property-->
<xsd:element name="drivingDirections">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="location" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="directions" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="name" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- location for property info -->
<xsd:element name="location">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="distance" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="name" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--definition for Date -->
<xsd:element name="date">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="year" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="month" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="day" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- represents the customer element -->
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="clientId" type="xsd:string"
minOccurs="0"/>
<xsd:element name="firstName" type="xsd:string"
minOccurs="1"/>
<xsd:element name="lastName" type="xsd:string"
minOccurs="1"/>
<xsd:element name="phone" type="xsd:string"
minOccurs="1"/>
<xsd:element name="streetAddress1" type="xsd:string"
minOccurs="1"/>
<xsd:element name="streetAddress2" type="xsd:string"
minOccurs="0"/>
<xsd:element name="streetAddress3" type="xsd:string"
minOccurs="0"/>
<xsd:element name="streetAddress4" type="xsd:string"
minOccurs="0"/>
<xsd:element name="city" type="xsd:string"
minOccurs="1"/>
<xsd:element name="stateCode" type="xsd:string"
minOccurs="0"/>
<xsd:element name="countryCode" type="xsd:string"
minOccurs="1"/>
<xsd:element name="postalCode" type="xsd:string"
minOccurs="1"/>
<xsd:element name="email" type="xsd:string"
minOccurs="1"/>
<xsd:element name="subscribeNewsletter"
type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition for arrivalDate -->
<xsd:element name="arrivalDate">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="year" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="month" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="day" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition for departureDate -->
<xsd:element name="departureDate">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="year" type="xsd:string"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="month" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="day" type="xsd:string"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>