<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/wcs/1.1.1" 
xmlns:wcs="http://www.opengis.net/wcs/1.1.1" 
xmlns:gml="http://www.opengis.net/gml" 
xmlns:ows="http://www.opengis.net/ows/1.1" 
xmlns="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" version="1.1.1" xml:lang="en">
	<annotation>
		<appinfo>wcsDescribeCoverage.xsd 2007-07-08</appinfo>
		<appinfo>
			<GMLProfileSchema>http://schemas.opengis.net/wcs/1.1.1/gml4wcs.xsd</GMLProfileSchema>
		</appinfo>
		<documentation>This XML Schema Document defines the DescribeCoverage operation request and response XML elements and types, used by the OGC Web Coverage Service (WCS). 
		Copyright (c) 2007 Open Geospatial Consortium, Inc, All Rights Reserved. </documentation>
	</annotation>
	<!-- ==============================================================
		includes and imports	
	============================================================== -->
	<include schemaLocation="wcsCommon.xsd"/>
	<include schemaLocation="wcsGridCRS.xsd"/>
	<include schemaLocation="wcsInterpolationMethod.xsd"/>
	<import namespace="http://www.opengis.net/ows/1.1" schemaLocation="../../ows/1.1.0/owsAll.xsd"/>
	<import namespace="http://www.opengis.net/gml" schemaLocation="../../gml/3.1.1/base/gml.xsd"/>
	<!-- ==============================================================    
	   elements and types	
	============================================================== -->
	<element name="DescribeCoverage">
		<annotation>
			<documentation>Request to a WCS to perform the DescribeCoverage operation. This operation allows a client to retrieve descriptions of one or more coverages. In this XML encoding, no "request" parameter is included, since the element name specifies the specific operation. </documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base="wcs:RequestBaseType">
					<sequence>
						<element ref="wcs:Identifier" maxOccurs="unbounded">
							<annotation>
								<documentation>Unordered list of identifiers of desired coverages. A client can obtain identifiers by a prior GetCapabilities request, or from a third-party source. </documentation>
							</annotation>
						</element>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>
	<!-- =========================================================== -->
	<element name="CoverageDescriptions">
		<annotation>
			<documentation>Response from a WCS DescribeCoverage operation, containing one or more coverage descriptions. </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element name="CoverageDescription" type="wcs:CoverageDescriptionType" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<!-- =========================================================== -->
	<complexType name="CoverageDescriptionType">
		<annotation>
			<documentation>Full description of one coverage available from a WCS server. This description shall include sufficient information to allow all valid GetCoverage operation requests to be prepared by a WCS client. </documentation>
		</annotation>
		<complexContent>
			<extension base="ows:DescriptionType">
				<sequence>
					<element ref="wcs:Identifier">
						<annotation>
							<documentation>Unambiguous identifier of this coverage, unique for this WCS server. </documentation>
						</annotation>
					</element>
					<element ref="ows:Metadata" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Optional unordered list of more metadata elements about this coverage. A list of metadata elements for CoverageDescriptions could be specified in a WCS Application Profile. </documentation>
						</annotation>
					</element>
					<element name="Domain" type="wcs:CoverageDomainType"/>
					<element name="Range" type="wcs:RangeType"/>
					<element name="SupportedCRS" type="anyURI" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of references to all the coordinate reference systems in which GetCoverage operation requests and responses can be encoded for this coverage. </documentation>
						</annotation>
					</element>
					<element name="SupportedFormat" type="ows:MimeType" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of identifiers of all the formats in which GetCoverage operation responses can be encoded for this coverage. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =============================================================	
		Domain types and elements	
	============================================================== -->
	<complexType name="CoverageDomainType">
		<annotation>
			<documentation>Definition of the spatial-temporal domain of a coverage. The Domain shall include a SpatialDomain (describing the spatial locations for which coverages can be requested), and should included a TemporalDomain (describing the time instants or intervals for which coverages can be requested). </documentation>
		</annotation>
		<sequence>
			<element name="SpatialDomain" type="wcs:SpatialDomainType"/>
			<element ref="wcs:TemporalDomain" minOccurs="0">
				<annotation>
					<documentation>Although optional, the TemporalDomain should be included whenever a value is known or a useful estimate is available. </documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="SpatialDomainType">
		<annotation>
			<documentation>Definition of the spatial domain of a coverage. </documentation>
		</annotation>
		<sequence>
			<element ref="ows:BoundingBox" maxOccurs="unbounded">
				<annotation>
					<documentation>The first bounding box shall exactly specify the spatial domain of the offered coverage in the CRS of that offered coverage, thus specifying the available grid row and column indices. For a georectified coverage (that has a GridCRS), this bounding box shall specify the spatial domain in that GridCRS. For an image that is not georectified, this bounding box shall specify the spatial domain in the ImageCRS of that image, whether or not that image is georeferenced. 
					Additional bounding boxes, if any, shall specify the spatial domain in other CRSs. One bounding box could simply duplicate the information in the ows:WGS84BoundingBox; but the intent is to describe the spatial domain in more detail (e.g., in several different CRSs, or several rectangular areas instead of one overall bounding box). Multiple bounding boxes with the same CRS shall be interpreted as an unordered list of bounding boxes whose union covers spatial domain of this coverage. Notice that WCS use of this BoundingBox is further specified in specification Subclause 7.5. </documentation>
				</annotation>
			</element>
			<element ref="wcs:GridCRS" minOccurs="0">
				<annotation>
					<documentation>Definition of GridCRS of the offered coverage. This GridCRS shall be included when this coverage is georectified and is thus stored in a GridCRS. This GridCRS applies to this offered coverage, and specifies its spatial resolution. The definition is included to inform clients of this GridCRS, for possible use in a GetCoverage operation request. </documentation>
				</annotation>
			</element>
			<element name="Transformation" type="gml:AbstractCoordinateOperationType" minOccurs="0">
				<annotation>
					<documentation>Georeferencing coordinate transformation for unrectified coverage, which should be included when available for a coverage that is georeferenced but not georectified. When included, this Transformation will specify the variable spatial resolution of this non-georectified image. To support use cases 4, 5, 9, and/or 10 specified in Annex H, a WCS server needs to use a georeferencing coordinate transformation for a georeferenced but not georectified coverage. That georeferencing transformation can be specified as a Transformation, or a ConcatenatedOperation that includes at least one Transformation. However, a WCS server may not support those use cases, not use a georeferencing transformation specified in that manner, or not make that transformation available to clients. </documentation>
				</annotation>
			</element>
			<element name="ImageCRS" type="wcs:ImageCRSRefType" minOccurs="0">
				<annotation>
					<documentation>Association to ImageCRS of the offered coverage. This ImageCRS shall be included when this coverage is an image. This imageCRS applies to this offered coverage, but does not (normally) specify its spatial resolution. The ImageCRS for an image coverage is referenced to inform clients of the ImageCRS, for possible use in a GetCoverage operation request. The definition of this ImageCRS shall be included unless the association reference URI completely specifies that ImageCRS (such as by using the URL of the definition or using a suitable URN). </documentation>
				</annotation>
			</element>
			<element ref="gml:Polygon" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Unordered list of polygons which more accurately describe the coverage spatial domain in various CRSs. Polygons are particularly useful for areas that are poorly approximated by a BoundingBox (such as satellite image swaths, island groups, other non-convex areas). </documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="ImageCRSRefType">
		<annotation>
			<documentation>Association to an image coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence>
			<element ref="gml:ImageCRS" minOccurs="0"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ========================================================== -->
	<element name="TemporalDomain" type="wcs:TimeSequenceType">
		<annotation>
			<documentation>Definition of the temporal domain of a coverage, the times for which valid data are available. The times should to be ordered from the oldest to the newest. </documentation>
		</annotation>
	</element>
	<!-- =============================================================
		 Range types and elements
 		============================================================== -->
	<complexType name="RangeType">
		<annotation>
			<documentation>Defines the fields (categories, measures, or values) in the range records available for each location in the coverage domain. Each such field may be a scalar (numeric or text) value, such as population density, or a vector (compound or tensor) of many similar values, such as incomes by race, or radiances by wavelength. Each range field is typically an observable whose meaning and reference system are referenced by URIs. </documentation>
		</annotation>
		<sequence>
			<element name="Field" type="wcs:FieldType" maxOccurs="unbounded">
				<annotation>
					<documentation>Unordered list of the Fields in the Range of a coverage. </documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<!-- ========================================================== -->
	<complexType name="FieldType">
		<annotation>
			<documentation>Description of an individual field in a coverage range record. </documentation>
		</annotation>
		<complexContent>
			<extension base="ows:DescriptionType">
				<sequence>
					<element ref="wcs:Identifier">
						<annotation>
							<documentation>Identifier of this Field. These field identifiers shall be unique in one CoverageDescription. </documentation>
						</annotation>
					</element>
					<element name="Definition" type="ows:UnNamedDomainType">
						<annotation>
							<documentation>Further definition of this field, including meaning, units, etc. In this Definition, the AllowedValues should be used to encode the extent of possible values for this field, excluding the Null Value. If the range is not known, AnyValue should be used. </documentation>
						</annotation>
					</element>
					<element name="NullValue" type="ows:CodeType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of the values used when valid Field values are not available for whatever reason. The coverage encoding itself may specify a fixed value for null (e.g. “–99999” or “N/A”), but often the choice is up to the provider and must be communicated to the client outside the coverage itself. Each null value shall be encoded as a string. The optional codeSpace attribute can reference a definition of the reason why this value is null. </documentation>
						</annotation>
					</element>
					<element ref="wcs:InterpolationMethods">
						<annotation>
							<documentation>Spatial interpolation method(s) that server can apply to this field. One of these interpolation methods shall be used when a GetCoverage operation request requires resampling. When the only interpolation method listed is ‘none’, clients may only retrieve coverages from this coverage in its native CRS at its native resolution. </documentation>
						</annotation>
					</element>
					<element name="Axis" type="wcs:AxisType" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of the axes in a vector field for which there are Field values. This list shall be included when this Field has a vector of values. Notice that the axes can be listed here in any order; however, the axis order listed here shall be used in the KVP encoding of a GetCoverage operation request (TBR). </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ========================================================== -->
	<complexType name="AxisType">
		<annotation>
			<documentation>Definition of one axis in a field for which there are a vector of values. </documentation>
			<documentation>This type is largely a subset of the ows:DomainType as needed for a range field axis. </documentation>
		</annotation>
		<complexContent>
			<extension base="ows:DescriptionType">
				<sequence>
					<element ref="wcs:AvailableKeys"/>
					<element ref="ows:Meaning" minOccurs="0">
						<annotation>
							<documentation>Meaning metadata, which should be referenced for this axis. </documentation>
						</annotation>
					</element>
					<element ref="ows:DataType" minOccurs="0">
						<annotation>
							<documentation>Data type metadata, which may be referenced for this axis. </documentation>
						</annotation>
					</element>
					<group ref="ows:ValuesUnit" minOccurs="0">
						<annotation>
							<documentation>Unit of measure, which should be included when this axis has units or a more complete reference system. </documentation>
						</annotation>
					</group>
					<element ref="ows:Metadata" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Optional unordered list of other metadata elements about this axis. A list of required and optional other metadata elements for this quantity can be specified in a WCS Application Profile. </documentation>
						</annotation>
					</element>
				</sequence>
				<attribute name="identifier" type="wcs:IdentifierType" use="required">
					<annotation>
						<documentation>Name or identifier of this axis. </documentation>
					</annotation>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<!-- ========================================================== -->
	<element name="AvailableKeys">
		<annotation>
			<documentation>List of all the available (valid) key values for this axis. For numeric keys, signed values should be ordered from negative infinity to positive infinity. </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element name="Key" type="wcs:IdentifierType" maxOccurs="unbounded">
					<annotation>
						<documentation>Valid key value for this axis. There will normally be more than one key value for an axis, but one is allowed for special circumstances. </documentation>
					</annotation>
				</element>
			</sequence>
		</complexType>
	</element>
	<!-- ========================================================== -->
</schema>
