<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://echo.nasa.gov/v9/order/fulfillment/types"
		 xmlns:types="http://echo.nasa.gov/v9/order/fulfillment/types"
		 xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:complexType name="SubmitAcknowledgment">
		<xs:annotation>
			<xs:documentation>
				<p xmlns="">Represents an indication that the order has been received by the provider.</p>
				<p xmlns="">The provider will return one value for either acceptance, rejection, or
						postponement.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="Acceptance" type="types:SubmitAcceptance">
				<xs:annotation>
					<xs:documentation>If this is present this indicates the order has been accepted.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="Rejection" type="types:OrderRejection">
				<xs:annotation>
					<xs:documentation>If this is present this indicates the provider has rejected the order. The
							reason for rejection will be set in the StatusInformation field.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="Postponement" type="types:OrderPostponement">
				<xs:annotation>
					<xs:documentation>if this is present this indicates the provider is postponing their
							acceptance or rejection of the order.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="StatusInformation" type="xs:string">
				<xs:annotation>
					<xs:documentation>Contains any status information the provider wishes to provide for the
							orderer.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="ProviderTrackingId" type="xs:string">
				<xs:annotation>
					<xs:documentation>a tracking id the client should maintain for further communication with the
							provider. A tracking id will be unique per order with this provider.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CancelAcknowledgment">
		<xs:annotation>
			<xs:documentation>
				<p xmlns="">Represents an indication that the cancellation request has been received by the
						provider.</p>
				<p xmlns="">The provider will return one value for either acceptance, rejection, or
						postponement.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="Acceptance" type="types:CancelAcceptance">
				<xs:annotation>
					<xs:documentation>If this is present this indicates the cancellation has been accepted.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="Rejection" type="types:OrderRejection">
				<xs:annotation>
					<xs:documentation>If this is present this indicates the provider has rejected the
							cancellation. The reason for rejection will be set in the StatusInformation
							field.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="Postponement" type="types:OrderPostponement">
				<xs:annotation>
					<xs:documentation>if this is present this indicates the provider is postponing their
							acceptance or rejection of the cancellation.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="StatusInformation" type="xs:string">
				<xs:annotation>
					<xs:documentation>Contains any status information the provider wishes to provide for the
							orderer.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="ProviderTrackingId" type="xs:string">
				<xs:annotation>
					<xs:documentation>a tracking id the client should maintain for further communication with the
							provider. A tracking id will be unique per order with this provider.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="QuoteAcknowledgment">
		<xs:annotation>
			<xs:documentation>
				<p xmlns="">Represents an indication that the quotation request has been received by the
						provider.</p>
				<p xmlns="">The provider will return one value for either acceptance, rejection, or
						postponement.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="Acceptance" type="types:QuoteAcceptance">
				<xs:annotation>
					<xs:documentation>If this is present this indicates the quote request has been accepted.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="Rejection" type="types:OrderRejection">
				<xs:annotation>
					<xs:documentation>If this is present this indicates the provider has rejected the quote
							request. The reason for rejection will be set in the StatusInformation
							field.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="Postponement" type="types:OrderPostponement">
				<xs:annotation>
					<xs:documentation>if this is present this indicates the provider is postponing their
							acceptance or rejection of the quote request.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="StatusInformation" type="xs:string">
				<xs:annotation>
					<xs:documentation>Contains any status information the provider wishes to provide for the
							orderer.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="ProviderTrackingId" type="xs:string">
				<xs:annotation>
					<xs:documentation>a tracking id the client should maintain for further communication with the
							provider. A tracking id will be unique per order with this provider.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="UpdateMechanism">
		<xs:annotation>
			<xs:documentation>Indicates if the client should consider the order closed or not.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="AUTOMATIC">
				<xs:annotation>
					<xs:documentation>This means that the order has been completed by the provider and the client
							should consider the order closed.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="MANUAL">
				<xs:annotation>
					<xs:documentation>Indicates that the provider will notify the client through a separate
							predetermined API as the order is fulfilled.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Order">
		<xs:annotation>
			<xs:documentation>Represents an order for some data the provider has.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ProviderGuid" type="xs:string">
				<xs:annotation>
					<xs:documentation>A globally unique identifier generated by the client for the provider</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="DataCenterId" type="xs:string">
				<xs:annotation>
					<xs:documentation>A predetermined id the provider previously gave to the client</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="OrderGuid" type="xs:string">
				<xs:annotation>
				  <xs:documentation>The client&apos;s globally unique identifier for this order. In ECHO, this will be the overall order GUID of which this provider order may only be one part because ECHO supports ordering from multiple providers at the same time. Therefore the provider GUID and this order GUID can be used to uniquely identify just this provider's portion of the overall order.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Items" type="types:ListOfOrderItems">
				<xs:annotation>
					<xs:documentation>The list of items the client is ordering from the provider</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="UserInfo" type="types:UserInformation">
				<xs:annotation>
					<xs:documentation>Information about the user ordering the data from the provider</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OrderItem">
		<xs:annotation>
			<xs:documentation>Represents one item to be ordered from the provider. GranuleUr should be set if the
					client wishes to order a granule. If GranuleUr is not set it will be assumed the
					client is ordering the whole collection identified by DataSetId.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="GranuleUr" type="xs:string">
				<xs:annotation>
					<xs:documentation>The provider&apos;s identifier for the granule. This is only set if a granule is
							being ordered.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="DataSetId" type="xs:string">
				<xs:annotation>
					<xs:documentation>The provider&apos;s identifier for the collection</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="CatalogItemGuid" type="xs:string">
				<xs:annotation>
					<xs:documentation>The client&apos;s globally unique identifier for the item</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Quantity" type="xs:integer">
				<xs:annotation>
					<xs:documentation>The number of items requested</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Price" type="xs:float">
				<xs:annotation>
					<xs:documentation>the predetermined price per item</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="OptionSelection" type="types:OptionSelection">
				<xs:annotation>
					<xs:documentation>Additional ordering options for this item. The option
					selection comes from the client created output of the option definition 
					ECHO Form which the user has completed. The selection will be in an
					XML format as defined by the ECHO Form specification. If the original item
					had multiple option definitions, the name of the option selection can
					be used to determine which set of options the user selected.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfOrderItems">
		<xs:annotation>
			<xs:documentation>A List of order items</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="Items" type="types:OrderItem"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Address">
		<xs:annotation>
			<xs:documentation>
				<p xmlns="">Represents a named address. The address can be in either the standard US format
						or in a somewhat free format for international addresses. Use the boolean field
						&apos;USFormat&apos; to declare whether the address is using the standard US format or
						not. The country field must follow the convention of the ISO 3-letter country
						code, which is summarized at http://www.un.org/Depts/unsd/methods/m49alpha.htm.</p>
				<p xmlns="">The US format requires at least one street address to be filled as well as have
						the city, state, zip code, and country fields filled out. While an
						international address can still be filled in a US format, a US address (where
						the country field is &apos;USA&apos;) can not take a non-US format.</p>
				<p xmlns="">The non-US format only requires one street address, city, and the country
						field. In the non-US free format all the five street fields should be used to
						fill out most of the address information. Keep in mind, the country and city
						fields must always be filled out.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Guid" type="xs:string">
				<xs:annotation>
					<xs:documentation>The unique id.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="AddressName" type="xs:string">
				<xs:annotation>
					<xs:documentation>The user spcified name of this address.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="UsFormat" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>Indicates that the address is in a US format (true) or an international
							format (false).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Street1" type="xs:string">
				<xs:annotation>
					<xs:documentation>The first street of the address</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Street2" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The optional second street</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Street3" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The optional third street</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Street4" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The optional forth street</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Street5" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The optional fifth street</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="City" type="xs:string">
				<xs:annotation>
					<xs:documentation>The city</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="State" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The state</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Zip" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The zip code</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Country" type="xs:string">
				<xs:annotation>
					<xs:documentation>The 3 letter country code</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="SpecialInstructions" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>Special instructions related to this address as supplied by the user such
							as &quot;Leave packages with the front desk&quot;.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfAddresses">
		<xs:annotation>
			<xs:documentation>A list of addresses</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="Item" type="types:Address"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Contact">
		<xs:annotation>
			<xs:documentation>Contact information for an individual including name, address, phone numbers, and
					email address. The contact may be named, such as &quot;Manager&quot; or &quot;Billing Specialist&quot;.
					The role is used to aid users in identifying a particular contact.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Guid" type="xs:string">
				<xs:annotation>
					<xs:documentation>The unique id of the contact.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Role" type="xs:string">
				<xs:annotation>
					<xs:documentation>The user supplied role of the contact.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="FirstName" type="xs:string">
				<xs:annotation>
					<xs:documentation>The first name of the person to contact in regards to the address this data
							type is associated with.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="LastName" type="xs:string">
				<xs:annotation>
					<xs:documentation>The last name of the person to contact in regards to the address this data
							type is associated with.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Address" minOccurs="0" type="types:Address">
				<xs:annotation>
					<xs:documentation>The address information for the contact.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Phones" minOccurs="0" type="types:ListOfPhones">
				<xs:annotation>
					<xs:documentation>The phone numbers for the contact, including home, business, and fax
							numbers.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Email" type="xs:string">
				<xs:annotation>
					<xs:documentation>The email address of the contact.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Organization" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The organization name of the contact.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfContacts">
		<xs:annotation>
			<xs:documentation>A list of contacts</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="Item" type="types:Contact"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Phone">
		<xs:annotation>
			<xs:documentation>This data type is used to express telephone information such as a home, business,
					or fax number.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Guid" type="xs:string">
				<xs:annotation>
					<xs:documentation>The unique id of the telephone number.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="CustomTypeName" minOccurs="0" type="xs:string">
				<xs:annotation>
					<xs:documentation>The custom type name of the phone if the phone type is CUSTOM. This field
							allows a user to specify a type name for the phone that is not a standard
							type name. Be aware that the type name may not be recognized by clients
							because it is custom.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Number" type="xs:string">
				<xs:annotation>
					<xs:documentation>The phone number.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="PhoneNumberType" type="types:PhoneType">
				<xs:annotation>
					<xs:documentation>The type of the phone number. If none of the standard types meet the needs
							of the user, a type of CUSTOM can be used and the custom type name can be
							specified as a string.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfPhones">
		<xs:annotation>
			<xs:documentation>A list of phones</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="Item" type="types:Phone"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UserInformation">
		<xs:annotation>
			<xs:documentation>Represents a user ordering the data from the provider.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="UserId" type="xs:string">
				<xs:annotation>
					<xs:documentation>The client&apos;s id for the user</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="ShippingAddress" type="types:Contact">
				<xs:annotation>
					<xs:documentation>The shipping address of the user</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="BillingAddress" type="types:Contact">
				<xs:annotation>
					<xs:documentation>The billing address of the user</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ContactAddress" type="types:Contact">
				<xs:annotation>
					<xs:documentation>The contact address of the user</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="UserDomain" type="types:UserDomain">
				<xs:annotation>
					<xs:documentation>The domain of user this is.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="UserRegion" type="types:UserRegion">
				<xs:annotation>
					<xs:documentation>The region the user is located in.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PriceInformation">
		<xs:annotation>
			<xs:documentation>Price information about an order from a provider. Normally a provider returns price
					information in response to a quote or submit request from the client.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="TotalPrice" type="xs:float">
				<xs:annotation>
					<xs:documentation>The total price of the order.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="DataPrice" type="xs:float">
				<xs:annotation>
					<xs:documentation>The price for the actual data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MediaPrice" type="xs:float">
				<xs:annotation>
					<xs:documentation>The price for the media used to distribute the data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ShippingFee" type="xs:float">
				<xs:annotation>
					<xs:documentation>The fee for shipping the media.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HandlingFee" type="xs:float">
				<xs:annotation>
					<xs:documentation>The fee for handling and packaging the media.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Discount" type="xs:float">
				<xs:annotation>
					<xs:documentation>Any discount that was given to the order.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="QuantityOfMedia" type="xs:int">
				<xs:annotation>
					<xs:documentation>The number of media units used to fulfill the order.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="AdditionalInformation" type="xs:string">
				<xs:annotation>
					<xs:documentation>Any additional information about the price information that the provider
							needs to relay to the user.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SubmitAcceptance">
		<xs:annotation>
			<xs:documentation>This indicates a provider&apos;s acceptance of an order.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="UpdateMechanism" type="types:UpdateMechanism">
				<xs:annotation>
					<xs:documentation>This indicates whether the order should be considered closed by the client
							or not</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ProviderOrderReceipt" type="types:ProviderOrderReceipt">
				<xs:annotation>
					<xs:documentation>Contains pricing and other information as a receipt for the items ordered.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProviderOrderReceipt">
		<xs:annotation>
			<xs:documentation>A receipt for an order submitted</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" name="LatestCancelDate" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>The latest time that the order can be cancelled by the client</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="EstimatedShipDate" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>The estimated date of shipment. If an estimated shipment date is not supported or cannot be calculated, this field should be unused.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="1" name="Pricing" type="types:PriceInformation">
				<xs:annotation>
					<xs:documentation>Pricing information for the order</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OrderRejection">
		<xs:annotation>
			<xs:documentation>Represents a providers rejection of a transaction.</xs:documentation>
		</xs:annotation>
		<xs:sequence/>
	</xs:complexType>
	<xs:complexType name="OrderPostponement">
		<xs:annotation>
			<xs:documentation>Indicates a provider is postponing their decision</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" name="EstimatedDecisionDate" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>The estimated date the provider&apos;s decision will be reached</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CancelAcceptance">
		<xs:sequence>
			<xs:element minOccurs="0" name="CatalogItemGuids" type="types:ListOfStrings"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProviderOrderQuote">
		<xs:sequence>
			<xs:element name="Pricing" type="types:PriceInformation"/>
			<xs:element name="RecommendedMedia" type="xs:string" minOccurs="0">
			  <xs:annotation>
			    <xs:documentation>The recommended media for the order based on the provider&amp;apos;s calculations.</xs:documentation></xs:annotation></xs:element>
			<xs:element name="ExpirationDate" type="xs:dateTime"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="QuoteAcceptance">
		<xs:annotation>
			<xs:documentation>Represents a provider&apos;s acceptance of a quote request.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Quote" type="types:ProviderOrderQuote">
				<xs:annotation>
					<xs:documentation>The quotation requested.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:anyAttribute/>
	</xs:complexType>
	<xs:simpleType name="PhoneType">
		<xs:annotation>
			<xs:documentation>The types of phone numbers. It is possible to use a custom type with a phone
					number, however by using one of the standard types there is a better chance that
					client applications will be able to process and make use of the phone numbers.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="BUSINESS">
				<xs:annotation>
					<xs:documentation>The first or primary business phone number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="BUSINESS_2">
				<xs:annotation>
					<xs:documentation>The second business phone number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="BUSINESS_FAX">
				<xs:annotation>
					<xs:documentation>The business fax number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="HOME">
				<xs:annotation>
					<xs:documentation>The first or primary home phone number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="HOME_2">
				<xs:annotation>
					<xs:documentation>The second home phone number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="HOME_FAX">
				<xs:annotation>
					<xs:documentation>The home fax number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="MOBILE">
				<xs:annotation>
					<xs:documentation>The mobile or cell phone number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="PAGER">
				<xs:annotation>
					<xs:documentation>The pager phone number.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CUSTOM">
				<xs:annotation>
					<xs:documentation>Indicates a custom phone number that does not fall into one of the other
							phone types. The user should specify the name of the custom phone type when
							using this value.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UserDomain">
		<xs:annotation>
			<xs:documentation>These are the different domains of users.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="GOVERNMENT"/>
			<xs:enumeration value="K12"/>
			<xs:enumeration value="UNIVERSITY"/>
			<xs:enumeration value="COMMERCIAL"/>
			<xs:enumeration value="OTHER"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UserRegion">
		<xs:annotation>
			<xs:documentation>This represents the region a user is located in.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="USA"/>
			<xs:enumeration value="INTERNATIONAL"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ListOfStrings">
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="Item" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptionSelection">
		<xs:annotation>
			<xs:documentation>A selection for an order option definition.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Name" type="xs:string">
				<xs:annotation>
					<xs:documentation>The name of the selection. This name is normally the same as a simple
							option definition and can be used to determine which option the user
							selected if the item supported multiple options.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Content" type="xs:string">
				<xs:annotation>
					<xs:documentation>The user specified value for the selection. This value
					is the XML output of the option definition ECHO Form from the client application.
					The XML will be escaped and represented as a simple string. The content
					has already been validated by ECHO against the option definition form. A
					provider may wish to further validate the XML selection content against 
					an XML schema or DTD.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProviderPolicies">
		<xs:annotation>
			<xs:documentation>Contains all the policies related to ordering from the provider. Provider policies
					are an XML based structure and represented in the Schema as xsd:any. This
					information includes the custom policies that were established by the provider in
					their policies. Normally a provider establishes the policies to initialize ordering
					support in ECHO for the provider&apos;s data.</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string"/>
		</xs:simpleContent>
	</xs:complexType>
</xs:schema>