<xsd:schema elementFormDefault="qualified" xmlns:ups="http://www.ups.com/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="RatingServiceSelectionRequest">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Request" type="RequestType"/>
        <xsd:element minOccurs="0" name="PickupType" type="CodeType"/>
        <xsd:element minOccurs="0" name="CustomerClassification" type="CodeType"/>
        <xsd:element name="Shipment" type="ShipmentType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="RequestType">
    <xsd:sequence>
      <xsd:sequence>
        <xsd:element name="RequestAction" type="xsd:string"/>
        <xsd:element minOccurs="0" name="RequestOption" type="xsd:string"/>
        <xsd:element minOccurs="0" name="TransactionReference" type="TransactionReferenceType"/>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TransactionReferenceType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CustomerContext" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ToolVersion" type="xsd:string" ups:usage="notused"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CodeType">
    <xsd:sequence>
      <xsd:sequence>
        <xsd:element name="Code" type="xsd:string"/>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CodeDescriptionType">
    <xsd:sequence>
      <xsd:sequence>
        <xsd:element name="Code" type="xsd:string"/>
        <xsd:element minOccurs="0" name="Description" type="xsd:string"/>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ShipmentType">
    <xsd:sequence>
      <xsd:element name="Shipper" type="ShipperType"/>
      <xsd:element name="ShipTo" type="ShipToType"/>
      <xsd:element minOccurs="0" name="ShipFrom" type="ShipFromType"/>
      <xsd:element minOccurs="0" name="Service" type="CodeDescriptionType"/>
      <xsd:element minOccurs="0" name="DocumentsOnly" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Package" type="PackageType"/>
      <xsd:element minOccurs="0" name="ShipmentServiceOptions" type="ShipmentServiceOptionsType"/>
      <xsd:element minOccurs="0" name="RateInformation" type="RateInformationType"/>
      <xsd:element minOccurs="0" name="InvoiceLineTotal" type="InvoiceLineTotalType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ShipperType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="Name" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ShipperNumber" type="xsd:string"/>
      <xsd:element name="Address" type="AddressType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PhoneNumberType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="StructuredPhoneNumber" type="StructuredPhoneNumberType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="StructuredPhoneNumberType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="PhoneCountryCode" type="xsd:string"/>
      <xsd:element name="PhoneDialPlanNumber" type="xsd:string"/>
      <xsd:element name="PhoneLineNumber" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PhoneExtension" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AddressType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="AddressLine1" type="xsd:string"/>
      <xsd:element minOccurs="0" name="AddressLine2" type="xsd:string"/>
      <xsd:element minOccurs="0" name="AddressLine3" type="xsd:string"/>
      <xsd:element minOccurs="0" name="City" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StateProvinceCode" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PostalCode" type="xsd:string"/>
      <xsd:element name="CountryCode" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ResidentialAddressIndicator" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ShipToType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CompanyName" type="xsd:string"/>
      <xsd:element name="Address" type="AddressType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ShipFromType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CompanyName" type="xsd:string"/>
      <xsd:element name="Address" type="AddressType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeightType">
    <xsd:sequence>
      <xsd:element name="UnitOfMeasurement" type="UnitOfMeasurementType"/>
      <xsd:element name="Weight" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="UnitOfMeasurementType">
    <xsd:sequence>
      <xsd:element name="Code" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Description" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PackageType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="PackagingType" type="CodeDescriptionType"/>
      <xsd:element minOccurs="0" name="Dimensions" type="DimensionsType"/>
      <xsd:element minOccurs="0" name="PackageWeight" type="WeightType"/>
      <xsd:element minOccurs="0" name="OversizePackage" type="xsd:string"/>
      <xsd:element minOccurs="0" name="LargePackageIndicator" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PackageServiceOptions" type="PackageServiceOptionsType"/>
      <xsd:element minOccurs="0" name="AdditionalHandling" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PackagingTypeType">
    <xsd:sequence>
      <xsd:element name="Code" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Description" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DimensionsType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="UnitOfMeasurement" type="UnitOfMeasurementType"/>
      <xsd:element name="Length" type="xsd:string"/>
      <xsd:element name="Width" type="xsd:string"/>
      <xsd:element name="Height" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PackageServiceOptionsType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="InsuredValue" type="InsuredValueType"/>
      <xsd:element minOccurs="0" name="COD" type="CODType"/>
      <xsd:element minOccurs="0" name="DeliveryConfirmation" type="DeliveryConfirmationType"/>
      <xsd:element minOccurs="0" name="VerbalConfirmation" type="VerbalConfirmationType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InsuredValueType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CurrencyCode" type="xsd:string"/>
      <xsd:element name="MonetaryValue" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CODType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CODFundsCode" type="xsd:string"/>
      <xsd:element name="CODAmount" type="AmountType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AmountType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CurrencyCode" type="xsd:string"/>
      <xsd:element name="MonetaryValue" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DeliveryConfirmationType">
    <xsd:sequence>
      <xsd:element name="DCISType" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="VerbalConfirmationType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="Name" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PhoneNumber" type="PhoneNumberType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ShipmentServiceOptionsType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="SaturdayPickup" type="xsd:string"/>
      <xsd:element minOccurs="0" name="SaturdayDelivery" type="xsd:string"/>
      <xsd:element minOccurs="0" name="OnCallAir" type="OnCallAirType"/>
      <xsd:element minOccurs="0" name="COD" type="CODType"/>
      <xsd:element minOccurs="0" name="ReturnOfDocumentIndicator" type="xsd:string"/>
      <xsd:element minOccurs="0" name="DeliveryConfirmation" type="DeliveryConfirmationType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="OnCallAirType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="Schedule" type="ScheduleType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ScheduleType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="PickupDay" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Method" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="RateInformationType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="NegotiatedRatesIndicator" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="InvoiceLineTotalType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CurrencyCode" type="xsd:string"/>
      <xsd:element name="MonetaryValue" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>