1. Greg Newman
  2. fedex_soap

Commits

Greg Newman  committed 5f6df7e

raw fedex soap module modified from chris laux code

  • Participants
  • Branches default

Comments (0)

Files changed (9)

File fedex_soap/RateService_v8-production_old.wsdl

View file
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns="http://fedex.com/ws/rate/v8" xmlns:s1="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://fedex.com/ws/rate/v8" name="RateServiceDefinitions">
+  <types>
+    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://fedex.com/ws/rate/v8">
+      <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 name="ReturnTransitAndCommit" type="xs:boolean" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Allows the caller to specify that the transit time and commit data are to be returned in the reply.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="CarrierCodes" type="ns:CarrierCodeType" maxOccurs="unbounded" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Candidate carriers for rate-shopping use case. This field is only considered if requestedShipment/serviceType is omitted.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="VariableOptions" type="ns:ServiceOptionType" maxOccurs="unbounded" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Contains zero or more service options whose combinations are to be considered when replying with available services.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="RequestedShipment" type="ns:RequestedShipment">
+            <xs:annotation>
+              <xs:documentation>The shipment for which a rate quote (or rate-shopping comparison) is desired.</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 name="ShipTimestamp" type="xs:dateTime" minOccurs="0">
+            <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 name="DropoffType" type="ns:DropoffType" minOccurs="0">
+            <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 name="ServiceType" type="ns:ServiceType" minOccurs="0">
+            <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 name="PackagingType" type="ns:PackagingType" minOccurs="0">
+            <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 name="TotalWeight" type="ns:Weight" minOccurs="0">
+            <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 name="TotalInsuredValue" type="ns:Money" minOccurs="0">
+            <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 name="RecipientLocationNumber" type="xs:string" minOccurs="0">
+            <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 name="Origin" minOccurs="0" 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 name="ShippingChargesPayment" type="ns:Payment" minOccurs="0">
+            <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 name="SpecialServicesRequested" type="ns:ShipmentSpecialServicesRequested" minOccurs="0">
+            <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 name="ExpressFreightDetail" type="ns:ExpressFreightDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Details specific to an Express freight shipment.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="FreightShipmentDetail" minOccurs="0" 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 name="DeliveryInstructions" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Used with Ground Home Delivery and Freight.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="VariableHandlingChargeDetail" type="ns:VariableHandlingChargeDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Details about how to calculate variable handling charges at the shipment level.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="InternationalDetail" type="ns:InternationalDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Information about this package that only applies to an international (export) shipment.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="PickupDetail" type="ns:PickupDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>For use in "process tag" transaction.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="SmartPostDetail" minOccurs="0" type="ns:SmartPostShipmentDetail"/>
+          <xs:element name="BlockInsightVisibility" type="xs:boolean" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>If true, only the shipper/payor will have visibility of this shipment.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="LabelSpecification" type="ns:LabelSpecification" minOccurs="0">
+            <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 name="ShippingDocumentSpecification" type="ns:ShippingDocumentSpecification" minOccurs="0">
+            <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 name="RateRequestTypes" type="ns:RateRequestType" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Indicates the type of rates to be returned.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="PackageCount" type="xs:nonNegativeInteger" minOccurs="0">
+            <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 name="PackageDetail" type="ns:RequestedPackageDetailType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Specifies whether packages are described individually, in groups, or summarized in a single description for total-piece-total-weight. This field controls which fields of the RequestedPackageLineItem will be used, and how many occurrences are expected.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="RequestedPackageLineItems" minOccurs="0" maxOccurs="999" 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>This class describes the pickup characteristics of a shipment (e.g. for use in a tag request).</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+          <xs:element name="ReadyDateTime" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="LatestPickupDateTime" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="CourierInstructions" type="xs:string" minOccurs="0"/>
+          <xs:element name="RequestType" type="ns:PickupRequestType" minOccurs="0"/>
+          <xs:element name="RequestSource" type="ns:PickupRequestSourceType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:simpleType name="PickupRequestType">
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="SAME_DAY"/>
+          <xs:enumeration value="FUTURE_DAY"/>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="PickupRequestSourceType">
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="AUTOMATION"/>
+          <xs:enumeration value="CUSTOMER_SERVICE"/>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType name="RequestedPackageDetailType">
+        <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 name="Contact" type="ns:Contact" minOccurs="0"/>
+          <xs:element name="Address" type="ns:Address" minOccurs="0"/>
+        </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 name="PackingListEnclosed" type="xs:boolean" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Indicates whether or nor a packing list is enclosed.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ShippersLoadAndCount" type="xs:positiveInteger" minOccurs="0">
+            <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 name="BookingConfirmationNumber" type="xs:string" minOccurs="0">
+            <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 name="ReferenceLabelRequested" type="xs:boolean" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Currently not supported.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="BeforeDeliveryContact" type="ns:ExpressFreightDetailContact" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Currently not supported.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="UndeliverableContact" type="ns:ExpressFreightDetailContact" minOccurs="0">
+            <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 name="Broker" type="ns:Party" minOccurs="0">
+            <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 name="ClearanceBrokerage" type="ns:ClearanceBrokerageType" minOccurs="0">
+            <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 name="ImporterOfRecord" type="ns:Party" minOccurs="0">
+            <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 name="RecipientCustomsIdType" type="ns:RecipientCustomsIdType" minOccurs="0">
+            <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 name="DutiesPayment" type="ns:Payment" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Indicates how payment of duties for the shipment will be made.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="DocumentContent" type="ns:InternationalDocumentContentType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Indicates whether this shipment contains documents only or non-documents.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="CustomsValue" type="ns:Money" minOccurs="0">
+            <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 name="InsuranceCharges" minOccurs="0" 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 name="CommercialInvoice" type="ns:CommercialInvoice" minOccurs="0">
+            <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 name="Commodities" type="ns:Commodity" minOccurs="0" maxOccurs="99">
+            <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 name="ExportDetail" type="ns:ExportDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Country specific details of an International shipment.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="RegulatoryControls" type="ns:RegulatoryControlType" minOccurs="0" maxOccurs="unbounded">
+            <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 name="B13AFilingOption" type="ns:B13AFilingOptionType" minOccurs="0">
+            <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 name="ExportComplianceStatement" type="xs:string" minOccurs="0">
+            <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 name="PermitNumber" type="xs:string" minOccurs="0">
+            <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 name="DestinationControlDetail" type="ns:DestinationControlDetail" minOccurs="0">
+            <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 name="StatementTypes" type="ns:DestinationControlStatementType" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>List of applicable Statment types.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="DestinationCountries" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Countries this shipment is destined for.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="EndUser" type="xs:string" minOccurs="0">
+            <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 name="Comments" type="xs:string" minOccurs="0" maxOccurs="99">
+            <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 name="FreightCharge" type="ns:Money" minOccurs="0">
+            <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 name="TaxesOrMiscellaneousCharge" type="ns:Money" minOccurs="0">
+            <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 name="Purpose" type="ns:PurposeOfShipmentType" minOccurs="0">
+            <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 name="PurposeOfShipmentDescription" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Descriptive text for the purpose of the shipment.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="CustomerInvoiceNumber" type="xs:string" minOccurs="0">
+            <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 name="TermsOfSale" type="ns:TermsOfSaleType" minOccurs="0">
+            <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 name="Name" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>total number of pieces of this commodity</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="NumberOfPieces" type="xs:nonNegativeInteger" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>total number of pieces of this commodity</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Description" type="xs:string" minOccurs="0">
+            <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 name="CountryOfManufacture" type="xs:string" minOccurs="0">
+            <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 name="HarmonizedCode" type="xs:string" minOccurs="0">
+            <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 name="Weight" type="ns:Weight" minOccurs="0">
+            <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 name="Quantity" type="xs:nonNegativeInteger" minOccurs="0">
+            <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 name="QuantityUnits" type="xs:string" minOccurs="0">
+            <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 name="AdditionalMeasures" minOccurs="0" maxOccurs="unbounded" 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 name="UnitPrice" type="ns:Money" minOccurs="0">
+            <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 name="CustomsValue" type="ns:Money" minOccurs="0">
+            <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 name="ExciseConditions" minOccurs="0" maxOccurs="unbounded" 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 name="ExportLicenseNumber" type="xs:string" minOccurs="0">
+            <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 name="ExportLicenseExpirationDate" minOccurs="0" type="xs:date"/>
+          <xs:element name="CIMarksAndNumbers" type="xs:string" minOccurs="0">
+            <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 name="NaftaDetail" type="ns:NaftaCommodityDetail" minOccurs="0">
+            <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:sequence>
+          <xs:element name="PreferenceCriterion" type="ns:NaftaPreferenceCriterionCode" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                Defined by NAFTA regulations.
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ProducerDetermination" type="ns:NaftaProducerDeterminationCode" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>
+                Defined by NAFTA regulations.
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ProducerId" type="xs:string" minOccurs="0">
+            <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 name="NetCostMethod" type="ns:NaftaNetCostMethodCode" minOccurs="0"/>
+          <xs:element name="NetCostDateRange" type="ns:DateRange" minOccurs="0">
+            <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: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:enumeration value="INTERNATIONAL_GROUND"/>
+        </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: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="FDXC"/>
+          <xs:enumeration value="FDXE"/>
+          <xs:enumeration value="FDXG"/>
+          <xs:enumeration value="FXCC"/>
+          <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 name="SpecialServiceTypes" type="ns:PackageSpecialServiceType" minOccurs="0" maxOccurs="unbounded">
+            <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 name="DangerousGoodsDetail" type="ns:DangerousGoodsDetail" minOccurs="0">
+            <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 name="DryIceWeight" type="ns:Weight" minOccurs="0">
+            <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 name="SignatureOptionDetail" type="ns:SignatureOptionDetail" minOccurs="0">
+            <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 name="PriorityAlertDetail" type="ns:PriorityAlertDetail" minOccurs="0">
+            <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 maxOccurs="3" minOccurs="0" 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 name="SpecialServiceTypes" type="ns:ShipmentSpecialServiceType" minOccurs="0" maxOccurs="unbounded">
+            <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 name="CodDetail" type="ns:CodDetail" minOccurs="0">
+            <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 name="HoldAtLocationDetail" type="ns:HoldAtLocationDetail" minOccurs="0">
+            <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 name="EMailNotificationDetail" type="ns:EMailNotificationDetail" minOccurs="0">
+            <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 name="ReturnShipmentDetail" type="ns:ReturnShipmentDetail" minOccurs="0">
+            <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 name="PendingShipmentDetail" type="ns:PendingShipmentDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Details used while creating a pending shipment</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ShipmentDryIceDetail" type="ns:ShipmentDryIceDetail" minOccurs="0">
+            <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 name="HomeDeliveryPremiumDetail" type="ns:HomeDeliveryPremiumDetail" minOccurs="0">
+            <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 name="FlatbedTrailerDetail" minOccurs="0" type="ns:FlatbedTrailerDetail"/>
+          <xs:element name="FreightGuaranteeDetail" minOccurs="0" type="ns:FreightGuaranteeDetail"/>
+          <xs:element name="EtdDetail" type="ns:EtdDetail" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Electronic Trade document references.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="EtdDetail">
+        <xs:annotation>
+          <xs:documentation>Electronic Trade document references used with the ETD special service.</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+          <xs:element name="RequestedDocumentCopies" type="ns:RequestedShippingDocumentType" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Indicates the types of shipping documents produced for the shipper by FedEx (see ShippingDocumentSpecification) which should be copied back to the shipper in the shipment result data.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Documents" type="ns:UploadDocumentDetail" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Currently not supported.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="DocumentReferences" type="ns:UploadDocumentReferenceDetail" minOccurs="0" maxOccurs="unbounded"/>
+        </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 name="IntegratorId" minOccurs="0" 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="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 name="ServiceId" type="xs:string" minOccurs="1" fixed="crs">
+            <xs:annotation>
+              <xs:documentation>Identifies a system or sub-system which performs an operation.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Major" type="xs:int" fixed="8" minOccurs="1">
+            <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 name="Intermediate" type="xs:int" fixed="0" minOccurs="1">
+            <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 name="Minor" type="xs:int" fixed="0" minOccurs="1">
+            <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 maxOccurs="2" minOccurs="0" 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 name="SignatureReleaseNumber" type="xs:string" minOccurs="0">
+            <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_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 name="Options" minOccurs="0" maxOccurs="unbounded" type="ns:HazardousCommodityOptionType">
+            <xs:annotation>
+              <xs:documentation>Indicates which kinds of hazardous content are in the current package.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="HazardousCommodities" minOccurs="0" maxOccurs="unbounded" type="ns:HazardousCommodityContent">
+            <xs:annotation>
+              <xs:documentation>Documents the kinds and quantities of all hazardous commodities in the current package.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="Packaging" minOccurs="0" type="ns:HazardousCommodityPackagingDetail">
+            <xs:annotation>
+              <xs:documentation>Description of the packaging of this commodity, suitable for use on OP-900 and OP-950 forms.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="EmergencyContactNumber" minOccurs="0" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>Telephone number to use for contact in the event of an emergency.</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="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 maxOccurs="6" minOccurs="0" 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:sequence>
+          <xs:element minOccurs="0" name="MerchantPhoneNumber" type="xs:string"/>
+          <xs:element minOccurs="0" name="AllowedSpecialServices" type="ns:ReturnEMailAllowedSpecialServiceType">
+            <xs:annotation>
+              <xs:documentation>Identifies the allowed (merchant-authorized) special services which may be selected when the subsequent shipment is created. Only services represented in EMailLabelAllowedSpecialServiceType will be controlled by this list.</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 name="ReturnEMailDetail" minOccurs="0" 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 name="NotificationMessage" type="xs:string" minOccurs="0">
+            <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">