<?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="bookingModRequest">
		<xs:annotation>
			<xs:documentation>Booking request</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="requestAuditInfo"/>
				<xs:element name="bookingItem">
					<xs:annotation>
						<xs:documentation>Booking details</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:choice>
								<xs:sequence>
									<xs:element name="clientBookingReference" type="xs:string">
										<xs:annotation>
											<xs:documentation>Miki-assigned booking reference for the whole booking (eg. 36457)</xs:documentation>
										</xs:annotation>
									</xs:element>
									<xs:element name="bookingItemNumber" type="xs:integer">
										<xs:annotation>
											<xs:documentation>This number is simply used to sequence the items on the booking</xs:documentation>
										</xs:annotation>
									</xs:element>
								</xs:sequence>
								<xs:element name="mikiTourReference">
									<xs:annotation>
										<xs:documentation>Miki assigned tour reference (eg. YAI123400)</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:length value="9"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
							</xs:choice>
							<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" type="xs:date">
								<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="immediateConfirmationRequired" type="xs:boolean">
								<xs:annotation>
									<xs:documentation>0=Booking can be made on request, 1=Booking must be confirmed immediately</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="paxDomicile" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>ISO country code representing pax domicile of booking lead name</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element ref="hotelBookingDetail"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="requestType" type="xs:string" use="required" fixed="bookingModRequest">
				<xs:annotation>
					<xs:documentation>Used to ID the record to the receiving software</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="versionNumber" use="required" fixed="5.0.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="transferBookingDetail">
		<xs:annotation>
			<xs:documentation>Details required when booking a transfer product</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="subProducts">
					<xs:annotation>
						<xs:documentation>Sub products for transfer products are used to indicate then number of persons requiring the transfer service</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Mutiple sub products are allowed</xs:documentation>
							</xs:annotation>
							<xs:element name="subProduct">
								<xs:annotation>
									<xs:documentation>The sub product information required is simple - code and quantity</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="subProductCode">
											<xs:annotation>
												<xs:documentation>The sub product code is unique per product type</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:int">
													<xs:totalDigits value="5"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="subProductQuantity" fixed="1">
											<xs:annotation>
												<xs:documentation>The number of each sub product required</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:integer">
													<xs:minInclusive value="1"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="hotelProductCode">
					<xs:annotation>
						<xs:documentation>Transfers must be booked to/from hotels that are sold by Miki</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:length value="9"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="destinationCountry" minOccurs="0">
					<xs:annotation>
						<xs:documentation>The country the pax is departing for - used to calculate the transfer pick-up time</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string"/>
					</xs:simpleType>
				</xs:element>
				<xs:choice>
					<xs:annotation>
						<xs:documentation>Journey will be to/from either the airport or the rail station</xs:documentation>
					</xs:annotation>
					<xs:element name="flight" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Transfers can be to/from the airport, so flight-related information is required</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="flightTime" type="xs:time">
									<xs:annotation>
										<xs:documentation>The flight time, departure or arrival depending on direction of the transfer</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="flightNumber">
									<xs:annotation>
										<xs:documentation>The flight number, departure or arrival depending on direction of the transfer</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:minLength value="3"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="train" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Transfers can be to/from the rail station, so train-related information is required</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="trainTime" type="xs:time">
									<xs:annotation>
										<xs:documentation>The train time, departure or arrival depending on direction of the transfer</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="trainNumber" type="xs:string" minOccurs="0">
									<xs:annotation>
										<xs:documentation>The (optional) train number, departure or arrival depending on direction of the transfer</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:element name="luggage">
					<xs:annotation>
						<xs:documentation>The luggage information is passed to the supplier to ensure the size of the vehicle is suffiicent</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="largeBags">
								<xs:annotation>
									<xs:documentation>The number of large bags</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer">
										<xs:minInclusive value="0"/>
										<xs:maxInclusive value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="smallBags">
								<xs:annotation>
									<xs:documentation>The number of small bags</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer">
										<xs:minInclusive value="0"/>
										<xs:maxInclusive value="10"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<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" type="xs:integer">
					<xs:annotation>
						<xs:documentation>The number of nights stay</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="subProducts">
					<xs:annotation>
						<xs:documentation>Sub products for hotel products are used to indicate the number of each room type required</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Mutiple sub products are allowed</xs:documentation>
							</xs:annotation>
							<xs:element name="subProduct">
								<xs:annotation>
									<xs:documentation>The sub product information required is simple - code and quantity+ names per room</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="subProductCode">
											<xs:annotation>
												<xs:documentation>The sub product code is unique per product type</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:pattern value="[0-9]{5}"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="subProductQuantity">
											<xs:annotation>
												<xs:documentation>The number of each sub product required</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:integer">
													<xs:minInclusive value="1"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="roomingList">
											<xs:annotation>
												<xs:documentation>The rooming list is the list of names per room</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence maxOccurs="unbounded">
													<xs:annotation>
														<xs:documentation>Multiple rooms of each type are allowed</xs:documentation>
													</xs:annotation>
													<xs:element name="room">
														<xs:annotation>
															<xs:documentation>Information is required per room</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="roomNumber">
																	<xs:annotation>
																		<xs:documentation>The room number is used to ensure that names are assigned to the correct room when multiple rooms of the same type are requested</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="paxNames">
																	<xs:annotation>
																		<xs:documentation>All names are required for all rooms</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:sequence maxOccurs="unbounded">
																			<xs:annotation>
																				<xs:documentation>Multiple names per room required</xs:documentation>
																			</xs:annotation>
																			<xs:element name="paxName" type="nameType">
																				<xs:annotation>
																					<xs:documentation>Name of pax</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="preferences" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Optional preferences are non-guarantered requests that we will forward to the hotel</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="floor" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Preferred floor: 0=Any, 1=Ground, 2=Middle, 3=High</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="0"/>
										<xs:enumeration value="1"/>
										<xs:enumeration value="2"/>
										<xs:enumeration value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="adjoiningRooms" type="xs:boolean" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Adjoingin rooms preferred: 0=No, 1=Yes</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="nonSmoking" type="xs:boolean" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Non-smoking room preferred: 0=No, 1=Yes</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="nameType">
		<xs:annotation>
			<xs:documentation>Standard name format</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">
				<xs:annotation>
					<xs:documentation>The person's first name or initial</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="secondName">
				<xs:annotation>
					<xs:documentation>The second name of the person</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="sightseeingBookingDetail">
		<xs:annotation>
			<xs:documentation>Details required when booking a sightseeing product</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="subProducts">
					<xs:annotation>
						<xs:documentation>Sub products for sightseeing products are used to indicate then number of adults and children</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Mutiple sub products are allowed</xs:documentation>
							</xs:annotation>
							<xs:element name="subProduct">
								<xs:annotation>
									<xs:documentation>The sub product information required is simple - code and quantity</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="subProductCode">
											<xs:annotation>
												<xs:documentation>The sub product code is unique per product type</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:int">
													<xs:totalDigits value="5"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="subProductQuantity">
											<xs:annotation>
												<xs:documentation>The number of each sub product required</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:integer">
													<xs:minInclusive value="1"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="requestAuditInfo">
		<xs:annotation>
			<xs:documentation>Standard audit information sent with all requests</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="requestPassword" type="xs:string">
					<xs:annotation>
						<xs:documentation>Daily password used to validate request</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="requestID">
					<xs:annotation>
						<xs:documentation>Unique request reference used for audit purposes</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:integer">
							<xs:totalDigits value="9"/>
							<xs:minInclusive value="1"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="requestTime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Time client sent request to Miki</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
