<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://htng.org/PWSWG/2006/08/SingleGuestItinerary/Reservation/Types" xmlns:tns="http://htng.org/PWSWG/2006/08/SingleGuestItinerary/Reservation/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="http://htng.org/PWSWG/2006/08/SingleGuestItinerary/Activity/Types" xmlns:c="http://htng.org/PWSWG/2006/08/SingleGuestItinerary/Common/Types" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://htng.org/PWSWG/2006/08/SingleGuestItinerary/Common/Types" schemaLocation="Common.xsd"/>
	<xs:import namespace="http://htng.org/PWSWG/2006/08/SingleGuestItinerary/Activity/Types" schemaLocation="Activity.xsd"/>
	<xs:element name="GuestStatusNotificationRequest">
		<xs:annotation>
			<xs:documentation>Message sent when executing a guest status notification.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="GuestStatus" type="tns:GuestStatusNotification"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GuestStatusNotificationResponse">
		<xs:annotation>
			<xs:documentation>Message received on a guest status notification.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Result" type="c:ResultStatus"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ReservationLookupRequest">
		<xs:annotation>
			<xs:documentation>Message sent when executing a reservation lookup.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReservationLookupData" type="tns:ReservationLookup"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ReservationLookupResponse">
		<xs:annotation>
			<xs:documentation>Message received on a reservation lookup.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Result" type="c:ResultStatus"/>
				<xs:element name="ReservationLookups" type="tns:ReservationLookupResultList" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="FetchReservationRequest">
		<xs:annotation>
			<xs:documentation>Message sent when fetching a reservation.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReservationID" type="c:UniqueID"/>
				<xs:element name="ResortId" type="xs:string" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="FetchReservationResponse">
		<xs:annotation>
			<xs:documentation>Message received when  fetching a reservation.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Result" type="c:ResultStatus"/>
				<xs:element name="ReservationData" type="tns:ReservationFetch" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="GuestStatusNotification">
		<xs:sequence>
			<xs:element name="ReservationID" type="c:UniqueID"/>
			<xs:element name="ProfileIDs" type="c:UniqueIDList" minOccurs="0"/>
			<xs:element name="roomNumber" type="xs:string"/>
			<xs:element name="checkInDate" type="xs:dateTime"/>
			<xs:element name="checkOutDate" type="xs:dateTime" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="reservationStatus" type="c:ReservationStatusType" use="required"/>
		<xs:attribute name="otherReservationStatus" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="PackageElement">
		<xs:annotation>
			<xs:documentation>Package data attached to a reservation.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ElementCode" type="xs:string"/>
			<xs:element name="ElementDescription" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PackageElementList">
		<xs:annotation>
			<xs:documentation>A collection of packages attached to a reservation.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="PackageElement" type="tns:PackageElement" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ReservationLookupResultList">
		<xs:annotation>
			<xs:documentation>Collection of reservation lookup results.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ReservationLookup" type="tns:ReservationLookup" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ReservationFetch">
		<xs:annotation>
			<xs:documentation>Data returned when fetching a reservation.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ReservationID" type="c:UniqueID"/>
			<xs:element name="ConfirmationNO" type="xs:string"/>
			<xs:element name="ProfileID" type="c:UniqueID" minOccurs="0"/>
			<xs:element name="ProfileInfo" type="c:PersonName" minOccurs="0"/>
			<xs:element name="ArrivalDate" type="xs:dateTime"/>
			<xs:element name="DepartureDate" type="xs:dateTime"/>
			<xs:element name="ShortRateCode" type="xs:string" minOccurs="0"/>
			<xs:element name="ShortRoomType" type="xs:string" minOccurs="0"/>
			<xs:element name="PackageElements" type="tns:PackageElementList" minOccurs="0"/>
			<xs:element name="Activities" type="a:ActivityList" minOccurs="0"/>
			<xs:element name="RoomNumber" type="xs:string" minOccurs="0"/>
			<xs:element name="ResortId" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="reservationStatus" type="c:ReservationStatusType" use="required"/>
		<xs:attribute name="otherReservationStatus" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="ReservationLookup">
		<xs:annotation>
			<xs:documentation>Defines the queryied data when executing a reservation lookup.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ReservationID" type="c:UniqueID" minOccurs="0"/>
			<xs:element name="ProfileID" type="c:UniqueID" minOccurs="0"/>
			<xs:element name="RoomNumber" type="xs:string" minOccurs="0"/>
			<xs:element name="DateRange" type="a:OGTimeSpan" minOccurs="0"/>
			<xs:element name="ProfileInfo" type="c:PersonName" minOccurs="0"/>
			<xs:element name="ReservationAddress" type="c:Address" minOccurs="0"/>
			<xs:element name="MembershipID" type="c:Membership" minOccurs="0"/>
			<xs:element name="ConfirmationNo" type="xs:string" minOccurs="0"/>
			<xs:element name="ResortId" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="reservationStatus" type="c:ReservationStatusType" use="required"/>
		<xs:attribute name="otherReservationStatus" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:element name="GuestMessageRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReservationID" type="c:UniqueID"/>
				<xs:element name="From" type="xs:string"/>
				<xs:element name="Contact" type="xs:string" minOccurs="0"/>
				<xs:element name="Message">
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:string">
								<xs:attribute name="notify" type="xs:boolean" use="optional"/>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GuestMessageResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Result" type="c:ResultStatus"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
