<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.001" id="OTA2003A2010B">
  <xs:annotation>
    <xs:documentation xml:lang="en">All Schema files in the OpenTravel Alliance specification are made available according to the terms defined by the OpenTravel License Agreement at http://www.opentravel.org/Specifications/Default.aspx.</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="ActionType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Identifes an action to take place.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Add-Update">
        <xs:annotation>
          <xs:documentation xml:lang="en">Typically used to add an item where it does not exist or to update an item where it does exist.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Cancel">
        <xs:annotation>
          <xs:documentation xml:lang="en">Typically used to cancel an existing item.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Delete">
        <xs:annotation>
          <xs:documentation xml:lang="en">Typically used to remove specified data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Add">
        <xs:annotation>
          <xs:documentation xml:lang="en">Typically used to add data whether data already exists or not.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Replace">
        <xs:annotation>
          <xs:documentation xml:lang="en">Typically used to overlay existing data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaLength1">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Alpha String, length exactly 1.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z]{1}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaLength1to2">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Alpha String, length 1 to 2.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z]{1,2}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaLength3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Alpha String, length exactly 3.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z]{3}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaLength4">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Alpha String, length exactly 4.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z]{4}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaNumericStringLength1">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Alpha-Numeric Strings, length 1.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-zA-Z]{1}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaNumericStringLength1to3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Alpha-Numeric Strings, length 1 to 3.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-zA-Z]{1,3}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaNumericStringLength1to8">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Alpha-Numeric Strings, length 1 to 8.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-zA-Z]{1,8}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaNumericStringLength1to14">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used forAlpha-Numeric Strings, length 1 to 14.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-zA-Z]{1,14}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AlphaNumericStringLength1to19">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used forAlpha-Numeric Strings, length 1 to 19.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-zA-Z]{1,19}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AmountDeterminationType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used to indicate if an amount is inclusive or exclusive of other charges, such as taxes, or is cumulative (amounts have been added to each other).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Inclusive" />
      <xs:enumeration value="Exclusive" />
      <xs:enumeration value="Cumulative" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="CabinType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifies the cabin type (e.g. first, business, economy).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Cockpit">
        <xs:annotation>
          <xs:documentation xml:lang="en">Cockpit area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Suite">
        <xs:annotation>
          <xs:documentation xml:lang="en">Suites or Sleep compartments.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="First">
        <xs:annotation>
          <xs:documentation xml:lang="en">First class compartment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PremiumBusiness">
        <xs:annotation>
          <xs:documentation xml:lang="en">Premium Business class compartment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Business">
        <xs:annotation>
          <xs:documentation xml:lang="en">Business class compartment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PremiumEconomy">
        <xs:annotation>
          <xs:documentation xml:lang="en">Premium Economy class compartment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Economy">
        <xs:annotation>
          <xs:documentation xml:lang="en">Economy class compartment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DateOrDateTimeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A construct to validate either a date or a dateTime value.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="xs:date xs:dateTime" />
  </xs:simpleType>
  <xs:simpleType name="DateOrTimeOrDateTimeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A construct to validate either a date or a time or a dateTime value.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="xs:date xs:dateTime xs:time" />
  </xs:simpleType>
  <xs:simpleType name="DateOrMonthDay">
    <xs:annotation>
      <xs:documentation xml:lang="en">A construct to validate either a date or a month and day value.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="xs:date xs:gMonthDay" />
  </xs:simpleType>
  <xs:simpleType name="DayOfWeekType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A three letter abbreviation for the days of the week (e.g. may be the starting day for the availability requested, days of operation, rate effective day, etc.).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Mon" />
      <xs:enumeration value="Tue" />
      <xs:enumeration value="Wed" />
      <xs:enumeration value="Thu" />
      <xs:enumeration value="Fri" />
      <xs:enumeration value="Sat" />
      <xs:enumeration value="Sun" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DistanceUnitNameType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Defines a set of valid values for the units in which distance is measured (i.e. mile or kilometer).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Mile" />
      <xs:enumeration value="Km" />
      <xs:enumeration value="Block" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DurationType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Allows for the specification of a night duration.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="xs:duration NightDurationType" />
  </xs:simpleType>
  <xs:simpleType name="FlightNumberType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Identifies a flight number (1 to 4 numbers followed by optional uppercase A - Z, which specifies an operational suffix) or OPEN or ARNK.</xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="[0-9]{1,4}[A-Z]?" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="OPEN">
            <xs:annotation>
              <xs:documentation xml:lang="en">Used in lieu of a flight number when a specific flight number is unknown but service is present.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="ARNK">
            <xs:annotation>
              <xs:documentation xml:lang="en">Used in lieu of a flight number when surface transportation is used when there is a break in the continuity of the flight itinerary.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="FlightTypeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifies a particular type of flight (e.g. direct, stopover).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Nonstop">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates the flight does not make any scheduled stops between 2 points.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Direct">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates the flight makes a scheduled stop(s) between 2 points.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Connection">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates the flight will require a change of aircraft at a connecting point(s).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SingleConnection">
        <xs:annotation>
          <xs:documentation xml:lang="en">A trip with only one connection.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DoubleConnection">
        <xs:annotation>
          <xs:documentation xml:lang="en">A trip with only two connections.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OneStopOnly">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates that the flight makes only one stop.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="HotelResStatusType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A union between TransactionActionType and PMS_ResStatusType. Used in messages that communicate between reservation systems as well as between a reservation and property management system. In addition to the TransactionActionType and PMS_ResStatusType, the UpperCaseAlphaLength1to2 may be used for company specifc codes.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="PMS_ResStatusType TransactionActionType UpperCaseAlphaLength1to2" />
  </xs:simpleType>
  <xs:simpleType name="IncludeExcludeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifies the applicability of the criteria to which it is related.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Include" />
      <xs:enumeration value="Exclude" />
      <xs:enumeration value="Required">
        <xs:annotation>
          <xs:documentation xml:lang="en">The associated item is required.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Allowed">
        <xs:annotation>
          <xs:documentation xml:lang="en">The associated item is allowed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InfoSourceType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used to specify the source of the data being exchanged.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="32" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="InventoryStatusType">
    <xs:annotation>
      <xs:documentation xml:lang="en">This defines a set of valid status values, allowing the selection of a specific group based on availability, or allowing the reservation status to be made known.  Examples of such values include Available, OnRequest, Confirmed, etc.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Available" />
      <xs:enumeration value="Unavailable" />
      <xs:enumeration value="OnRequest" />
      <xs:enumeration value="Confirmed" />
      <xs:enumeration value="All" />
      <xs:enumeration value="Waitlist" />
      <xs:enumeration value="SupplierBooked">
        <xs:annotation>
          <xs:documentation xml:lang="en">The booking has already been made directly through the supplier.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ISO3166">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifies a 2 character country code as defined in ISO3166.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z]{2}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ListOfISO3166">
    <xs:annotation>
      <xs:documentation xml:lang="en">List of country codes.</xs:documentation>
    </xs:annotation>
    <xs:list itemType="ISO3166" />
  </xs:simpleType>
  <xs:simpleType name="ListOfOTA_CodeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">List of OpenTravel Codes.</xs:documentation>
    </xs:annotation>
    <xs:list itemType="OTA_CodeType" />
  </xs:simpleType>
  <xs:simpleType name="ListOfRPH">
    <xs:annotation>
      <xs:documentation xml:lang="en">List of Reference Place Holders.</xs:documentation>
    </xs:annotation>
    <xs:list itemType="RPH_Type" />
  </xs:simpleType>
  <xs:simpleType name="ListOfStringLength1to8">
    <xs:annotation>
      <xs:documentation xml:lang="en">List of StringLength1to8.</xs:documentation>
    </xs:annotation>
    <xs:list itemType="StringLength1to8" />
  </xs:simpleType>
  <xs:simpleType name="MMYYDate">
    <xs:annotation>
      <xs:documentation xml:lang="en">Month and year information.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="(0[1-9]|1[0-2])[0-9][0-9]" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MealType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Airline meal types.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="AVML">
        <xs:annotation>
          <xs:documentation xml:lang="en">AVML - Asian Veg</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BBML">
        <xs:annotation>
          <xs:documentation xml:lang="en">BBML - Baby/Infant Food</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BLML">
        <xs:annotation>
          <xs:documentation xml:lang="en">BLML - Bland Meal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="CHML">
        <xs:annotation>
          <xs:documentation xml:lang="en">CHML - Child Meal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DBML">
        <xs:annotation>
          <xs:documentation xml:lang="en">DBML - Diabetic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FPML">
        <xs:annotation>
          <xs:documentation xml:lang="en">FPML - Fruit Meal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="GFML">
        <xs:annotation>
          <xs:documentation xml:lang="en">GFML - Gluten Free</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HFML">
        <xs:annotation>
          <xs:documentation xml:lang="en">HFML - High Fiber</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="HNML">
        <xs:annotation>
          <xs:documentation xml:lang="en">HNML - Hindu Meal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="KSML">
        <xs:annotation>
          <xs:documentation xml:lang="en">KSML - Kosher</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LCML">
        <xs:annotation>
          <xs:documentation xml:lang="en">LCML - Low Calorie</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LFML">
        <xs:annotation>
          <xs:documentation xml:lang="en">LFML - Low Cholesterol</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LPML">
        <xs:annotation>
          <xs:documentation xml:lang="en">LPML - Low Protein</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="LSML">
        <xs:annotation>
          <xs:documentation xml:lang="en">LSML - Low Sodium/No Salt</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MOML">
        <xs:annotation>
          <xs:documentation xml:lang="en">MOML - Moslem</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NLML">
        <xs:annotation>
          <xs:documentation xml:lang="en">NLML - Non-Lactose</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ORML">
        <xs:annotation>
          <xs:documentation xml:lang="en">ORML - Oriental</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PRML">
        <xs:annotation>
          <xs:documentation xml:lang="en">PRML - Low Purin</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RVML">
        <xs:annotation>
          <xs:documentation xml:lang="en">RVML - Raw Vegetarian</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SFML">
        <xs:annotation>
          <xs:documentation xml:lang="en">SFML - Seafood</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SPML">
        <xs:annotation>
          <xs:documentation xml:lang="en">SPML - Special/Specify</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VGML">
        <xs:annotation>
          <xs:documentation xml:lang="en">VGML - Vegetarian/Non Dairy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VLML">
        <xs:annotation>
          <xs:documentation xml:lang="en">VLML - Vegetarian/Milk/Eggs</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RGML">
        <xs:annotation>
          <xs:documentation xml:lang="en">Designates a regular meal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Money">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifies an amount, max 3 decimals.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:fractionDigits value="3" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MoneyOrPercentageType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A union of money and percentage so that the appropriate data can be sent in a single field.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="Money Percentage" />
  </xs:simpleType>
  <xs:simpleType name="NightDurationType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Provides the ability to define a duration in terms of nights rather than days.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="P[0-9]{1,3}N" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric0to4">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 0 to 4 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="4" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric0to99">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 0 to 99 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="99" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric0to999">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 0 to 999 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="999" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric0to9999">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 0 to 9999 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="9999" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric1to3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 1 to 3 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1" />
      <xs:maxInclusive value="3" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric1to4">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 1 to 4 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1" />
      <xs:maxInclusive value="4" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric1to99">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 1 to 99 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1" />
      <xs:maxInclusive value="99" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric1to999">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 1 to 999 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1" />
      <xs:maxInclusive value="999" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Numeric1to9999">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric values, from 1 to 9999 inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1" />
      <xs:maxInclusive value="9999" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength1to16">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric Strings, length 1 to 16.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,16}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength1to19">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric Strings, length 1 to 19.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,19}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength2">
    <xs:annotation>
      <xs:documentation>Used for Numeric Strings, length exactly 2.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{2}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength4">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric Strings, length exactly 4.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{4}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength1to3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric Strings length 1 to 3.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,3}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength1to5">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric Strings, length 1 to 5.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,5}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength1to8">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Numeric Strings, length 1 to 8.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,8}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="NumericStringLength15to50">
    <xs:annotation>
      <xs:documentation>Used for Numeric Strings, length 15 to 50.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{15,50}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OTA_CodeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for codes in the OpenTravel Code tables. Possible values of this pattern are 1, 101, 101.EQP, or 101.EQP.X.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9A-Z]{1,3}(\.[A-Z]{3}(\.X){0,1}){0,1}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OfficeLocationType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifes the location type of an office (e.g. main, field, division).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Main" />
      <xs:enumeration value="Field" />
      <xs:enumeration value="Division" />
      <xs:enumeration value="Regional" />
      <xs:enumeration value="Remote" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PaymentCardCodeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">The 2 digit code that identifies the credit card.</xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="UpperCaseAlphaLength1to2">
          <xs:enumeration value="AX">
            <xs:annotation>
              <xs:documentation xml:lang="en">American Express</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="BC">
            <xs:annotation>
              <xs:documentation xml:lang="en">Bank Card</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="BL">
            <xs:annotation>
              <xs:documentation xml:lang="en">Carte Bleu</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="CB">
            <xs:annotation>
              <xs:documentation xml:lang="en">Carte Blanche</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="DN">
            <xs:annotation>
              <xs:documentation xml:lang="en">Diners Club</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="DS">
            <xs:annotation>
              <xs:documentation xml:lang="en">Discover Card</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="EC">
            <xs:annotation>
              <xs:documentation xml:lang="en">Eurocard</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="JC">
            <xs:annotation>
              <xs:documentation xml:lang="en">Japanese Credit Bureau Credit Card</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="MA">
            <xs:annotation>
              <xs:documentation xml:lang="en">Maestro</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="MC">
            <xs:annotation>
              <xs:documentation xml:lang="en">Master Card</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="TP">
            <xs:annotation>
              <xs:documentation xml:lang="en">Universal Air Travel Card</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="VI">
            <xs:annotation>
              <xs:documentation xml:lang="en">Visa</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:annotation>
          <xs:documentation xml:lang="en">This is intended to be used when the above enumeration list does not meet your needs.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="UpperCaseAlphaLength1to2" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="Percentage">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for percentage values.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0.00" />
      <xs:maxInclusive value="100.00" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PreferLevelType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used to specify a preference level for something that is or will be requested (e.g. a supplier of a service, a type of service, a form of payment, etc.).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Only">
        <xs:annotation>
          <xs:documentation xml:lang="en">Preference level that indicates request is only for a specific criterion.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Unacceptable">
        <xs:annotation>
          <xs:documentation xml:lang="en">Preference level that indicates request is unnacceptable for a specific criterion.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Preferred">
        <xs:annotation>
          <xs:documentation xml:lang="en">Preference level that indicates request is preferred for a specific criterion.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Required">
        <xs:annotation>
          <xs:documentation xml:lang="en">Preference level that indicates request is required for a specific criterion.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NoPreference">
        <xs:annotation>
          <xs:documentation xml:lang="en">Preference level that indicates there is no preference.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PricingType">
    <xs:annotation>
      <xs:documentation xml:lang="en">An enumerated type that defines how a service is priced.  Values:  Per stay,  Per person, Per night, Per person per night,  Per use.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="StringLength1to32">
      <xs:enumeration value="Per stay" />
      <xs:enumeration value="Per person" />
      <xs:enumeration value="Per night" />
      <xs:enumeration value="Per person per night" />
      <xs:enumeration value="Per use" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PMS_ResStatusType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Statuses that exist in a property management system (PMS).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="StringLength1to16">
      <xs:enumeration value="Reserved">
        <xs:annotation>
          <xs:documentation xml:lang="en">The reservation has been reserved.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Requested">
        <xs:annotation>
          <xs:documentation xml:lang="en">The reservation has been requested but has not yet been reserved.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Request denied">
        <xs:annotation>
          <xs:documentation xml:lang="en">The request for the reservation has been denied.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="No-show">
        <xs:annotation>
          <xs:documentation xml:lang="en">This reservation is in "no show" status. Typically this means the person for whom this reservation belonged did not check in and the reservation was moved to "no show" status.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Cancelled">
        <xs:annotation>
          <xs:documentation xml:lang="en">This reservation has been cancelled.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="In-house">
        <xs:annotation>
          <xs:documentation xml:lang="en">This reservation has been check in, and is in "in-house" status.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Checked out">
        <xs:annotation>
          <xs:documentation xml:lang="en">The guest has checked out and the reservation has been changed to "Checked out" status</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Waitlisted">
        <xs:annotation>
          <xs:documentation xml:lang="en">This reservation is in waitlist status and the reservation has not been confirmed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RPH_Type">
    <xs:annotation>
      <xs:documentation xml:lang="en">The Reference Place Holder (RPH) is an index code used to identify an instance in a collection of like items (e.g. used to assign individual passengers or clients to particular itinerary items).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,8}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RateIndicatorType">
    <xs:annotation>
      <xs:documentation xml:lang="en">An enumerated type indicating special conditions with the rate  Valid values: ChangeDuringStay, MultipleNights, Exclusive, OnRequest, LimitedAvailability.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="StringLength1to32">
      <xs:enumeration value="ChangeDuringStay" />
      <xs:enumeration value="MultipleNights" />
      <xs:enumeration value="Exclusive">
        <xs:annotation>
          <xs:documentation xml:lang="en">Availability is limited based on guest qualification criteria e.g. AAA member or Government Employee</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnRequest" />
      <xs:enumeration value="LimitedAvailability" />
      <xs:enumeration value="AvailableForSale" />
      <xs:enumeration value="ClosedOut" />
      <xs:enumeration value="OtherAvailable" />
      <xs:enumeration value="UnableToProcess">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates an issue that precluded the ability to provide the information.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NoAvailability" />
      <xs:enumeration value="RoomTypeClosed" />
      <xs:enumeration value="RatePlanClosed" />
      <xs:enumeration value="LOS_Restricted" />
      <xs:enumeration value="Restricted">
        <xs:annotation>
          <xs:documentation xml:lang="en">Availability is limited based on distribution channel qualification criteria (e.g., Expedia or Sabre).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DoesNotExist">
        <xs:annotation>
          <xs:documentation xml:lang="en">The rate plan does not exist.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RatePeriodSimpleType">
    <xs:annotation>
      <xs:documentation xml:lang="en">The RatePeriodSimpleType simple type defines a set of valid values for the type of rate that may be applied.  Typically rates differ based upon the duration, and the actual rate is then expressed in terms of the period of the rental.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Hourly" />
      <xs:enumeration value="Daily" />
      <xs:enumeration value="Weekly" />
      <xs:enumeration value="Monthly" />
      <xs:enumeration value="WeekendDay" />
      <xs:enumeration value="Other" />
      <xs:enumeration value="Package">
        <xs:annotation>
          <xs:documentation xml:lang="en">The rate period is based on the package.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Bundle">
        <xs:annotation>
          <xs:documentation xml:lang="en">The rate is the same regardless of the number of days the vehicle is rented.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Total">
        <xs:annotation>
          <xs:documentation xml:lang="en">The rate is the total, no specific rate period.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SeatDirectionType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Identifies the orientation of a seat relative to the direction of  travel.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Facing" />
      <xs:enumeration value="Back" />
      <xs:enumeration value="Airline" />
      <xs:enumeration value="Lateral" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SeatType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Identifies the position of a seat, e.g. Window, Aisle etc.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Window" />
      <xs:enumeration value="Aisle" />
      <xs:enumeration value="Table" />
      <xs:enumeration value="Middle" />
      <xs:enumeration value="Individual" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ShortDescriptionType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A textual description.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="64" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StateProvCodeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">The standard code or abbreviation for the state, province, or region.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="StringLength1to8">
      <xs:minLength value="2" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength0to8">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 0 to 8.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="8" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength0to32">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 0 to 32.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="32" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength0to64">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 0 to 64.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="64" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength0to128">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 0 to 128.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="128" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength0to255">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 0 to 255.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
      <xs:maxLength value="255" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength1to8">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 1 to 8.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="8" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength1to16">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 1 to 16.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="16" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength1to32">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 1 to 32.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="32" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength1to64">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 1 to 64.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="64" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength1to128">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 1 to 128.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="128" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength1to255">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Character Strings, length 1 to 255.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
      <xs:maxLength value="255" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StringLength3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for Strings, length exactly 3.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="3" />
      <xs:maxLength value="3" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TicketType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Specifies the type of ticket document (e.g. electronic, paper).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="eTicket">
        <xs:annotation>
          <xs:documentation xml:lang="en">An electronic ticket</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Paper">
        <xs:annotation>
          <xs:documentation xml:lang="en">A paper ticket</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MCO">
        <xs:annotation>
          <xs:documentation xml:lang="en">A miscellaneous charge order</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TimeOrDateTimeType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Allows for the specification of a date time or just time.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="xs:dateTime xs:time" />
  </xs:simpleType>
  <xs:simpleType name="TimeUnitType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Defines the unit in which the time is expressed (e.g. year, day, hour).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="StringLength1to16">
      <xs:enumeration value="Year" />
      <xs:enumeration value="Month" />
      <xs:enumeration value="Week" />
      <xs:enumeration value="Day" />
      <xs:enumeration value="Hour" />
      <xs:enumeration value="Second" />
      <xs:enumeration value="FullDuration" />
      <xs:enumeration value="Minute" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TrainPolicyCodeType">
    <xs:annotation>
      <xs:documentation>TBC.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Minimum" />
      <xs:enumeration value="Maximum" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TransactionActionType">
    <xs:annotation>
      <xs:documentation xml:lang="en">To specify the type of action requested when more than one function could be handled by the message.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Book" />
      <xs:enumeration value="Quote" />
      <xs:enumeration value="Hold" />
      <xs:enumeration value="Initiate" />
      <xs:enumeration value="Ignore" />
      <xs:enumeration value="Modify" />
      <xs:enumeration value="Commit" />
      <xs:enumeration value="Cancel" />
      <xs:enumeration value="CommitOverrideEdits">
        <xs:annotation>
          <xs:documentation xml:lang="en">Commit the transaction and override the end transaction edits.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VerifyPrice">
        <xs:annotation>
          <xs:documentation xml:lang="en">Perform a price verification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Ticket">
        <xs:annotation>
          <xs:documentation xml:lang="en">A ticket for an event, such as a show or theme park.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TransactionStatusType">
    <xs:annotation>
      <xs:documentation xml:lang="en">To specify a status to the transaction, usually in the response message, of the action specifed in the request message.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Pending" />
      <xs:enumeration value="Cancelled" />
      <xs:enumeration value="Modified" />
      <xs:enumeration value="Committed" />
      <xs:enumeration value="Ignored" />
      <xs:enumeration value="On Hold" />
      <xs:enumeration value="Unsuccessful" />
      <xs:enumeration value="PendingCancellation">
        <xs:annotation>
          <xs:documentation xml:lang="en">The item that is pending cancellation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PendingPurchase">
        <xs:annotation>
          <xs:documentation xml:lang="en">Purchase of the item is pending.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Requested">
        <xs:annotation>
          <xs:documentation xml:lang="en">The item has been requested.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Reserved">
        <xs:annotation>
          <xs:documentation xml:lang="en">The item is reserved.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Unchanged">
        <xs:annotation>
          <xs:documentation xml:lang="en">The item is not changed due to the most recent action.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="RequestDenied">
        <xs:annotation>
          <xs:documentation xml:lang="en">Request denied.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Ticketed">
        <xs:annotation>
          <xs:documentation xml:lang="en">The item has been ticketed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UpperCaseAlphaLength1to2">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Alpha String, length 1 to 2 (for letter codes).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z]{1,2}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UpperCaseAlphaLength1to3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Alpha String, length 1 to 3 (for letter codes).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z]{1,3}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UpperCaseAlphaNumericLength2">
    <xs:annotation>
      <xs:documentation>Used for an Upper Alpha String and Numeric, length 2.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z0-9]{2}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UpperCaseAlphaNumericLength2to3">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Upper Alpha String and Numeric, length 2 to 3.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z0-9]{2,3}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UpperCaseAlphaNumericLength3to5">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used for an Upper Alpha String and Numeric, length 3 to 5.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z0-9]{3,5}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="YearOrYearMonthType">
    <xs:annotation>
      <xs:documentation xml:lang="en">A construct to validate either a year or a year and month value.</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="xs:gYear xs:gYearMonth" />
  </xs:simpleType>
  <xs:simpleType name="YesNoType">
    <xs:annotation>
      <xs:documentation xml:lang="en">Used to indicate a positive or negative choice. Not recommended for use, use xs:boolean.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TransferActionType">
    <xs:annotation>
      <xs:documentation>Used to indicate the transfer action status.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="Automatic">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates transfer when in automatic mode.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Mandatory">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates transfer required in all modes.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Selectable">
        <xs:annotation>
          <xs:documentation xml:lang="en">Indicates transfer when in selectable mode.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UTC_TimeZoneOffset">
    <xs:annotation>
      <xs:documentation xml:lang="en">Identifies a time zone by an offset from the UTC time by adding a positive or negative time.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string" />
  </xs:simpleType>
</xs:schema>

