<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 (http://www.altova.com) by Sanjeev (Mikki Travel) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="bookingResponse">
		<xs:annotation>
			<xs:documentation>Response to booking request</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="responseAuditInfo"/>
				<xs:element name="bookingHeader" minOccurs="0">
					<xs:annotation>
						<xs:documentation>If this element is present, the booking is confirmed</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="yourReference" type="xs:string">
								<xs:annotation>
									<xs:documentation>This field can be used to hold your reference to the booking</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="clientBookingReference" type="xs:string">
								<xs:annotation>
									<xs:documentation>This is the Miki-assigned booking reference for the whole booking</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="totalBookingPrice">
								<xs:annotation>
									<xs:documentation>Total price for all items on the booking</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:decimal">
											<xs:attribute name="currencyCode" type="xs:string" use="required"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
							<xs:element name="bookingItems">
								<xs:annotation>
									<xs:documentation>Main part of booking = booking details per item</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence maxOccurs="unbounded">
										<xs:annotation>
											<xs:documentation>Multiple items are allowed</xs:documentation>
										</xs:annotation>
										<xs:element name="bookingItem">
											<xs:annotation>
												<xs:documentation>Booking details</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="bookingItemNumber" type="xs:integer">
														<xs:annotation>
															<xs:documentation>The incremental item numner of the booking, starting from 1</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="mikiTourReference" type="xs:string">
														<xs:annotation>
															<xs:documentation>This is the Miki-assigned tour reference for this booking item</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="tourStatus" type="xs:string">
														<xs:annotation>
															<xs:documentation>Tour status: 25=On request, 30=Confirmed, 70=Rejected, 90=Cancelled</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="supplierRef" minOccurs="0">
														<xs:annotation>
															<xs:documentation>Supplier booking reference</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="productCode">
														<xs:annotation>
															<xs:documentation>This field holds the unique code for the hotel or service </xs:documentation>
														</xs:annotation>
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:length value="9"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="serviceDate">
														<xs:annotation>
															<xs:documentation>When booking hotel products, the Service Date is equal to the Check In date</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="leadName" type="nameType">
														<xs:annotation>
															<xs:documentation>The lead name that will be passed to the supplier</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="totalProductPrice">
														<xs:annotation>
															<xs:documentation>Total price for the product requested</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:simpleContent>
																<xs:extension base="xs:decimal">
																	<xs:attribute name="currencyCode" type="xs:string" use="required"/>
																</xs:extension>
															</xs:simpleContent>
														</xs:complexType>
													</xs:element>
													<xs:element ref="hotelBookingDetail" minOccurs="0"/>
													<xs:element ref="sightseeingBookingDetail" minOccurs="0"/>
													<xs:element ref="transferBookingDetail" minOccurs="0"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element ref="errors" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="responseType" type="xs:string" use="required" fixed="bookingResponse">
				<xs:annotation>
					<xs:documentation>Used to ID the record to the receiving software</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="versionNumber" type="xs:string" use="required" fixed="5.0">
				<xs:annotation>
					<xs:documentation>Indicates the version of the request that is being used. </xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="responseAuditInfo">
		<xs:annotation>
			<xs:documentation>Standard audit information sent with all responses</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="agentCode" type="xs:string">
					<xs:annotation>
						<xs:documentation>Unique reference used to identify the client to Miki</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="responseID" type="xs:integer">
					<xs:annotation>
						<xs:documentation>Miki reference used for audit purposes</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="responseTime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>The time that the XML message was sent from Miki's server</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="requestID" type="xs:integer">
					<xs:annotation>
						<xs:documentation>The client's request ID that triggered this response</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="errors">
		<xs:annotation>
			<xs:documentation>Standard error section</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Multiple errors may be returned</xs:documentation>
				</xs:annotation>
				<xs:element name="error">
					<xs:annotation>
						<xs:documentation>Error content</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="errorCode">
								<xs:annotation>
									<xs:documentation>Miki error code</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer"/>
								</xs:simpleType>
							</xs:element>
							<xs:element name="errorText">
								<xs:annotation>
									<xs:documentation>Full description of error</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string"/>
								</xs:simpleType>
							</xs:element>
							<xs:element name="errorSolution">
								<xs:annotation>
									<xs:documentation>Proposed solution to error</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string"/>
								</xs:simpleType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="subProducts">
		<xs:annotation>
			<xs:documentation>Standard sub product information</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Multiple sub products can be booked</xs:documentation>
				</xs:annotation>
				<xs:element name="subProduct">
					<xs:annotation>
						<xs:documentation>The price breakdwon for each sub product</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="subProductCode">
								<xs:annotation>
									<xs:documentation>The unique sub product code</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:length value="5"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="subProductQuantity" type="xs:integer">
								<xs:annotation>
									<xs:documentation>The quantity of sub products requested</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="subProductPrice">
								<xs:annotation>
									<xs:documentation>The price per sub product code</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:decimal">
											<xs:attribute name="currencyCode" type="xs:string" use="required">
												<xs:annotation>
													<xs:documentation>The ISO currency of the price</xs:documentation>
												</xs:annotation>
											</xs:attribute>
											<xs:attribute name="supplierCode" type="xs:string">
												<xs:annotation>
													<xs:documentation>Code for rate provider</xs:documentation>
												</xs:annotation>
											</xs:attribute>
											<xs:attribute name="supplierReference" type="xs:string">
												<xs:annotation>
													<xs:documentation>Supplier reference/code for product</xs:documentation>
												</xs:annotation>
											</xs:attribute>
											<xs:attribute name="supplierRateCode" type="xs:string">
												<xs:annotation>
													<xs:documentation>Supplier's code for rate</xs:documentation>
												</xs:annotation>
											</xs:attribute>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="nameType">
		<xs:annotation>
			<xs:documentation>Standard name (title is optional)</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="title" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The title field is optional, as it is not applicable for certain languages</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:maxLength value="4"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="firstName" type="xs:string">
				<xs:annotation>
					<xs:documentation>The person's first name or initial</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="secondName" type="xs:string">
				<xs:annotation>
					<xs:documentation>The second name of the person</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="hotelBookingDetail">
		<xs:annotation>
			<xs:documentation>Details required when booking a hotel product</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="nights">
					<xs:annotation>
						<xs:documentation>The number of nights stay requested</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:integer"/>
					</xs:simpleType>
				</xs:element>
				<xs:element name="priceBreakdown">
					<xs:annotation>
						<xs:documentation>Includes the price per room per night</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Prices returned for each night of the stay</xs:documentation>
							</xs:annotation>
							<xs:element name="prices">
								<xs:annotation>
									<xs:documentation>Prices per room</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="serviceDate" type="xs:date">
											<xs:annotation>
												<xs:documentation>Date the service is operated, or the stay date for hotel products</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="subProducts"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="roomingList">
					<xs:annotation>
						<xs:documentation>Includes the names per room</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Multiple room types possible</xs:documentation>
							</xs:annotation>
							<xs:element name="roomNames">
								<xs:annotation>
									<xs:documentation>Names for this room type</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="subProductCode" type="xs:string">
											<xs:annotation>
												<xs:documentation>The unique sub product code</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="rooms">
											<xs:annotation>
												<xs:documentation>Details for this room type</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence maxOccurs="unbounded">
													<xs:annotation>
														<xs:documentation>Multiple rooms of each type possible</xs:documentation>
													</xs:annotation>
													<xs:element name="room">
														<xs:annotation>
															<xs:documentation>Name details per room</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="roomNumber" type="xs:int">
																	<xs:annotation>
																		<xs:documentation>Incremental room number, starting from 1</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="paxNames">
																	<xs:annotation>
																		<xs:documentation>Names per room</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:sequence maxOccurs="unbounded">
																			<xs:annotation>
																				<xs:documentation>Mutiple names possible</xs:documentation>
																			</xs:annotation>
																			<xs:element name="paxName" type="nameType">
																				<xs:annotation>
																					<xs:documentation>All names are required for all rooms</xs:documentation>
																				</xs:annotation>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="breakfasts">
					<xs:annotation>
						<xs:documentation>Breakdown of breakfast included per service date</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Multiple breakfasts during stay possible</xs:documentation>
							</xs:annotation>
							<xs:element name="breakfast">
								<xs:annotation>
									<xs:documentation>Breakfast details</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="serviceDate" type="xs:date">
											<xs:annotation>
												<xs:documentation>Date the service is operated, or the stay date for hotel products</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="breakfastDescription" type="xs:string">
											<xs:annotation>
												<xs:documentation>Description of breakfast included with the stay on the service date</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="preferences">
					<xs:annotation>
						<xs:documentation>Non-guaranteed room options</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="floor" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Floor preference</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="nonSmoking" type="xs:boolean" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Non smoking room preferred</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="adjoiningRooms" type="xs:boolean" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Adjoining rooms preferred</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="cancellationPolicies">
					<xs:annotation>
						<xs:documentation>Breakdown of cacellation policy included per service date</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Multiple cancellation policies during stay possible</xs:documentation>
							</xs:annotation>
							<xs:element name="cancellationPolicy">
								<xs:annotation>
									<xs:documentation>Cancellation Policy detail</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="serviceDate">
											<xs:annotation>
												<xs:documentation>Date the service is operated, or the stay date for hotel products</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="cancellationPolicyCode"/>
										<xs:element name="cancellationPolicyDescription">
											<xs:annotation>
												<xs:documentation>Cancellation policy Description included with the stay on the service date</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="sightseeingBookingDetail">
		<xs:annotation>
			<xs:documentation>Details returned when booking a sightseeing product</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="subProducts"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="transferBookingDetail">
		<xs:annotation>
			<xs:documentation>Details required when booking a transfer product</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="subProducts"/>
				<xs:element name="pickUpTime">
					<xs:annotation>
						<xs:documentation>Pick-up time as calculated or entered</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:time"/>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="hotelName" type="xs:string" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Name of hotel for pick-up or drop-off</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="cancellationPolicy">
					<xs:annotation>
						<xs:documentation>Cancellation policy of the transfer product</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="cancellationDeadline">
								<xs:annotation>
									<xs:documentation>Cancellation deadline</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="cancellationDeadlineDate" type="xs:date"/>
										<xs:element name="cancellationDeadlineTime" type="xs:time"/>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="cancellationCharge" type="t_amount" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Cancellation charge if cancelled after the cancellation deadline</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="bookedVia">
					<xs:annotation>
						<xs:documentation>3rd party supplier info</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="supplierName" type="xs:string">
								<xs:annotation>
									<xs:documentation>Name of 3rd party supplier</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="supplierTelephone" type="xs:string">
								<xs:annotation>
									<xs:documentation>Contact number for 3rd party supplier</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="t_amount">
		<xs:simpleContent>
			<xs:extension base="xs:decimal">
				<xs:attribute name="currencyCode" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>ISO currency code</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:schema>
