<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:ns="http://fedex.com/ws/rate/v7" xmlns:s1="http://schemas.xmlsoap.org/wsdl/soap/" name="RateServiceDefinitions" targetNamespace="http://fedex.com/ws/rate/v7" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://fedex.com/ws/rate/v7" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="RateRequest" type="ns:RateRequest" />
      <xs:element name="RateReply" type="ns:RateReply" />
      <xs:complexType name="RateRequest">
        <xs:annotation>
          <xs:documentation>Descriptive data sent to FedEx by a customer in order to rate a package/shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="WebAuthenticationDetail" type="ns:WebAuthenticationDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data to be used in authentication of the sender's identity (and right to use FedEx web services).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="ClientDetail" type="ns:ClientDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data identifying the client submitting the transaction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransactionDetail" type="ns:TransactionDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data for this customer transaction. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Version" type="ns:VersionId">
            <xs:annotation>
              <xs:documentation>Identifies the version/level of a service operation expected by a caller (in each request) and performed by the callee (in each reply).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ReturnTransitAndCommit" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CarrierCodes" type="ns:CarrierCodeType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="VariableOptions" type="ns:ServiceOptionType" />
          <xs:element name="RequestedShipment" type="ns:RequestedShipment">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RequestedShipment">
        <xs:annotation>
          <xs:documentation>The descriptive data for the shipment being tendered to FedEx.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ShipTimestamp" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation>Identifies the date and time the package is tendered to FedEx. Both the date and time portions of the string are expected to be used. The date should not be a past date or a date more than 10 days in the future. The time is the local time of the shipment based on the shipper's time zone. The date component must be in the format: YYYY-MM-DD (e.g. 2006-06-26). The time component must be in the format: HH:MM:SS using a 24 hour clock (e.g. 11:00 a.m. is 11:00:00, whereas 5:00 p.m. is 17:00:00). The date and time parts are separated by the letter T (e.g. 2006-06-26T17:00:00). There is also a UTC offset component indicating the number of hours/mainutes from UTC (e.g 2006-06-26T17:00:00-0400 is defined form June 26, 2006 5:00 pm Eastern Time).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DropoffType" type="ns:DropoffType">
            <xs:annotation>
              <xs:documentation>Identifies the method by which the package is to be tendered to FedEx. This element does not dispatch a courier for package pickup. See DropoffType for list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ServiceType" type="ns:ServiceType">
            <xs:annotation>
              <xs:documentation>Identifies the FedEx service to use in shipping the package. See ServiceType for list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PackagingType" type="ns:PackagingType">
            <xs:annotation>
              <xs:documentation>Identifies the packaging used by the requestor for the package. See PackagingType for list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Identifies the total weight of the shipment being conveyed to FedEx.This is only applicable to International shipments and should only be used on the first package of a mutiple piece shipment.This value contains 1 explicit decimal position</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalInsuredValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Total insured amount.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Shipper" type="ns:Party">
            <xs:annotation>
              <xs:documentation>Descriptive data identifying the party responsible for shipping the package. Shipper and Origin should have the same address.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Recipient" type="ns:Party">
            <xs:annotation>
              <xs:documentation>Descriptive data identifying the party receiving the package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RecipientLocationNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>A unique identifier for a recipient location</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>10</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Origin" type="ns:ContactAndAddress">
            <xs:annotation>
              <xs:documentation>Physical starting address for the shipment, if different from shipper's address.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShippingChargesPayment" type="ns:Payment">
            <xs:annotation>
              <xs:documentation>Descriptive data indicating the method and means of payment to FedEx for providing shipping services.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpecialServicesRequested" type="ns:ShipmentSpecialServicesRequested">
            <xs:annotation>
              <xs:documentation>Descriptive data regarding special services requested by the shipper for this shipment. If the shipper is requesting a special service which requires additional data (e.g. COD), the special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object. For example, to request COD, "COD" must be included in the SpecialServiceTypes collection and the CodDetail object must contain the required data.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExpressFreightDetail" type="ns:ExpressFreightDetail">
            <xs:annotation>
              <xs:documentation>Details specific to an Express freight shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FreightShipmentDetail" type="ns:FreightShipmentDetail">
            <xs:annotation>
              <xs:documentation>Data applicable to shipments using FEDEX_FREIGHT and FEDEX_NATIONAL_FREIGHT services.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DeliveryInstructions" type="xs:string">
            <xs:annotation>
              <xs:documentation>Used with Ground Home Delivery and Freight.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="VariableHandlingChargeDetail" type="ns:VariableHandlingChargeDetail">
            <xs:annotation>
              <xs:documentation>Details about how to calculate variable handling charges at the shipment level.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="InternationalDetail" type="ns:InternationalDetail">
            <xs:annotation>
              <xs:documentation>Information about this package that only applies to an international (export) shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PickupDetail" type="ns:PickupDetail">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SmartPostDetail" type="ns:SmartPostShipmentDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BlockInsightVisibility" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>If true, only the shipper/payor will have visibility of this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelSpecification" type="ns:LabelSpecification">
            <xs:annotation>
              <xs:documentation>Details about the image format and printer type the label is to returned in.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShippingDocumentSpecification" type="ns:ShippingDocumentSpecification">
            <xs:annotation>
              <xs:documentation>Details such as shipping document types, NAFTA information, CI information, and GAA information.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RateRequestTypes" type="ns:RateRequestType">
            <xs:annotation>
              <xs:documentation>Indicates the type of rates to be returned.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EdtRequestType" type="ns:EdtRequestType">
            <xs:annotation>
              <xs:documentation>Specifies whether the customer wishes to have Estimated Duties and Taxes provided with the rate quotation on this shipment. Only applies with shipments moving under international services.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PackageCount" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>For a multiple piece shipment this is the total number of packages in the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PackageDetail" type="ns:RequestedPackageDetailType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="999" name="RequestedPackageLineItems" type="ns:RequestedPackageLineItem">
            <xs:annotation>
              <xs:documentation>One or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics all packages in the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PickupDetail">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ReadyDateTime" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LatestPickupDateTime" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CourierInstructions" type="xs:string">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RequestType" type="ns:PickupRequestType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RequestSource" type="ns:PickupRequestSourceType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="PickupRequestType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="SAME_DAY" />
          <xs:enumeration value="FUTURE_DAY" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PickupRequestSourceType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="AUTOMATION" />
          <xs:enumeration value="CUSTOMER_SERVICE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="RequestedPackageDetailType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="INDIVIDUAL_PACKAGES" />
          <xs:enumeration value="PACKAGE_SUMMARY" />
          <xs:enumeration value="PACKAGE_GROUPS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ContactAndAddress">
        <xs:sequence>
          <xs:element minOccurs="0" name="Contact" type="ns:Contact" />
          <xs:element minOccurs="0" name="Address" type="ns:Address" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ExpressFreightDetail">
        <xs:annotation>
          <xs:documentation>Details specific to an Express freight shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PackingListEnclosed" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether or nor a packing list is enclosed.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShippersLoadAndCount" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>
                Total shipment pieces.
                ie. 3 boxes and 3 pallets of 100 pieces each = Shippers Load and Count of 303.
                Applicable to International Priority Freight and International Economy Freight.
                Values must be in the range of 1 - 99999
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BookingConfirmationNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Required for International Freight shipping. Values must be 8- 12 characters in length.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>12</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ReferenceLabelRequested" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Currently not supported.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BeforeDeliveryContact" type="ns:ExpressFreightDetailContact">
            <xs:annotation>
              <xs:documentation>Currently not supported.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UndeliverableContact" type="ns:ExpressFreightDetailContact">
            <xs:annotation>
              <xs:documentation>Currently not supported.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ExpressFreightDetailContact">
        <xs:annotation>
          <xs:documentation>Currently not supported. Delivery contact information for an Express freight shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>Contact name.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>TBD</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="Phone" type="xs:string">
            <xs:annotation>
              <xs:documentation>Contact phone number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>TBD</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="InternationalDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="Broker" type="ns:Party">
            <xs:annotation>
              <xs:documentation>
                Descriptive data identifying the Broker responsible for the shipmet.
                Required if BROKER_SELECT_OPTION is requested in Special Services.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ClearanceBrokerage" type="ns:ClearanceBrokerageType">
            <xs:annotation>
              <xs:documentation>
                Interacts both with properties of the shipment and contractual relationship with
                the shipper.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ImporterOfRecord" type="ns:Party">
            <xs:annotation>
              <xs:documentation>
                Applicable only for Commercial Invoice. If the consignee and importer are not the same, the Following importer fields are required.
                Importer/Contact/PersonName
                Importer/Contact/CompanyName
                Importer/Contact/PhoneNumber
                Importer/Address/StreetLine[0]
                Importer/Address/City
                Importer/Address/StateOrProvinceCode - if Importer Country Code is US or CA
                Importer/Address/PostalCode - if Importer Country Code is US or CA
                Importer/Address/CountryCode
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RecipientCustomsIdType" type="ns:RecipientCustomsIdType">
            <xs:annotation>
              <xs:documentation>Type of Brazilian taxpayer identifier provided in Recipient/TaxPayerIdentification/Number. For shipments bound for Brazil this overrides the value in Recipient/TaxPayerIdentification/TinType</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DutiesPayment" type="ns:Payment">
            <xs:annotation>
              <xs:documentation>Indicates how payment of duties for the shipment will be made.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentContent" type="ns:InternationalDocumentContentType">
            <xs:annotation>
              <xs:documentation>Indicates whether this shipment contains documents only or non-documents.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomsValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total customs value for the shipment. This total will rrepresent th esum of the values of all commodities, and may include freight, miscellaneous, and insurance charges. Must contain 2 explicit decimal positions with a max length of 17 including the decimal. For Express International MPS, the Total Customs Value is in the master transaction and all child transactions</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="InsuranceCharges" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Documents amount paid to third party for coverage of shipment content.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CommercialInvoice" type="ns:CommercialInvoice">
            <xs:annotation>
              <xs:documentation>CommercialInvoice element is required for electronic upload of CI data. It will serve to create/transmit an Electronic Commercial Invoice through FedEx System. Customers are responsible for printing their own Commercial Invoice. Commercial Invoice support consists of a maximum of 20 commodity line items.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="99" name="Commodities" type="ns:Commodity">
            <xs:annotation>
              <xs:documentation>
                For international multiple piece shipments, commodity information must be passed in the Master and on each child transaction.
                If this shipment cotains more than four commodities line items, the four highest valued should be included in the first 4 occurances for this request.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExportDetail" type="ns:ExportDetail">
            <xs:annotation>
              <xs:documentation>Country specific details of an International shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RegulatoryControls" type="ns:RegulatoryControlType">
            <xs:annotation>
              <xs:documentation>FOOD_OR_PERISHABLE is required by FDA/BTA; must be true for food/perishable items coming to US or PR from non-US/non-PR origin.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ClearanceBrokerageType">
        <xs:annotation>
          <xs:documentation>Specifies the type of brokerage to be applied to a shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BROKER_INCLUSIVE" />
          <xs:enumeration value="BROKER_INCLUSIVE_NON_RESIDENT_IMPORTER" />
          <xs:enumeration value="BROKER_SELECT" />
          <xs:enumeration value="BROKER_SELECT_NON_RESIDENT_IMPORTER" />
          <xs:enumeration value="BROKER_UNASSIGNED" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="RegulatoryControlType">
        <xs:annotation>
          <xs:documentation>FOOD_OR_PERISHABLE is required by FDA/BTA; must be true for food/perishable items coming to US or PR from non-US/non-PR origin</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EU_CIRCULATION" />
          <xs:enumeration value="FOOD_OR_PERISHABLE" />
          <xs:enumeration value="NAFTA" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="RecipientCustomsIdType">
        <xs:annotation>
          <xs:documentation>Type of Brazilian taxpayer identifier provided in Recipient/TaxPayerIdentification/Number. For shipments bound for Brazil this overrides the value in Recipient/TaxPayerIdentification/TinType</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="COMPANY" />
          <xs:enumeration value="INDIVIDUAL" />
          <xs:enumeration value="PASSPORT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ExportDetail">
        <xs:annotation>
          <xs:documentation>Country specific details of an International shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="B13AFilingOption" type="ns:B13AFilingOptionType">
            <xs:annotation>
              <xs:documentation>
                Specifies which filing option is being exercised by the customer.
                Required for non-document shipments originating in Canada destined for any country other than Canada, the United States, Puerto Rico or the U.S. Virgin Islands.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExportComplianceStatement" type="xs:string">
            <xs:annotation>
              <xs:documentation>
                Required only if B13AFilingOption is one of the following:
                FILED_ELECTRONICALLY
                MANUALLY_ATTACHED
                SUMMARY_REPORTING
                If B13AFilingOption = NOT_REQUIRED, this field should contain a valid B13A Exception Number.
              </xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>50</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PermitNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>This field is applicable only to Canada export non-document shipments of any value to any destination. No special characters allowed. </xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>10</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DestinationControlDetail" type="ns:DestinationControlDetail">
            <xs:annotation>
              <xs:documentation>Department of Commerce/Department of State information about this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DestinationControlDetail">
        <xs:annotation>
          <xs:documentation>Department of Commerce/Department of State information about this shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="StatementTypes" type="ns:DestinationControlStatementType">
            <xs:annotation>
              <xs:documentation>List of applicable Statment types.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DestinationCountries" type="xs:string">
            <xs:annotation>
              <xs:documentation>Countries this shipment is destined for.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EndUser" type="xs:string">
            <xs:annotation>
              <xs:documentation>Department of State End User.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DestinationControlStatementType">
        <xs:annotation>
          <xs:documentation>Used to indicate whether the Destination Control Statement is of type Department of Commerce, Department of State or both.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="DEPARTMENT_OF_COMMERCE" />
          <xs:enumeration value="DEPARTMENT_OF_STATE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="B13AFilingOptionType">
        <xs:annotation>
          <xs:documentation>
            Specifies which filing option is being exercised by the customer.
            Required for non-document shipments originating in Canada destined for any country other than Canada, the United States, Puerto Rico or the U.S. Virgin Islands.
          </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FILED_ELECTRONICALLY" />
          <xs:enumeration value="MANUALLY_ATTACHED" />
          <xs:enumeration value="NOT_REQUIRED" />
          <xs:enumeration value="SUMMARY_REPORTING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="CommercialInvoice">
        <xs:annotation>
          <xs:documentation>CommercialInvoice element is required for electronic upload of CI data. It will serve to create/transmit an Electronic Commercial Invoice through FedEx System. Customers are responsible for printing their own Commercial Invoice. Commercial Invoice support consists of a maximum of 99 commodity line items.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="99" name="Comments" type="xs:string">
            <xs:annotation>
              <xs:documentation>Commercial Invoice comments to be uploaded to customs.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>444</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FreightCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>
                Format: Two explicit decimal positions max length 19 including decimal.
                Required if Terms Of Sale is CFR or  CIF.
                This charge should be added to the total customs value amount.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TaxesOrMiscellaneousCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>
                Format: Two explicit decimal positions max length 19 including decimal.
                This charge should be added to the total customs value amount.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Purpose" type="ns:PurposeOfShipmentType">
            <xs:annotation>
              <xs:documentation>Test for the Commercial Invoice. Note that Sold is not a valid Purpose for a Proforma Invoice.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PurposeOfShipmentDescription" type="xs:string">
            <xs:annotation>
              <xs:documentation>Descriptive text for the purpose of the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomerInvoiceNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Customer assigned invoice number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TermsOfSale" type="ns:TermsOfSaleType">
            <xs:annotation>
              <xs:documentation>Defines the terms of the sale.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="TermsOfSaleType">
        <xs:annotation>
          <xs:documentation>
            Required for dutiable international express or ground shipment. This field is not applicable to an international PIB (document) or a non-document which does not require a commercial invoice express shipment.
            CFR_OR_CPT (Cost and Freight/Carriage Paid TO)
            CIF_OR_CIP (Cost Insurance and Freight/Carraige Insurance Paid)
            DDP (Delivered Duty Paid)
            DDU (Delivered Duty Unpaid)
            EXW (Ex Works)
            FOB_OR_FCA (Free On Board/Free Carrier)
          </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CFR_OR_CPT" />
          <xs:enumeration value="CIF_OR_CIP" />
          <xs:enumeration value="DDP" />
          <xs:enumeration value="DDU" />
          <xs:enumeration value="EXW" />
          <xs:enumeration value="FOB_OR_FCA" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PurposeOfShipmentType">
        <xs:annotation>
          <xs:documentation>Test for the Commercial Invoice. Note that Sold is not a valid Purpose for a Proforma Invoice.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="GIFT" />
          <xs:enumeration value="NOT_SOLD" />
          <xs:enumeration value="PERSONAL_EFFECTS" />
          <xs:enumeration value="REPAIR_AND_RETURN" />
          <xs:enumeration value="SAMPLE" />
          <xs:enumeration value="SOLD" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="InternationalDocumentContentType">
        <xs:annotation>
          <xs:documentation>The type of International shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="DOCUMENTS_ONLY" />
          <xs:enumeration value="NON_DOCUMENTS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Commodity">
        <xs:annotation>
          <xs:documentation>
            For international multiple piece shipments, commodity information must be passed in the Master and on each child transaction.
            If this shipment cotains more than four commodities line items, the four highest valued should be included in the first 4 occurances for this request.
          </xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>total number of pieces of this commodity</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NumberOfPieces" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>total number of pieces of this commodity</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>Complete and accurate description of this commodity.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>450</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CountryOfManufacture" type="xs:string">
            <xs:annotation>
              <xs:documentation>Country code where commodity contents were produced or manufactured in their final form.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>2</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HarmonizedCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>
                Unique alpha/numeric representing commodity item.
                At least one occurrence is required for US Export shipments if the Customs Value is greater than $2500 or if a valid US Export license is required.
              </xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>14</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Weight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Total weight of this commodity. 1 explicit decimal position. Max length 11 including decimal.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Quantity" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>Number of units of a commodity in total number of pieces for this line item. Max length is 9</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="QuantityUnits" type="xs:string">
            <xs:annotation>
              <xs:documentation>Unit of measure used to express the quantity of this commodity line item.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>3</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="AdditionalMeasures" type="ns:Measure">
            <xs:annotation>
              <xs:documentation>Contains only additional quantitative information other than weight and quantity to calculate duties and taxes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UnitPrice" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Value of each unit in Quantity. Six explicit decimal positions, Max length 18 including decimal.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomsValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>
                Total customs value for this line item.
                It should equal the commodity unit quantity times commodity unit value.
                Six explicit decimal positions, max length 18 including decimal.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="ExciseConditions" type="ns:EdtExciseCondition">
            <xs:annotation>
              <xs:documentation>Defines additional characteristic of commodity used to calculate duties and taxes</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExportLicenseNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Applicable to US export shipping only.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>12</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExportLicenseExpirationDate" type="xs:date">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CIMarksAndNumbers" type="xs:string">
            <xs:annotation>
              <xs:documentation>
                An identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment.
              </xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NaftaDetail" type="ns:NaftaCommodityDetail">
            <xs:annotation>
              <xs:documentation>
                All data required for this commodity in NAFTA Certificate of Origin.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NaftaCommodityDetail">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PreferenceCriterion" type="ns:NaftaPreferenceCriterionCode">
            <xs:annotation>
              <xs:documentation>
                Defined by NAFTA regulations.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ProducerDetermination" type="ns:NaftaProducerDeterminationCode">
            <xs:annotation>
              <xs:documentation>
                Defined by NAFTA regulations.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ProducerId" type="xs:string">
            <xs:annotation>
              <xs:documentation>
                Identification of which producer is associated with this commodity (if multiple
                producers are used in a single shipment).
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NetCostMethod" type="ns:NaftaNetCostMethodCode">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NetCostDateRange" type="ns:DateRange">
            <xs:annotation>
              <xs:documentation>
                Date range over which RVC net cost was calculated.
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DateRange">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Begins" type="xs:date">
            <xs:annotation>
              <xs:documentation>The beginning date in a date range.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Ends" type="xs:date">
            <xs:annotation>
              <xs:documentation>The end date in a date range.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="NaftaNetCostMethodCode">
        <xs:annotation>
          <xs:documentation>
            Net cost method used.
          </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="NC" />
          <xs:enumeration value="NO" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="NaftaPreferenceCriterionCode">
        <xs:annotation>
          <xs:documentation>
            See instructions for NAFTA Certificate of Origin for code definitions.
          </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="A" />
          <xs:enumeration value="B" />
          <xs:enumeration value="C" />
          <xs:enumeration value="D" />
          <xs:enumeration value="E" />
          <xs:enumeration value="F" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="NaftaProducerDeterminationCode">
        <xs:annotation>
          <xs:documentation>
            See instructions for NAFTA Certificate of Origin for code definitions.
          </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="NO_1" />
          <xs:enumeration value="NO_2" />
          <xs:enumeration value="NO_3" />
          <xs:enumeration value="YES" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="DropoffType">
        <xs:annotation>
          <xs:documentation>Identifies the method by which the package is to be tendered to FedEx. This element does not dispatch a courier for package pickup.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BUSINESS_SERVICE_CENTER" />
          <xs:enumeration value="DROP_BOX" />
          <xs:enumeration value="REGULAR_PICKUP" />
          <xs:enumeration value="REQUEST_COURIER" />
          <xs:enumeration value="STATION" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="ServiceType">
        <xs:annotation>
          <xs:documentation>Identifies the FedEx service to use in shipping the package. See ServiceType for list of valid enumerated values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EUROPE_FIRST_INTERNATIONAL_PRIORITY" />
          <xs:enumeration value="FEDEX_1_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_2_DAY" />
          <xs:enumeration value="FEDEX_2_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_3_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_EXPRESS_SAVER" />
          <xs:enumeration value="FEDEX_GROUND" />
          <xs:enumeration value="FIRST_OVERNIGHT" />
          <xs:enumeration value="GROUND_HOME_DELIVERY" />
          <xs:enumeration value="INTERNATIONAL_ECONOMY" />
          <xs:enumeration value="INTERNATIONAL_ECONOMY_FREIGHT" />
          <xs:enumeration value="INTERNATIONAL_FIRST" />
          <xs:enumeration value="INTERNATIONAL_PRIORITY" />
          <xs:enumeration value="INTERNATIONAL_PRIORITY_FREIGHT" />
          <xs:enumeration value="PRIORITY_OVERNIGHT" />
          <xs:enumeration value="SMART_POST" />
          <xs:enumeration value="STANDARD_OVERNIGHT" />
          <xs:enumeration value="FEDEX_FREIGHT" />
          <xs:enumeration value="FEDEX_NATIONAL_FREIGHT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PackagingType">
        <xs:annotation>
          <xs:documentation>Identifies the packaging used by the requestor for the package. See PackagingType for list of valid enumerated values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FEDEX_10KG_BOX" />
          <xs:enumeration value="FEDEX_25KG_BOX" />
          <xs:enumeration value="FEDEX_BOX" />
          <xs:enumeration value="FEDEX_ENVELOPE" />
          <xs:enumeration value="FEDEX_PAK" />
          <xs:enumeration value="FEDEX_TUBE" />
          <xs:enumeration value="YOUR_PACKAGING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="RateRequestType">
        <xs:annotation>
          <xs:documentation>Indicates the type of rates to be returned.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ACCOUNT" />
          <xs:enumeration value="LIST" />
          <xs:enumeration value="MULTIWEIGHT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="CarrierCodeType">
        <xs:annotation>
          <xs:documentation>Identification of a FedEx operating company (transportation).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FDXE" />
          <xs:enumeration value="FDXG" />
          <xs:enumeration value="FXFR" />
          <xs:enumeration value="FXSP" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="PackageSpecialServicesRequested">
        <xs:annotation>
          <xs:documentation>Descriptive data regarding special services requested by the shipper for a shipment. If the shipper is requesting a special service which requires additional data (e.g. COD), the special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object. For example, to request COD, "COD" must be included in the SpecialServiceTypes collection and the CodDetail object must contain the required data.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="SpecialServiceTypes" type="ns:PackageSpecialServiceType">
            <xs:annotation>
              <xs:documentation>Identifies the collection of special service types requested by the shipper. See SpecialServiceTypes for the list of valid enumerated types.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CodCollectionAmount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>For use with FedEx Ground services only; COD must be present in shipment's special services.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DangerousGoodsDetail" type="ns:DangerousGoodsDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data required for a FedEx shipment containing dangerous materials. This element is required when SpecialServiceType.DANGEROUS_GOODS or HAZARDOUS_MATERIAL is present in the SpecialServiceTypes collection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DryIceWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Descriptive data required for a FedEx shipment containing dry ice. This element is required when SpecialServiceType.DRY_ICE is present in the SpecialServiceTypes collection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SignatureOptionDetail" type="ns:SignatureOptionDetail">
            <xs:annotation>
              <xs:documentation>The descriptive data required for FedEx signature services. This element is required when SpecialServiceType.SIGNATURE_OPTION is present in the SpecialServiceTypes collection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PriorityAlertDetail" type="ns:PriorityAlertDetail">
            <xs:annotation>
              <xs:documentation>To be filled.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PriorityAlertDetail">
        <xs:annotation>
          <xs:documentation>Currently not supported.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="3" name="Content" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ShipmentSpecialServicesRequested">
        <xs:annotation>
          <xs:documentation>Descriptive data regarding special services requested by the shipper for a shipment. If the shipper is requesting a special service which requires additional data (e.g. COD), the special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object. For example, to request COD, "COD" must be included in the SpecialServiceTypes collection and the CodDetail object must contain the required data.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="SpecialServiceTypes" type="ns:ShipmentSpecialServiceType">
            <xs:annotation>
              <xs:documentation>Identifies the collection of special service types requested by the shipper. See SpecialServiceTypes for the list of valid enumerated types.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CodDetail" type="ns:CodDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data required for a FedEx COD (Collect-On-Delivery) shipment. This element is required when SpecialServiceType.COD is present in the SpecialServiceTypes collection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CodCollectionAmount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Descriptive data for the customer supplied COD collect amount. Data format for the amount element is two explicit deicmal positions (e.g. 5.00). For Express COD services only, for Ground COD services use the package level CodCollectionAmount</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HoldAtLocationDetail" type="ns:HoldAtLocationDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data required for a FedEx shipment that is to be held at the destination FedEx location for pickup by the recipient. This element is required when SpecialServiceType.HOLD_AT_LOCATION is present in the SpecialServiceTypes collection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EMailNotificationDetail" type="ns:EMailNotificationDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data required for FedEx to provide email notification to the customer regarding the shipment. This element is required when SpecialServiceType.EMAIL_NOTIFICATION is present in the SpecialServiceTypes collection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ReturnShipmentDetail" type="ns:ReturnShipmentDetail">
            <xs:annotation>
              <xs:documentation>The descriptive data required for FedEx Printed Return Label. This element is required when SpecialServiceType.PRINTED_RETURN_LABEL is present in the SpecialServiceTypes collection</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PendingShipmentDetail" type="ns:PendingShipmentDetail">
            <xs:annotation>
              <xs:documentation>Details used while creating a pending shipment</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShipmentDryIceDetail" type="ns:ShipmentDryIceDetail">
            <xs:annotation>
              <xs:documentation>The number of packages with dry ice and the total weight of the dry ice.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HomeDeliveryPremiumDetail" type="ns:HomeDeliveryPremiumDetail">
            <xs:annotation>
              <xs:documentation>The descriptive data required for FedEx Home Delivery options. This element is required when SpecialServiceType.HOME_DELIVERY_PREMIUM is present in the SpecialServiceTypes collection</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FlatbedTrailerDetail" type="ns:FlatbedTrailerDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FreightGuaranteeDetail" type="ns:FreightGuaranteeDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EtdDetail" type="ns:EtdDetail" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EtdDetail">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RequestedDocumentCopies" type="ns:RequestedShippingDocumentType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Documents" type="ns:UploadDocumentDetail">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DocumentReferences" type="ns:UploadDocumentReferenceDetail">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ShipmentSpecialServiceType">
        <xs:annotation>
          <xs:documentation>Identifies the collection of special service offered by FedEx.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BROKER_SELECT_OPTION" />
          <xs:enumeration value="COD" />
          <xs:enumeration value="DRY_ICE" />
          <xs:enumeration value="EAST_COAST_SPECIAL" />
          <xs:enumeration value="ELECTRONIC_TRADE_DOCUMENTS" />
          <xs:enumeration value="EMAIL_NOTIFICATION" />
          <xs:enumeration value="FUTURE_DAY_SHIPMENT" />
          <xs:enumeration value="HOLD_AT_LOCATION" />
          <xs:enumeration value="HOME_DELIVERY_PREMIUM" />
          <xs:enumeration value="INSIDE_DELIVERY" />
          <xs:enumeration value="INSIDE_PICKUP" />
          <xs:enumeration value="PENDING_SHIPMENT" />
          <xs:enumeration value="RETURN_SHIPMENT" />
          <xs:enumeration value="SATURDAY_DELIVERY" />
          <xs:enumeration value="SATURDAY_PICKUP" />
          <xs:enumeration value="DANGEROUS_GOODS" />
          <xs:enumeration value="EXTREME_LENGTH" />
          <xs:enumeration value="FLATBED_TRAILER" />
          <xs:enumeration value="FREIGHT_GUARANTEE" />
          <xs:enumeration value="LIFTGATE_DELIVERY" />
          <xs:enumeration value="LIFTGATE_PICKUP" />
          <xs:enumeration value="LIMITED_ACCESS_DELIVERY" />
          <xs:enumeration value="LIMITED_ACCESS_PICKUP" />
          <xs:enumeration value="PRE_DELIVERY_NOTIFICATION" />
          <xs:enumeration value="PROTECTION_FROM_FREEZING" />
          <xs:enumeration value="REGIONAL_MALL_DELIVERY" />
          <xs:enumeration value="REGIONAL_MALL_PICKUP" />
          <xs:enumeration value="EXHIBITION_DELIVERY" />
          <xs:enumeration value="EXHIBITION_PICKUP" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="WebAuthenticationDetail">
        <xs:annotation>
          <xs:documentation>Used in authentication of the sender's identity.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="UserCredential" type="ns:WebAuthenticationCredential">
            <xs:annotation>
              <xs:documentation>Credential used to authenticate a specific software application. This value is provided by FedEx after registration.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="WebAuthenticationCredential">
        <xs:annotation>
          <xs:documentation>Two part authentication string used for the sender's identity</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Key" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifying part of authentication credential. This value is provided by FedEx after registration</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>16</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="Password" type="xs:string">
            <xs:annotation>
              <xs:documentation>Secret part of authentication key. This value is provided by FedEx after registration.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>25</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ClientDetail">
        <xs:annotation>
          <xs:documentation>Descriptive data identifying the client submitting the transaction.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="AccountNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>The FedEx account number assigned to the customer initiating the request.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>12</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="MeterNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the unique client device submitting the request. This number is assigned by FedEx and identifies the unique device from which the request is originating.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>10</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="IntegratorId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Only used in transactions which require identification of the Fed Ex Office integrator.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Region" type="ns:ExpressRegionCode">
            <xs:annotation>
              <xs:documentation>Indicates the region from which the transaction is submitted.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Localization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>Governs any future language/translations used for human-readable Notification.localizedMessages in responses to the request containing this ClientDetail object. Different requests from the same client may contain different Localization data. (Contrast with TransactionDetail.localization, which governs data payload language/translation.)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Localization">
        <xs:annotation>
          <xs:documentation>Governs any future language/translations used for human-readable text.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="LanguageCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the language to use for human-readable messages.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>2</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocaleCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the locale (i.e.  country code) associated with the language.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>2</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TransactionDetail">
        <xs:annotation>
          <xs:documentation>Descriptive data for this customer transaction. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="CustomerTransactionId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies a customer-supplied unique identifier for this transaction. It is returned in the reply message to aid in matching requests to replies.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>40</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Localization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>Governs any future language/translations applied to the data payload.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="VersionId">
        <xs:annotation>
          <xs:documentation>Identifies the version/level of a service operation performed by the callee (in each reply).</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" fixed="crs" name="ServiceId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies a system or sub-system which performs an operation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" fixed="7" name="Major" type="xs:int">
            <xs:annotation>
              <xs:documentation>Identifies the service business level. For this release this value should be set to 1.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" fixed="0" name="Intermediate" type="xs:int">
            <xs:annotation>
              <xs:documentation>Identifies the service interface level. For this release this value should be set to 1.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" fixed="0" name="Minor" type="xs:int">
            <xs:annotation>
              <xs:documentation>Identifies the service code level. For this release this value should be set to 0.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Address">
        <xs:annotation>
          <xs:documentation>The descriptive data for a physical location.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="2" name="StreetLines" type="xs:string">
            <xs:annotation>
              <xs:documentation>Combination of number, street name, etc. At least one line is required for a valid physical address; empty lines should not be included.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>35</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="City" type="xs:string">
            <xs:annotation>
              <xs:documentation>Name of city, town, etc.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>
                  <ns:Express>35</ns:Express>
                  <ns:Ground>20</ns:Ground>
                </xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="StateOrProvinceCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifying abbreviation for US state, Canada province, etc. Format and presence of this field will vary, depending on country.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>2</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PostalCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identification of a region (usually small) for mail/package delivery. Format and presence of this field will vary, depending on country. This element is required if both the City and StateOrProvinceCode are not present.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>16</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UrbanizationCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Relevant only to addresses in Puerto Rico. In Puerto Rico, multiple addresses within the same ZIP code can have the same house number and street name. When this is the case, the urbanization code is needed to distinguish them.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="CountryCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identification of a country.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>2</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Residential" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether this address is residential (as opposed to commercial).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Payment">
        <xs:annotation>
          <xs:documentation>The descriptive data for the monetary compensation given to FedEx for services rendered to the customer.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PaymentType" type="ns:PaymentType">
            <xs:annotation>
              <xs:documentation>Identifies the method of payment for a service. See PaymentType for list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Payor" type="ns:Payor">
            <xs:annotation>
              <xs:documentation>Descriptive data identifying the party responsible for payment for a service.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="PaymentType">
        <xs:annotation>
          <xs:documentation>Identifies the method of payment for a service.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="SENDER" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Payor">
        <xs:annotation>
          <xs:documentation>Descriptive data identifying the party responsible for payment for a service.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="AccountNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the FedEx account number assigned to the payor.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>12</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CountryCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the country of the payor.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>2</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="OversizeClassType">
        <xs:annotation>
          <xs:documentation>The Oversize classification for a package.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="OVERSIZE_1" />
          <xs:enumeration value="OVERSIZE_2" />
          <xs:enumeration value="OVERSIZE_3" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Weight">
        <xs:annotation>
          <xs:documentation>The descriptive data for the heaviness of an object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Units" type="ns:WeightUnits">
            <xs:annotation>
              <xs:documentation>Identifies the unit of measure associated with a weight value. See WeightUnits for the list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Value" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>Identifies the weight value of the package/shipment. Contains 1 explicit decimal position</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="WeightUnits">
        <xs:annotation>
          <xs:documentation>Identifies the unit of measure associated with a weight value. See WeightUnits for the list of valid enumerated values.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="KG" />
          <xs:enumeration value="LB" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Dimensions">
        <xs:annotation>
          <xs:documentation>The dimensions of this package and the unit type used for the measurements.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Length">
            <xs:simpleType>
              <xs:restriction base="xs:nonNegativeInteger" />
            </xs:simpleType>
          </xs:element>
          <xs:element minOccurs="1" name="Width">
            <xs:simpleType>
              <xs:restriction base="xs:nonNegativeInteger" />
            </xs:simpleType>
          </xs:element>
          <xs:element minOccurs="1" name="Height">
            <xs:simpleType>
              <xs:restriction base="xs:nonNegativeInteger" />
            </xs:simpleType>
          </xs:element>
          <xs:element minOccurs="1" name="Units" type="ns:LinearUnits" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="LinearUnits">
        <xs:annotation>
          <xs:documentation>CM = centimeters, IN = inches</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CM" />
          <xs:enumeration value="IN" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Money">
        <xs:annotation>
          <xs:documentation>The descriptive data for the medium of exchange for FedEx services.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Currency" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the currency of the monetary amount.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>3</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="Amount">
            <xs:annotation>
              <xs:documentation>Identifies the monetary amount.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:decimal" />
            </xs:simpleType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SignatureOptionDetail">
        <xs:annotation>
          <xs:documentation>The descriptive data required for FedEx delivery signature services.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="OptionType" type="ns:SignatureOptionType">
            <xs:annotation>
              <xs:documentation>Identifies the delivery signature services option selected by the customer for this shipment. See OptionType for the list of valid values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SignatureReleaseNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the delivery signature release authorization number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>10</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="SignatureOptionType">
        <xs:annotation>
          <xs:documentation>Identifies the delivery signature services options offered by FedEx.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ADULT" />
          <xs:enumeration value="DIRECT" />
          <xs:enumeration value="INDIRECT" />
          <xs:enumeration value="NO_SIGNATURE_REQUIRED" />
          <xs:enumeration value="SERVICE_DEFAULT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PackageSpecialServiceType">
        <xs:annotation>
          <xs:documentation>Identifies the collection of special services offered by FedEx.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="APPOINTMENT_DELIVERY" />
          <xs:enumeration value="DANGEROUS_GOODS" />
          <xs:enumeration value="DRY_ICE" />
          <xs:enumeration value="NON_STANDARD_CONTAINER" />
          <xs:enumeration value="PRIORITY_ALERT" />
          <xs:enumeration value="SIGNATURE_OPTION" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="CodDetail">
        <xs:annotation>
          <xs:documentation>Descriptive data required for a FedEx COD (Collect-On-Delivery) shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="AddTransportationCharges" type="ns:CodAddTransportationChargesType">
            <xs:annotation>
              <xs:documentation>Identifies if freight charges are to be added to the COD amount. This element determines which freight charges should be added to the COD collect amount. See CodAddTransportationChargesType for the liist of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="CollectionType" type="ns:CodCollectionType">
            <xs:annotation>
              <xs:documentation>Identifies the type of funds FedEx should collect upon package delivery. See CodCollectionType for the list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CodRecipient" type="ns:Party">
            <xs:annotation>
              <xs:documentation>Descriptive data about the recipient of the COD shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ReferenceIndicator" type="ns:CodReturnReferenceIndicatorType">
            <xs:annotation>
              <xs:documentation>Indicates which type of reference information to include on the COD return shipping label.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="CodAddTransportationChargesType">
        <xs:annotation>
          <xs:documentation>Identifies what freight charges should be added to the COD collect amount.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ADD_ACCOUNT_COD_SURCHARGE" />
          <xs:enumeration value="ADD_ACCOUNT_NET_CHARGE" />
          <xs:enumeration value="ADD_ACCOUNT_NET_FREIGHT" />
          <xs:enumeration value="ADD_ACCOUNT_TOTAL_CUSTOMER_CHARGE" />
          <xs:enumeration value="ADD_LIST_COD_SURCHARGE" />
          <xs:enumeration value="ADD_LIST_NET_CHARGE" />
          <xs:enumeration value="ADD_LIST_NET_FREIGHT" />
          <xs:enumeration value="ADD_LIST_TOTAL_CUSTOMER_CHARGE" />
          <xs:enumeration value="ADD_SHIPMENT_MULTIWEIGHT_NET_CHARGE" />
          <xs:enumeration value="ADD_SHIPMENT_MULTIWEIGHT_NET_FREIGHT" />
          <xs:enumeration value="ADD_SUM_OF_ACCOUNT_NET_CHARGES" />
          <xs:enumeration value="ADD_SUM_OF_ACCOUNT_NET_FREIGHT" />
          <xs:enumeration value="ADD_SUM_OF_LIST_NET_CHARGES" />
          <xs:enumeration value="ADD_SUM_OF_LIST_NET_FREIGHT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="CodCollectionType">
        <xs:annotation>
          <xs:documentation>Identifies the type of funds FedEx should collect upon package delivery.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ANY" />
          <xs:enumeration value="CASH" />
          <xs:enumeration value="GUARANTEED_FUNDS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="CodReturnReferenceIndicatorType">
        <xs:annotation>
          <xs:documentation>Indicates which type of reference information to include on the COD return shipping label.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="INVOICE" />
          <xs:enumeration value="PO" />
          <xs:enumeration value="REFERENCE" />
          <xs:enumeration value="TRACKING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Party">
        <xs:annotation>
          <xs:documentation>The descriptive data for a person or company entitiy doing business with FedEx.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="AccountNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the FedEx account number assigned to the customer.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>12</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Tin" type="ns:TaxpayerIdentification">
            <xs:annotation>
              <xs:documentation>Descriptive data for taxpayer identification information.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Contact" type="ns:Contact">
            <xs:annotation>
              <xs:documentation>Descriptive data identifying the point-of-contact person.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Address" type="ns:Address">
            <xs:annotation>
              <xs:documentation>The descriptive data for a physical location.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TaxpayerIdentification">
        <xs:annotation>
          <xs:documentation>The descriptive data for taxpayer identification information.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="TinType" type="ns:TinType">
            <xs:annotation>
              <xs:documentation>Identifies the category of the taxpayer identification number. See TinType for the list of values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="Number" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the taxpayer identification number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>18</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="TinType">
        <xs:annotation>
          <xs:documentation>Identifies the category of the taxpayer identification number.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EIN" />
          <xs:enumeration value="SSN" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Contact">
        <xs:annotation>
          <xs:documentation>The descriptive data for a point-of-contact person.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PersonName" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's name.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>35</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Title" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's title.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CompanyName" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's company name.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>35</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PhoneNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's phone number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PhoneExtension" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's phone number extension.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PagerNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's pager number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FaxNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's fax machine phone number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EMailAddress" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the contact person's email address.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>
                  <ns:Express>120</ns:Express>
                  <ns:Ground>35</ns:Ground>
                </xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="HoldAtLocationDetail">
        <xs:annotation>
          <xs:documentation>Descriptive data required for a FedEx shipment that is to be held at the destination FedEx location for pickup by the recipient.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PhoneNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies a telephone number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Address" type="ns:Address">
            <xs:annotation>
              <xs:documentation>The descriptive data for a physical location.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DangerousGoodsDetail">
        <xs:annotation>
          <xs:documentation>The descriptive data required for a FedEx shipment containing dangerous goods (hazardous materials).</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Accessibility" type="ns:DangerousGoodsAccessibilityType">
            <xs:annotation>
              <xs:documentation>Identifies whether or not the products being shipped are required to be accessible during delivery.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CargoAircraftOnly" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Shipment is packaged/documented for movement ONLY on cargo aircraft.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HazMatCertificateData" type="ns:HazMatCertificateData">
            <xs:annotation>
              <xs:documentation> to be included in the OP-950 (Hazardous Materials Certificate) returned in Close reply</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DangerousGoodsAccessibilityType">
        <xs:annotation>
          <xs:documentation>Identifies whether or not the products being shipped are required to be accessible during delivery.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ACCESSIBLE" />
          <xs:enumeration value="INACCESSIBLE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="HazMatCertificateData">
        <xs:annotation>
          <xs:documentation> to be included in the OP-950 (Hazardous Materials Certificate) returned in Close reply</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="3" name="DotProperShippingName" type="xs:string">
            <xs:annotation>
              <xs:documentation> which broad class (as established by the United States DOT) the contents of this shipment falls into; The user should be aware that these (up to three) 50-character elements will actually be formatted on the certificate in a 25-character-wide column on up to six lines; Up to 25 characters of the first element will appear on the first line, and any additional characters starting with the 26th will appear on a second line.  The first 25 of the second element, if it exists, will appear on a third line, and any additional characters starting with the 26th will appear on the fourth line. The first 25 characters of the third element will appear on a fifth line, and any additional characters starting with the 26th will appear on a sixth line.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>50</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DotHazardClassOrDivision" type="xs:string">
            <xs:annotation>
              <xs:documentation> which broad class (as established by the United States Department of Transportation) the contents of this shipment falls into.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>25</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DotIdNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>ID Number (UN or NA number), including prefix.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>11</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DotLabelType" type="xs:string">
            <xs:annotation>
              <xs:documentation> Type of D.O.T. diamond hazard label, or "Ltd. Qty.", or Exemption Number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>50</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PackingGroup" type="xs:string">
            <xs:annotation>
              <xs:documentation> materials in certain classes, the Packing Group signifies the degree of hazard.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>3</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Quantity" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>Quantity (in the given unites) of dangerous goods in shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Units" type="xs:string">
            <xs:annotation>
              <xs:documentation>Units in which the Quantity is expressed.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>4</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TwentyFourHourEmergencyResponseContactNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>24-hour emergency response contact phone number.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TwentyFourHourEmergencyResponseContactName" type="xs:string">
            <xs:annotation>
              <xs:documentation>24-hour emergency response contact name.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>50</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EMailNotificationDetail">
        <xs:annotation>
          <xs:documentation>The descriptive data required for FedEx to provide email notification to the customer regarding the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PersonalMessage" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the message text to be sent in the email notification.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>120</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="6" name="Recipients" type="ns:EMailNotificationRecipient">
            <xs:annotation>
              <xs:documentation>The descriptive data element for the collection of email recipients.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EMailNotificationRecipient">
        <xs:annotation>
          <xs:documentation>The descriptive data for a FedEx email notification recipient.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="EMailNotificationRecipientType" type="ns:EMailNotificationRecipientType">
            <xs:annotation>
              <xs:documentation>Identifies the email notification recipient type. See EMailNotificationRecipientType for a list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="EMailAddress" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the email address of the notification recipient.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>
                  <ns:Express>120</ns:Express>
                  <ns:Ground>35</ns:Ground>
                </xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NotifyOnShipment" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Identifies if an email notification should be sent to the recipient when the package is shipped.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NotifyOnException" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Identifies if an email notification should be sent to the recipient when an exception occurs during package movement from origin to destination.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NotifyOnDelivery" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Identifies if an email notification should be sent to the recipient when the package is delivered.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Format" type="ns:EMailNotificationFormatType">
            <xs:annotation>
              <xs:documentation>A unique format can be specified for each email address indicated. The format will apply to notification emails sent to a particular email address..</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Localization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>Indicates the language the notification is expressed in.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="EMailNotificationRecipientType">
        <xs:annotation>
          <xs:documentation>Identifies the set of valid email notification recipient types. For SHIPPER, RECIPIENT and BROKER the email address asssociated with their definitions will be used, any email address sent with the email notification for these three email notification recipient types will be ignored.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BROKER" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="RECIPIENT" />
          <xs:enumeration value="SHIPPER" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="EMailNotificationFormatType">
        <xs:annotation>
          <xs:documentation>A unique format can be specified for each email address indicated. The format will apply to notification emails sent to a particular email address..</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="HTML" />
          <xs:enumeration value="TEXT" />
          <xs:enumeration value="WIRELESS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ReturnEMailDetail">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="MerchantPhoneNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AllowedSpecialServices" type="ns:ReturnEMailAllowedSpecialServiceType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ReturnShipmentDetail">
        <xs:annotation>
          <xs:documentation>Information relating to a return shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="ReturnType" type="ns:ReturnType">
            <xs:annotation>
              <xs:documentation>The type of return shipment that is being requested. At present the only type of retrun shipment that is supported is PRINT_RETURN_LABEL. With this option you can print a return label to insert into the box of an outbound shipment. This option can not be used to print an outbound label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Rma" type="ns:Rma">
            <xs:annotation>
              <xs:documentation>Return Merchant Authorization</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ReturnEMailDetail" type="ns:ReturnEMailDetail">
            <xs:annotation>
              <xs:documentation>Specific information about the delivery of the email and options for the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ReturnType">
        <xs:annotation>
          <xs:documentation>The type of return shipment that is being requested.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FEDEX_TAG" />
          <xs:enumeration value="PENDING" />
          <xs:enumeration value="PRINT_RETURN_LABEL" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Rma">
        <xs:annotation>
          <xs:documentation>Return Merchant Authorization</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Number" type="xs:string">
            <xs:annotation>
              <xs:documentation>Return Merchant Authorization Number</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>20</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Reason" type="xs:string">
            <xs:annotation>
              <xs:documentation>The reason for the return.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>60</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EMailLabelDetail">
        <xs:annotation>
          <xs:documentation>Specific information about the delivery of the email and options for the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="NotificationEMailAddress" type="xs:string">
            <xs:annotation>
              <xs:documentation>Email address to send the URL to.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NotificationMessage" type="xs:string">
            <xs:annotation>
              <xs:documentation>A message to be inserted into the email.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ReturnEMailAllowedSpecialServiceType">
        <xs:annotation>
          <xs:documentation>Special services the requestor will allow for this shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="SATURDAY_DELIVERY" />
          <xs:enumeration value="SATURDAY_PICKUP" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ShipmentDryIceDetail">
        <xs:annotation>
          <xs:documentation>The number of packages with dry ice and the total weight of the dry ice.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PackageCount" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>The number of packages in this shipment that contain dry ice.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>The total weight of the dry ice in this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="HomeDeliveryPremiumDetail">
        <xs:annotation>
          <xs:documentation>The descriptive data required by FedEx for home delivery services.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="HomeDeliveryPremiumType" type="ns:HomeDeliveryPremiumType">
            <xs:annotation>
              <xs:documentation>The type of Home Delivery Premium service being requested.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Date" type="xs:date">
            <xs:annotation>
              <xs:documentation>Required for Date Certain Home Delivery.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PhoneNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Required for Date Certain and Appointment Home Delivery.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>15</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="HomeDeliveryPremiumType">
        <xs:annotation>
          <xs:documentation>The type of Home Delivery Premium service being requested.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="APPOINTMENT" />
          <xs:enumeration value="DATE_CERTAIN" />
          <xs:enumeration value="EVENING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="TrackingId">
        <xs:sequence>
          <xs:element minOccurs="0" name="TrackingIdType" type="ns:TrackingIdType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FormId" type="xs:string" />
          <xs:element name="TrackingNumber" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ContentRecord">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PartNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ItemNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ReceivedQuantity" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomerReference">
        <xs:annotation>
          <xs:documentation>Reference information to be associated with this package.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="CustomerReferenceType" type="ns:CustomerReferenceType">
            <xs:annotation>
              <xs:documentation>The reference type to be associated with this reference data.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Value" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="CustomerReferenceType">
        <xs:annotation>
          <xs:documentation>The types of references available for use.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BILL_OF_LADING" />
          <xs:enumeration value="CUSTOMER_REFERENCE" />
          <xs:enumeration value="DEPARTMENT_NUMBER" />
          <xs:enumeration value="ELECTRONIC_PRODUCT_CODE" />
          <xs:enumeration value="INVOICE_NUMBER" />
          <xs:enumeration value="P_O_NUMBER" />
          <xs:enumeration value="SHIPMENT_INTEGRITY" />
          <xs:enumeration value="STORE_NUMBER" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="VariableHandlingChargeDetail">
        <xs:annotation>
          <xs:documentation>Details about how to calculate variable handling charges at the shipment level.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="VariableHandlingChargeType" type="ns:VariableHandlingChargeType">
            <xs:annotation>
              <xs:documentation>The type of handling charge to be calculated and returned in the reply.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FixedValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Used with Variable handling charge type of FIXED_VALUE.
												  Contains the amount to be added to the freight charge.
												  Contains 2 explicit decimal positions with a total max length of 10 including the decimal.
					</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PercentValue" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>Used with Variable handling charge types PERCENTAGE_OF_BASE, PERCENTAGE_OF_NET or PERCETAGE_OF_NET_EXCL_TAXES.
												  Used to calculate the amount to be added to the freight charge.
												  Contains 2 explicit decimal positions.
					</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="VariableHandlingChargeType">
        <xs:annotation>
          <xs:documentation>The type of handling charge to be calculated and returned in the reply.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FIXED_AMOUNT" />
          <xs:enumeration value="PERCENTAGE_OF_NET_CHARGE" />
          <xs:enumeration value="PERCENTAGE_OF_NET_CHARGE_EXCLUDING_TAXES" />
          <xs:enumeration value="PERCENTAGE_OF_NET_FREIGHT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RateReply">
        <xs:sequence>
          <xs:element minOccurs="1" name="HighestSeverity" type="ns:NotificationSeverityType">
            <xs:annotation>
              <xs:documentation>This indicates the highest level of severity of all the notifications returned in this reply</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" maxOccurs="unbounded" name="Notifications" type="ns:Notification">
            <xs:annotation>
              <xs:documentation>The descriptive data regarding the results of the submitted transaction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransactionDetail" type="ns:TransactionDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data for this customer transaction. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Version" type="ns:VersionId">
            <xs:annotation>
              <xs:documentation>Identifies the version/level of a service operation expected by a caller (in each request) and performed by the callee (in each reply).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RateReplyDetails" type="ns:RateReplyDetail">
            <xs:annotation>
              <xs:documentation>Rate information which was requested.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RateReplyDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="ServiceType" type="ns:ServiceType">
            <xs:annotation>
              <xs:documentation>Identifies the FedEx service to use in shipping the package. See ServiceType for list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PackagingType" type="ns:PackagingType">
            <xs:annotation>
              <xs:documentation>Identifies the packaging used by the requestor for the package. See PackagingType for list of valid enumerated values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="AppliedOptions" type="ns:ServiceOptionType" />
          <xs:element minOccurs="0" name="AppliedSubOptions" type="ns:ServiceSubOptionDetail">
            <xs:annotation>
              <xs:documentation>Supporting detail for applied options identified in preceding field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DeliveryStation" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DeliveryDayOfWeek" type="ns:DayOfWeekType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DeliveryTimestamp" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CommitDetails" type="ns:CommitDetail">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DestinationAirportId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identification of an airport, using standard three-letter abbreviations.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="IneligibleForMoneyBackGuarantee" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether or not this shipment is eligible for a money back guarantee.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="OriginServiceArea" type="xs:string">
            <xs:annotation>
              <xs:documentation>Commitment code for the origin.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DestinationServiceArea" type="xs:string">
            <xs:annotation>
              <xs:documentation>Commitment code for the destination.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransitTime" type="ns:TransitTimeType">
            <xs:annotation>
              <xs:documentation>Time in transit from pickup to delivery.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SignatureOption" type="ns:SignatureOptionType">
            <xs:annotation>
              <xs:documentation>The signature option for this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ActualRateType" type="ns:ReturnedRateType">
            <xs:annotation>
              <xs:documentation>The actual rate type of the charges for this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RatedShipmentDetails" type="ns:RatedShipmentDetail">
            <xs:annotation>
              <xs:documentation>Rate information which was requested.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CommitDetail">
        <xs:annotation>
          <xs:documentation>???</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="CommodityName" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ServiceType" type="ns:ServiceType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="AppliedOptions" type="ns:ServiceOptionType">
            <xs:annotation>
              <xs:documentation>Shows the specific combination of service options combined with the service type that produced this committment in the set returned to the caller.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CommitTimestamp" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DayOfWeek" type="ns:DayOfWeekType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransitTime" type="ns:TransitTimeType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DestinationServiceArea" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BrokerAddress" type="ns:Address">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BrokerLocationId" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BrokerCommitTimestamp" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BrokerCommitDayOfWeek" type="ns:DayOfWeekType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BrokerToDestinationDays" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ProofOfDeliveryDate" type="xs:date">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ProofOfDeliveryDayOfWeek" type="ns:DayOfWeekType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CommitMessages" type="ns:Notification">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DeliveryMessages" type="xs:string">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DelayDetails" type="ns:DelayDetail">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RequiredDocuments" type="ns:RequiredShippingDocumentType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FreightCommitDetail" type="ns:FreightCommitDetail">
            <xs:annotation>
              <xs:documentation>Only populated for Freight Requests</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DelayDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="Date" type="xs:date">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DayOfWeek" type="ns:DayOfWeekType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Level" type="ns:DelayLevelType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Point" type="ns:DelayPointType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Type" type="ns:CommitmentDelayType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DayOfWeekType">
        <xs:annotation>
          <xs:documentation>Valid values for DayofWeekType</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FRI" />
          <xs:enumeration value="MON" />
          <xs:enumeration value="SAT" />
          <xs:enumeration value="SUN" />
          <xs:enumeration value="THU" />
          <xs:enumeration value="TUE" />
          <xs:enumeration value="WED" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="DelayLevelType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CITY" />
          <xs:enumeration value="COUNTRY" />
          <xs:enumeration value="LOCATION" />
          <xs:enumeration value="POSTAL_CODE" />
          <xs:enumeration value="SERVICE_AREA" />
          <xs:enumeration value="SERVICE_AREA_SPECIAL_SERVICE" />
          <xs:enumeration value="SPECIAL_SERVICE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="DelayPointType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BROKER" />
          <xs:enumeration value="DESTINATION" />
          <xs:enumeration value="ORIGIN" />
          <xs:enumeration value="ORIGIN_DESTINATION_PAIR" />
          <xs:enumeration value="PROOF_OF_DELIVERY_POINT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="CommitmentDelayType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="HOLIDAY" />
          <xs:enumeration value="NON_WORKDAY" />
          <xs:enumeration value="NO_CITY_DELIVERY" />
          <xs:enumeration value="NO_HOLD_AT_LOCATION" />
          <xs:enumeration value="NO_LOCATION_DELIVERY" />
          <xs:enumeration value="NO_SERVICE_AREA_DELIVERY" />
          <xs:enumeration value="NO_SERVICE_AREA_SPECIAL_SERVICE_DELIVERY" />
          <xs:enumeration value="NO_SPECIAL_SERVICE_DELIVERY" />
          <xs:enumeration value="NO_ZIP_DELIVERY" />
          <xs:enumeration value="WEEKEND" />
          <xs:enumeration value="WEEKEND_SPECIAL" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="RequiredShippingDocumentType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CANADIAN_B13A" />
          <xs:enumeration value="CERTIFICATE_OF_ORIGIN" />
          <xs:enumeration value="COMMERCIAL_INVOICE" />
          <xs:enumeration value="INTERNATIONAL_AIRWAY_BILL" />
          <xs:enumeration value="MAIL_SERVICE_AIRWAY_BILL" />
          <xs:enumeration value="SHIPPERS_EXPORT_DECLARATION" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="TransitTimeType">
        <xs:annotation>
          <xs:documentation>Time in transit from pickup to delivery.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ONE_DAY" />
          <xs:enumeration value="TWO_DAYS" />
          <xs:enumeration value="THREE_DAYS" />
          <xs:enumeration value="FOUR_DAYS" />
          <xs:enumeration value="FIVE_DAYS" />
          <xs:enumeration value="SIX_DAYS" />
          <xs:enumeration value="SEVEN_DAYS" />
          <xs:enumeration value="EIGHT_DAYS" />
          <xs:enumeration value="NINE_DAYS" />
          <xs:enumeration value="TEN_DAYS" />
          <xs:enumeration value="ELEVEN_DAYS" />
          <xs:enumeration value="TWELVE_DAYS" />
          <xs:enumeration value="THIRTEEN_DAYS" />
          <xs:enumeration value="FOURTEEN_DAYS" />
          <xs:enumeration value="FIFTEEN_DAYS" />
          <xs:enumeration value="SIXTEEN_DAYS" />
          <xs:enumeration value="SEVENTEEN_DAYS" />
          <xs:enumeration value="EIGHTEEN_DAYS" />
          <xs:enumeration value="NINETEEN_DAYS" />
          <xs:enumeration value="TWENTY_DAYS" />
          <xs:enumeration value="UNKNOWN" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Notification">
        <xs:annotation>
          <xs:documentation>The descriptive data regarding the results of the submitted transaction.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Severity" type="ns:NotificationSeverityType">
            <xs:annotation>
              <xs:documentation>The severity of this notification. this can indicate success or failure or some other information about the request such as errors or notes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="Source" type="xs:string">
            <xs:annotation>
              <xs:documentation>Indicates the source of the notification. Combined with Code, it uniqely identifies this message.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Code" type="xs:string">
            <xs:annotation>
              <xs:documentation>A code that represents this notification. Combined with Source, it uniqely identifies this message.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>8</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Message" type="xs:string">
            <xs:annotation>
              <xs:documentation>Text that explains this notification.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>255</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocalizedMessage" type="xs:string">
            <xs:annotation>
              <xs:documentation>A translated message. The translation is based on the Localization element of the ClientDetail element of the request.  Not currently supported.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MessageParameters" type="ns:NotificationParameter">
            <xs:annotation>
              <xs:documentation>If the message used parameter replacement to be specific as to thre meaning of the message, this is the list of parameters that were used.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NotificationParameter">
        <xs:sequence>
          <xs:element minOccurs="0" name="Id" type="xs:string">
            <xs:annotation>
              <xs:documentation>Name identifiying the type of the data in the element 'Value'</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Value" type="xs:string">
            <xs:annotation>
              <xs:documentation>The value that was used as the replacement parameter.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="NotificationSeverityType">
        <xs:annotation>
          <xs:documentation>Identifies the set of severity values for a Notification.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="SUCCESS" />
          <xs:enumeration value="NOTE" />
          <xs:enumeration value="WARNING" />
          <xs:enumeration value="ERROR" />
          <xs:enumeration value="FAILURE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RatedShipmentDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="EffectiveNetDiscount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The difference between account based rates and list rates. Only returned when list rates are requested.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AdjustedCodCollectionAmount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Ground COD is package level.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShipmentRateDetail" type="ns:ShipmentRateDetail">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="RatedPackages" type="ns:RatedPackageDetail">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ServiceOptionType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="SATURDAY_DELIVERY" />
          <xs:enumeration value="FREIGHT_GUARANTEE" />
          <xs:enumeration value="SMARTPOST_HUB_ID" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ShipmentRateDetail">
        <xs:annotation>
          <xs:documentation>Shipment level rate information. Currently this is the same as the package level rate information.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="RateType" type="ns:ReturnedRateType">
            <xs:annotation>
              <xs:documentation>The type of rates this information contains either account based or list rates.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RateScale" type="xs:string">
            <xs:annotation>
              <xs:documentation>The FedEx rate scale used to calculate these rates.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>5</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RateZone" type="xs:string">
            <xs:annotation>
              <xs:documentation>The FedEx rate zone used to calculate these rates.</xs:documentation>
              <xs:appinfo>
                <xs:MaxLength>1</xs:MaxLength>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PricingCode" type="ns:PricingCodeType">
            <xs:annotation>
              <xs:documentation>Indicates the type of pricing used for this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RatedWeightMethod" type="ns:RatedWeightMethod">
            <xs:annotation>
              <xs:documentation>Indicates which weight was used.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MinimumChargeType" type="ns:MinimumChargeType">
            <xs:annotation>
              <xs:documentation>INTERNAL FEDEX USE ONLY.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CurrencyExchangeRate" type="ns:CurrencyExchangeRate">
            <xs:annotation>
              <xs:documentation>Specifies the currency exchange performed on financial amounts for this rate.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="SpecialRatingApplied" type="ns:SpecialRatingAppliedType">
            <xs:annotation>
              <xs:documentation>Indicates which special rating cases applied to this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DimDivisor" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>The value used to calculate the weight based on the dimensions.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FuelSurchargePercent" type="xs:decimal">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalBillingWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>The weight used to calculate these rates.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalDimWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>The dimensional weith used to calculate these rates, if applicible.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalBaseCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalFreightDiscounts" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total discounts used in the rate calculation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalNetFreight" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The freight charge minus discounts.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalSurcharges" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total amount of all surcharges applied to this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalNetFedExCharge" type="ns:Money" />
          <xs:element minOccurs="0" name="TotalTaxes" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total amount of all taxes applied to this shipment. Currently not supported.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalNetCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The net charge after applying all discounts and surcharges.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalRebates" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total sum of all rebates applied to this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalDutiesAndTaxes" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Total of all values under this shipment's dutiesAndTaxes; only provided if estimated duties and taxes were calculated for this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalNetChargeWithDutiesAndTaxes" type="ns:Money">
            <xs:annotation>
              <xs:documentation>This shipment's totalNetCharge + totalDutiesAndTaxes; only provided if estimated duties and taxes were calculated for this shipment AND duties, taxes and transportation charges are all paid by the same sender's account.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FreightRateDetail" type="ns:FreightRateDetail">
            <xs:annotation>
              <xs:documentation>Rate data specific to FedEx Freight and FedEx National Freight services.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="FreightDiscounts" type="ns:RateDiscount">
            <xs:annotation>
              <xs:documentation>A list of discounts that were applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Rebates" type="ns:Rebate">
            <xs:annotation>
              <xs:documentation>A list of the surcharges applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Surcharges" type="ns:Surcharge">
            <xs:annotation>
              <xs:documentation>A list of the surcharges applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Taxes" type="ns:Tax">
            <xs:annotation>
              <xs:documentation>A list of the taxes applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DutiesAndTaxes" type="ns:EdtCommodityTax">
            <xs:annotation>
              <xs:documentation>All commodity-based duties and taxes applicable to this shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="VariableHandlingCharges" type="ns:VariableHandlingCharges">
            <xs:annotation>
              <xs:documentation>The variable handling charges calculated based on the type variable handling charges requested.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalVariableHandlingCharges" type="ns:VariableHandlingCharges">
            <xs:annotation>
              <xs:documentation>The total of all variable handling charges at both shipment (order) and package level.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ReturnedRateType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="PAYOR_ACCOUNT" />
          <xs:enumeration value="PAYOR_LIST" />
          <xs:enumeration value="PAYOR_MULTIWEIGHT" />
          <xs:enumeration value="RATED_ACCOUNT" />
          <xs:enumeration value="RATED_LIST" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PricingCodeType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="ACTUAL" />
          <xs:enumeration value="ALTERNATE" />
          <xs:enumeration value="BASE" />
          <xs:enumeration value="HUNDREDWEIGHT" />
          <xs:enumeration value="HUNDREDWEIGHT_ALTERNATE" />
          <xs:enumeration value="INTERNATIONAL_DISTRIBUTION" />
          <xs:enumeration value="INTERNATIONAL_ECONOMY_SERVICE" />
          <xs:enumeration value="LTL_FREIGHT" />
          <xs:enumeration value="PACKAGE" />
          <xs:enumeration value="SHIPMENT" />
          <xs:enumeration value="SHIPMENT_FIVE_POUND_OPTIONAL" />
          <xs:enumeration value="SHIPMENT_OPTIONAL" />
          <xs:enumeration value="SPECIAL" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="CurrencyExchangeRate">
        <xs:annotation>
          <xs:documentation>Specifies the currency exchange performed on financial amounts for this rate.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="FromCurrency" type="xs:string">
            <xs:annotation>
              <xs:documentation>The currency code for the original (converted FROM) currency.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="IntoCurrency" type="xs:string">
            <xs:annotation>
              <xs:documentation>The currency code for the final (converted INTO) currency.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Rate" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>Multiplier used to convert fromCurrency units to intoCurrency units.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="SpecialRatingAppliedType">
        <xs:annotation>
          <xs:documentation>Indicates which special rating cases applied to this shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FIXED_FUEL_SURCHARGE" />
          <xs:enumeration value="IMPORT_PRICING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Surcharge">
        <xs:annotation>
          <xs:documentation>Identifies each surcharge applied to the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="SurchargeType" type="ns:SurchargeType">
            <xs:annotation>
              <xs:documentation>The type of surcharge applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Level" type="ns:SurchargeLevelType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Amount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The amount of the surcharge applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="SurchargeType">
        <xs:annotation>
          <xs:documentation>The type of the surcharge.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ADDITIONAL_HANDLING" />
          <xs:enumeration value="APPOINTMENT_DELIVERY" />
          <xs:enumeration value="BROKER_SELECT_OPTION" />
          <xs:enumeration value="CANADIAN_DESTINATION" />
          <xs:enumeration value="CLEARANCE_ENTRY_FEE" />
          <xs:enumeration value="COD" />
          <xs:enumeration value="CUT_FLOWERS" />
          <xs:enumeration value="DANGEROUS_GOODS" />
          <xs:enumeration value="DELIVERY_AREA" />
          <xs:enumeration value="DELIVERY_CONFIRMATION" />
          <xs:enumeration value="DRY_ICE" />
          <xs:enumeration value="EMAIL_LABEL" />
          <xs:enumeration value="EUROPE_FIRST" />
          <xs:enumeration value="EXHIBITION" />
          <xs:enumeration value="EXPORT" />
          <xs:enumeration value="EXTREME_LENGTH" />
          <xs:enumeration value="FEDEX_TAG" />
          <xs:enumeration value="FICE" />
          <xs:enumeration value="FLATBED" />
          <xs:enumeration value="FREIGHT_GUARANTEE" />
          <xs:enumeration value="FUEL" />
          <xs:enumeration value="HOME_DELIVERY_APPOINTMENT" />
          <xs:enumeration value="HOME_DELIVERY_DATE_CERTAIN" />
          <xs:enumeration value="HOME_DELIVERY_EVENING" />
          <xs:enumeration value="INSIDE_DELIVERY" />
          <xs:enumeration value="INSIDE_PICKUP" />
          <xs:enumeration value="INSURED_VALUE" />
          <xs:enumeration value="INTERHAWAII" />
          <xs:enumeration value="ISLAND_DELIVERY" />
          <xs:enumeration value="ISLAND_PICKUP" />
          <xs:enumeration value="LIFTGATE_DELIVERY" />
          <xs:enumeration value="LIFTGATE_PICKUP" />
          <xs:enumeration value="LIMITED_ACCESS_DELIVERY" />
          <xs:enumeration value="LIMITED_ACCESS_PICKUP" />
          <xs:enumeration value="METRO_DELIVERY" />
          <xs:enumeration value="METRO_PICKUP" />
          <xs:enumeration value="NON_MACHINABLE" />
          <xs:enumeration value="OFFSHORE" />
          <xs:enumeration value="ON_CALL_PICKUP" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="OUT_OF_DELIVERY_AREA" />
          <xs:enumeration value="OUT_OF_PICKUP_AREA" />
          <xs:enumeration value="OVERSIZE" />
          <xs:enumeration value="OVER_DIMENSION" />
          <xs:enumeration value="PIECE_COUNT_VERIFICATION" />
          <xs:enumeration value="PRE_DELIVERY_NOTIFICATION" />
          <xs:enumeration value="PRIORITY_ALERT" />
          <xs:enumeration value="PROTECTION_FROM_FREEZING" />
          <xs:enumeration value="REGIONAL_MALL_DELIVERY" />
          <xs:enumeration value="REGIONAL_MALL_PICKUP" />
          <xs:enumeration value="RESIDENTIAL_DELIVERY" />
          <xs:enumeration value="RESIDENTIAL_PICKUP" />
          <xs:enumeration value="RETURN_LABEL" />
          <xs:enumeration value="SATURDAY_DELIVERY" />
          <xs:enumeration value="SATURDAY_PICKUP" />
          <xs:enumeration value="SIGNATURE_OPTION" />
          <xs:enumeration value="TARP" />
          <xs:enumeration value="TRANSMART_SERVICE_FEE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="SurchargeLevelType">
        <xs:annotation>
          <xs:documentation>The type of the surcharge level.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="PACKAGE" />
          <xs:enumeration value="SHIPMENT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Tax">
        <xs:annotation>
          <xs:documentation>Identifies each tax applied to the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="TaxType" type="ns:TaxType">
            <xs:annotation>
              <xs:documentation>The type of tax applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Amount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The amount of the tax applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="TaxType">
        <xs:annotation>
          <xs:documentation>The type of the tax.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EXPORT" />
          <xs:enumeration value="GST" />
          <xs:enumeration value="HST" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="PST" />
          <xs:enumeration value="VAT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RateDiscount">
        <xs:annotation>
          <xs:documentation>Identifies a discount applied to the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="RateDiscountType" type="ns:RateDiscountType">
            <xs:annotation>
              <xs:documentation>Identifies the type of discount applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Amount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The amount of the discount applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Percent" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>The percentage of the discount applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="RateDiscountType">
        <xs:annotation>
          <xs:documentation>Identifies the type of discount applied to the shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BONUS" />
          <xs:enumeration value="EARNED" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="VOLUME" />
          <xs:enumeration value="COUPON" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Rebate">
        <xs:annotation>
          <xs:documentation>Identifies a discount applied to the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="RebateType" type="ns:RebateType">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Amount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The amount of the discount applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Percent" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>The percentage of the discount applied to the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="RebateType">
        <xs:annotation>
          <xs:documentation>Identifies the type of discount applied to the shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EARNED" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="BONUS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RatedPackageDetail">
        <xs:annotation>
          <xs:documentation>If requesting rates using the PackageDetails element (one package at a time) in the request, the rates for each package will be returned in this element. Currently total piece total weight rates are also retuned in this element.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="TrackingIds" type="ns:TrackingId">
            <xs:annotation>
              <xs:documentation>Echoed from the corresponding package in the rate request (if provided).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GroupNumber" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>Used with request containing PACKAGE_GROUPS, to identify which group of identical packages was used to produce a reply item.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EffectiveNetDiscount" type="ns:Money">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AdjustedCodCollectionAmount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Ground COD is package level.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="OversizeClass" type="ns:OversizeClassType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PackageRateDetail" type="ns:PackageRateDetail">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="RatedWeightMethod">
        <xs:annotation>
          <xs:documentation>The method used to calculate the weight to be used in rating the package..</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ACTUAL" />
          <xs:enumeration value="DIM" />
          <xs:enumeration value="FREIGHT_MINIMUM" />
          <xs:enumeration value="OVERSIZE_1" />
          <xs:enumeration value="OVERSIZE_2" />
          <xs:enumeration value="OVERSIZE_3" />
          <xs:enumeration value="BALLOON" />
          <xs:enumeration value="MIXED" />
          <xs:enumeration value="OVERSIZE" />
          <xs:enumeration value="WEIGHT_BREAK" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="MinimumChargeType">
        <xs:annotation>
          <xs:documentation>Internal FedEx use only.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CUSTOMER" />
          <xs:enumeration value="CUSTOMER_FREIGHT_WEIGHT" />
          <xs:enumeration value="EARNED_DISCOUNT" />
          <xs:enumeration value="RATE_SCALE" />
          <xs:enumeration value="MIXED" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="VariableHandlingCharges">
        <xs:annotation>
          <xs:documentation>The variable handling charges calculated based on the type variable handling charges requested.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="VariableHandlingCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The variable handling charge amount calculated based on the requested variable handling charge detail.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalCustomerCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The calculated varibale handling charge plus the net charge.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PackageRateDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="RateType" type="ns:ReturnedRateType">
            <xs:annotation>
              <xs:documentation>The type of rates this information contains either account based or list rates.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RatedWeightMethod" type="ns:RatedWeightMethod">
            <xs:annotation>
              <xs:documentation>The method used to calculate the weight to be used in rating the package..</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MinimumChargeType" type="ns:MinimumChargeType">
            <xs:annotation>
              <xs:documentation>Internal FedEx use only.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BillingWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>The weight that was used to calculate the rate.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DimWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>The dimensional weight that was calculated for this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="OversizeWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>The oversize weight that was used in the rate calculation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BaseCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The freight charge that was calculated for this package before surcharges, discounts and taxes..</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalFreightDiscounts" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total discounts used in the rate calculation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NetFreight" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The base charge minus discounts. </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalSurcharges" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total amount of all surcharges applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NetFedExCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>??</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalTaxes" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total amount of all taxes applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NetCharge" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The the charge for this package including surcharges, discounts and taxes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalRebates" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The total sum of all rebates applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="FreightDiscounts" type="ns:RateDiscount">
            <xs:annotation>
              <xs:documentation>A list of discounts that were applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Rebates" type="ns:Rebate">
            <xs:annotation>
              <xs:documentation>A list of the surcharges applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Surcharges" type="ns:Surcharge">
            <xs:annotation>
              <xs:documentation>A list of the surcharges applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Taxes" type="ns:Tax">
            <xs:annotation>
              <xs:documentation>A list of the taxes applied to this package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="VariableHandlingCharges" type="ns:VariableHandlingCharges">
            <xs:annotation>
              <xs:documentation>The variable handling charges calculated based on the type variable handling charges requested.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PendingShipmentDetail">
        <xs:annotation>
          <xs:documentation>Details used while creating a pending shipment</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Type" type="ns:PendingShipmentType">
            <xs:annotation>
              <xs:documentation>Pending Shipment Type</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExpirationDate" type="xs:dateTime">
            <xs:annotation>
              <xs:documentation>Date and time when this pending shipment expires.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EmailLabelDetail" type="ns:EMailLabelDetail">
            <xs:annotation>
              <xs:documentation>Details used for emailing a label.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="PendingShipmentType">
        <xs:annotation>
          <xs:documentation>Pending shipment type</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EMAIL" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="ExpressRegionCode">
        <xs:annotation>
          <xs:documentation>Indicates a FedEx Express operating region.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="APAC" />
          <xs:enumeration value="CA" />
          <xs:enumeration value="EMEA" />
          <xs:enumeration value="LAC" />
          <xs:enumeration value="US" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FlatbedTrailerDetail">
        <xs:annotation>
          <xs:documentation>Specifies the optional features/characteristics requested for a Freight shipment utilizing a flatbed trailer.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Options" type="ns:FlatbedTrailerOption">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="FlatbedTrailerOption">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="OVER_DIMENSION" />
          <xs:enumeration value="TARP" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="FreightAccountPaymentType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="COLLECT" />
          <xs:enumeration value="PREPAID" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FreightBaseCharge">
        <xs:annotation>
          <xs:documentation>Individual charge which contributes to the total base charge for the shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="FreightClass" type="ns:FreightClassType">
            <xs:annotation>
              <xs:documentation>Freight class for this line item.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RatedAsClass" type="ns:FreightClassType">
            <xs:annotation>
              <xs:documentation>Effective freight class used for rating this line item.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NmfcCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>NMFC Code for commodity.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>Customer-provided description for this commodity or class line.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Weight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Weight for this commodity or class line.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ChargeRate" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Rate or factor applied to this line item.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ChargeBasis" type="ns:FreightChargeBasisType">
            <xs:annotation>
              <xs:documentation>Identifies the manner in which the chargeRate for this line item was applied.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExtendedAmount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>The net or extended charge for this line item.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="FreightChargeBasisType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CWT" />
          <xs:enumeration value="FLAT" />
          <xs:enumeration value="MINIMUM" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="FreightClassType">
        <xs:annotation>
          <xs:documentation>These values represent the industry-standard freight classes used for FedEx Freight and FedEx National Freight shipment description. (Note: The alphabetic prefixes are required to distinguish these values from decimal numbers on some client platforms.)</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CLASS_050" />
          <xs:enumeration value="CLASS_055" />
          <xs:enumeration value="CLASS_060" />
          <xs:enumeration value="CLASS_065" />
          <xs:enumeration value="CLASS_070" />
          <xs:enumeration value="CLASS_077_5" />
          <xs:enumeration value="CLASS_085" />
          <xs:enumeration value="CLASS_092_5" />
          <xs:enumeration value="CLASS_100" />
          <xs:enumeration value="CLASS_110" />
          <xs:enumeration value="CLASS_125" />
          <xs:enumeration value="CLASS_150" />
          <xs:enumeration value="CLASS_175" />
          <xs:enumeration value="CLASS_200" />
          <xs:enumeration value="CLASS_250" />
          <xs:enumeration value="CLASS_300" />
          <xs:enumeration value="CLASS_400" />
          <xs:enumeration value="CLASS_500" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FreightGuaranteeDetail">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Type" type="ns:FreightGuaranteeType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Date" type="xs:date">
            <xs:annotation>
              <xs:documentation>Date for all Freight guarantee types.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Time" type="xs:time">
            <xs:annotation>
              <xs:documentation>Time for GUARANTEED_TIME only.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="FreightGuaranteeType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="GUARANTEED_DATE" />
          <xs:enumeration value="GUARANTEED_MORNING" />
          <xs:enumeration value="GUARANTEED_TIME" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FreightRateDetail">
        <xs:annotation>
          <xs:documentation>Rate data specific to FedEx Freight or FedEx National Freight services.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="QuoteNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>A unique identifier for a specific rate quotation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="BaseCharges" type="ns:FreightBaseCharge">
            <xs:annotation>
              <xs:documentation>Freight charges which accumulate to the total base charge for the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Notations" type="ns:FreightRateNotation">
            <xs:annotation>
              <xs:documentation>Human-readable descriptions of additional information on this shipment rating.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="FreightRateNotation">
        <xs:annotation>
          <xs:documentation>Additional non-monetary data returned with Freight rates.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Code" type="xs:string">
            <xs:annotation>
              <xs:documentation>Unique identifier for notation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>Human-readable explanation of notation.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="FreightShipmentDetail">
        <xs:annotation>
          <xs:documentation>Data applicable to shipments using FEDEX_FREIGHT and FEDEX_NATIONAL_FREIGHT services.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="FedExFreightAccountNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Account number used with FEDEX_FREIGHT service.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FedExFreightBillingAddress" type="ns:Address">
            <xs:annotation>
              <xs:documentation>Used for validating FedEx Freight account number.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FedExNationalFreightAccountNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>Account number used with FEDEX_NATIONAL_FREIGHT service.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FedExNationalFreightBillingAddress" type="ns:Address">
            <xs:annotation>
              <xs:documentation>Used for validating FedEx National Freight account number.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Role" type="ns:FreightShipmentRoleType">
            <xs:annotation>
              <xs:documentation>Indicates the role of the party submitting the transaction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PaymentType" type="ns:FreightAccountPaymentType">
            <xs:annotation>
              <xs:documentation>Designates which of the requester's tariffs will be used for rating.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NewGoods" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Shipment contents are declared as new for valuation purposes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DeclaredValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Carriage value of shipment. This field is documentary only; the requested shipment field "insuredValue" must be used to request excess valuation for reimbursement in case of damage or loss.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Coupons" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifiers for promotional discounts offered to customers.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HandlingUnits" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>Number of individual handling units (for unit pricing).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ClientDiscountPercent" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>Estimated discount rate provided by client for unsecured rate quote.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PalletWeight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Total weight of pallets used in shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShipmentDimensions" type="ns:Dimensions">
            <xs:annotation>
              <xs:documentation>Overall shipment dimensions.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Comment" type="xs:string">
            <xs:annotation>
              <xs:documentation>Description for the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="LineItems" type="ns:FreightShipmentLineItem">
            <xs:annotation>
              <xs:documentation>Details of the commodities in the shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="FreightShipmentLineItem">
        <xs:annotation>
          <xs:documentation>Description of an individual commodity or class of content in a shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="FreightClass" type="ns:FreightClassType">
            <xs:annotation>
              <xs:documentation>Freight class for this line item.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Packaging" type="ns:PhysicalPackagingType">
            <xs:annotation>
              <xs:documentation>Specification of packaging for this commodity or class line.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>Customer-provided description for this commodity or class line.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Weight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Weight for this commodity or class line.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Dimensions" type="ns:Dimensions">
            <xs:annotation>
              <xs:documentation>FED EX INTERNAL USE ONLY - Individual line item dimensions.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Volume" type="ns:Volume">
            <xs:annotation>
              <xs:documentation>Volume (cubic measure) for this commodity or class line.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="FreightShipmentRoleType">
        <xs:annotation>
          <xs:documentation>Indicates the role of the party submitting the transaction.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CONSIGNEE" />
          <xs:enumeration value="SHIPPER" />
          <xs:enumeration value="THIRD_PARTY" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="RequestedShippingDocumentType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="COMMERCIAL_INVOICE" />
          <xs:enumeration value="CUSTOMER_SPECIFIED_LABELS" />
          <xs:enumeration value="GENERAL_AGENCY_AGREEMENT" />
          <xs:enumeration value="LABEL" />
          <xs:enumeration value="NAFTA_CERTIFICATE_OF_ORIGIN" />
          <xs:enumeration value="RETURN_INSTRUCTIONS" />
          <xs:enumeration value="CERTIFICATE_OF_ORIGIN" />
          <xs:enumeration value="PRO_FORMA_INVOICE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="ShippingDocumentImageType">
        <xs:annotation>
          <xs:documentation>Specifies the image format used for a shipping document.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="DPL" />
          <xs:enumeration value="EPL2" />
          <xs:enumeration value="PDF" />
          <xs:enumeration value="PNG" />
          <xs:enumeration value="ZPLII" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="ShippingDocumentStockType">
        <xs:annotation>
          <xs:documentation>Specifies the type of paper (stock) on which a document will be printed.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="PAPER_4X6" />
          <xs:enumeration value="PAPER_LETTER" />
          <xs:enumeration value="STOCK_4X6" />
          <xs:enumeration value="STOCK_4X6.75_LEADING_DOC_TAB" />
          <xs:enumeration value="STOCK_4X6.75_TRAILING_DOC_TAB" />
          <xs:enumeration value="STOCK_4X8" />
          <xs:enumeration value="STOCK_4X9_LEADING_DOC_TAB" />
          <xs:enumeration value="STOCK_4X9_TRAILING_DOC_TAB" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Volume">
        <xs:annotation>
          <xs:documentation>Three-dimensional volume/cubic measurement.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Units" type="ns:VolumeUnits">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Value" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="VolumeUnits">
        <xs:annotation>
          <xs:documentation>Units of three-dimensional volume/cubic measure.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CUBIC_FT" />
          <xs:enumeration value="CUBIC_M" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ServiceSubOptionDetail">
        <xs:annotation>
          <xs:documentation>Supporting detail for applied options identified in a rate quote.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="FreightGuarantee" type="ns:FreightGuaranteeType">
            <xs:annotation>
              <xs:documentation>Identifies the type of Freight Guarantee applied, if FREIGHT_GUARANTEE is applied to the rate quote.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SmartPostHubId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the smartPostHubId used during rate quote, if SMARTPOST_HUB_ID is a variable option on the rate request.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="AdditionalLabelsDetail">
        <xs:annotation>
          <xs:documentation>???</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Type" type="ns:AdditionalLabelsType">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Count" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="AdditionalLabelsType">
        <xs:annotation>
          <xs:documentation>Identifies the type of additional labels.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BROKER" />
          <xs:enumeration value="CONSIGNEE" />
          <xs:enumeration value="CUSTOMS" />
          <xs:enumeration value="DESTINATION" />
          <xs:enumeration value="MANIFEST" />
          <xs:enumeration value="ORIGIN" />
          <xs:enumeration value="RECIPIENT" />
          <xs:enumeration value="SHIPPER" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="BarcodeSymbologyType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="CODABAR" />
          <xs:enumeration value="CODE128" />
          <xs:enumeration value="CODE128B" />
          <xs:enumeration value="CODE128C" />
          <xs:enumeration value="CODE39" />
          <xs:enumeration value="CODE93" />
          <xs:enumeration value="I2OF5" />
          <xs:enumeration value="MANUAL" />
          <xs:enumeration value="PDF417" />
          <xs:enumeration value="POSTNET" />
          <xs:enumeration value="UCC128" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="CommercialInvoiceDetail">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Format" type="ns:ShippingDocumentFormat">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CustomerImageUsages" type="ns:CustomerImageUsage">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ConfigurableLabelReferenceEntry">
        <xs:annotation>
          <xs:documentation>Defines additional data to print in the Configurable portion of the label, this allows you to print the same type information on the label that can also be printed on the doc tab.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ZoneNumber" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>1 of 12 possible zones to  position data.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Header" type="xs:string">
            <xs:annotation>
              <xs:documentation>The identifiying text for the data in this zone.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DataField" type="xs:string">
            <xs:annotation>
              <xs:documentation>A reference to a field in either the request or reply to print in this zone following the header.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LiteralValue" type="xs:string">
            <xs:annotation>
              <xs:documentation>A literal value to print after the header in this zone.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomLabelBarcodeEntry">
        <xs:sequence>
          <xs:element minOccurs="0" name="Position" type="ns:CustomLabelPosition" />
          <xs:element minOccurs="0" name="Format" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DataFields" type="xs:string" />
          <xs:element minOccurs="0" name="BarHeight" type="xs:int" />
          <xs:element minOccurs="0" name="ThinBarWidth" type="xs:int" />
          <xs:element minOccurs="0" name="BarcodeSymbology" type="ns:BarcodeSymbologyType" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomLabelBoxEntry">
        <xs:sequence>
          <xs:element name="TopLeftCorner" type="ns:CustomLabelPosition" />
          <xs:element name="BottomRightCorner" type="ns:CustomLabelPosition" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="CustomLabelCoordinateUnits">
        <xs:annotation>
          <xs:documentation>Valid values for CustomLabelCoordinateUnits</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="MILS" />
          <xs:enumeration value="PIXELS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="CustomLabelDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="CoordinateUnits" type="ns:CustomLabelCoordinateUnits" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="TextEntries" type="ns:CustomLabelTextEntry" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="GraphicEntries" type="ns:CustomLabelGraphicEntry" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="BoxEntries" type="ns:CustomLabelBoxEntry" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="BarcodeEntries" type="ns:CustomLabelBarcodeEntry" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomLabelGraphicEntry">
        <xs:sequence>
          <xs:element minOccurs="0" name="Position" type="ns:CustomLabelPosition" />
          <xs:element minOccurs="0" name="PrinterGraphicId" type="xs:string" />
          <xs:element minOccurs="0" name="FileGraphicFullName" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomLabelPosition">
        <xs:sequence>
          <xs:element minOccurs="0" name="X" type="xs:nonNegativeInteger" />
          <xs:element minOccurs="0" name="Y" type="xs:nonNegativeInteger" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomLabelTextEntry">
        <xs:sequence>
          <xs:element minOccurs="0" name="Position" type="ns:CustomLabelPosition" />
          <xs:element minOccurs="0" name="Format" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DataFields" type="xs:string" />
          <xs:element minOccurs="0" name="ThermalFontId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Printer-specific font name for use with thermal printer labels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FontName" type="xs:string">
            <xs:annotation>
              <xs:documentation>Generic font name for use with plain paper labels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FontSize" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>Generic font size for use with plain paper labels.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomerSpecifiedLabelDetail">
        <xs:annotation>
          <xs:documentation>Allows customer-specified control of label content.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="DocTabContent" type="ns:DocTabContent">
            <xs:annotation>
              <xs:documentation>If omitted, no doc tab will be produced (i.e. default = former NONE type).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomContent" type="ns:CustomLabelDetail">
            <xs:annotation>
              <xs:documentation>Defines any custom content to print on the label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="ConfigurableReferenceEntries" type="ns:ConfigurableLabelReferenceEntry">
            <xs:annotation>
              <xs:documentation>Defines additional data to print in the Configurable portion of the label, this allows you to print the same type information on the label that can also be printed on the doc tab.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MaskedData" type="ns:LabelMaskableDataType">
            <xs:annotation>
              <xs:documentation>Data to exclude from printing on the label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TermsAndConditionsLocalization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>The language to use when printing the terms and conditions on the label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="AdditionalLabels" type="ns:AdditionalLabelsDetail">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AirWaybillSuppressionCount" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>???</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DocTabContent">
        <xs:sequence>
          <xs:element minOccurs="0" name="DocTabContentType" type="ns:DocTabContentType">
            <xs:annotation>
              <xs:documentation>The DocTabContentType options available.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Zone001" type="ns:DocTabContentZone001">
            <xs:annotation>
              <xs:documentation>The DocTabContentType should be set to ZONE001 to specify additional Zone details.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Barcoded" type="ns:DocTabContentBarcoded">
            <xs:annotation>
              <xs:documentation>The DocTabContentType should be set to BARCODED to specify additional BarCoded details.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DocTabContentBarcoded">
        <xs:sequence>
          <xs:element minOccurs="0" name="Symbology" type="ns:BarcodeSymbologyType" />
          <xs:element minOccurs="0" name="Specification" type="ns:DocTabZoneSpecification" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DocTabContentType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="BARCODED" />
          <xs:enumeration value="MINIMUM" />
          <xs:enumeration value="STANDARD" />
          <xs:enumeration value="ZONE001" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="DocTabContentZone001">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="12" name="DocTabZoneSpecifications" type="ns:DocTabZoneSpecification" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DocTabZoneJustificationType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="LEFT" />
          <xs:enumeration value="RIGHT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="DocTabZoneSpecification">
        <xs:sequence>
          <xs:element minOccurs="0" name="ZoneNumber" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>Zone number can be between 1 and 12.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Header" type="xs:string">
            <xs:annotation>
              <xs:documentation>Header value on this zone.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DataField" type="xs:string">
            <xs:annotation>
              <xs:documentation>Reference path to the element in the request/reply whose value should be printed on this zone.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LiteralValue" type="xs:string">
            <xs:annotation>
              <xs:documentation>Free form-text to be printed in this zone.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Justification" type="ns:DocTabZoneJustificationType">
            <xs:annotation>
              <xs:documentation>Justification for the text printed on this zone.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GeneralAgencyAgreementDetail">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Format" type="ns:ShippingDocumentFormat">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="LabelFormatType">
        <xs:annotation>
          <xs:documentation>Specifies the type of label to be returned.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="COMMON2D" />
          <xs:enumeration value="LABEL_DATA_ONLY" />
          <xs:enumeration value="MAILROOM" />
          <xs:enumeration value="NO_LABEL" />
          <xs:enumeration value="PRE_COMMON2D" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="LabelMaskableDataType">
        <xs:annotation>
          <xs:documentation>Names for data elements / areas which may be suppressed from printing on labels.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CUSTOMS_VALUE" />
          <xs:enumeration value="DIMENSIONS" />
          <xs:enumeration value="DUTIES_AND_TAXES_PAYOR_ACCOUNT_NUMBER" />
          <xs:enumeration value="FREIGHT_PAYOR_ACCOUNT_NUMBER" />
          <xs:enumeration value="PACKAGE_SEQUENCE_AND_COUNT" />
          <xs:enumeration value="SHIPPER_ACCOUNT_NUMBER" />
          <xs:enumeration value="SUPPLEMENTAL_LABEL_DOC_TAB" />
          <xs:enumeration value="TERMS_AND_CONDITIONS" />
          <xs:enumeration value="TOTAL_WEIGHT" />
          <xs:enumeration value="TRANSPORTATION_CHARGES_PAYOR_ACCOUNT_NUMBER" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="LabelPrintingOrientationType">
        <xs:annotation>
          <xs:documentation>This indicates if the top or bottom of the label comes out of the printer first.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BOTTOM_EDGE_OF_TEXT_FIRST" />
          <xs:enumeration value="TOP_EDGE_OF_TEXT_FIRST" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="LabelRotationType">
        <xs:annotation>
          <xs:documentation>Relative to normal orientation for the printer. RIGHT=90 degrees clockwise, UPSIDE_DOWN=180 degrees, LEFT=90 degrees counterclockwise.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="NONE" />
          <xs:enumeration value="RIGHT" />
          <xs:enumeration value="UPSIDE_DOWN" />
          <xs:enumeration value="LEFT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="LabelSpecification">
        <xs:annotation>
          <xs:documentation>Description of shipping label to be returned in the reply</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="LabelFormatType" type="ns:LabelFormatType">
            <xs:annotation>
              <xs:documentation>Specify type of label to be returned</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ImageType" type="ns:ShippingDocumentImageType">
            <xs:annotation>
              <xs:documentation>
                The type of image or printer commands the label is to be formatted in.
                DPL = Unimark thermal printer language
                EPL2 = Eltron thermal printer language
                PDF = a label returned as a pdf image
                PNG = a label returned as a png image
                ZPLII = Zebra thermal printer language
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelStockType" type="ns:LabelStockType">
            <xs:annotation>
              <xs:documentation>For thermal printer lables this indicates the size of the label and the location of the doc tab if present.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelPrintingOrientation" type="ns:LabelPrintingOrientationType">
            <xs:annotation>
              <xs:documentation>This indicates if the top or bottom of the label comes out of the printer first.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelRotation" type="ns:LabelRotationType">
            <xs:annotation>
              <xs:documentation>Relative to normal orientation for the printer. RIGHT=90 degrees clockwise, UPSIDE_DOWN=180 degrees, LEFT=90 degrees counterclockwise.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PrintedLabelOrigin" type="ns:ContactAndAddress">
            <xs:annotation>
              <xs:documentation>If present, this contact and address information will replace the return address information on the label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomerSpecifiedDetail" type="ns:CustomerSpecifiedLabelDetail">
            <xs:annotation>
              <xs:documentation>Allows customer-specified control of label content.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="LabelStockType">
        <xs:annotation>
          <xs:documentation>For thermal printer labels this indicates the size of the label and the location of the doc tab if present.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="PAPER_4X6" />
          <xs:enumeration value="PAPER_4X8" />
          <xs:enumeration value="PAPER_4X9" />
          <xs:enumeration value="PAPER_7X4.75" />
          <xs:enumeration value="PAPER_8.5X11_BOTTOM_HALF_LABEL" />
          <xs:enumeration value="PAPER_8.5X11_TOP_HALF_LABEL" />
          <xs:enumeration value="STOCK_4X6" />
          <xs:enumeration value="STOCK_4X6.75_LEADING_DOC_TAB" />
          <xs:enumeration value="STOCK_4X6.75_TRAILING_DOC_TAB" />
          <xs:enumeration value="STOCK_4X8" />
          <xs:enumeration value="STOCK_4X9_LEADING_DOC_TAB" />
          <xs:enumeration value="STOCK_4X9_TRAILING_DOC_TAB" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="NaftaCertificateOfOriginDetail">
        <xs:annotation>
          <xs:documentation>The descriptive data regarding NAFTA COO.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Format" type="ns:ShippingDocumentFormat">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BlanketPeriod" type="ns:DateRange">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ImporterSpecification" type="ns:NaftaImporterSpecificationType">
            <xs:annotation>
              <xs:documentation>Indicates which Party (if any) from the shipment is to be used as the source of importer data on the NAFTA COO form.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SignatureContact" type="ns:Contact">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ProducerSpecification" type="ns:NaftaProducerSpecificationType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Producers" type="ns:NaftaProducer">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CustomerImageUsages" type="ns:CustomerImageUsage">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NaftaProducer">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Id" type="xs:string">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Producer" type="ns:Party">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="NaftaProducerSpecificationType">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="AVAILABLE_UPON_REQUEST" />
          <xs:enumeration value="MULTIPLE_SPECIFIED" />
          <xs:enumeration value="SAME" />
          <xs:enumeration value="SINGLE_SPECIFIED" />
          <xs:enumeration value="UNKNOWN" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ShippingDocumentFormat">
        <xs:annotation>
          <xs:documentation>Format of shipping documents</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ImageType" type="ns:ShippingDocumentImageType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="StockType" type="ns:ShippingDocumentStockType">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ProvideInstructions" type="xs:boolean">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Localization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>Governs the language to be used for this individual document, independently from other content returned for the same shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ShippingDocumentSpecification">
        <xs:annotation>
          <xs:documentation>Description of shipping documents</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="ShippingDocumentTypes" type="ns:RequestedShippingDocumentType">
            <xs:annotation>
              <xs:documentation>Specify type of documents</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CustomerProvidedImages" type="ns:CustomerProvidedImage">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NaftaCertificateOfOriginDetail" type="ns:NaftaCertificateOfOriginDetail">
            <xs:annotation>
              <xs:documentation>Details pertaining to NAFTA COO.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CommercialInvoiceDetail" type="ns:CommercialInvoiceDetail">
            <xs:annotation>
              <xs:documentation>Details pertaining to the CI.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GeneralAgencyAgreementDetail" type="ns:GeneralAgencyAgreementDetail">
            <xs:annotation>
              <xs:documentation>Details pertaining to the GAA.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CertificateOfOrigin" type="ns:CertificateOfOriginDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CertificateOfOriginDetail">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="DocumentFormat" type="ns:ShippingDocumentFormat">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomerImageUsages" type="ns:CustomerImageUsage">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CustomerImageUsage">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Type" type="ns:CustomerImageUsageType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Id" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="CustomerImageUsageType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="LETTER_HEAD" />
          <xs:enumeration value="SIGNATURE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="CustomerProvidedImage">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Image" type="xs:base64Binary">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ImageId" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Distance">
        <xs:annotation>
          <xs:documentation>Driving or other transportation distances, distinct from dimension measurements.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Value" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Units" type="ns:DistanceUnits">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DistanceUnits">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="KM" />
          <xs:enumeration value="MI" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="EdtCommodityTax">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="HarmonizedCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Taxes" type="ns:EdtTaxDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EdtExciseCondition">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Category" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Value" type="xs:string">
            <xs:annotation>
              <xs:documentation>Customer-declared value, with data type and legal values depending on excise condition, used in defining the taxable value of the item.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="EdtRequestType">
        <xs:annotation>
          <xs:documentation>Specifies the types of Estimated Duties and Taxes to be included in a rate quotation for an international shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ALL" />
          <xs:enumeration value="NONE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="EdtTaxDetail">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="TaxType" type="ns:EdtTaxType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="EffectiveDate" type="xs:date">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TaxableValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Formula" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Amount" type="ns:Money">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="EdtTaxType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ADDITIONAL_TAXES" />
          <xs:enumeration value="CONSULAR_INVOICE_FEE" />
          <xs:enumeration value="CUSTOMS_SURCHARGES" />
          <xs:enumeration value="DUTY" />
          <xs:enumeration value="EXCISE_TAX" />
          <xs:enumeration value="FOREIGN_EXCHANGE_TAX" />
          <xs:enumeration value="GENERAL_SALES_TAX" />
          <xs:enumeration value="IMPORT_LICENSE_FEE" />
          <xs:enumeration value="INTERNAL_ADDITIONAL_TAXES" />
          <xs:enumeration value="INTERNAL_SENSITIVE_PRODUCTS_TAX" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="SENSITIVE_PRODUCTS_TAX" />
          <xs:enumeration value="STAMP_TAX" />
          <xs:enumeration value="STATISTICAL_TAX" />
          <xs:enumeration value="TRANSPORT_FACILITIES_TAX" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FreightCommitDetail">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="OriginDetail" type="ns:FreightServiceCenterDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DestinationDetail" type="ns:FreightServiceCenterDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TotalDistance" type="ns:Distance">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="FreightServiceCenterDetail">
        <xs:annotation>
          <xs:documentation>This class describes the relationship between a customer-specified address and the FedEx Freight / FedEx National Freight Service Center that supports that address.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="InterlineCarrierCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Freight Industry standard non-FedEx carrier identification</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="InterlineCarrierName" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AdditionalDays" type="xs:int">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocalService" type="ns:ServiceType">
            <xs:annotation>
              <xs:documentation>Service branding which may be used for local pickup or delivery, distinct from service used for line-haul of customer's shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocalDistance" type="ns:Distance">
            <xs:annotation>
              <xs:documentation>Distance between customer address (pickup or delivery) and the supporting Freight / National Freight service center.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocalDuration" type="xs:string">
            <xs:annotation>
              <xs:documentation>Time to travel between customer address (pickup or delivery) and the supporting Freight / National Freight service center.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocalServiceScheduling" type="ns:FreightServiceSchedulingType">
            <xs:annotation>
              <xs:documentation>Specifies when/how the customer can arrange for pickup or delivery.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="LimitedServiceDays" type="ns:DayOfWeekType">
            <xs:annotation>
              <xs:documentation>Specifies days of operation if localServiceScheduling is LIMITED.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GatewayLocationId" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="FreightServiceSchedulingType">
        <xs:annotation>
          <xs:documentation>Specifies the type of service scheduling offered from a Freight or National Freight Service Center to a customer-supplied address.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="LIMITED" />
          <xs:enumeration value="STANDARD" />
          <xs:enumeration value="WILL_CALL" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Measure">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Quantity" type="xs:decimal">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Units" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="NaftaImporterSpecificationType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="IMPORTER_OF_RECORD" />
          <xs:enumeration value="RECIPIENT" />
          <xs:enumeration value="UNKNOWN" />
          <xs:enumeration value="VARIOUS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PhysicalPackagingType">
        <xs:annotation>
          <xs:documentation>This enumeration rationalizes the former FedEx Express international "admissibility package" types (based on ANSI X.12) and the FedEx Freight packaging types. The values represented are those common to both carriers.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="BAG" />
          <xs:enumeration value="BARREL" />
          <xs:enumeration value="BASKET" />
          <xs:enumeration value="BOX" />
          <xs:enumeration value="BUCKET" />
          <xs:enumeration value="BUNDLE" />
          <xs:enumeration value="CARTON" />
          <xs:enumeration value="CASE" />
          <xs:enumeration value="CONTAINER" />
          <xs:enumeration value="CRATE" />
          <xs:enumeration value="CYLINDER" />
          <xs:enumeration value="DRUM" />
          <xs:enumeration value="ENVELOPE" />
          <xs:enumeration value="HAMPER" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="PAIL" />
          <xs:enumeration value="PALLET" />
          <xs:enumeration value="PIECE" />
          <xs:enumeration value="REEL" />
          <xs:enumeration value="ROLL" />
          <xs:enumeration value="SKID" />
          <xs:enumeration value="TANK" />
          <xs:enumeration value="TUBE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RequestedPackageLineItem">
        <xs:annotation>
          <xs:documentation>This class rationalizes RequestedPackage and RequestedPackageSummary from previous interfaces. The way in which it is uses within a RequestedShipment depends on the RequestedPackageDetailType value specified for that shipment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="SequenceNumber" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>Used only with INDIVIDUAL_PACKAGE, as a unique identifier of each requested package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GroupNumber" type="xs:nonNegativeInteger">
            <xs:annotation>
              <xs:documentation>Used only with PACKAGE_GROUPS, as a unique identifier of each group of identical packages.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GroupPackageCount" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>Used only with PACKAGE_GROUPS, as a count of packages within a group of identical packages.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="VariableHandlingChargeDetail" type="ns:VariableHandlingChargeDetail">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="InsuredValue" type="ns:Money">
            <xs:annotation>
              <xs:documentation>Only used for INDIVIDUAL_PACKAGES and PACKAGE_GROUPS. Ignored for PACKAGE_SUMMARY, in which case totalInsuredValue and packageCount on the shipment will be used to determine this value.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Weight" type="ns:Weight">
            <xs:annotation>
              <xs:documentation>Only used for INDIVIDUAL_PACKAGES and PACKAGE_GROUPS. Ignored for PACKAGE_SUMMARY, in which case totalweight and packageCount on the shipment will be used to determine this value.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Dimensions" type="ns:Dimensions">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PhysicalPackaging" type="ns:PhysicalPackagingType">
            <xs:annotation>
              <xs:documentation>Provides additional detail on how the customer has physically packaged this item. As of June 2009, required for packages moving under international and SmartPost services.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ItemDescription" type="xs:string">
            <xs:annotation>
              <xs:documentation>Human-readable text describing the package.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="3" name="CustomerReferences" type="ns:CustomerReference">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpecialServicesRequested" type="ns:PackageSpecialServicesRequested">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="ContentRecords" type="ns:ContentRecord">
            <xs:annotation>
              <xs:documentation>Only used for INDIVIDUAL_PACKAGES and PACKAGE_GROUPS.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="SmartPostAncillaryEndorsementType">
        <xs:annotation>
          <xs:documentation>These values are mutually exclusive; at most one of them can be attached to a SmartPost shipment.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ADDRESS_CORRECTION" />
          <xs:enumeration value="CARRIER_LEAVE_IF_NO_RESPONSE" />
          <xs:enumeration value="CHANGE_SERVICE" />
          <xs:enumeration value="FORWARDING_SERVICE" />
          <xs:enumeration value="RETURN_SERVICE" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="SmartPostShipmentDetail">
        <xs:annotation>
          <xs:documentation>Data required for shipments handled under the SMART_POST and GROUND_SMART_POST service types.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Indicia" type="ns:SmartPostIndiciaType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AncillaryEndorsement" type="ns:SmartPostAncillaryEndorsementType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="SpecialServices" type="ns:SmartPostShipmentSpecialServiceType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HubId" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomerManifestId" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="SmartPostShipmentSpecialServiceType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="USPS_DELIVERY_CONFIRMATION" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="TrackingIdType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EXPRESS" />
          <xs:enumeration value="GROUND" />
          <xs:enumeration value="USPS" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="SmartPostIndiciaType">
        <xs:annotation>
          <xs:documentation>??</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="MEDIA_MAIL" />
          <xs:enumeration value="PARCEL_SELECT" />
          <xs:enumeration value="PRESORTED_BOUND_PRINTED_MATTER" />
          <xs:enumeration value="PRESORTED_STANDARD" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="UploadDocumentDetail">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="LineNumber" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomerReference" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentProducer" type="ns:UploadDocumentProducerType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentType" type="ns:UploadDocumentType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FileName" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentContent" type="xs:base64Binary">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="UploadDocumentReferenceDetail">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="LineNumber" type="xs:positiveInteger">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomerReference" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentProducer" type="ns:UploadDocumentProducerType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentType" type="ns:UploadDocumentType">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentId" type="xs:string">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DocumentIdProducer" type="ns:UploadDocumentIdProducer">
            <xs:annotation>
              <xs:documentation>?</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="UploadDocumentIdProducer">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CUSTOMER" />
          <xs:enumeration value="FEDEX_CSHP" />
          <xs:enumeration value="FEDEX_GTM" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="UploadDocumentProducerType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CUSTOMER" />
          <xs:enumeration value="FEDEX_CLS" />
          <xs:enumeration value="FEDEX_GTM" />
          <xs:enumeration value="OTHER" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="UploadDocumentType">
        <xs:annotation>
          <xs:documentation>?</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CERTIFICATE_OF_ORIGIN" />
          <xs:enumeration value="COMMERCIAL_INVOICE" />
          <xs:enumeration value="ETD_LABEL" />
          <xs:enumeration value="NAFTA_CERTIFICATE_OF_ORIGIN" />
          <xs:enumeration value="OTHER" />
          <xs:enumeration value="PRO_FORMA_INVOICE" />
        </xs:restriction>
      </xs:simpleType>
    </xs:schema>
  </types>
  <message name="RateRequest">
    <part name="RateRequest" element="ns:RateRequest" />
  </message>
  <message name="RateReply">
    <part name="RateReply" element="ns:RateReply" />
  </message>
  <portType name="RatePortType">
    <operation name="getRates" parameterOrder="RateRequest">
      <input message="ns:RateRequest" />
      <output message="ns:RateReply" />
    </operation>
  </portType>
  <binding name="RateServiceSoapBinding" type="ns:RatePortType">
    <s1:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="getRates">
      <s1:operation soapAction="getRates" style="document" />
      <input>
        <s1:body use="literal" />
      </input>
      <output>
        <s1:body use="literal" />
      </output>
    </operation>
  </binding>
  <service name="RateService">
    <port name="RateServicePort" binding="ns:RateServiceSoapBinding">
      <s1:address location="https://gatewaybeta.fedex.com:443/web-services/rate" />
    </port>
  </service>
</definitions>