<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" targetNamespace="http://echo.nasa.gov/echo/v9/types"
		 version="1.0" xmlns:echo="http://echo.nasa.gov/echo/v9/types"
		 xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"
		 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:complexType name="Address">
		<xsd:annotation>
			<xsd:documentation>
				<p>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>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>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>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AddressName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user specified name of this address. This field is
					restricted to 100 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UsFormat" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>Indicates that the address is in a US format (true) or an international
							format (false).</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Street1" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The first street of the address.  This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Street2" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The optional second street.  This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Street3" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The optional third street.  This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Street4" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The optional forth street.  This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Street5" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The optional fifth street. This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="City" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The city. This field is
					restricted to 100 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="State" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The state. This field is
					restricted to 100 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Zip" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The zip code. This field is
					restricted to 20 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Country" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The 3 letter country code. This field is
					restricted to 3 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="SpecialInstructions" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Special instructions related to this address as supplied by the user such
							as &quot;Leave packages with the front desk&quot;. This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="BooleanCondition">
		<xsd:annotation>
			<xsd:documentation>A condition that is always true or false</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ConditionName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The description of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="BooleanFlag" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>Flag to indicate the type of the condition, either true or false.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="UserPreferences">
		<xsd:annotation>
			<xsd:documentation>The preferences selected by a user that ECHO will use in various locations such as
					ordering.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid assigned to these preferences.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="ShippingContact" type="echo:Contact">
				<xsd:annotation>
					<xsd:documentation>Contact used for shipping items. This preference is normally used when
							placing an order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="BillingContact" type="echo:Contact">
				<xsd:annotation>
					<xsd:documentation>Contact used for billing items. This preference is normally used when
							placing an order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="GeneralContact" type="echo:Contact">
				<xsd:annotation>
					<xsd:documentation>Contact used for general communications with the user in response to some
							requested action. This preference is normally used when placing an order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="OrderNotificationLevel" type="echo:NotificationLevel">
				<xsd:annotation>
					<xsd:documentation>The notification level to use when placing an order. This may be set
							explicitly when placing the order or it will be defaulted to the given
							preference. This is the only preference that ECHO will automatically use.
							The other user preferences should be used by a client application when
							placing an order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Properties" type="echo:AnyElements">
				<xsd:annotation>
					<xsd:documentation>Custom properties set by a client application. ECHO does not normally use
							these internally, but can simply store them for a client application. A
							client application should honor and preserve the custom properties set by a
							different client application.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ProviderPolicies">
		<xsd:annotation>
			<xsd:documentation>Contains all the policies related to ordering from the provider. This information
					includes the endpoint URI and retry information. Normally a provider establishes
					the policies to initialize ordering support in ECHO for the provider&apos;s data.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="EndPoint" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The provider&apos;s server location. This is in the form of a URI. For provider
							that speak HTTP, this would be a full URL. For providers with a specialized
							server and protocol, this would be in the format of server:port.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RetryAttempts" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>Number of times that ECHO will try to connect to the provider if the
							transmission fails.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RetryWaitTime" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>Amount of time that ECHO will wait before trying to connect. The time is
							measured in seconds.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Routing" type="echo:RoutingType">
				<xsd:annotation>
					<xsd:documentation>Indicates the routing mechanism used to contact the provider. The routing
							mechanism determines if ECHO is using a local order adapter, a remote order
							adapter, or connecting to the provider directly.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SslPolicy" type="echo:SSLPolicy">
				<xsd:annotation>
					<xsd:documentation>The SSL policy for these provider policies. The SSL policies contain all
							the SSL related information for this provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OrderSupportsDuplicateCatalogItems" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>This indicates whether or not the provider supports separate order items
							with the same catalog item in the same order. If this is set to false ECHO
							will not allow an order to contain more than one order item to have a
							particular catalog item.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SupportedTransactions" type="echo:ListOfOrderTransactionTypes">
				<xsd:annotation>
					<xsd:documentation>The transactions that provider supports. Each supported transaction will be
							listed in this set.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Properties" type="echo:AnyElements">
				<xsd:annotation>
					<xsd:documentation>Extra information that will not be used by ECHO but will simply be passed
							through ECHO to the provider. If the provider is using an adapter, the
							adapter may make use of this information to contact the real provider
							endpoint or perform actions on behalf of the provider (such as quoting).</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="SSLPolicy">
		<xsd:annotation>
			<xsd:documentation>Contains all the provider policy information related to establishing an SSL
					connection to the provider when sending an order for submit, cancel, or quote.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="SslCertificateActivated" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>A flag to indicate if the certificate has been activated by operations. If
							false, the certificate has not been activated and should not be used for
							order transmissions.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SslEnabled" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>A flag to indicate if the certificate is enabled. If false, the certificate
							should not be used for order transmissions, even if the certificate has
							been activated.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="SslCertificate" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>
						<p>The actual SSL certificate.</p>
						<p>The certificate must be encoded according to the standards for
								privacy-enhanced mail (PEM) as defined in RFC 1421
								(http://tools.ietf.org/html/rfc1421) which depends on RFC 934 (
								http://www.apps.ietf.org/rfc/rfc934.html). In its printable encoding
								format, the encoded certificate is bounded at the beginning by</p>
						<p>
							<code>-----BEGIN CERTIFICATE-----[CRLF]</code>
						</p>
						<p>and at the end by</p>
						<p>
							<code>[CRLF]-----END CERTIFICATE-----</code>
						</p>
						<p>where [CRLF] represents the new line character.</p>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="SslLastUpdate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date the ssl certificate was last updated.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CatalogItem">
		<xsd:annotation>
			<xsd:documentation>Describes an entry in the ECHO product catalog such as a collection or granule.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ItemGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the catalog item.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Type" type="echo:CatalogItemType">
				<xsd:annotation>
					<xsd:documentation>The type of the catalog item. This will be one of collection or granule.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the provider that owns this catalog item.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ListPrice" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The price of the catalog item if it were to be ordered from the provider.
							Not all catalog items are orderable.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OptionDefinitionGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The GUIDs of the assigned Option Definitions to this catalog item. Ordering
							this catalog item will require an option selection for one of the
							associated option definitions.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CatalogItemOrderInformation">
		<xsd:annotation>
			<xsd:documentation>Used to describe entries in the ECHO product catalog and any information required
					for ordering the item.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Items" type="echo:ListOfCatalogItems">
				<xsd:annotation>
					<xsd:documentation>The catalog items that may be ordered. Each catalog item has a list of
							option definition guids that indicate what the associate option definitions
							are.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Options" type="echo:ListOfOptionDefinitions">
				<xsd:annotation>
					<xsd:documentation>A list of option definitions for the catalog items. The option definitions
							indicate information such as how the item may be ordered. Normally
							selections must be provided to these definitions when ordering the item
							from the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Classification">
		<xsd:annotation>
			<xsd:documentation>Represents a classification using a taxonomy entry.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Type" type="echo:ClassificationType">
				<xsd:annotation>
					<xsd:documentation>The classification type.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Entry" type="echo:TaxonomyEntry">
				<xsd:annotation>
					<xsd:documentation>The taxonomy entry being used to classify.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ClientInformation">
		<xsd:annotation>
			<xsd:documentation>Information about a client application and the user of the application. This
					information is used for metric information within ECHO and is required by some
					providers when placing an order.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ClientId" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The identifier of the client application. This is used by ECHO and
							providers to track which client applications are being used to interface
							with ECHO.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UserIpAddress" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The IP address of the user interacting with ECHO. Note that this may be
							different than the client IP address if the client application is a web
							application. The user IP address should be the address where the actual<i>user</i>is making requests from.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Contact">
		<xsd:annotation>
			<xsd: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.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the contact.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Role" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user supplied role of the contact. This field is
					restricted to 50 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FirstName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The first name of the person to contact in regards to the address this data
							type is associated with. This field is restricted to 30 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="LastName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The last name of the person to contact in regards to the address this data
							type is associated with. This field is restricted to 100 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Address" type="echo:Address">
				<xsd:annotation>
					<xsd:documentation>The address information for the contact. Must be supplied in contacts 
					        associated with orders.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Phones" type="echo:ListOfPhones">
				<xsd:annotation>
					<xsd:documentation>The phone numbers for the contact, including home, business, and fax
							numbers. At least one phone number must be supplied in contacts associated with 
							orders.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Email" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The email address of the contact. This field is
					restricted to 100 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Organization" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The organization name of the contact. This field is
					restricted to 1024 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="DataAccessRule">
		<xsd:annotation>
			<xsd:documentation>
				<p>A rule in the Echo system that applies to data. A rule applies to a specific
						set of meta data with specific criteria. A rule contains a condition which is
						used when applying the rule. A rule can only contain one condition, therefore
						only one condition type may be specified in a rule.</p>
				<p>It is important to note that a list of group guids is part of this data type.
						The current implementation ignores the guids if the rule type is a RESTRICTION.</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the rule.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RuleName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the rule as specified by the user.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The human readable description of the rule.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RuleType" type="echo:AccessRuleType">
				<xsd:annotation>
					<xsd:documentation>The type of the rule. Permissions grant access to specific groups while
							restrictions remove access to all groups.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Action" type="echo:ActionType">
				<xsd:annotation>
					<xsd:documentation>The action that the user may perform that would cause this rule to apply.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="BooleanConditionField"
					 type="echo:BooleanCondition">
				<xsd:annotation>
					<xsd:documentation>A boolean condition for this rule. Only one condition type my be specified.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="TemporalConditionField"
					 type="echo:TemporalCondition">
				<xsd:annotation>
					<xsd:documentation>A temporal condition for this rule. Only one condition type my be
							specified.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="RollingTemporalConditionField"
					 type="echo:RollingTemporalCondition">
				<xsd:annotation>
					<xsd:documentation>A rolling temporal condition for this rule. Only one condition type my be
							specified.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="RestrictionFlagConditionField"
					 type="echo:RestrictionFlagCondition">
				<xsd:annotation>
					<xsd:documentation>A restriction flag condition for this rule. Only one condition type my be
							specified.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ConditionComparator" type="echo:Comparator">
				<xsd:annotation>
					<xsd:documentation>The comparator to use when applying the condition. Some conditions only
							support a subset of the comparators.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="GroupGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The guids of the groups that this rule applies to if it is of type
							permission.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DataType" type="echo:CatalogItemType">
				<xsd:annotation>
					<xsd:documentation>The type of the data that this rule applies to. This is one of collection
							or granule.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="DataValue" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The values that this rule applies to. The values are the dataset ids if the
							data type is collection or the granule UR if the data type is granule. If
							the data values are null, then the rule will apply to all collections or
							granules. Note that an empty array will be treated as a null array.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="DeliveryInfo">
		<xsd:annotation>
			<xsd:documentation>Contains delivery information.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="DeliveryMethod" type="echo:DeliveryType">
				<xsd:annotation>
					<xsd:documentation>set as EMAIL or FTPPUSH</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DeliveryAddress" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>in the format of userid@domain.name</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Password" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>specified only if the deliveryType is a FTPPUSH</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="DeliveryFolder" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>specified only if the deliveryType is a FTPPUSH</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="LimitSize" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>measured in MB(bytes)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ErrorCode">
		<xsd:sequence>
			<xsd:element name="Code" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The error code constant supported by ECHO.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="OpsMessage" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The operations message for this error code. This field may not be set if
							the error code has no ops message.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="EventSubscription">
		<xsd:annotation>
			<xsd:documentation>Represents a subscription to an event in ECHO. When the event occurs, the filter
					will be applied to see if the notification should be delivered to the notify to
					address.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of this event subscription.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user assigned name of the subscription.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="EndTo" type="xs:anyURI">
				<xsd:annotation>
					<xsd:documentation>The URL to post the message indicating that the subscription has ended
							before the expiration date.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="NotifyTo" type="xs:anyURI">
				<xsd:annotation>
					<xsd:documentation>
						<p>The URI to send all notifications to. This URI takes on different forms
								depending on the deliver mode.</p>
						<p>
							<ul>
								<li>Ftp Push: An FTP URL in the format<code>ftp://[user
											ID:password@]&lt;host_name&gt;[:port]/[path_name/][file name]</code></li>
								<li>Email: a standard email address</li>
								<li>HTTP Soap: An HTTP URL normally to a web service endpoint
										implementing the event notification sink WSDL defined
										interface.</li>
							</ul>
						</p>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DeliveryMode" type="echo:NotificationDeliveryMode">
				<xsd:annotation>
					<xsd:documentation>The selected delivery mode for the subscription. Based on the delivery
							mode, different notify to addressing schemes can be used.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Expires" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The expiration date of the subscription.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Filter" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The filter to apply to all outgoing notifications.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="FilterDialect" type="echo:FilterDialect">
				<xsd:annotation>
					<xsd:documentation>The selected filter dialect. Based on the filter dialect, different
							filterlanguages and structures acan be used.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Properties" type="echo:AnyElements">
				<xsd:annotation>
					<xsd:documentation>The reference properties provided by the client. These properties will be
							sent back to the client with each notification.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="AnyElements">
		<xsd:annotation>
			<xsd:documentation>Contains any XML elements. It is important to note that any CDATA sections received
					in the reference properties will be sent to the client escaped as normal text.
					Clients should not be made dependent on processing the XML by looking for the CDATA
					tags. This is normally used when ECHO does not use the data, but simply stores it
					or passes it to a third party on behalf of a client application. For an example,
					see the provider policies or user preferences.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:extension base="xs:string"/>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:complexType name="AnyElement">
		<xsd:annotation>
			<xsd:documentation>Contains any single XML element. It is important to note that any CDATA sections
					received in the reference properties will be sent to the client escaped as normal
					text. Clients should not be made dependent on processing the XML by looking for the
					CDATA tags. This is normally used when ECHO does not use the data, but simply
					stores it or passes it to a third party on behalf of a client application.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:extension base="xs:string"/>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:complexType name="Group">
		<xsd:annotation>
			<xsd:documentation>This data type is used to describe the information contained within a group.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id for the group.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user supplied name of the group.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The description of the group.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ManagerGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The guids of all the managers in the group.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="MemberGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The guids of all the users in the group.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="InvocationParameter">
		<xsd:annotation>
			<xsd:documentation>One parameter to use when invoking an operation.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the name of the parameter</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Value" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the value to pass to the operation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="InvocationResults">
		<xsd:annotation>
			<xsd:documentation>The results of an invocation. This contains the last status and the results if the
					invocation is complete.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="InvocationGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the invocation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="InvocationResults" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the results returned from the operation invoked</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="LastStatus" type="echo:StatusEntry">
				<xsd:annotation>
					<xsd:documentation>the status of the invocation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfAddresses">
		<xsd:annotation>
			<xsd:documentation>A list of address information</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Address"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfCatalogItems">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:CatalogItem"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfClassificationTypes">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:ClassificationType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfClassifications">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Classification"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfContacts">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Contact"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfDataAccessRules">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:DataAccessRule"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfEventSubscriptions">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:EventSubscription"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfGroups">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Group"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfInts">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="xs:int"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfInvocationParameters">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:InvocationParameter"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfInvocationResults">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:InvocationResults"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetadataPaths">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:MetadataPath"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetadataResolvedPaths">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:MetadataResolvedPath"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetadataSubscriptions">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:MetadataSubscription"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfNameGuids">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:NameGuid"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetricConstraints">
		<xsd:annotation>
			<xsd:documentation>A list of metric constraints.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:MetricConstraint"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetrics">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Metric"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetricReports">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:MetricReport"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfOptionAssignments">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:OptionAssignment"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfOptionDefinitions">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:OptionDefinition"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfOrderItems">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:OrderItem"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfOrderStates">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:OrderState"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfOrderTransactionTypes">
		<xsd:annotation>
			<xsd:documentation>A list of order transaction types.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:OrderTransactionType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfOrders">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Order"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfPhones">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Phone"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfProviderHoldings">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:ProviderHolding"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfProviderOrderGuids">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:ProviderOrderGuid"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfProviderOrderStates">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:ProviderOrderState"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfProviderOrders">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:ProviderOrder"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfProviderTypes">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:ProviderType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfProviders">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Provider"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfRoles">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Role"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfSavedQueries">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:SavedQuery"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfSecurityTokenInformations">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item"
					 type="echo:SecurityTokenInformation"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfStatusAnnotations">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:StatusAnnotation"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfStatusEntries">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:StatusEntry"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfStrings">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="xs:string"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfDates">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="xs:dateTime"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfGYearMonths">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="xs:gYearMonth"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfTaxonomies">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:Taxonomy"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfTaxonomyEntries">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:TaxonomyEntry"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfTemporalRanges">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:TemporalRange"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfMetadataAttributes">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:MetadataAttribute"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfUserAuthenticators">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:UserAuthenticator"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfUsers">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:User"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfVirtualTaxonomyTypes">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:VirtualTaxonomyType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfVisibilityFlagSettings">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:VisibilityFlagSetting"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfVisibilityFlagTypes">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:VisibilityFlagType"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWSAdvertisements">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WSAdvertisement"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWSGuis">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WSGui"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWSImplementations">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WSImplementation"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWSInterfaces">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WSInterface"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWSOperations">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WSOperation"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWSParameters">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WSParameter"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ListOfWebServiceListings">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item" type="echo:WebServiceListing"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetadataActionInfo">
		<xsd:annotation>
			<xsd:documentation>Represents any actions to take on the data.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="MetadataAttributes" type="echo:ListOfMetadataAttributes">
				<xsd:annotation>
					<xsd:documentation>used to define the attributes that will be returned</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CompressionMethod" type="echo:CompressionType">
				<xsd:annotation>
					<xsd:documentation>set as UNCOMPRESSED or GZIP</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UpdateType" type="echo:SubscriptionUpdateType">
				<xsd:annotation>
					<xsd:documentation>set as BOTH, COLLECTIONS_ONLY, GRANULES_ONLY, or ALL_COLLECTIONS</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetadataFilterInfo">
		<xsd:annotation>
			<xsd:documentation>This represents a way to filter the metadata subscribed to.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Query" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Any Valid IIMS AQL. If this is a granule query then collection events will be filtered out 
					for this subscription.  The opposite applies if this is a collection query. If a provider
					guid of * is specified in the subscription, the query must use a data center id of 'all'. If
					a single provider guid is a specified in the subscription, the data center id must be
					a single 'value' element (not a 'list') which matches the data center id for the provider.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="NumberOfDays" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>Rolling temporal condition which limits the results to any items added to
							the catalog within the given number of days from the date the subscription
							is executed.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetadataPath">
		<xsd:annotation>
			<xsd:documentation>A path into the metadata of a collection or granule. The path includes the item
					guid and one or more XPaths into the metadata.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Xpaths" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>Standard XPaths into the metadata. The XPath must be valid against the
							metadata that is normally retrieved for an item.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ItemGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the item the path applies to.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetadataResolvedPath">
		<xsd:annotation>
			<xsd:documentation>A resolved metadata path. A resolved path includes the item guid and the values
					that were resolved based on the XPaths given in the original path.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Values" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The values extracted from the metadata using the previously supplied
							XPaths.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ItemGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the item the path applies to.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetadataSubscription">
		<xsd:annotation>
			<xsd:documentation>This type represents the info for a metadata subscription request.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the subscription.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="State" type="echo:SubscriptionState">
				<xsd:annotation>
					<xsd:documentation>The current state of the subscription. This is one of paused, active, or
							expired.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SubscriptionName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the name of the subscription</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the provider the subscription references. you may use * to indicate all
							providers. A provider guid of * can be used in a subscription with a filter query if 
							and only if the query data center id is set to 'all'. If a specific provider
							guid is specified and a filter query is used, the filter query may only list the
							single data center id for the provider using a single 'value' element (not
							a 'list').
							</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DatasetName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the dataset the subscription references. you may use * to indicate all
							datasets.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FilterInfo" type="echo:MetadataFilterInfo">
				<xsd:annotation>
					<xsd:documentation>the narrowing information used to limit the size of the metadata subscribed
							to</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ActionInfo" type="echo:MetadataActionInfo">
				<xsd:annotation>
					<xsd:documentation>any actions to take on the data prior to delivery</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DeliveryInformation" type="echo:DeliveryInfo">
				<xsd:annotation>
					<xsd:documentation>the delivery information for the subscription</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StopTime" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>when the MetadataSubscription should expire.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="SubscriptionState">
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="ACTIVE">
				<xsd:annotation>
					<xsd:documentation>The subscription is active and will be processed when new data is detected.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="EXPIRED">
				<xsd:annotation>
					<xsd:documentation>The subscription is expired and will no longer be process unless it is
							renewed.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PAUSED">
				<xsd:annotation>
					<xsd:documentation>The subscription is paused and will not be processed until it is resumed.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="MetricConstraint">
		<xsd:annotation>
			<xsd:documentation>A metric constraint is some constraint on the count of the metric. This limits the
					number of events or objects that are counted to produce the metric.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Value" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>This contains the value used in the constraint. See the constraint type
							documentation for information on what values are used.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Type" type="echo:ConstraintType">
				<xsd:annotation>
					<xsd:documentation>The type of the constraint.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Metric">
		<xsd:annotation>
			<xsd:documentation>A generic type that represents the count of an event or object in ECHO. The type
					field indicate what event or object this metric is counting.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Count" type="xs:nonNegativeInteger">
				<xsd:annotation>
					<xsd:documentation>The number of objects or events that occured.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Type" type="echo:MetricType">
				<xsd:annotation>
					<xsd:documentation>The type of event or object being counted.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Constraints" type="echo:ListOfMetricConstraints">
				<xsd:annotation>
					<xsd:documentation>A list of constraints on the count. If there are no constraints then the
							count is for all events or objects that occured/existed in ECHO at the time
							this metric was produced.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetricReport">
		<xsd:annotation>
			<xsd:documentation>Represents a report of metrics from one month in ECHO.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ReportDate" type="xs:gYearMonth">
				<xsd:annotation>
					<xsd:documentation>The month and year this metric report is from.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Metrics" type="echo:ListOfMetrics">
				<xsd:annotation>
					<xsd:documentation>A list of metrics for this metric report.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DataProviderIds" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The list of id&apos;s of data providers that existed in ECHO when this report
							was generated.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="NameGuid">
		<xsd:annotation>
			<xsd:documentation>A simple type that contains a name and guid. This type is normally used when
					listing a large number of items to allow a client application to display the name
					to the user while using the guids to page through the objects using other services.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The human readable name of the item. The value of the name field changes
							depending on the use of this type, however the name is human readable and a
							client can depend on being able to present it to the user.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id for the item corresponding to the human readable name. The
							client application can use this field to request the entire object of
							interest.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="OptionAssignment">
		<xsd:annotation>
			<xsd:documentation>An assignment of a catalog item option definition to a catalog item collection and
					its granules. The assignment to granules is determined throught the filter XPath.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id assigned by ECHO for this option assignment.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OptionDefinitionGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The GUID of the option definition to assign to the catalog item.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CatalogItemGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The GUID of the catalog item to assign the option definition to. Only
							collections may be indicated here.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="FilterXPath" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>An optional XPath into the granule catalog item metadata that will indicate
							if the granules in the collection are assigned the option definition. If
							this is not given then the granules will have the option definition applied
							to them.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="OptionDefinition">
		<xsd:annotation>
			<xsd:documentation>Option definitions describe XML using some description language. This allows third
					parties to define parts of the API on ECHO. Option Selections contain XML that must
					conform the definition of the form in this.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id assigned by ECHO for this option definition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the definition. This must be unique per provider</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Scope" type="echo:OptionScope">
				<xsd:annotation>
					<xsd:documentation>The scope of the definition. Only administrators may add system level
							definitions and only providers may add provider level definitions.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Deprecated" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>
						<p>Indicates if the definition is deprecated. Deprecated definitions will
								be returned to the client and will be considered valid when validating
								an order, however new order items cannot be added using the definition
								and existing order items cannot be updated using the definition.</p>
						<p>This flag is ignored when creating an option definition, however it
								will always be set and returned once the definition has been created in
								ECHO.</p>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Form" type="echo:AnyElement">
				<xsd:annotation>
					<xsd:documentation>The ECHO Form. Contents must conform to ECHO Forms schema. See the ECHO
							Forms Specification for more information.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="OptionSelection">
		<xsd:annotation>
			<xsd:documentation>Option Selections contain XML that must conform to option definitions.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id assigned by ECHO for this</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the definition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Content" type="echo:AnyElement">
				<xsd:annotation>
					<xsd:documentation>The XML content of the selection. This must conform the XML described by
							the form in the option definition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Order">
		<xsd:annotation>
			<xsd:documentation>This data type is the top-level structure for a user order from one or more
					providers. An order is comprised of many provider orders. A provider order is a
					request for data that will be fulfilled by a particular provider. The order type
					type is used to express global order option selections, order status, pricing as
					well as possibly necessary shipping, billing, or contact information.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="OwnerGuid" type="xs:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The guid of the user who owns this order. This field will be null for
							orders owned by a guest user.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UserDomain" type="echo:UserDomain">
				<xsd:annotation>
					<xsd:documentation>The domain of the user that placed this order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UserRegion" type="echo:UserRegion">
				<xsd:annotation>
					<xsd:documentation>The region the user was located in when they placed the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique ID of an order in the system.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="State" type="echo:OrderState">
				<xsd:annotation>
					<xsd:documentation>This data type is used to categorize the state of an order for products or
							services. This state is derived from the aggregation of the states of
							associated provider orders. [STATE]_WITH_EXCEPTIONS indicates that there is
							an anomaly in the states of the order&apos;s associated provider orders For
							example, PROCESSING_WITH_EXCEPTIONS could indicate that one or more
							associated provider orders have been rejected or canceled while the
							remainder of the order has been accepted normally.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CreationDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that the order was created in GMT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SubmissionDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that the order was submitted in GMT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="LastUpdateDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that the order was last updated in state or by the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="ShippingAddress" type="echo:Contact">
				<xsd:annotation>
					<xsd:documentation>Describes the postal address to which an order for data should be
							delivered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="BillingAddress" type="echo:Contact">
				<xsd:annotation>
					<xsd:documentation>Represents the address to which billing information will be sent.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="ContactAddress" type="echo:Contact">
				<xsd:annotation>
					<xsd:documentation>Represents the contact to be used for general inquiries or problems with
							the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="NotifyLevel" type="echo:NotificationLevel">
				<xsd:annotation>
					<xsd:documentation>This data type is used to categorize the user&apos;s preference for receiving
							the updated status of a particular order. The types of email that will received
							with each level is documented in the service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ClientIdentity" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Unique ID of the client who access ECHO software. This information will
							also pass over along with the order to the data providers. This information
							is extracted from the client information provided at login.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OrderPrice" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The total price calculated by summing the provider order prices when the
							order was accepted by the providers.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderOrders" type="echo:ListOfProviderOrders">
				<xsd:annotation>
					<xsd:documentation>A request for data from a particular provider. The provider order does not
							contain information on the particular order line items. That information
							must be obtained separately. A provider order is automatically added to an
							order when an item owned by that provider is added to the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="OrderItem">
		<xsd:annotation>
			<xsd:documentation>Used to define ordering characteristics for particular catalog item so as to be
					used within an order. An order item defines both the product to be ordered, and the
					amount to be ordered. It may also include specifying options associated with and
					available for that catalog item. Generally, these options are packaging and
					distribution options. Only the particular options specified for this catalog item
					are available for setting. To retrieve all the available options for a catalog item
					(including whether an option is required or not), use the order management service
					to get the catalog item order information.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the order item.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="OwningProviderOrderGuid" type="echo:ProviderOrderGuid">
				<xsd:annotation>
					<xsd:documentation>The guid of the provider order to which this item belongs.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ItemGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the item being ordered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="State" type="echo:OrderItemState">
				<xsd:annotation>
					<xsd:documentation>The state of the order item. This state may change as the order is
							processed by the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="QuantityOrdered" type="xs:short">
				<xsd:annotation>
					<xsd:documentation>The quantity of the item being ordered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="OptionSelection" type="echo:OptionSelection">
				<xsd:annotation>
					<xsd:documentation>The selection for a catalog item option definitions assigned to the item
							being ordered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Phone">
		<xsd:annotation>
			<xsd:documentation>This data type is used to express telephone information such as a home, business,
					or fax number.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the telephone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="CustomTypeName" type="xs:string">
				<xsd:annotation>
					<xsd: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. This field is restricted to 150 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Number" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The phone number. This field is
					restricted to 50 characters.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="PhoneNumberType" type="echo:PhoneType">
				<xsd:annotation>
					<xsd: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.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PriceInformation">
		<xsd:annotation>
			<xsd: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.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="TotalPrice" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The total price of the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DataPrice" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The price for the actual data.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="MediaPrice" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The price for the media used to distribute the data.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ShippingFee" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The fee for shipping the media.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="HandlingFee" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>The fee for handling and packaging the media.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Discount" type="xs:float">
				<xsd:annotation>
					<xsd:documentation>Any discount that was given to the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="QuantityOfMedia" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>The number of media units used to fulfill the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AdditionalInformation" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Any additional information about the price information that the provider
							needs to relay to the user.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Provider">
		<xsd:annotation>
			<xsd:documentation>
				<p>A provider in the ECHO system. A provider can provide data or services.
						Although a provider is a top level entity and is associated with information, a
						provider never actually logs into the system. A user can be granted access to a
						provider role and can then act on behalf of that provider. This allows multiple
						users to act on behalf of the same provider while maintaining system security.</p>
				<p>Acting on behalf of a provider is required when maintaining the provider&apos;s
						assets such as data or services.</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id for the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="ProviderId" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The readable provider id. This id is normally unique in ECHO, however it is
							a name that is negotiated between ECHO operations and the provider. This
							name may change as the provider&apos;s organization or operational goals change.
							This ID is different from the guid in that the guid is uniquely machine
							generated and may never change for the lifetime of the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OrganizationName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The organization name that the provider represents.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderTypes" type="echo:ListOfProviderTypes">
				<xsd:annotation>
					<xsd:documentation>The type of the provider such as service or data. A data provider can
							provide data such as collections or granules. A service provider can
							provide web service items such as advertisements, implementations,
							interfaces, and guis. A provider may be both a service and data provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DiscoveryUrls" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>Identifies a provider web site so users can find more information about the
							provider or obtain direct access to data or services.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DescriptionOfHoldings" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>A description of the type of data holdings the provider maintains. This
							field may not contain data for service providers.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="DescriptionOfServices" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>A description of the type of service holdings the provider maintains. This
							field may not contain data for data providers.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="AdditionalInformation" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Any additional information about the provider that is relevant.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Contacts" type="echo:ListOfContacts">
				<xsd:annotation>
					<xsd:documentation>Contacts for the provider such as the primary maintainer or the data access
							center.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ProviderHolding">
		<xsd:annotation>
			<xsd:documentation>A description of a data set owned by a data provider.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="DataSetId" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The dataset ID of a collection owned by a provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CollectionGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The ECHO collection GUID of a collection owned by a provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="GranuleCount" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>The number of granules in the collection.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ProviderOrder">
		<xsd:annotation>
			<xsd:documentation>Represents a request for products and services from a particular provider. A
					provider order is contained within a larger order. ECHO automatically maintains
					creating and removing provider orders when items are added and removed from an
					order. The provider orders will be delivered to providers when the order is quoted
					or submitted.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Guid" type="echo:ProviderOrderGuid">
				<xsd:annotation>
					<xsd:documentation>The unique ID of a provider order in the system.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderTrackingId" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The provider specified tracking id used to track the order when it is being
							processed.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="State" type="echo:ProviderOrderState">
				<xsd:annotation>
					<xsd:documentation>The state of the provider order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ClosedDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that the provider order was closed in GMT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="OrderQuote" type="echo:ProviderOrderQuote">
				<xsd:annotation>
					<xsd:documentation>The quoted price information for the provider order. This field will only
							be valid after a quote is requested and the provider has supplied the
							information.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" maxOccurs="1" name="OrderReceipt" type="echo:ProviderOrderReceipt">
				<xsd:annotation>
					<xsd:documentation>The submitted price information for the provider order. This field will
							only be valid after a submit is requested and the provider has supplied the
							information.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AuthenticationKey" type="echo:OptionSelection">
				<xsd:annotation>
					<xsd:documentation>The authentication key selected by the user to be used when the order is
							submitted to the provider. Some providers require that an order have an
							authentication key before being submitted.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StatusMessage" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>All of the status messages supplied by the provider as the order is being
							processed.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ProviderOrderGuid">
		<xsd:annotation>
			<xsd:documentation>The unique ID of a provider order in the system. It&apos;s an aggregate of the
					provider&apos;s guid and the order guid from the order which the provider order belongs.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The provider guid that the items in the order belong to.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OrderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the order to which this provider order belongs.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ProviderOrderQuote">
		<xsd:annotation>
			<xsd:documentation>Used to express the quoted price for an order from a provider.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Pricing" type="echo:PriceInformation">
				<xsd:annotation>
					<xsd:documentation>The price information for the items in the quoted order.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="QuoteExpirationDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that this quote expires. After this date, the provider may change
							the prices originally provided.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RecommendedMedia" type="xs:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The recommended media for the order based on the provider&apos;s calculations.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ProviderOrderReceipt">
		<xsd:annotation>
			<xsd:documentation>This data type represents information about a provider order when the provider
					accept the user&apos;s submitted order.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="LatestCancelDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The last date that the order may be cancelled. A provider cannot promise to
							cancel an order if the cancel request is received after this date.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="EstimatedShipDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that the order is estimated to ship from the provider if a
							physical media type is required in the order. This field may not be set if
							the provider does not support estimating a ship date.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="AcceptanceDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date that the provider accepted the order in GMT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Pricing" type="echo:PriceInformation">
				<xsd:annotation>
					<xsd:documentation>The price information for the final order as calculated by the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="QueryResponse">
		<xsd:annotation>
			<xsd:documentation>Contains the results of executing a query on the ECHO catalog. The contents of this
					type will depend upon the Result Type specified in the Query Request.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="QueryResultType" type="echo:ResultType">
				<xsd:annotation>
					<xsd:documentation>The result type that was requested in the original query.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Results" type="echo:QueryResults">
				<xsd:annotation>
					<xsd:documentation>The inline results if they are appropriate for the given result type.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="ItemGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The inline item guids if they are appropriate for the given result type.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="QueryResults">
		<xsd:annotation>
			<xsd:documentation>The inline result information from executing a query on the ECHO catalog.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="ResultSetGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the result set. This ID is only valid if the result type
							is one that stores results on the server.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ReturnData" minOccurs="0" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The inline return data. This field is only valid if the result type is one
							that returns data.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Cursor" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>The current position of the cursor in the overall result set. The cursor
							can be thought of as a pointer to some row in the result set.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Hits" type="echo:ResultSetCount">
				<xsd:annotation>
					<xsd:documentation>The total number of hits in the result set.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Status" type="echo:QueryStatus">
				<xsd:annotation>
					<xsd:documentation>The status of the query. This field is only useful if the query is
							executing asynchronously.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CursorAtEnd" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>Indicates if the cursor is at the end of the available results. If true,
							there is currently no more data available in the result set. If false,
							another request can be made to access more data. Note that if the query is
							asynchronous, this flag may be true but more data could be added to the
							result set at a later time.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ResultSetCount">
		<xsd:annotation>
			<xsd:documentation>The number of hits in the result set.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Size" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>The size of the result set in number of items</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Estimated" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>If this is true it indicates the size is estimated.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RestrictionFlagCondition">
		<xsd:annotation>
			<xsd:documentation>A data rule condition based on a restriction flag in the data.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ConditionName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The description of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Lower" type="xs:int">
				<xsd:annotation>
					<xsd:documentation>The lower value of the restricted field.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Role">
		<xsd:annotation>
			<xsd:documentation>This data type is used to represent the access level that a user in the system may
					have. Currently users can have either provider roles or administrator roles</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Type" type="echo:RoleType">
				<xsd:annotation>
					<xsd:documentation>The type of the role, either provider or admin.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="RoleName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the role. For a provider role, this is the provider guid. For
							an admin role, this field is not used.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the role.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RollingTemporalCondition">
		<xsd:annotation>
			<xsd:documentation>A data rule condition that is based on time. The time is a rolling time expressed
					as a duration.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ConditionName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The description of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Duration" type="xs:long">
				<xsd:annotation>
					<xsd:documentation>
						<p>The duration of the rolling time in milliseconds. The conversion used
								for v8 is only accurate to hours. Any seconds or millisecond remainder
								will be truncated. In v9 the accuracy will be preserved.</p>
						<p>The XML Schema type duration was not used because of a lack of support
								in major languages and tools. In the future, this field may be
								converted to an XSD duration.</p>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TargetTemporalField" type="echo:TemporalType">
				<xsd:annotation>
					<xsd:documentation>The time field of the data that should be used when performing the
							comparison with this condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="SavedQuery">
		<xsd:annotation>
			<xsd:documentation>Contains all the information about a query that was previously saved. A saved query
					may be executed at a later time using the catalog service.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user specified name of the query.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the query.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Query" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The AQL query that was previously saved.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="SecurityTokenInformation">
		<xsd:annotation>
			<xsd:documentation>Contains the information behind a token in ECHO.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Token" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The token string used by the user and client.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UserGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the user assigned this token</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="ActAsUserGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the user the user is acting as. Only ECHO Administrators are
							allowed to act as another user</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="OnBehalfOfProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the provider the user is acting on behalf of. Only ECHO
							Administrators and those users that are specifically granted Provider role
							for a particular provider are allowed to act on behalf of a Provider</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Created" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>Date that this token was created</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Expires" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>Date that this token expires. Null indicates that this token never expires</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Guest" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>Whether this token is for a guest (true) or a registered user (false)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Revoked" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>Date that this token was revoked. Null indicates token in not revoked</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="StatusAnnotation">
		<xsd:annotation>
			<xsd:documentation>This is a string annotation to a status state. It is similar to a log message.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Annotation" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>the actual string annotation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CreationDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>the date the string annotation was added</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="StatusEntry">
		<xsd:annotation>
			<xsd:documentation>This represents one state of a transaction. It holds the state and string
					annotations to that state.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="TransactionGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Guid of the transaction this status entry is for</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="State" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>a state entered on the transaction</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Annotations" type="echo:ListOfStatusAnnotations">
				<xsd:annotation>
					<xsd:documentation>A list of string annotations to this state.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CreationDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The date the transaction entered this state</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Taxonomy">
		<xsd:annotation>
			<xsd:documentation>A taxonomy can be used to classify web service objects. A taxonomy contains a tree
					of taxonomy entries which are name value pairs. The value of any taxonomy entry
					must be unique within the taxonomy.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>name of the taxonomy</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Uuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Universally unique id for the taxonomy. Unlike other guids in ECHO, this
							UUID must be specified by the user.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OverviewUrl" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Overview url for the taxonomy. This is the url that a user may use to find
							more information about the taxonomy.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The description of the taxonomy</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TaxonomyEntry">
		<xsd:annotation>
			<xsd:documentation>A name value pair in a taxonomy that represents one classification within the
					taxonomy.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the taxonomy entry.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Value" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>unique value for this taxonomy entry. The value must be unique within the
							owning taxonomy.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TaxonomyUuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>universally unique id for the taxonomy which this entry belongs to</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TemporalCondition">
		<xsd:annotation>
			<xsd:documentation>A data rule condition that is based on a start and end time.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ConditionName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The description of the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StartTime" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The start time that the date must be after. This only has a precision of
							seconds.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StopTime" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The stop time that the date must be before. This only has a precision of
							seconds.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TargetTemporalField" type="echo:TemporalType">
				<xsd:annotation>
					<xsd:documentation>The time field of the data that should be used when performing the
							comparison with this condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MetadataAttribute">
		<xsd:annotation>
			<xsd:documentation>Provides a set of attribute name and value type pairs.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="AttributeName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the metadata attribute.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="PrimitiveValueType" type="echo:PrimitiveTypeName">
				<xsd:annotation>
					<xsd:documentation>The primitive type of the value of the metadata attribute.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="User">
		<xsd:annotation>
			<xsd:documentation>A registered user in ECHO. A user is the most common actor in the ECHO system. A
					user has general information such as addresses and phone numbers as well as access
					levels called roles. After being granted provider roles, a user can act on behalf
					of a provider to manage data or services. A user can also execute queries and place
					orders. A user is used to enforce basic security within ECHO.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element minOccurs="0" name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the user in ECHO.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UserDomain" type="echo:UserDomain">
				<xsd:annotation>
					<xsd:documentation>The domain of user this is.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UserRegion" type="echo:UserRegion">
				<xsd:annotation>
					<xsd:documentation>The region the user is located in.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Username" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user name of the user. This is sometimes referred to as the user ID.
							This field is selected by the user when the account is created.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FirstName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user&apos;s first name.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="LastName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user&apos;s last name.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Email" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The email address of the user.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OptIn" type="xs:boolean">
				<xsd:annotation>
					<xsd:documentation>Indicates if user wants to be notified of changes within ECHO or not.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OrganizationName" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Name of the organization the user is a part of.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Addresses" type="echo:ListOfAddresses">
				<xsd:annotation>
					<xsd:documentation>The addresses to be used when communicating with the user. Addresses are
					optional. A null list will be treated as an empty list. An empty list will always be 
					returned if there are no addresses.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Phones" type="echo:ListOfPhones">
				<xsd:annotation>
					<xsd:documentation>The phone numbers associated with the user. A phone number may be a home,
							business, or fax number. Phone numbers are optional. An null list will be treated as
							an empty list. An empty list will always be returned if there are no phones.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="Roles" type="echo:ListOfRoles">
				<xsd:annotation>
					<xsd:documentation>The roles the user has been granted. The roles currently include one or
							more provider roles and an admin role. An empty list will be returned if
							there are no roles.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="UserAuthenticator">
		<xsd:annotation>
			<xsd:documentation>A user authenticator is used to define credentials for users when they submit an
					order to a provider. The provider defines authenticator option definitions and a
					user provides selections for the authenticators. An authenticator can then be
					attached to a provider order at a later time.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The unique id of the authenticator.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The user specified name of the authenticator.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the provider to which this is an authenticator for.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Selection" type="echo:OptionSelection">
				<xsd:annotation>
					<xsd:documentation>The option selection that is a valid selection on the authenticator
							definition created by the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OwnerGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The guid of the user who owns the authenticator.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="VisibilityFlagSetting">
		<xsd:annotation>
			<xsd:documentation>Indicates the visibility flag setting (visible or not visible) for a set of
					datasets.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="VisibilityFlag" type="echo:VisibilityFlagType">
				<xsd:annotation>
					<xsd:documentation>The visibility flag of the datasets. This is one of open or restricted.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element minOccurs="0" name="DataSetIds" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>The ids of the datasets that this flag applies to.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WSAdvertisement">
		<xsd:annotation>
			<xsd:documentation>This is an advertisement for a service that may be available through the web.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Unique identifier for this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Guid of the provider who owns this</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Name of the web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AccessPoint" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Url where this service can be accessed</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Description of this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Classifications" type="echo:ListOfClassifications">
				<xsd:annotation>
					<xsd:documentation>The taxonomy values that this web service is classified by</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WSGui">
		<xsd:annotation>
			<xsd:documentation>This represents a user interface to a web service. It can represent user interfaces
					to web service implementations and interfaces registered in ECHO.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Unique identifier for this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Guid of the provider who owns this</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Name of the web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AccessPoint" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Url where this GUI can be accessed</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Description of this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="InterfaceGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>Service guids of the associated interfaces registered in ECHO</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ImplementationGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>Service guids of the associated implementations registered in ECHO</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Classifications" type="echo:ListOfClassifications">
				<xsd:annotation>
					<xsd:documentation>The taxonomy values that this web service is classified by</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WSImplementation">
		<xsd:annotation>
			<xsd:documentation>This represents an executable web service with an available endpoint.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Unique identifier for this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Guid of the provider who owns this</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Name of the web service. Taken from the service element in the WSDL.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="WsdlUrl" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Url of the WSDL</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Description of this web service. This comes from the documentation of the
							service element in the WSDL file.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="InterfaceGuids" type="echo:ListOfStrings">
				<xsd:annotation>
					<xsd:documentation>Guids of the interfaces in ECHO that this implementation implements. This
							is determined by the interfaces in the WSDL file that the implementation
							imports.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Classifications" type="echo:ListOfClassifications">
				<xsd:annotation>
					<xsd:documentation>The taxonomy values that this web service is classified by</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WSInterface">
		<xsd:annotation>
			<xsd:documentation>Represents an interface to a web service.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Guid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Unique identifier for this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ProviderGuid" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Guid of the provider who owns this</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Name of the web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="WsdlUrl" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Url of the WSDL</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>Description of this web service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Classifications" type="echo:ListOfClassifications">
				<xsd:annotation>
					<xsd:documentation>The taxonomy values that this web service is classified by</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WSOperation">
		<xsd:annotation>
			<xsd:documentation>This represents an operation on a web service. Note that this only represents
					operations that take simple types as parameters and return only zero or one simple
					type.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the operation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Namespace" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The namespace the operation belongs to.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The operation description</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ReturnType" type="echo:PrimitiveTypeName">
				<xsd:annotation>
					<xsd:documentation>The return type of the operation.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Parameters" type="echo:ListOfWSParameters">
				<xsd:annotation>
					<xsd:documentation>The names and types of the parameters to the operation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SoapAction" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The soap action to call the operation.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WSParameter">
		<xsd:annotation>
			<xsd:documentation>This represents a simple type parameter to a web service operation.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="xs:string">
				<xsd:annotation>
					<xsd:documentation>The name of the parameter.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Type" type="echo:PrimitiveTypeName">
				<xsd:annotation>
					<xsd:documentation>The parameter simple type.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="WebServiceListing">
		<xsd:annotation>
			<xsd:documentation>This contains a list of web service interfaces, implementation, GUIs, and
					advertisements.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="WSImplementations" type="echo:ListOfNameGuids">
				<xsd:annotation>
					<xsd:documentation>The list of implementations</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="WSInterfaces" type="echo:ListOfNameGuids">
				<xsd:annotation>
					<xsd:documentation>The list of interfaces</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="WSGuis" type="echo:ListOfNameGuids">
				<xsd:annotation>
					<xsd:documentation>The list of GUIs</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="WSAdvertisements" type="echo:ListOfNameGuids">
				<xsd:annotation>
					<xsd:documentation>The list of advertisements</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="ActionType">
		<xsd:annotation>
			<xsd:documentation>This data type provides an enumeration of the types of action that can be taken on
					metadata.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="VIEW">
				<xsd:annotation>
					<xsd:documentation>Viewing the metadata through a simple get operation.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ORDER">
				<xsd:annotation>
					<xsd:documentation>Ordering the data using the ordering API.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="BROWSE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="CatalogItemType">
		<xsd:annotation>
			<xsd:documentation>This enumeration is used to identify the type of a catalog item.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="COLLECTION">
				<xsd:annotation>
					<xsd:documentation>A collection of granules. This is also referred to as a dataset.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="GRANULE">
				<xsd:annotation>
					<xsd:documentation>A granule or a single unit of data.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ClassificationType">
		<xsd:annotation>
			<xsd:documentation>An enumerated type for the different types of classifications.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="INHERITED">
				<xsd:annotation>
					<xsd:documentation>This means the classification was inherited from an associated object.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SYSTEM">
				<xsd:annotation>
					<xsd:documentation>This means the classification was applied by ECHO.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="EXPLICIT">
				<xsd:annotation>
					<xsd:documentation>This means the classification was explicitly applied by the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="Comparator">
		<xsd:annotation>
			<xsd:documentation>This data type provides an enumeration of all the different methods of comparison
					within the Echo system.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="LESS_THAN">
				<xsd:annotation>
					<xsd:documentation>The left operand is less than the right operand.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="LESS_THAN_OR_EQUAL">
				<xsd:annotation>
					<xsd:documentation>The left operand is less than or equal to the right operand.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="GREATER_THAN">
				<xsd:annotation>
					<xsd:documentation>The left operand is greater than the right operand.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="GREATER_THAN_OR_EQUAL">
				<xsd:annotation>
					<xsd:documentation>The left operand is greater than or equal to the right operand.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="EQUALS">
				<xsd:annotation>
					<xsd:documentation>The left operand equals the right operand.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="NOT_EQUALS">
				<xsd:annotation>
					<xsd:documentation>The left operand does not equal the right operand.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ComplexOptionType">
		<xsd:annotation>
			<xsd:documentation>The possible usage types for a complex option definition.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="STRUCTURE">
				<xsd:annotation>
					<xsd:documentation>The selection for the definition may contain any number of children or
							fields.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CHOICE">
				<xsd:annotation>
					<xsd:documentation>The selection for the definition may contain only a single child or field.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="CompressionType">
		<xsd:annotation>
			<xsd:documentation>A list of supported compression types.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="UNCOMPRESSED">
				<xsd:annotation>
					<xsd:documentation>No compression.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="GZIP">
				<xsd:annotation>
					<xsd:documentation>Standard g-zip compression.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="DeliveryType">
		<xsd:annotation>
			<xsd:documentation>Possible data delivery types.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="EMAIL">
				<xsd:annotation>
					<xsd:documentation>An email attachment.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="FTPPUSH">
				<xsd:annotation>
					<xsd:documentation>Pushed to an FTP server directory.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="INLINE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="FilterDialect">
		<xsd:annotation>
			<xsd:documentation>Possible filter dialects used in subscription filters. The dialect indicates the
					type of filter. ECHO will apply the filter based on the dialect indicated in the
					subscription.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="XPATH">
				<xsd:annotation>
					<xsd:documentation>
						<p>The filter must be an XPath that must match in order for the
								notification to be delivered. The XPath will be executed on the event
								notification XML that is about to be delivered to the subscriber. The
								event notification XML is defined by the Event Notification schema.</p>
						<p>The XPath context will be setup such that the context node is the root
								node of the document. Also, the<code>eventv9</code>namespace alias will be mapped to<code>http://echo.nasa.gov/v9/eventnotification/events</code>.</p>
						<p>The XPath will be evaluated in a<code>boolean()</code>XPath function to determine if the XPath matches.</p>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="TOPIC">
				<xsd:annotation>
					<xsd:documentation>
						<p>The filter must be one or more topics that must match for the
								notification to be delivered. The topics may be space separated to
								indicate an<i>or</i>relationship. If multiple topics are specified in this way, if any of
								them match, the notification will be delivered.</p>
						<p>The known topics are:<ul><li><b>extendedservices</b>: notification relates to extended services such as update,
										remove, or create web services</li><li><b>catalog</b>: notification relates to the ECHO catalog such as update,
										remove, or create catalog items.</li><li><b>provider</b>: notification relates to the ECHO providers such as update,
										remove, or create providers.</li><li><b>eventnotification</b>: notification relates to event notifications</li><li><b>eventnotification.subscription</b>: notification relates to a specific event notification
										subscription</li><li><b>eventnotification.subscription.end</b>: notification relates to a specific event notification ending</li></ul></p>
					</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="NotificationDeliveryMode">
		<xsd:annotation>
			<xsd:documentation>Possible delivery modes for notification of events.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="EMAIL">
				<xsd:annotation>
					<xsd:documentation/>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="FTPPUSH">
				<xsd:annotation>
					<xsd:documentation/>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="HTTPSOAP"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="NotificationLevel">
		<xsd:annotation>
			<xsd:documentation>Used to categorize the user&apos;s preference for receiving the updated status of a
					particular operation. In most cases this is only a preference and the user can always 
					come back to ECHO and check	the status of the operation through the specific service.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="VERBOSE">
				<xsd:annotation>
					<xsd:documentation>The system will email all state changes and status message
							updates to the user.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="DETAIL">
				<xsd:annotation>
					<xsd:documentation>The system will email the user when only state changes are
							made.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="INFO">
				<xsd:annotation>
					<xsd:documentation>The system will email the user when the operation reaches a  
					final state.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CRITICAL">
				<xsd:annotation>
					<xsd:documentation>The system will email the user when the operation has failed or
					is rejected.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="NONE">
				<xsd:annotation>
					<xsd:documentation>The system will not send the user email and the user will have to come back
							to ECHO and use operations on the specific service to obtain status information.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="OrderItemState">
		<xsd:annotation>
			<xsd:documentation>This defines the possible states that an order item can be in while the order is
					being processed. Note that not all providers support individual order line item
					states and may only be able to update the provider order state.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="NOT_SET">
				<xsd:annotation>
					<xsd:documentation>No state has been specified for this order item.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROCESSING">
				<xsd:annotation>
					<xsd:documentation>The order item is being processed by the provider.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLED">
				<xsd:annotation>
					<xsd:documentation>The order item was cancelled from the order at the provider&apos;s request.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CLOSED">
				<xsd:annotation>
					<xsd:documentation>The order item has been processed and is now closed.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="OrderState">
		<xsd:annotation>
			<xsd:documentation>This defines the different states an order can be in.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="NOT_VALIDATED">
				<xsd:annotation>
					<xsd:documentation>The order has not yet been validated to ensure that all the information in
							the order is correct.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="VALIDATED">
				<xsd:annotation>
					<xsd:documentation>The order has been validated and all the information in the order is
							correct. It is important to note that although an order may be in the
							validated state, if a provider modifies the underlying data being ordered,
							an order may no longer be valid.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTING">
				<xsd:annotation>
					<xsd:documentation>The order has been sent to the provider for quoting and the provider has
							not yet responded.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTED">
				<xsd:annotation>
					<xsd:documentation>The order was sent to the provider for a quote and the provider has
							delivered the quote.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTED_WITH_EXCEPTIONS">
				<xsd:annotation>
					<xsd:documentation>The order was sent to the provider for a quote and the provider has
							delivered the quote however some part of the order could not be quoted.
							This is most likely because one of the providers in the order does not
							support quoting.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBMITTING">
				<xsd:annotation>
					<xsd:documentation>The order was submitted to the provider and the provider has not yet
							accepted the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBMITTED_WITH_EXCEPTIONS">
				<xsd:annotation>
					<xsd:documentation>The order was submitted to the providers and only some of the providers
							have accepted the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROCESSING">
				<xsd:annotation>
					<xsd:documentation>The order has been accepted by all providers and it is being filled.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROCESSING_WITH_EXCEPTIONS">
				<xsd:annotation>
					<xsd:documentation>The order has been accepted by all providers however one or more providers
							has found a problem with the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLING">
				<xsd:annotation>
					<xsd:documentation>A cancel request has been sent to the provider but the provider has not
							accepted the request yet.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLED">
				<xsd:annotation>
					<xsd:documentation>The provider has accepted a cancel request or the provider has cancelled
							the order directly.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CLOSED">
				<xsd:annotation>
					<xsd:documentation>The order has been filled and is now complete.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CLOSED_WITH_EXCEPTIONS">
				<xsd:annotation>
					<xsd:documentation>The order has been filled and is now complete however one or more of the
							providers encountered problems completing the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="OptionScope">
		<xsd:annotation>
			<xsd:documentation>This defines the different scopes for an option definition.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="PROVIDER">
				<xsd:annotation>
					<xsd:documentation>This indicates the scope of the option definition is at the level of the
							provider who created it.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SYSTEM">
				<xsd:annotation>
					<xsd:documentation>This indicates the option definition is a global definition</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="RoutingType">
		<xsd:annotation>
			<xsd:documentation>Order transactions that data providers may optionally support.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="LEGACY_ORDER_V8">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider is using the WSDL for order fulfillment defined
							in versions before ECHO V9. When this routing type is used, the endpoint
							specified in the provider policies should be the endpoint of the service
							implementing this WSDL. In the case of a provider using an ECHO supported
							order adapter this would be the endpoint of the order adapter. SSL is not
							supported through this routing type.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ORDER_FULFILLMENT_V9">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider is implementing the version 9 order fulfillment
							interface. ECHO will make a connection directly to the endpoint specified
							in the provider policies and transmit the data. If SSL is enabled, an SSL
							connection to the provider will be used.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="OrderTransactionType">
		<xsd:annotation>
			<xsd:documentation>Order transactions that data providers may optionally support.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="QUOTE">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider supports quote requests and will return a valid
							quote for an order.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBMIT">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider supports submit requests and will fulfill any
							submitted orders.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCEL">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider supports cancel requests and will cancel any
							orders being processed if possible.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="PhoneType">
		<xsd:annotation>
			<xsd: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.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="BUSINESS">
				<xsd:annotation>
					<xsd:documentation>The first or primary business phone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="BUSINESS_2">
				<xsd:annotation>
					<xsd:documentation>The second business phone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="BUSINESS_FAX">
				<xsd:annotation>
					<xsd:documentation>The business fax number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="HOME">
				<xsd:annotation>
					<xsd:documentation>The first or primary home phone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="HOME_2">
				<xsd:annotation>
					<xsd:documentation>The second home phone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="HOME_FAX">
				<xsd:annotation>
					<xsd:documentation>The home fax number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="MOBILE">
				<xsd:annotation>
					<xsd:documentation>The mobile or cell phone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PAGER">
				<xsd:annotation>
					<xsd:documentation>The pager phone number.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CUSTOM">
				<xsd:annotation>
					<xsd: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.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="PrimitiveTypeName">
		<xsd:annotation>
			<xsd:documentation>An enumeration of primitive types.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="DATE_STRING">
				<xsd:annotation>
					<xsd:documentation>A string date in ISO date format. This should be of the format &quot;yyyy-MM-dd
							HH:mm:ss&quot;<br/>y = year<br/>M = month<br/>d = day<br/>H = hour<br/>m = minute</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="STRING"/>
			<xsd:enumeration value="INTEGER"/>
			<xsd:enumeration value="BIG_INTEGER"/>
			<xsd:enumeration value="LONG"/>
			<xsd:enumeration value="SHORT"/>
			<xsd:enumeration value="BYTE"/>
			<xsd:enumeration value="BOOLEAN"/>
			<xsd:enumeration value="CHARACTER"/>
			<xsd:enumeration value="DOUBLE"/>
			<xsd:enumeration value="FLOAT"/>
			<xsd:enumeration value="VOID"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ProviderOrderState">
		<xsd:annotation>
			<xsd:documentation>This data type is used to categorize the state of a provider order.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="NOT_VALIDATED">
				<xsd:annotation>
					<xsd:documentation>The order has not yet been validated to ensure that all the information in
							the order is correct.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="VALIDATED">
				<xsd:annotation>
					<xsd:documentation>The order has been validated and all the information in the order is
							correct. It is important to note that although an order may be in the
							validated state, if a provider modifies the underlying data being ordered,
							an order may no longer be valid.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTING">
				<xsd:annotation>
					<xsd:documentation>The order has been sent to the provider for quoting and the provider has
							not yet responded.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTED">
				<xsd:annotation>
					<xsd:documentation>The order was sent to the provider for a quote and the provider has
							delivered the quote.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTE_FAILED">
				<xsd:annotation>
					<xsd:documentation>The provider was unable to process the quote request or the provider could
							not be contacted.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="QUOTE_REJECTED">
				<xsd:annotation>
					<xsd:documentation>The provider rejected the quote request.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBMITTING">
				<xsd:annotation>
					<xsd:documentation>The order was submitted to the provider and the provider has not yet
							accepted the order.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBMIT_FAILED">
				<xsd:annotation>
					<xsd:documentation>The provider was unable to process the submit request or the provider could
							not be contacted.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBMIT_REJECTED">
				<xsd:annotation>
					<xsd:documentation>The provider rejected the submit request.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROCESSING">
				<xsd:annotation>
					<xsd:documentation>The order has been accepted by the provider and it is being filled.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLING">
				<xsd:annotation>
					<xsd:documentation>A cancel request has been sent to the provider but the provider has not
							accepted the request yet.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLED">
				<xsd:annotation>
					<xsd:documentation>The provider has accepted a cancel request or the provider has cancelled
							the order directly.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CLOSED">
				<xsd:annotation>
					<xsd:documentation>The order has been filled and is now complete.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ProviderType">
		<xsd:annotation>
			<xsd:documentation>An enumeration that is used to identify the type of items the provider offers. A
					provider is normally a single type of provider, however they may support multiple
					types.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="SERVICE">
				<xsd:annotation>
					<xsd:documentation>The provider offers web services such as interfaces, implementations,
							advertisements, or GUIs.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="DATA">
				<xsd:annotation>
					<xsd:documentation>The provider offers data such as collections and granules.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CLIENT">
				<xsd:annotation>
					<xsd:documentation>This type is currently unused.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="QueryStatus">
		<xsd:annotation>
			<xsd:documentation>Possible query status for an asynchronous query. Because an asynchronous query runs
					in the background, the status can be used to monitor the progress of the query.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="SUCCESS_RESULTS_AVAILABLE">
				<xsd:annotation>
					<xsd:documentation>The query completed successfully and there are results available.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROCESSING_NORMAL">
				<xsd:annotation>
					<xsd:documentation>The query is being processed.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROCESSING_QUEUED">
				<xsd:annotation>
					<xsd:documentation>The query is queued for future execution when the system is ready to handle
							it.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ERROR">
				<xsd:annotation>
					<xsd:documentation>The query encountered an error.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="FAILURE">
				<xsd:annotation>
					<xsd:documentation>The query failed to execute properly.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLING">
				<xsd:annotation>
					<xsd:documentation>The query is executing but it is being cancelled as soon as possible.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CANCELLED">
				<xsd:annotation>
					<xsd:documentation>The query was cancelled and is no longer running.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ReadWriteRule">
		<xsd:annotation>
			<xsd:documentation>Indicates the mutability and usage of a simple option definition. The read/write
					rule can be used to hide data from users or to send only information data to
					clients in option definitions.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="FIXED">
				<xsd:annotation>
					<xsd:documentation>The option value is constant and cannot be changed. FIXED option
							definitions are sent to the client and to the provider when used as catalog
							item order options. A client should not provide a selection for a FIXED
							option. The value of the FIXED option will be expressed in the default
							values.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="OBSCURED">
				<xsd:annotation>
					<xsd:documentation>The option value is constant and cannot be changed. OBSCURED option
							definitions are sent only to the provider when used as catalog item order
							options. A client should not provide a selection for an OBSCURED option.
							The value of the OBSCURED option will be expressed in the default values.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="INFO_ONLY">
				<xsd:annotation>
					<xsd:documentation>The option value is constant and cannot be changed. INFO_ONLY option
							definitions are sent only to the client. A client should not provide a
							selection for an INFO_ONLY option. The value of the INFO_ONLY option will
							be expressed in the default values.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="MUTABLE">
				<xsd:annotation>
					<xsd:documentation>The option value is mutable and can be changed. MUTABLE option definitions
							are sent to the client and to the provider when used as catalog item order
							options. A client should provide a selection for a MUTABLE option based on
							the multiplicity values of the definition.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ResultType">
		<xsd:annotation>
			<xsd:documentation>The desired result type of a query execution. The result type can be used to limit
					the amount of data returned or to tell ECHO to store the data on the server for
					future use.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="RESULT_SET_GUID">
				<xsd:annotation>
					<xsd:documentation>Returns the result set guid of the results that are stored on the server.
							The results are not returned and must be retrieved with separate calls to
							get query results using the Catalog operations.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="HITS">
				<xsd:annotation>
					<xsd:documentation>Returns the number of hits (matches) to the query and a result set guid for
							the results stored on the server.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="RESULTS">
				<xsd:annotation>
					<xsd:documentation>Returns the detailed metadata for items that match the query directly in
							the response.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ITEM_GUIDS">
				<xsd:annotation>
					<xsd:documentation>Returns the catalog item guids which match the specified query.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="NUMBER_OF_RESULTS">
				<xsd:annotation>
					<xsd:documentation>Returns the number of hits (matches) to the query.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ASYNCHRONOUS">
				<xsd:annotation>
					<xsd:documentation>Returns the result set guid immediately. This result set guid can be used
							to check the status of the query as it executes in the background. Once the
							query is started, the results can be presented and viewed in partial form.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="MetricType">
		<xsd:annotation>
			<xsd:documentation>Enumeration of the possible metric types.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="ORDERS_SUBMITTED">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of orders submitted.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="AVERAGE_ORDERS_SUBMITTED">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of average number of order submitted.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="GRANULES_ORDERED">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of distinct granules ordered.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="COLLECTIONS_ORDERED">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of distinct collections ordered.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="USERS">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of registered users that exist in ECHO.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="USERS_ORDERED">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of registered users who ordered.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="USERS_SEARCHED">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of registered users who searched.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SEARCHES">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of searches performed</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="AVERAGE_SEARCHES">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of average searches performed.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SUBSCRIPTIONS">
				<xsd:annotation>
					<xsd:documentation>Indicates metric is count of subscriptions that exist.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ConstraintType">
		<xsd:annotation>
			<xsd:documentation>Enumeration of the possible metric constraint types. The types will be documented
					to indicate what they represent and what the value of the constraint will be.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="USER_TYPE">
				<xsd:annotation>
					<xsd:documentation>Constrained by the type of user. The value of the contraint will be
							&quot;Registered User&quot; or &quot;Guest&quot;.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="USER">
				<xsd:annotation>
					<xsd:documentation>Constrained by the User who did the thing being metric&apos;d. Value of the
							contraint will be the user id.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="CLIENT">
				<xsd:annotation>
					<xsd:documentation>The client that the User was using when the action was performed. Value
							will be the name of the client.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="DOMAIN">
				<xsd:annotation>
					<xsd:documentation>The domain of the user who did the action. Value will be one of the values
							of the UserDomain type.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="REGION">
				<xsd:annotation>
					<xsd:documentation>The region of the user who did the action. Value will be one of the values
							of the UserRegion type.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="HOUR_OF_DAY">
				<xsd:annotation>
					<xsd:documentation>The hour of the day that the actions occured in. Value will be 0 - 23.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROVIDER">
				<xsd:annotation>
					<xsd:documentation>The provider the action was executed in the context of. Value will be the
							provider id.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="DATASET">
				<xsd:annotation>
					<xsd:documentation>The dataset the action was executed in the context of. Value will the
							Dataset Id or a search string the user gave for dataset id.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="DATACENTER">
				<xsd:annotation>
					<xsd:documentation>The datacenter the action was executed in the context of. Value will be the
							Datacenter Id or a search string the user gave for datacenter id.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="BROWSE_ONLY">
				<xsd:annotation>
					<xsd:documentation>Indicates if a search metric is counting browse only searches. Value will
							not be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ONLINE_ONLY">
				<xsd:annotation>
					<xsd:documentation>Indicates if a search metric is counting online only searches. Value will
							not be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="SPATIAL">
				<xsd:annotation>
					<xsd:documentation>Indicates if a search metric is counting spatial searches. Value will not
							be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="TEMPORAL">
				<xsd:annotation>
					<xsd:documentation>Indicates if a search metric is counting temporal searches. Value will not
							be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="DAY_NIGHT_FLAG">
				<xsd:annotation>
					<xsd:documentation>Indicates if a search metric is counting searches using the day night flag.
							Value will not be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="RoleType">
		<xsd:annotation>
			<xsd:documentation>Used to categorize the types of roles a user in the system may have.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="ADMIN">
				<xsd:annotation>
					<xsd:documentation>An admin role gives the user access to all administrator functionality.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PROVIDER">
				<xsd:annotation>
					<xsd:documentation>A provider role allows the user to act on behalf of a provider. The
							provider guid is specified as the name of the role.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="AccessRuleType">
		<xsd:annotation>
			<xsd:documentation>Indicates the type of data rule. The type of the rule affects how it will be
					applied.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="RESTRICTION">
				<xsd:annotation>
					<xsd:documentation>A restriction hides data from all users in the system if the data matches
							the rule.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="PERMISSION">
				<xsd:annotation>
					<xsd:documentation>A permission grants access to the data to a set of users in a group if the
							data matches the condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="UserDomain">
		<xsd:annotation>
			<xsd:documentation>These are the different domains of users.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="GOVERNMENT">
				<xsd:annotation>
					<xsd:documentation>Government agencies and the military.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="K12">
				<xsd:annotation>
					<xsd:documentation>School levels K through 12 (high school).</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="UNIVERSITY">
				<xsd:annotation>
					<xsd:documentation>Colleges and universities.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="COMMERCIAL">
				<xsd:annotation>
					<xsd:documentation>Non-governmental corporations.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="OTHER">
				<xsd:annotation>
					<xsd:documentation>Any other type of domain not available in the standard list.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="UNSPECIFIED">
				<xsd:annotation>
					<xsd:documentation>Indicates that the domain is not specified. This type is used as a default
							in ECHO for orders as well as to support legacy users who have not set a
							specific domain. This value is normally not supported for operations that
							require a domain to be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="UserRegion">
		<xsd:annotation>
			<xsd:documentation>This represents the region a user is located in.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="USA">
				<xsd:annotation>
					<xsd:documentation>The United States of America.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="INTERNATIONAL">
				<xsd:annotation>
					<xsd:documentation>Any country other than the United States of America.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="UNSPECIFIED">
				<xsd:annotation>
					<xsd:documentation>Indicates that the region is not specified. This type is used as a default
							in ECHO for orders as well as to support legacy users who have not set a
							specific region. This value is normally not supported for operations that
							require a region to be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="SubscriptionUpdateType">
		<xsd:annotation>
			<xsd:documentation>Indicates when a metadata subscription should be processed.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="COLLECTIONS_ONLY">
				<xsd:annotation>
					<xsd:documentation>The subscription will be processed whenever collections change.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="GRANULES_ONLY">
				<xsd:annotation>
					<xsd:documentation>The subscription will be processed whenever granules change.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ALL_COLLECTIONS">
				<xsd:annotation>
					<xsd:documentation>The subscription will be processed whenever any collections change.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="BOTH">
				<xsd:annotation>
					<xsd:documentation>The subscription will be processed whenever collections or granules change.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="TemporalRange">
		<xsd:annotation>
			<xsd:documentation>A data rule condition that is based on a start and end time.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="StartDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The start time that the date must be after. This only has a precision of
							seconds.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StopDate" type="xs:dateTime">
				<xsd:annotation>
					<xsd:documentation>The stop time that the date must be before. This only has a precision of
							seconds.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TargetTemporalField" type="echo:TemporalType">
				<xsd:annotation>
					<xsd:documentation>The time field of the data that should be used when performing the
							comparison with this condition.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="TemporalType">
		<xsd:annotation>
			<xsd:documentation>Enumeration of the possible fields that can be used when doing a temporal
					comparison with a collection or granule. This is most commonly used with data rule
					conditions that are based on time.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="PRODUCTION">
				<xsd:annotation>
					<xsd:documentation>The date the item was produced.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="ACQUISITION">
				<xsd:annotation>
					<xsd:documentation>The date the item was acquired.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="INSERT">
				<xsd:annotation>
					<xsd:documentation>The date that the item was added to the ECHO catalog.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="LAST_UPDATE">
				<xsd:annotation>
					<xsd:documentation>The date that the item was last updated in the ECHO catalog.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="UpdateMechanism">
		<xsd:annotation>
			<xsd:documentation>Used to allow providers to indicate how they wish to update the provider order
					state when processing an order.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="AUTOMATIC">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider does not wish to update the provider order
							state. ECHO will therefore automatically maintain the provider order state.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="MANUAL">
				<xsd:annotation>
					<xsd:documentation>Indicates that the provider wishes to manually update the provider order
							state. ECHO will not modify the state and will depend on the provider to
							notify ECHO when the state should be changed.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="VirtualTaxonomyType">
		<xsd:annotation>
			<xsd:documentation>Enumerated type of the different virtual taxonomy types. A virtual taxonomy is one
					for which there are not stored explicit taxonomy entries. A virtual taxonomy is
					constructed on the fly from some other data source.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="DATASET">
				<xsd:annotation>
					<xsd:documentation>The virtual taxonomy type for the primary input type. The taxonomy will be
							constructed by using the providers and all the datasets owned by the
							providers.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="VisibilityFlagType">
		<xsd:annotation>
			<xsd:documentation>Indicates the visibility of data in ECHO. The provider can maintain the visibility
					flag on all collections in ECHO to ensure that only public data is viewable.
					Visibility flags are used in combination with data rules to restrict or permit
					access to data.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xs:string">
			<xsd:enumeration value="OPEN">
				<xsd:annotation>
					<xsd:documentation>The collection(s) or granule(s) will be searchable, viewable, browsable,
							and orderable by all the users before the ACL examination.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="RESTRICT">
				<xsd:annotation>
					<xsd:documentation>The collection(s) or granule(s) will be only searchable, viewable,
							browsable, and orderable by the user who acting on behalf of the provider
							who owns the data. For others, a data with restricted visibility can only
							be searched but not viewable, browsable, and orderable.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="ListOfErrorCodes">
		<xsd:sequence>
			<xsd:element minOccurs="0" maxOccurs="unbounded" name="item" type="echo:ErrorCode"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>
