<xsd:schema elementFormDefault="qualified" targetNamespace="http://www.ups.com/XMLSchema/XOLTWS/Pickup/v1.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.ups.com/XMLSchema/XOLTWS/Pickup/v1.1" xmlns:common="http://www.ups.com/XMLSchema/XOLTWS/Common/v1.0" xmlns:pkup="http://www.ups.com/XMLSchema/XOLTWS/Pickup/v1.1" xmlns:ups="http://www.ups.com/XMLSchema">
  <xsd:import namespace="http://www.ups.com/XMLSchema/XOLTWS/Common/v1.0" schemaLocation="common.xsd"/>
  <xsd:element name="PickupCreationRequest">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Request"/>
        <xsd:element default="N" name="RatePickupIndicator" type="xsd:string"/>
        <xsd:element minOccurs="0" name="Shipper" type="ShipperType"/>
        <xsd:element name="PickupDateInfo" type="PickupDateInfoType"/>
        <xsd:element name="PickupAddress" type="PickupAddressType"/>
        <xsd:element default="N" name="AlternateAddressIndicator" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" name="PickupPiece" type="PickupPieceType"/>
        <xsd:element minOccurs="0" name="TotalWeight" type="WeightType"/>
        <xsd:element default="N" name="OverweightIndicator" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="TrackingData" type="TrackingDataType"/>
        <xsd:element default="00" name="PaymentMethod" type="xsd:string"/>
        <xsd:element minOccurs="0" name="SpecialInstruction" type="xsd:string"/>
        <xsd:element minOccurs="0" name="ReferenceNumber" type="xsd:string"/>
        <xsd:element minOccurs="0" name="Notification" type="NotificationType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupRateRequest">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Request"/>
        <xsd:element name="PickupAddress" type="AddressType"/>
        <xsd:element default="N" name="AlternateAddressIndicator" type="xsd:string"/>
        <xsd:element name="ServiceDateOption" type="xsd:string"/>
        <xsd:element minOccurs="0" name="PickupDateInfo" type="PickupDateInfoType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupCancelRequest">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Request"/>
        <xsd:element name="CancelBy" type="xsd:string"/>
        <xsd:element minOccurs="0" name="PRN" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupPendingStatusRequest">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Request"/>
        <xsd:element name="PickupType" type="xsd:string"/>
        <xsd:element name="AccountNumber" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupCreationResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Response"/>
        <xsd:element name="PRN" type="xsd:string"/>
        <xsd:element name="RateStatus" type="StatusCodeDescriptionType"/>
        <xsd:element minOccurs="0" name="RateResult" type="RateResultType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupRateResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Response"/>
        <xsd:element name="RateResult" type="RateResultType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupCancelResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Response"/>
        <xsd:element name="PickupType" type="xsd:string"/>
        <xsd:element minOccurs="0" name="GWNStatus" type="StatusCodeDescriptionType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="PickupPendingStatusResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="common:Response"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="PendingStatus" type="PendingStatusType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="PickupPieceType">
    <xsd:sequence>
      <xsd:element name="ServiceCode" type="xsd:string"/>
      <xsd:element name="Quantity" type="xsd:string"/>
      <xsd:element name="DestinationCountryCode" type="xsd:string"/>
      <xsd:element name="ContainerCode" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TodayType">
    <xsd:sequence>
      <xsd:element name="LocalDate" type="xsd:string"/>
      <xsd:element name="LocalTime" type="xsd:string"/>
      <xsd:element minOccurs="0" name="CallByTime" type="xsd:string"/>
      <xsd:element minOccurs="0" name="EarliestCloseTime" type="xsd:string"/>
      <xsd:element minOccurs="0" name="LeadTime" type="xsd:string"/>
      <xsd:element default="N" minOccurs="0" name="GWNIndicator" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="FutureServiceDateType">
    <xsd:sequence>
      <xsd:element name="ServiceDate" type="xsd:string"/>
      <xsd:element minOccurs="0" name="CallByTime" type="xsd:string"/>
      <xsd:element minOccurs="0" name="EarliestCloseTime" type="xsd:string"/>
      <xsd:element minOccurs="0" name="LeadTime" type="xsd:string"/>
      <xsd:element minOccurs="0" name="GWNIndicator" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PickupDateInfoType">
    <xsd:sequence>
      <xsd:element name="CloseTime" type="xsd:string"/>
      <xsd:element name="ReadyTime" type="xsd:string"/>
      <xsd:element name="PickupDate" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WeightType">
    <xsd:sequence>
      <xsd:element name="Weight" type="xsd:string"/>
      <xsd:element name="UnitOfMeasurement" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ShipperType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="Account" type="AccountType"/>
      <xsd:element minOccurs="0" name="ChargeCard" type="ChargeCardType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AccountType">
    <xsd:sequence>
      <xsd:element name="AccountNumber" type="xsd:string"/>
      <xsd:element name="AccountCountryCode" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ChargeCardType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="CardHolderName" type="xsd:string"/>
      <xsd:element name="CardType" type="xsd:string"/>
      <xsd:element name="CardNumber" type="xsd:string"/>
      <xsd:element name="ExpirationDate" type="xsd:string"/>
      <xsd:element name="SecurityCode" type="xsd:string"/>
      <xsd:element name="CardAddress" type="ChargeCardAddressType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ChargeCardAddressType">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="AddressLine" type="xsd:string"/>
      <xsd:element minOccurs="0" name="City" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StateProvince" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PostalCode" type="xsd:string"/>
      <xsd:element name="CountryCode" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SimpleAddressType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="City" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StateProvince" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PostalCode" type="xsd:string"/>
      <xsd:element name="CountryCode" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AddressType">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="AddressLine" type="xsd:string"/>
      <xsd:element name="City" type="xsd:string"/>
      <xsd:element name="StateProvince" type="xsd:string"/>
      <xsd:element name="PostalCode" type="xsd:string"/>
      <xsd:element name="CountryCode" type="xsd:string"/>
      <xsd:element default="N" name="ResidentialIndicator" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PickupAddressType">
    <xsd:sequence>
      <xsd:element name="CompanyName" type="xsd:string"/>
      <xsd:element name="ContactName" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" name="AddressLine" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Room" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Floor" type="xsd:string"/>
      <xsd:element name="City" type="xsd:string"/>
      <xsd:element name="StateProvince" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Urbanization" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PostalCode" type="xsd:string"/>
      <xsd:element name="CountryCode" type="xsd:string"/>
      <xsd:element default="N" name="ResidentialIndicator" type="xsd:string"/>
      <xsd:element minOccurs="0" name="PickupPoint" type="xsd:string"/>
      <xsd:element name="Phone" type="PhoneType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="StreetAddressArtifactType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="StreetNumber" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StreetPrefix" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StreetName" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StreetType" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StreetSuffix" type="xsd:string"/>
      <xsd:element minOccurs="0" name="UnparsedStreetAddress" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StreetAddressArtifactSource" type="xsd:string"/>
      <xsd:element minOccurs="0" name="StreetAddressMatchCode" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PhoneType">
    <xsd:sequence>
      <xsd:element name="Number" type="xsd:string"/>
      <xsd:element minOccurs="0" name="Extension" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="NotificationType">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="ConfirmationEmailAddress" type="xsd:string"/>
      <xsd:element minOccurs="0" name="UndeliverableEmailAddress" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CSRType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="ProfileId" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ProfileCountryCode" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="StatusCodeDescriptionType">
    <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="RateResultType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="RateType" type="xsd:string"/>
      <xsd:element minOccurs="0" name="CurrencyCode" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="ChargeDetail" type="ChargeDetailType"/>
      <xsd:element minOccurs="0" name="TotalTax" type="xsd:string"/>
      <xsd:element name="GrandTotalOfAllCharge" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ChargeDetailType">
    <xsd:sequence>
      <xsd:element name="ChargeCode" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ChargeDescription" type="xsd:string"/>
      <xsd:element name="ChargeAmount" type="xsd:string"/>
      <xsd:element minOccurs="0" name="TaxAmount" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PendingStatusType">
    <xsd:sequence>
      <xsd:element name="PickupType" type="xsd:string"/>
      <xsd:element name="ServiceDate" type="xsd:string"/>
      <xsd:element name="PRN" type="xsd:string"/>
      <xsd:element minOccurs="0" name="GWNStatusCode" type="xsd:string"/>
      <xsd:element minOccurs="0" name="OnCallStatusCode" type="xsd:string"/>
      <xsd:element name="PickupStatusMessage" type="xsd:string"/>
      <xsd:element minOccurs="0" name="BillingCode" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ContactName" type="xsd:string"/>
      <xsd:element minOccurs="0" name="ReferenceNumber" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TrackingDataType">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="TrackingNumber" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>