<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.dhl.com/pickupdatatypes_AP" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dhlPickup="http://www.dhl.com/pickupdatatypes_AP" xmlns:dhl="http://www.dhl.com/datatypes_AP" elementFormDefault="unqualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://www.dhl.com/datatypes_AP" schemaLocation="datatypes_AP.xsd"/>
	<!--xsd:complexType name="LargestPiece">
		<xsd:annotation>
			<xsd:documentation>Lists measurements of largest piece. This element is mandatory if the weight of shipment for ground service exceeds 50 pounds</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Width" type="xsd:positiveInteger">
				<xsd:annotation>
					<xsd:documentation>Required when requesting pickup for a ground shipment with weight exceeding 50 pounds</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Height" type="xsd:positiveInteger">
				<xsd:annotation>
					<xsd:documentation>Required when requesting pickup for a ground shipment with weight exceeding 50 pounds</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Depth" type="xsd:positiveInteger">
				<xsd:annotation>
					<xsd:documentation>Required when requesting pickup for a ground shipment with weight exceeding 50 pounds</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType-->
	<xsd:complexType name="Place">
		<xsd:annotation>
			<xsd:documentation>Pickup place</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="LocationType">
				<xsd:annotation>
					<xsd:documentation>Type Of Location B=Business R=Residence  C= Business/Residence</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="1"/>
						<xsd:enumeration value="B"/>
						<xsd:enumeration value="R"/>
						<xsd:enumeration value="C"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="CompanyName" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Unless location type is residence, company name is required</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0"/>
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="Address1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0"/>
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="Address2" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0"/>
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="Address3" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0"/>
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="PackageLocation">
				<xsd:annotation>
					<xsd:documentation>Example : front desk</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="0"/>
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="City" type="dhl:City"/>
			<xsd:element name="StateCode" type="dhl:DivisionCode" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>two letter state code is required if location is within the  US</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DivisionName" type="dhl:Division" minOccurs="0"/>
			<xsd:element name="CountryCode" type="dhl:CountryCode">
				<xsd:annotation>
					<xsd:documentation>Two letter ISO country code</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="PostalCode" type="dhl:PostalCode" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Required if country is US</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Requestor">
		<xsd:sequence>
			<xsd:element name="AccountType">
				<xsd:annotation>
					<xsd:documentation>Valid values are D D =DHL </xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="1"/>
						<xsd:enumeration value="D"/>
						<!--xsd:enumeration value="C"/-->
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="AccountNumber" type="dhl:AccountNumber" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>DHL Account Number Required only if Account Type is DHL</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<!--xsd:element name="ChargeCard" type="dhlPickup:ChargeCard" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Required if AccountType is Credit Card</xsd:documentation>
				</xsd:annotation>
			</xsd:element-->
			<xsd:element name="RequestorContact" type="dhlPickup:RequestorContact" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contact information for the requestor</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Pickup">
		<xsd:sequence>
			<xsd:element name="PickupDate" type="xsd:date">
				<xsd:annotation>
					<xsd:documentation>Date of pickup</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ReadyByTime" type="dhlPickup:TimeHM">
				<xsd:annotation>
					<xsd:documentation>Time pickup must be ready by</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CloseTime" type="dhlPickup:TimeHM">
				<xsd:annotation>
					<xsd:documentation>Closing time of pickup location</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Pieces" minOccurs="1">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:minInclusive value="1"/>
						<xsd:maxInclusive value="99999"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="weight" type="dhl:WeightSeg" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>This is an optional segment</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SpecialInstructions" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="75"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<!--xsd:simpleType name="PickupType">
		<xsd:annotation>
			<xsd:documentation>Type of pickup (G: Pickup for DHL Ground)</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:length value="1"/>
			<xsd:enumeration value="G"/>
		</xsd:restriction>
	</xsd:simpleType-->
	<xsd:complexType name="contact">
		<xsd:sequence>
			<xsd:element name="PersonName">
				<xsd:annotation>
					<xsd:documentation>Contact Person Name</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="Phone">
				<xsd:annotation>
					<xsd:documentation>Contact Phone Number</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="25"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="PhoneExtension" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contact Phone Extension</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="5"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RequestorContact">
		<xsd:sequence>
			<xsd:element name="PersonName" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contact Person Name</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="35"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="Phone" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contact Phone Number</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="25"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="PhoneExtension" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contact Phone Extension</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="5"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Piece">
		<xsd:sequence>
			<xsd:element name="Weight" type="dhl:Weight" minOccurs="0"/>
			<xsd:element name="Width" type="xsd:positiveInteger" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>required if height and depth are  specified.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Height" type="xsd:positiveInteger" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>required if width and depth are specified. </xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Depth" type="xsd:positiveInteger" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>required if width and height are specified.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ChargeCard">
		<xsd:sequence>
			<xsd:element name="ChargeCardNo" type="dhl:ChargeCardNo"/>
			<xsd:element name="ChargeCardType" type="dhl:ChargeCardType"/>
			<xsd:element name="ChargeCardExpiryDate" type="dhl:ChargeCardExpDateValidator"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ShipmentDetails">
		<xsd:sequence>
			<xsd:element name="AccountType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Valid values are D D =DHL</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="1"/>
						<xsd:enumeration value="D"/>
						<!-- xsd:enumeration value="C"/ -->
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="AccountNumber" type="dhl:AccountNumber" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>DHL Account Number Required only if Account Type is DHL</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="BillToAccountNumber" type="dhl:AccountNumber" minOccurs="0"/>
			<xsd:element name="AWBNumber" type="dhl:AWBNumber" minOccurs="0"/>
			<xsd:element name="NumberOfPieces" type="xsd:positiveInteger" minOccurs="0"/>
			<xsd:element name="Weight" type="dhl:Weight"/>
			<xsd:element name="WeightUnit" type="dhl:WeightUnit"/>
			<xsd:element name="GlobalProductCode" type="dhl:GlobalProductCode" minOccurs="0"/>
			<xsd:element name="DoorTo" type="dhlPickup:DoorTo"/>
			<xsd:element name="DimensionUnit" type="dhl:DimensionUnit" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>If piece information is specified, DiemnsionUnit must be gievn</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="InsuredAmount" type="dhl:Money" minOccurs="0"/>
			<xsd:element name="InsuredCurrencyCode" type="dhl:CurrencyCode" minOccurs="0"/>
			<xsd:element name="Pieces" type="dhlPickup:Piece" minOccurs="0"/>
			<xsd:element name="SpecialService" type="dhl:SpecialServiceType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="DoorTo">
		<xsd:annotation>
			<xsd:documentation>Defines the type of delivery service that applies to the shipment</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:length value="2"/>
			<xsd:enumeration value="DD"/>
			<xsd:enumeration value="DA"/>
			<xsd:enumeration value="DC"/>
                        <xsd:enumeration value="AA"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="TimeHM">
		<xsd:annotation>
			<xsd:documentation>Time in hours and minutes (HH:MM)</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:length value="5"/>
			<xsd:pattern value="([0-1][0-9]|2[0-3]):([0-5][0-9])"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
